staging: brcm80211: removed void * from softmac phy
[linux-2.6.git] / drivers / staging / brcm80211 / brcmsmac / phy / phy_n.c
blob2e8aa64979c34aacb2998fd59a84af8e2203c420
1 /*
2 * Copyright (c) 2010 Broadcom Corporation
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.
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.
17 #include <linux/delay.h>
19 #include <brcm_hw_ids.h>
20 #include <aiutils.h>
21 #include <chipcommon.h>
22 #include <pmu.h>
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"
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) ? \
34 radio_type##_##jspace##0 : \
35 radio_type##_##jspace##1))
37 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
38 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
39 ((core == PHY_CORE_0) ? \
40 radio_type##_##jspace##0 : \
41 radio_type##_##jspace##1), value)
43 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
44 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
46 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
47 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
48 radio_type##_##jspace##0##_##reg_name : \
49 radio_type##_##jspace##1##_##reg_name))
51 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
52 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
53 radio_type##_##jspace##0##_##reg_name : \
54 radio_type##_##jspace##1##_##reg_name), \
55 value)
57 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
58 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
59 radio_type##_##reg_name##_##jspace##0 : \
60 radio_type##_##reg_name##_##jspace##1))
62 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
63 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
64 radio_type##_##reg_name##_##jspace##0 : \
65 radio_type##_##reg_name##_##jspace##1), \
66 value)
68 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
69 #define NPHY_ACI_CHANNEL_DELTA 5
70 #define NPHY_ACI_CHANNEL_SKIP 4
71 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
72 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
73 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
74 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
75 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
76 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
78 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
80 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
82 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
84 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
86 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
88 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
90 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
92 #define NPHY_NOISE_ASSOC_ENTER_TH 400
94 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
96 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
97 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
99 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
101 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
103 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
105 #define NPHY_RSSICAL_MAXREAD 31
107 #define NPHY_RSSICAL_NPOLL 8
108 #define NPHY_RSSICAL_MAXD (1<<20)
109 #define NPHY_MIN_RXIQ_PWR 2
111 #define NPHY_RSSICAL_W1_TARGET 25
112 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
113 #define NPHY_RSSICAL_NB_TARGET 0
115 #define NPHY_RSSICAL_W1_TARGET_REV3 29
116 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
118 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
119 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
120 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
121 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
122 NPHY_RSSICAL_MAXREAD)
123 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
124 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
125 NPHY_RSSICAL_MAXREAD)
126 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
127 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
128 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
129 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
130 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
131 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
132 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
134 #define NPHY_IQCAL_NUMGAINS 9
135 #define NPHY_N_GCTL 0x66
137 #define NPHY_PAPD_EPS_TBL_SIZE 64
138 #define NPHY_PAPD_SCL_TBL_SIZE 64
139 #define NPHY_NUM_DIG_FILT_COEFFS 15
141 #define NPHY_PAPD_COMP_OFF 0
142 #define NPHY_PAPD_COMP_ON 1
144 #define NPHY_SROM_TEMPSHIFT 32
145 #define NPHY_SROM_MAXTEMPOFFSET 16
146 #define NPHY_SROM_MINTEMPOFFSET -16
148 #define NPHY_CAL_MAXTEMPDELTA 64
150 #define NPHY_NOISEVAR_TBLLEN40 256
151 #define NPHY_NOISEVAR_TBLLEN20 128
153 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
155 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
157 /* 5357 Chip specific ChipControl register bits */
158 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
159 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
161 struct nphy_iqcal_params {
162 u16 txlpf;
163 u16 txgm;
164 u16 pga;
165 u16 pad;
166 u16 ipa;
167 u16 cal_gain;
168 u16 ncorr[5];
171 struct nphy_txiqcal_ladder {
172 u8 percent;
173 u8 g_env;
176 struct nphy_ipa_txcalgains {
177 struct nphy_txgains gains;
178 bool useindex;
179 u8 index;
182 struct nphy_papd_restore_state {
183 u16 fbmix[2];
184 u16 vga_master[2];
185 u16 intpa_master[2];
186 u16 afectrl[2];
187 u16 afeoverride[2];
188 u16 pwrup[2];
189 u16 atten[2];
190 u16 mm;
193 struct nphy_ipa_txrxgain {
194 u16 hpvga;
195 u16 lpf_biq1;
196 u16 lpf_biq0;
197 u16 lna2;
198 u16 lna1;
199 s8 txpwrindex;
202 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
204 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
205 {0, 0, 0, 0, 0, 100},
206 {0, 0, 0, 0, 0, 50},
207 {0, 0, 0, 0, 0, -1},
208 {0, 0, 0, 3, 0, -1},
209 {0, 0, 3, 3, 0, -1},
210 {0, 2, 3, 3, 0, -1}
213 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
214 {0, 0, 0, 0, 0, 128},
215 {0, 0, 0, 0, 0, 70},
216 {0, 0, 0, 0, 0, 20},
217 {0, 0, 0, 3, 0, 20},
218 {0, 0, 3, 3, 0, 20},
219 {0, 2, 3, 3, 0, 20}
222 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
223 {0, 0, 0, 0, 0, 100},
224 {0, 0, 0, 0, 0, 50},
225 {0, 0, 0, 0, 0, -1},
226 {0, 0, 0, 3, 0, -1},
227 {0, 0, 3, 3, 0, -1},
228 {0, 0, 5, 3, 0, -1}
231 struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
232 {0, 0, 0, 0, 0, 10},
233 {0, 0, 0, 1, 0, 10},
234 {0, 0, 1, 2, 0, 10},
235 {0, 0, 1, 3, 0, 10},
236 {0, 0, 4, 3, 0, 10},
237 {0, 0, 6, 3, 0, 10}
240 #define NPHY_RXCAL_TONEAMP 181
241 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
242 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
244 enum {
245 NPHY_RXCAL_GAIN_INIT = 0,
246 NPHY_RXCAL_GAIN_UP,
247 NPHY_RXCAL_GAIN_DOWN
250 #define wlc_phy_get_papd_nphy(pi) \
251 (read_phy_reg((pi), 0x1e7) & \
252 ((0x1 << 15) | \
253 (0x1 << 14) | \
254 (0x1 << 13)))
256 #define TXFILT_SHAPING_OFDM20 0
257 #define TXFILT_SHAPING_OFDM40 1
258 #define TXFILT_SHAPING_CCK 2
259 #define TXFILT_DEFAULT_OFDM20 3
260 #define TXFILT_DEFAULT_OFDM40 4
262 u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
263 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
264 230, -44, 230, 201, -191, 201},
265 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
266 26, 34, -32, 34},
267 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
268 121, -73, 121, 91, 124, 91},
269 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
270 151, 301, 151, 602, -752, 602},
271 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
272 12, 25, 12, 13, 27, 13},
273 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
274 230, -44, 230, 201, -191, 201},
275 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
276 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
279 struct chan_info_nphy_2055 {
280 u16 chan;
281 u16 freq;
282 uint unknown;
283 u8 RF_pll_ref;
284 u8 RF_rf_pll_mod1;
285 u8 RF_rf_pll_mod0;
286 u8 RF_vco_cap_tail;
287 u8 RF_vco_cal1;
288 u8 RF_vco_cal2;
289 u8 RF_pll_lf_c1;
290 u8 RF_pll_lf_r1;
291 u8 RF_pll_lf_c2;
292 u8 RF_lgbuf_cen_buf;
293 u8 RF_lgen_tune1;
294 u8 RF_lgen_tune2;
295 u8 RF_core1_lgbuf_a_tune;
296 u8 RF_core1_lgbuf_g_tune;
297 u8 RF_core1_rxrf_reg1;
298 u8 RF_core1_tx_pga_pad_tn;
299 u8 RF_core1_tx_mx_bgtrim;
300 u8 RF_core2_lgbuf_a_tune;
301 u8 RF_core2_lgbuf_g_tune;
302 u8 RF_core2_rxrf_reg1;
303 u8 RF_core2_tx_pga_pad_tn;
304 u8 RF_core2_tx_mx_bgtrim;
305 u16 PHY_BW1a;
306 u16 PHY_BW2;
307 u16 PHY_BW3;
308 u16 PHY_BW4;
309 u16 PHY_BW5;
310 u16 PHY_BW6;
313 struct chan_info_nphy_radio205x {
314 u16 chan;
315 u16 freq;
316 u8 RF_SYN_pll_vcocal1;
317 u8 RF_SYN_pll_vcocal2;
318 u8 RF_SYN_pll_refdiv;
319 u8 RF_SYN_pll_mmd2;
320 u8 RF_SYN_pll_mmd1;
321 u8 RF_SYN_pll_loopfilter1;
322 u8 RF_SYN_pll_loopfilter2;
323 u8 RF_SYN_pll_loopfilter3;
324 u8 RF_SYN_pll_loopfilter4;
325 u8 RF_SYN_pll_loopfilter5;
326 u8 RF_SYN_reserved_addr27;
327 u8 RF_SYN_reserved_addr28;
328 u8 RF_SYN_reserved_addr29;
329 u8 RF_SYN_logen_VCOBUF1;
330 u8 RF_SYN_logen_MIXER2;
331 u8 RF_SYN_logen_BUF3;
332 u8 RF_SYN_logen_BUF4;
333 u8 RF_RX0_lnaa_tune;
334 u8 RF_RX0_lnag_tune;
335 u8 RF_TX0_intpaa_boost_tune;
336 u8 RF_TX0_intpag_boost_tune;
337 u8 RF_TX0_pada_boost_tune;
338 u8 RF_TX0_padg_boost_tune;
339 u8 RF_TX0_pgaa_boost_tune;
340 u8 RF_TX0_pgag_boost_tune;
341 u8 RF_TX0_mixa_boost_tune;
342 u8 RF_TX0_mixg_boost_tune;
343 u8 RF_RX1_lnaa_tune;
344 u8 RF_RX1_lnag_tune;
345 u8 RF_TX1_intpaa_boost_tune;
346 u8 RF_TX1_intpag_boost_tune;
347 u8 RF_TX1_pada_boost_tune;
348 u8 RF_TX1_padg_boost_tune;
349 u8 RF_TX1_pgaa_boost_tune;
350 u8 RF_TX1_pgag_boost_tune;
351 u8 RF_TX1_mixa_boost_tune;
352 u8 RF_TX1_mixg_boost_tune;
353 u16 PHY_BW1a;
354 u16 PHY_BW2;
355 u16 PHY_BW3;
356 u16 PHY_BW4;
357 u16 PHY_BW5;
358 u16 PHY_BW6;
361 struct chan_info_nphy_radio2057 {
362 u16 chan;
363 u16 freq;
364 u8 RF_vcocal_countval0;
365 u8 RF_vcocal_countval1;
366 u8 RF_rfpll_refmaster_sparextalsize;
367 u8 RF_rfpll_loopfilter_r1;
368 u8 RF_rfpll_loopfilter_c2;
369 u8 RF_rfpll_loopfilter_c1;
370 u8 RF_cp_kpd_idac;
371 u8 RF_rfpll_mmd0;
372 u8 RF_rfpll_mmd1;
373 u8 RF_vcobuf_tune;
374 u8 RF_logen_mx2g_tune;
375 u8 RF_logen_mx5g_tune;
376 u8 RF_logen_indbuf2g_tune;
377 u8 RF_logen_indbuf5g_tune;
378 u8 RF_txmix2g_tune_boost_pu_core0;
379 u8 RF_pad2g_tune_pus_core0;
380 u8 RF_pga_boost_tune_core0;
381 u8 RF_txmix5g_boost_tune_core0;
382 u8 RF_pad5g_tune_misc_pus_core0;
383 u8 RF_lna2g_tune_core0;
384 u8 RF_lna5g_tune_core0;
385 u8 RF_txmix2g_tune_boost_pu_core1;
386 u8 RF_pad2g_tune_pus_core1;
387 u8 RF_pga_boost_tune_core1;
388 u8 RF_txmix5g_boost_tune_core1;
389 u8 RF_pad5g_tune_misc_pus_core1;
390 u8 RF_lna2g_tune_core1;
391 u8 RF_lna5g_tune_core1;
392 u16 PHY_BW1a;
393 u16 PHY_BW2;
394 u16 PHY_BW3;
395 u16 PHY_BW4;
396 u16 PHY_BW5;
397 u16 PHY_BW6;
400 struct chan_info_nphy_radio2057_rev5 {
401 u16 chan;
402 u16 freq;
403 u8 RF_vcocal_countval0;
404 u8 RF_vcocal_countval1;
405 u8 RF_rfpll_refmaster_sparextalsize;
406 u8 RF_rfpll_loopfilter_r1;
407 u8 RF_rfpll_loopfilter_c2;
408 u8 RF_rfpll_loopfilter_c1;
409 u8 RF_cp_kpd_idac;
410 u8 RF_rfpll_mmd0;
411 u8 RF_rfpll_mmd1;
412 u8 RF_vcobuf_tune;
413 u8 RF_logen_mx2g_tune;
414 u8 RF_logen_indbuf2g_tune;
415 u8 RF_txmix2g_tune_boost_pu_core0;
416 u8 RF_pad2g_tune_pus_core0;
417 u8 RF_lna2g_tune_core0;
418 u8 RF_txmix2g_tune_boost_pu_core1;
419 u8 RF_pad2g_tune_pus_core1;
420 u8 RF_lna2g_tune_core1;
421 u16 PHY_BW1a;
422 u16 PHY_BW2;
423 u16 PHY_BW3;
424 u16 PHY_BW4;
425 u16 PHY_BW5;
426 u16 PHY_BW6;
429 struct nphy_sfo_cfg {
430 u16 PHY_BW1a;
431 u16 PHY_BW2;
432 u16 PHY_BW3;
433 u16 PHY_BW4;
434 u16 PHY_BW5;
435 u16 PHY_BW6;
438 static struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
440 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
441 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
442 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
444 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
445 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
446 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
448 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
449 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
450 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
452 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
453 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
454 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
456 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
457 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
458 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
460 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
461 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
462 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
464 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
465 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
466 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
468 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
469 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
470 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
472 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
473 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
474 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
476 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
477 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
478 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
480 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
481 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
482 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
484 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
485 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
486 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
488 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
489 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
490 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
492 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
493 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
494 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
496 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
497 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
498 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
500 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
501 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
502 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
504 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
505 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
506 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
508 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
509 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
510 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
512 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
513 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
514 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
516 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
517 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
518 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
520 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
521 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
522 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
524 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
525 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
526 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
528 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
529 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
530 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
532 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
533 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
534 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
536 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
537 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
538 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
540 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
541 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
542 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
544 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
545 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
546 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
548 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
549 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
550 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
552 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
553 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
554 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
556 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
557 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
558 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
560 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
561 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
562 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
564 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
565 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
566 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
568 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
569 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
570 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
572 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
573 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
574 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
576 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
577 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
578 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
580 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
581 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
582 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
584 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
585 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
586 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
588 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
589 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
590 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
592 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
593 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
594 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
596 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
597 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
598 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
600 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
601 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
602 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
604 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
605 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
606 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
608 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
609 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
610 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
612 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
613 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
614 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
616 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
617 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
618 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
620 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
621 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
622 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
624 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
625 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
626 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
628 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
629 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
630 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
632 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
633 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
634 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
636 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
637 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
638 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
640 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
641 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
642 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
644 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
645 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
646 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
648 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
649 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
650 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
652 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
653 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
654 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
656 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
657 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
658 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
660 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
661 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
662 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
664 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
665 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
666 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
668 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
669 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
670 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
672 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
673 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
674 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
676 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
677 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
678 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
680 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
681 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
682 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
684 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
685 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
686 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
688 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
689 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
690 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
692 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
693 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
694 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
696 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
697 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
698 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
700 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
701 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
702 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
704 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
705 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
706 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
708 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
709 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
710 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
712 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
713 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
714 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
716 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
717 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
718 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
720 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
721 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
722 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
724 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
725 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
726 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
728 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
729 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
730 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
732 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
733 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
734 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
736 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
737 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
738 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
740 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
741 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
742 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
744 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
745 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
746 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
748 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
749 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
750 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
752 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
753 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
754 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
756 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
757 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
758 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
760 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
761 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
762 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
764 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
765 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
766 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
768 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
769 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
770 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
772 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
773 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
774 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
776 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
777 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
778 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
780 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
781 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
782 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
784 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
785 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
786 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
788 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
789 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
790 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
792 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
793 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
794 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
796 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
797 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
798 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
800 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
801 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
802 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
804 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
805 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
806 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
808 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
809 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
810 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
812 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
813 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
814 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
816 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
817 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
818 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
820 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
821 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
822 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
824 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
825 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
826 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
828 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
829 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
830 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
832 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
833 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
834 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
836 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
837 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
838 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
840 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
841 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
842 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
844 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
845 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
846 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
848 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
849 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
850 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
852 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
853 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
854 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
856 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
857 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
858 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
860 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
861 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
862 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
864 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
865 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
866 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
868 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
869 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
870 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
872 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
873 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
874 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
876 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
877 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
878 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
880 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
881 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
882 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
884 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
885 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
886 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
888 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
889 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
890 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
892 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
893 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
894 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
896 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
897 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
898 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
900 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
901 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
902 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
904 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
905 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
906 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
908 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
909 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
910 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
912 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
913 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
914 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
916 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
917 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
918 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
920 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
921 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
922 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
924 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
925 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
926 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
928 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
929 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
930 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
932 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
933 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
934 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
937 static struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
939 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
940 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
941 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
942 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
944 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
945 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
946 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
947 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
949 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
950 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
951 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
952 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
954 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
955 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
956 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
957 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
959 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
960 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
961 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
962 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
964 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
965 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
966 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
967 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
969 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
970 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
971 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
972 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
974 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
975 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
976 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
977 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
979 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
980 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
981 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
982 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
984 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
985 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
986 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
987 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
989 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
990 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
991 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
992 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
994 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
995 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
996 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
997 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
999 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1000 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1001 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1002 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1004 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1005 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1006 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1007 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1009 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1010 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1011 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1012 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1014 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1015 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1016 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1017 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1019 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1020 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1021 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1022 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1024 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1025 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1026 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1027 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1029 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1030 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1031 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1032 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1034 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1035 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1036 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1037 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1039 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1040 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1041 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1042 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1044 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1045 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1046 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1047 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1049 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1050 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1051 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1052 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1054 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1055 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1056 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1057 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1059 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1060 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1061 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1062 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1064 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1065 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1066 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1067 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1069 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1070 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1071 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1072 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1074 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1075 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1076 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1077 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1079 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1080 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1081 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1082 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1084 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1085 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1086 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1087 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1089 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1090 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1091 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1092 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1094 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1095 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1096 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1097 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1099 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1100 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1101 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1102 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1104 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1105 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1106 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1107 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1109 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1110 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1111 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1112 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1114 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1115 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1116 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1117 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1119 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1120 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1121 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1122 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1124 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1125 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1126 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1127 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1129 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1130 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1131 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1132 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1134 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1135 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1136 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1137 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1139 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1140 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1141 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1142 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1144 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1145 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1146 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1147 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1149 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1150 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1151 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1152 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1154 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1155 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1156 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1157 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1159 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1160 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1161 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1162 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1164 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1165 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1166 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1167 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1169 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1170 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1171 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1172 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1174 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1175 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1176 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1177 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1179 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1180 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1181 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1182 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1184 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1185 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1186 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1187 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1189 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1190 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1191 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1192 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1194 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1195 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1196 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1197 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1199 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1200 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1201 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1202 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1204 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1205 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1206 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1207 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1209 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1210 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1211 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1212 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1214 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1215 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1216 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1217 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1219 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1220 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1221 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1222 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1224 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1225 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1226 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1227 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1229 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1230 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1231 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1232 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1234 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1235 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1236 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1237 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1239 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1240 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1241 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1242 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1244 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1245 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1246 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1247 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1249 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1250 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1251 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1252 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1254 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1255 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1256 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1257 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1259 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1260 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1261 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1262 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1264 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1265 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1266 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1267 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1269 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1270 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1271 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1272 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1274 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1275 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1276 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1277 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1279 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1280 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1281 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1282 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1284 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1285 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1286 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1287 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1289 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1290 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1291 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1292 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1294 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1295 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1296 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1297 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1299 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1300 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1301 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1302 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1304 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1305 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1306 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1307 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1309 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1310 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1311 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1312 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1314 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1315 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1316 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1317 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1319 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1320 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1321 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1322 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1324 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1325 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1326 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1327 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1329 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1330 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1331 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1332 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1334 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1335 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1336 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1337 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1339 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1340 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1341 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1342 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1344 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1345 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1346 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1347 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1349 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1350 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1351 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1352 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1354 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1355 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1356 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1357 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1359 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1360 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1361 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1362 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1364 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1365 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1366 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1367 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1369 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1370 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1371 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1372 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1374 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1375 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1376 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1377 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1379 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1380 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1381 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1382 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1384 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1385 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1386 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1387 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1389 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1390 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1391 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1392 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1394 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1395 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1396 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1397 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1399 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1400 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1401 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1402 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1404 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1405 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1406 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1407 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1409 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1410 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1411 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1412 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1414 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1415 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1416 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1417 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1419 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1420 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1421 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1422 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1424 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1425 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1426 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1427 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1429 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1430 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1431 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1432 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1434 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1435 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1436 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1437 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1439 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1440 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1441 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1442 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1444 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1445 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1446 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1447 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1449 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1450 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1451 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1452 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1454 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1455 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1456 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1457 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1459 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1460 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1461 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1462 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1464 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1465 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1466 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1467 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1469 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1470 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1471 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1472 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1474 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1475 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1476 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1477 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1479 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1480 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1481 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1482 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1484 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1485 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1486 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1487 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1489 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1490 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1491 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1492 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1494 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1495 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1496 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1497 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1499 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1500 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1501 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1502 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1504 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1505 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1506 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1507 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1509 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1510 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1511 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1512 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1514 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1515 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1516 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1517 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1519 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1520 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1521 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1522 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1524 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1525 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1526 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1527 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1529 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1530 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1531 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1532 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1534 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1535 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1536 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1537 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1539 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1540 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1541 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1542 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1544 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1545 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1546 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1547 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1549 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1550 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1551 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1552 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1554 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1555 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1556 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1557 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1560 static struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1562 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1563 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1564 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1565 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1567 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1568 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1569 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1570 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1572 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1573 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1574 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1575 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1577 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1578 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1579 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1580 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1582 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1583 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1584 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1585 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1587 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1588 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1589 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1590 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1592 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1593 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1594 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1595 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1597 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1598 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1599 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1600 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1602 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1603 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1604 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1605 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1607 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1608 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1609 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1610 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1612 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1613 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1614 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1615 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1617 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1618 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1619 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1620 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1622 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1623 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1624 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1625 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1627 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1628 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1629 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1630 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1632 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1633 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1634 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1635 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1637 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1638 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1639 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1640 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1642 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1643 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1644 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1645 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1647 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1648 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1649 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1650 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1652 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1653 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1654 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1655 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1657 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1658 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1659 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1660 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1662 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1663 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1664 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1665 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1667 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1668 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1669 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1670 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1672 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1673 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1674 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1675 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1677 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1678 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1679 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1680 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1682 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1683 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1684 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1685 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1687 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1688 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1689 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1690 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1692 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1693 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1694 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1695 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1697 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1698 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1699 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1700 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1702 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1703 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1704 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1705 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1707 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1708 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1709 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1710 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1712 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1713 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1714 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1715 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1717 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1718 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1719 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1720 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1722 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1723 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1724 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1725 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1727 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1728 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1729 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1730 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1732 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1733 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1734 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1735 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1737 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1738 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1739 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1740 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1742 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1743 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1744 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1745 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1747 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1748 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1749 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1750 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1752 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1753 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1754 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1755 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1757 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1758 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1759 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1760 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1762 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1763 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1764 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1765 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1767 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1768 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1769 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1770 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1772 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1773 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1774 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1775 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1777 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1778 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1779 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1780 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1782 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1783 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1784 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1785 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1787 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1788 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1789 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1790 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1792 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1793 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1794 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1795 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1797 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1798 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1799 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1800 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1802 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1803 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1804 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1805 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1807 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1808 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1809 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1810 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1812 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1813 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1814 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1815 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1817 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1818 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1819 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1820 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1822 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1823 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1824 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1825 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1827 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1828 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1829 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1830 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1832 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1833 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1834 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1835 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1837 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1838 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1839 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1840 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1842 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1843 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1844 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1845 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1847 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1848 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1849 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1850 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1852 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1853 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1854 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1855 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1857 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1858 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1859 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1860 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1862 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1863 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1864 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1865 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1867 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1868 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1869 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1870 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1872 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1873 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1874 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1875 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1877 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1878 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1879 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1880 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1882 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1883 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1884 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1885 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1887 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1888 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1889 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1890 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1892 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1893 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1894 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1895 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1897 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1898 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1899 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1900 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1902 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1903 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1904 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1905 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1907 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1908 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1909 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1910 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1912 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1913 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1914 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1915 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1917 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1918 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1919 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1920 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1922 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1923 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1924 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1925 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1927 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1928 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1929 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1930 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1932 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1933 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1934 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1935 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1937 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1938 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1939 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1940 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1942 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1943 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1944 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1945 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1947 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1948 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1949 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1950 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1952 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1953 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1954 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1955 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1957 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1958 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1959 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1960 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1962 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1963 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1964 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1965 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1967 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1968 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1969 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1970 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1972 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1973 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1974 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1975 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1977 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1978 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1979 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1980 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1982 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1983 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1984 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1985 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1987 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1988 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1989 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1990 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1992 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1993 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1994 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1995 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1997 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1998 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1999 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2000 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2002 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2003 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2004 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2005 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2007 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2008 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2009 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2010 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2012 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2013 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2014 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2015 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2017 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2018 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2019 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2020 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2022 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2023 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2024 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2025 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2027 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2028 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2029 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2030 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2032 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2033 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2034 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2035 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2037 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2038 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2039 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2040 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2042 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2043 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2044 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2045 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2047 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2048 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2049 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2050 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2052 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2053 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2054 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2055 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2057 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2058 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2059 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2060 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2062 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2063 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2064 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2065 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2067 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2068 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2069 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2070 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2072 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2073 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2074 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2075 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2077 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2078 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2079 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2080 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2082 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2083 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2084 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2085 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2087 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2088 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2089 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2090 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2092 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2093 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2094 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2095 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2097 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2098 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2099 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2100 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2102 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2103 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2104 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2105 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2107 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2108 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2109 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2110 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2112 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2113 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2114 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2115 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2117 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2118 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2119 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2120 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2122 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2123 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2124 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2125 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2127 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2128 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2129 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2130 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2132 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2133 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2134 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2135 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2137 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2138 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2139 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2140 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2142 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2143 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2144 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2145 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2147 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2148 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2149 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2150 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2152 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2153 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2154 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2155 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2157 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2158 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2159 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2160 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2162 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2163 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2164 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2165 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2167 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2168 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2169 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2170 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2172 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2173 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2174 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2175 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2177 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2178 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2179 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2180 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2183 static struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2185 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2186 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2187 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2188 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2190 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2191 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2192 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2193 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2195 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2196 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2197 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2198 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2200 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2201 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2202 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2203 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2205 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2206 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2207 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2208 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2210 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2211 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2212 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2213 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2215 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2216 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2217 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2218 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2220 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2221 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2222 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2223 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2225 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2226 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2227 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2228 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2230 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2231 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2232 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2233 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2235 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2236 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2237 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2238 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2240 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2241 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2242 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2243 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2245 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2246 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2247 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2248 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2250 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2251 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2252 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2253 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2255 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2256 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2257 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2258 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2260 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2261 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2262 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2263 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2265 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2266 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2267 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2268 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2270 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2271 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2272 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2273 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2275 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2276 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2277 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2278 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2280 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2281 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2282 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2283 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2285 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2286 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2287 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2288 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2290 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2291 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2292 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2293 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2295 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2296 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2297 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2298 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2300 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2301 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2302 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2303 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2305 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2306 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2307 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2308 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2310 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2311 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2312 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2313 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2315 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2316 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2317 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2318 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2320 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2321 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2322 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2323 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2325 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2326 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2327 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2328 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2330 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2331 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2332 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2333 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2335 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2336 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2337 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2338 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2340 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2341 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2342 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2343 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2345 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2346 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2347 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2348 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2350 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2351 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2352 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2353 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2355 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2356 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2357 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2358 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2360 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2361 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2362 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2363 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2365 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2366 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2367 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2368 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2370 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2371 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2372 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2373 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2375 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2376 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2377 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2378 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2380 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2381 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2382 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2383 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2385 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2386 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2387 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2388 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2390 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2391 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2392 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2393 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2395 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2396 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2397 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2398 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2400 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2401 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2402 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2403 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2405 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2406 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2407 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2408 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2410 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2411 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2412 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2413 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2415 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2416 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2417 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2418 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2420 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2421 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2422 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2423 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2425 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2426 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2427 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2428 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2430 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2431 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2432 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2433 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2435 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2436 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2437 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2438 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2440 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2441 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2442 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2443 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2445 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2446 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2447 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2448 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2450 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2451 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2452 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2453 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2455 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2456 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2457 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2458 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2460 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2461 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2462 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2463 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2465 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2466 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2467 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2468 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2470 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2471 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2472 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2473 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2475 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2476 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2477 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2478 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2480 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2481 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2482 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2483 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2485 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2486 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2487 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2488 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2490 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2491 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2492 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2493 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2495 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2496 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2497 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2498 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2500 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2501 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2502 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2503 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2505 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2506 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2507 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2508 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2510 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2511 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2512 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2513 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2515 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2516 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2517 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2518 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2520 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2521 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2522 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2523 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2525 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2526 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2527 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2528 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2530 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2531 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2532 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2533 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2535 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2536 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2537 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2538 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2540 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2541 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2542 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2543 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2545 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2546 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2547 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2548 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2550 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2551 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2552 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2553 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2555 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2556 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2557 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2558 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2560 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2561 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2562 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2563 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2565 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2566 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2567 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2568 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2570 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2571 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2572 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2573 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2575 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2576 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2577 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2578 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2580 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2581 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2582 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2583 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2585 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2586 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2587 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2588 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2590 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2591 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2592 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2593 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2595 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2596 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2597 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2598 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2600 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2601 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2602 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2603 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2605 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2606 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2607 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2608 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2610 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2611 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2612 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2613 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2615 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2616 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2617 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2618 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2620 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2621 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2622 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2623 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2625 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2626 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2627 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2628 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2630 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2631 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2632 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2633 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2635 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2636 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2637 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2638 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2640 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2641 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2642 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2643 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2645 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2646 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2647 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2648 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2650 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2651 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2652 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2653 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2655 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2656 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2657 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2658 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2660 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2661 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2662 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2663 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2665 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2666 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2667 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2668 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2670 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2671 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2672 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2673 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2675 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2676 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2677 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2678 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2680 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2681 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2682 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2683 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2685 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2686 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2687 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2688 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2690 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2691 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2692 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2693 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2695 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2696 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2697 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2698 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2700 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2701 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2702 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2703 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2705 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2706 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2707 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2708 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2710 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2711 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2712 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2713 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2715 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2716 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2717 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2718 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2720 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2721 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2722 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2723 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2725 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2726 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2727 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2728 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2730 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2731 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2732 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2733 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2735 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2736 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2737 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2738 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2740 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2741 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2742 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2743 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2745 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2746 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2747 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2748 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2750 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2751 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2752 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2753 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2755 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2756 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2757 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2758 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2760 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2761 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2762 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2763 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2765 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2766 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2767 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2768 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2770 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2771 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2772 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2773 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2775 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2776 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2777 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2778 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2780 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2781 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2782 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2783 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2785 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2786 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2787 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2788 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2790 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2791 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2792 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2793 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2795 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2796 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2797 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2798 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2800 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2801 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2802 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2803 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2806 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2808 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2809 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2810 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2811 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2813 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2814 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2815 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2816 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2818 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2819 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2820 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2821 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2823 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2824 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2825 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2826 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2828 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2829 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2830 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2831 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2833 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2834 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2835 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2836 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2838 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2839 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2840 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2841 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2843 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2844 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2845 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2846 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2848 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2849 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2850 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2851 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2853 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2854 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2855 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2856 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2858 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2859 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2860 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2861 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2863 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2864 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2865 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2866 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2868 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2869 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2870 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2871 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2873 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2874 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2875 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2876 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2878 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2879 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2880 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2881 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2883 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2884 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2885 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2886 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2888 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2889 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2890 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2891 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2893 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2894 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2895 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2896 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2898 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2899 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2900 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2901 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2903 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2904 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2905 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2906 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2908 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2909 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2910 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2911 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2913 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2914 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2915 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2916 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2918 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2919 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2920 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2921 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2923 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2924 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2925 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2926 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2928 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2929 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2930 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2931 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2933 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2934 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2935 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2936 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2938 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2939 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2940 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2941 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2943 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2944 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2945 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2946 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2948 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2949 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2950 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2951 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2953 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2954 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2955 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2956 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2958 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2959 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2960 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2961 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2963 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2964 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2965 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2966 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2968 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2969 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2970 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2971 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2973 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2974 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2975 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2976 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2978 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2979 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2980 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2981 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2983 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2984 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2985 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2986 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2988 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2989 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2990 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2991 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2993 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2994 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2995 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2996 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2998 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2999 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3000 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3001 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3003 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3004 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3005 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3006 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3008 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3009 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3010 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3011 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3013 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3014 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3015 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3016 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3018 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3019 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3020 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3021 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3023 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3024 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3025 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3026 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3028 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3029 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3030 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3031 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3033 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3034 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3035 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3036 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3038 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3039 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3040 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3041 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3043 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3044 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3045 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3046 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3048 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3049 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3050 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3051 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3053 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3054 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3055 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3056 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3058 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3059 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3060 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3061 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3063 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3064 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3065 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3066 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3068 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3069 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3070 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3071 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3073 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3074 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3075 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3076 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3078 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3079 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3080 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3081 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3083 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3084 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3085 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3086 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3088 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3089 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3090 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3091 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3093 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3094 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3095 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3096 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3098 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3099 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3100 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3101 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3103 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3104 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3105 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3106 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3108 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3109 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3110 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3111 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3113 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3114 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3115 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3116 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3118 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3119 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3120 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3121 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3123 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3124 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3125 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3126 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3128 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3129 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3130 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3131 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3133 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3134 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3135 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3136 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3138 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3139 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3140 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3141 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3143 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3144 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3145 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3146 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3148 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3149 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3150 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3151 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3153 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3154 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3155 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3156 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3158 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3159 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3160 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3161 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3163 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3164 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3165 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3166 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3168 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3169 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3170 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3171 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3173 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3174 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3175 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3176 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3178 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3179 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3180 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3181 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3183 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3184 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3185 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3186 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3188 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3189 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3190 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3191 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3193 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3194 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3195 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3196 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3198 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3199 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3200 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3201 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3203 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3204 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3205 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3206 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3208 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3209 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3210 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3211 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3213 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3214 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3215 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3216 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3218 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3219 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3220 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3221 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3223 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3224 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3225 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3226 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3228 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3229 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3230 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3231 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3233 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3234 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3235 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3236 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3238 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3239 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3240 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3241 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3243 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3244 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3245 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3246 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3248 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3249 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3250 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3251 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3253 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3254 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3255 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3256 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3258 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3259 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3260 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3261 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3263 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3264 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3265 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3266 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3268 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3269 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3270 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3271 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3273 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3274 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3275 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3276 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3278 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3279 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3280 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3281 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3283 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3284 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3285 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3286 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3288 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3289 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3290 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3291 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3293 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3294 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3295 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3296 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3298 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3299 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3300 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3301 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3303 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3304 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3305 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3306 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3308 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3309 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3310 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3311 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3313 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3314 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3315 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3316 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3318 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3319 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3320 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3321 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3323 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3324 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3325 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3326 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3328 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3329 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3330 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3331 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3333 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3334 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3335 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3336 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3338 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3339 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3340 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3341 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3343 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3344 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3345 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3346 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3348 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3349 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3350 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3351 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3353 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3354 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3355 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3356 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3358 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3359 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3360 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3361 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3363 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3364 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3365 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3366 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3368 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3369 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3370 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3371 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3373 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3374 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3375 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3376 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3378 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3379 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3380 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3381 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3383 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3384 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3385 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3386 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3388 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3389 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3390 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3391 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3393 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3394 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3395 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3396 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3398 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3399 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3400 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3401 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3403 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3404 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3405 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3406 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3408 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3409 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3410 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3411 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3413 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3414 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3415 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3416 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3418 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3419 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3420 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3421 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3423 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3424 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3425 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3426 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3429 static struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3431 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3432 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3433 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3434 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3436 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3437 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3438 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3439 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3441 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3442 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3443 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3444 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3446 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3447 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3448 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3449 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3451 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3452 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3453 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3454 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3456 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3457 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3458 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3459 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3461 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3462 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3463 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3464 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3466 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3467 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3468 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3469 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3471 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3472 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3473 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3474 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3476 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3477 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3478 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3479 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3481 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3482 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3483 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3484 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3486 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3487 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3488 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3489 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3491 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3492 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3493 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3494 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3496 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3497 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3498 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3499 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3501 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3502 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3503 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3504 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3506 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3507 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3508 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3509 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3511 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3512 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3513 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3514 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3516 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3517 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3518 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3519 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3521 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3522 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3523 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3524 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3526 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3527 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3528 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3529 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3531 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3532 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3533 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3534 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3536 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3537 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3538 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3539 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3541 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3542 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3543 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3544 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3546 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3547 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3548 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3549 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3551 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3552 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3553 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3554 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3556 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3557 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3558 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3559 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3561 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3562 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3563 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3564 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3566 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3567 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3568 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3569 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3571 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3572 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3573 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3574 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3576 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3577 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3578 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3579 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3581 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3582 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3583 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3584 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3586 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3587 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3588 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3589 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3591 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3592 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3593 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3594 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3596 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3597 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3598 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3599 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3601 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3602 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3603 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3604 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3606 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3607 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3608 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3609 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3611 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3612 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3613 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3614 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3616 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3617 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3618 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3619 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3621 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3622 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3623 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3624 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3626 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3627 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3628 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3629 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3631 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3632 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3633 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3634 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3636 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3637 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3638 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3639 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3641 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3642 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3643 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3644 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3646 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3647 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3648 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3649 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3651 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3652 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3653 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3654 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3656 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3657 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3658 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3659 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3661 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3662 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3663 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3664 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3666 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3667 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3668 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3669 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3671 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3672 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3673 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3674 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3676 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3677 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3678 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3679 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3681 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3682 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3683 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3684 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3686 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3687 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3688 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3689 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3691 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3692 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3693 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3694 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3696 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3697 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3698 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3699 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3701 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3702 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3703 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3704 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3706 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3707 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3708 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3709 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3711 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3712 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3713 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3714 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3716 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3717 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3718 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3719 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3721 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3722 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3723 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3724 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3726 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3727 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3728 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3729 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3731 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3732 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3733 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3734 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3736 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3737 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3738 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3739 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3741 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3742 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3743 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3744 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3746 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3747 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3748 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3749 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3751 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3752 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3753 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3754 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3756 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3757 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3758 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3759 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3761 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3762 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3763 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3764 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3766 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3767 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3768 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3769 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3771 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3772 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3773 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3774 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3776 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3777 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3778 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3779 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3781 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3782 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3783 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3784 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3786 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3787 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3788 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3789 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3791 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3792 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3793 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3794 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3796 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3797 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3798 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3799 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3801 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3802 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3803 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3804 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3806 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3807 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3808 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3809 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3811 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3812 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3813 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3814 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3816 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3817 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3818 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3819 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3821 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3822 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3823 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3824 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3826 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3827 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3828 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3829 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3831 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3832 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3833 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3834 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3836 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3837 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3838 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3839 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3841 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3842 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3843 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3844 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3846 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3847 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3848 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3849 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3851 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3852 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3853 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3854 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3856 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3857 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3858 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3859 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3861 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3862 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3863 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3864 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3866 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3867 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3868 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3869 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3871 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3872 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3873 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3874 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3876 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3877 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3878 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3879 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3881 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3882 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3883 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3884 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3886 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3887 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3888 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3889 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3891 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3892 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3893 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3894 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3896 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3897 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3898 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3899 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3901 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3902 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3903 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3904 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3906 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3907 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3908 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3909 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3911 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3912 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3913 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3914 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3916 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3917 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3918 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3919 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3921 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3922 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3923 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3924 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3926 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3927 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3928 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3929 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3931 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3932 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3933 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3934 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3936 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3937 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3938 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3939 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3941 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3942 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3943 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3944 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3946 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3947 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3948 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3949 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3951 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3952 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3953 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3954 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3956 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3957 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3958 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3959 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3961 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3962 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3963 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3964 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3966 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3967 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3968 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3969 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3971 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3972 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3973 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3974 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3976 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3977 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3978 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3979 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3981 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3982 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3983 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3984 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3986 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3987 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3988 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3989 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3991 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3992 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3993 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3994 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3996 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3997 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3998 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3999 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4001 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4002 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4003 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4004 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4006 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4007 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4008 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4009 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4011 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4012 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4013 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4014 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4016 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4017 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4018 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4019 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4021 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4022 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4023 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4024 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4026 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4027 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4028 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4029 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4031 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4032 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4033 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4034 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4036 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4037 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4038 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4039 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4041 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4042 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4043 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4044 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4046 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4047 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4048 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4049 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4052 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4054 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4055 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4056 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4057 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4059 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4060 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4061 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4062 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4064 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4065 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4066 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4067 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4069 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4070 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4071 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4072 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4074 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4075 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4076 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4077 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4079 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4080 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4081 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4082 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4084 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4085 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4086 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4087 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4089 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4090 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4091 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4092 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4094 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4095 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4096 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4097 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4099 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4100 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4101 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4102 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4104 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4105 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4106 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4107 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4109 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4110 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4111 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4112 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4114 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4115 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4116 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4117 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4119 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4120 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4121 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4122 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4124 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4125 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4126 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4127 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4129 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4130 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4131 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4132 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4134 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4135 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4136 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4137 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4139 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4140 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4141 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4142 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4144 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4145 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4146 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4147 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4149 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4150 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4151 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4152 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4154 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4155 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4156 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4157 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4159 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4160 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4161 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4162 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4164 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4165 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4166 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4167 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4169 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4170 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4171 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4172 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4174 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4175 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4176 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4177 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4179 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4180 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4181 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4182 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4184 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4185 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4186 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4187 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4189 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4190 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4191 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4192 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4194 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4195 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4196 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4197 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4199 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4200 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4201 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4202 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4204 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4205 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4206 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4207 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4209 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4210 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4211 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4212 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4214 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4215 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4216 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4217 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4219 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4220 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4221 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4222 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4224 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4225 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4226 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4227 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4229 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4230 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4231 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4232 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4234 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4235 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4236 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4237 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4239 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4240 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4241 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4242 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4244 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4245 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4246 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4247 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4249 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4250 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4251 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4252 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4254 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4255 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4256 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4257 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4259 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4260 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4261 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4262 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4264 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4265 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4266 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4267 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4269 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4270 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4271 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4272 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4274 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4275 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4276 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4277 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4279 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4280 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4281 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4282 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4284 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4285 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4286 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4287 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4289 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4290 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4291 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4292 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4294 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4295 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4296 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4297 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4299 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4300 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4301 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4302 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4304 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4305 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4306 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4307 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4309 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4310 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4311 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4312 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4314 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4315 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4316 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4317 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4319 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4320 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4321 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4322 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4324 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4325 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4326 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4327 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4329 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4330 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4331 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4332 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4334 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4335 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4336 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4337 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4339 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4340 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4341 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4342 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4344 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4345 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4346 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4347 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4349 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4350 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4351 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4352 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4354 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4355 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4356 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4357 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4359 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4360 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4361 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4362 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4364 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4365 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4366 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4367 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4369 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4370 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4371 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4372 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4374 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4375 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4376 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4377 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4379 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4380 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4381 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4382 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4384 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4385 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4386 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4387 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4389 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4390 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4391 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4392 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4394 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4395 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4396 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4397 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4399 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4400 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4401 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4402 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4404 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4405 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4406 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4407 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4409 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4410 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4411 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4412 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4414 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4415 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4416 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4417 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4419 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4420 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4421 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4422 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4424 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4425 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4426 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4427 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4429 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4430 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4431 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4432 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4434 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4435 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4436 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4437 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4439 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4440 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4441 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4442 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4444 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4445 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4446 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4447 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4449 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4450 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4451 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4452 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4454 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4455 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4456 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4457 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4459 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4460 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4461 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4462 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4464 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4465 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4466 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4467 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4469 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4470 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4471 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4472 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4474 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4475 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4476 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4477 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4479 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4480 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4481 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4482 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4484 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4485 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4486 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4487 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4489 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4490 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4491 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4492 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4494 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4495 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4496 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4497 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4499 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4500 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4501 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4502 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4504 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4505 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4506 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4507 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4509 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4510 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4511 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4512 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4514 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4515 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4516 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4517 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4519 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4520 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4521 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4522 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4524 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4525 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4526 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4527 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4529 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4530 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4531 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4532 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4534 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4535 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4536 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4537 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4539 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4540 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4541 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4542 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4544 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4545 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4546 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4547 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4549 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4550 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4551 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4552 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4554 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4555 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4556 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4557 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4559 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4560 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4561 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4562 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4564 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4565 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4566 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4567 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4569 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4570 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4571 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4572 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4574 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4575 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4576 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4577 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4579 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4580 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4581 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4582 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4584 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4585 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4586 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4587 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4589 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4590 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4591 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4592 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4594 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4595 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4596 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4597 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4599 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4600 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4601 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4602 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4604 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4605 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4606 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4607 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4609 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4610 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4611 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4612 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4614 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4615 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4616 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4617 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4619 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4620 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4621 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4622 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4624 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4625 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4626 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4627 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4629 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4630 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4631 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4632 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4634 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4635 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4636 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4637 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4639 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4640 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4641 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4642 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4644 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4645 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4646 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4647 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4649 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4650 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4651 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4652 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4654 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4655 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4656 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4657 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4659 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4660 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4661 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4662 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4664 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4665 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4666 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4667 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4669 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4670 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4671 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4672 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4675 static struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4677 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4678 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4679 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4680 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4682 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4683 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4684 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4685 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4687 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4688 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4689 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4690 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4692 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4693 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4694 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4695 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4697 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4698 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4699 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4700 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4702 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4703 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4704 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4705 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4707 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4708 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4709 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4710 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4712 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4713 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4714 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4715 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4717 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4718 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4719 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4720 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4722 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4723 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4724 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4725 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4727 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4728 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4729 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4730 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4732 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4733 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4734 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4735 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4737 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4738 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4739 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4740 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4742 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4743 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4744 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4745 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4747 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4748 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4749 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4750 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4752 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4753 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4754 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4755 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4757 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4758 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4759 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4760 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4762 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4763 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4764 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4765 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4767 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4768 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4769 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4770 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4772 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4773 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4774 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4775 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4777 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4778 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4779 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4780 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4782 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4783 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4784 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4785 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4787 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4788 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4789 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4790 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4792 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4793 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4794 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4795 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4797 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4798 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4799 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4800 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4802 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4803 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4804 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4805 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4807 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4808 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4809 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4810 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4812 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4813 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4814 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4815 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4817 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4818 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4819 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4820 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4822 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4823 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4824 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4825 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4827 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4828 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4829 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4830 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4832 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4833 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4834 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4835 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4837 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4838 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4839 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4840 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4842 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4843 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4844 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4845 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4847 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4848 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4849 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4850 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4852 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4853 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4854 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4855 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4857 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4858 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4859 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4860 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4862 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4863 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4864 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4865 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4867 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4868 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4869 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4870 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4872 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4873 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4874 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4875 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4877 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4878 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4879 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4880 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4882 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4883 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4884 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4885 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4887 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4888 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4889 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4890 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4892 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4893 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4894 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4895 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4897 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4898 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4899 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4900 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4902 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4903 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4904 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4905 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4907 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4908 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4909 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4910 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4912 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4913 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4914 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4915 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4917 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4918 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4919 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4920 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4922 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4923 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4924 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4925 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4927 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4928 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4929 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4930 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4932 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4933 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4934 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4935 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4937 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4938 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4939 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4940 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4942 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4943 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4944 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4945 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4947 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4948 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4949 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4950 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4952 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4953 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4954 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4955 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4957 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4958 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4959 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4960 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4962 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4963 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4964 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4965 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4967 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4968 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4969 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4970 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4972 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4973 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4974 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4975 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4977 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4978 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4979 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4980 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4982 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4983 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4984 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4985 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4987 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4988 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4989 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4990 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4992 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4993 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4994 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4995 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4997 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4998 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4999 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5000 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5002 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5003 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5004 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5005 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5007 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5008 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5009 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5010 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5012 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5013 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5014 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5015 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5017 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5018 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5019 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5020 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5022 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5023 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5024 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5025 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5027 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5028 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5029 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5030 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5032 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5033 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5034 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5035 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5037 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5038 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5039 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5040 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5042 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5043 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5044 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5045 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5047 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5048 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5049 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5050 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5052 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5053 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5054 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5055 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5057 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5058 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5059 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5060 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5062 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5063 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5064 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5065 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5067 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5068 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5069 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5070 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5072 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5073 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5074 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5075 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5077 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5078 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5079 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5080 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5082 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5083 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5084 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5085 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5087 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5088 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5089 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5090 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5092 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5093 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5094 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5095 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5097 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5098 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5099 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5100 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5102 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5103 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5104 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5105 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5107 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5108 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5109 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5110 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5112 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5113 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5114 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5115 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5117 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5118 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5119 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5120 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5122 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5123 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5124 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5125 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5127 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5128 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5129 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5130 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5132 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5133 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5134 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5135 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5137 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5138 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5139 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5140 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5142 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5143 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5144 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5145 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5147 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5148 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5149 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5150 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5152 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5153 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5154 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5155 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5157 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5158 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5159 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5160 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5162 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5163 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5164 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5165 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5167 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5168 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5169 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5170 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5172 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5173 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5174 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5175 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5177 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5178 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5179 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5180 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5182 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5183 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5184 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5185 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5187 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5188 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5189 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5190 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5192 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5193 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5194 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5195 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5197 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5198 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5199 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5200 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5202 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5203 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5204 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5205 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5207 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5208 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5209 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5210 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5212 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5213 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5214 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5215 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5217 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5218 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5219 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5220 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5222 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5223 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5224 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5225 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5227 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5228 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5229 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5230 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5232 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5233 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5234 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5235 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5237 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5238 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5239 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5240 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5242 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5243 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5244 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5245 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5247 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5248 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5249 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5250 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5252 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5253 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5254 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5255 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5257 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5258 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5259 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5260 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5262 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5263 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5264 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5265 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5267 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5268 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5269 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5270 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5272 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5273 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5274 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5275 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5277 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5278 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5279 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5280 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5282 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5283 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5284 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5285 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5287 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5288 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5289 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5290 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5292 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5293 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5294 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5295 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5298 static struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5300 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5301 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5302 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5303 0x0215,
5304 0x0216,
5307 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5308 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5309 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5310 0x0214,
5311 0x0215,
5314 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5315 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5316 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5317 0x0213,
5318 0x0214,
5321 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5322 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5323 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5324 0x0212,
5325 0x0213,
5328 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5329 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5330 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5331 0x0211,
5332 0x0212,
5335 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5336 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5337 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5338 0x020f,
5339 0x0211,
5342 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5343 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5344 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5345 0x020e,
5346 0x020f,
5349 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5350 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5351 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5352 0x020d,
5353 0x020e,
5356 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5357 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5358 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5359 0x020c,
5360 0x020d,
5363 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5364 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5365 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5366 0x020b,
5367 0x020c,
5370 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5371 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5372 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5373 0x020a,
5374 0x020b,
5377 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5378 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5379 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5380 0x0209,
5381 0x020a,
5384 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5385 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5386 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5387 0x0208,
5388 0x0209,
5391 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5392 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5393 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5394 0x0207,
5395 0x0208,
5398 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5399 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5400 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5401 0x0206,
5402 0x0207,
5405 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5406 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5407 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5408 0x0205,
5409 0x0206,
5412 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5413 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5414 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5415 0x0204,
5416 0x0205,
5419 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5420 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5421 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5422 0x0203,
5423 0x0204,
5426 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5427 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5428 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5429 0x0202,
5430 0x0203,
5433 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5434 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5435 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5436 0x0201,
5437 0x0202,
5440 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5441 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5442 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5443 0x0200,
5444 0x0201,
5447 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5448 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5449 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5450 0x01ff,
5451 0x0200,
5454 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5455 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5456 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5457 0x01fe,
5458 0x01ff,
5461 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5462 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5463 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5464 0x01fc,
5465 0x01fd,
5468 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5469 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5470 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5471 0x01fb,
5472 0x01fc,
5475 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5476 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5477 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5478 0x01fa,
5479 0x01fb,
5482 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5483 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5484 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5485 0x01f9,
5486 0x01fa,
5489 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5490 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5491 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5492 0x01f8,
5493 0x01f9,
5496 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5497 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5498 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5499 0x01f7,
5500 0x01f8,
5503 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5504 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5505 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5506 0x01f6,
5507 0x01f7,
5510 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5511 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5512 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5513 0x01f5,
5514 0x01f6,
5517 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5518 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5519 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5520 0x01f4,
5521 0x01f5,
5524 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5525 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5526 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5527 0x01f3,
5528 0x01f4,
5531 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5532 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5533 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5534 0x01f2,
5535 0x01f3,
5538 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5539 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5540 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5541 0x01f1,
5542 0x01f2,
5545 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5546 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5547 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5548 0x01f0,
5549 0x01f1,
5552 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5553 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5554 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5555 0x01f0,
5556 0x01f0,
5559 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5560 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5561 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5562 0x01ef,
5563 0x01f0,
5566 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5567 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5568 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5569 0x01ee,
5570 0x01ef,
5573 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5574 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5575 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5576 0x01ed,
5577 0x01ee,
5580 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5581 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5582 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5583 0x01ec,
5584 0x01ed,
5587 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5588 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5589 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5590 0x01eb,
5591 0x01ec,
5594 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5595 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5596 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5597 0x01ea,
5598 0x01eb,
5601 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5602 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5603 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5604 0x01e9,
5605 0x01ea,
5608 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5609 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5610 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5611 0x01e8,
5612 0x01e9,
5615 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5616 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5617 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5618 0x01e7,
5619 0x01e8,
5622 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5623 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5624 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5625 0x01e6,
5626 0x01e7,
5629 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5630 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5631 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5632 0x01e5,
5633 0x01e6,
5636 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5637 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5638 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5639 0x01e5,
5640 0x01e5,
5643 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5644 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5645 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5646 0x01e4,
5647 0x01e5,
5650 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5651 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5652 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5653 0x01e3,
5654 0x01e4,
5657 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5658 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5659 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5660 0x01e2,
5661 0x01e3,
5664 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5665 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5666 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5667 0x01e1,
5668 0x01e2,
5671 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5672 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5673 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5674 0x01e0,
5675 0x01e1,
5678 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5679 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5680 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5681 0x01df,
5682 0x01e0,
5685 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5686 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5687 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5688 0x01de,
5689 0x01df,
5692 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5693 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5694 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5695 0x01dd,
5696 0x01de,
5699 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5700 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5701 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5702 0x01dd,
5703 0x01dd,
5706 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5707 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5708 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5709 0x01dc,
5710 0x01dd,
5713 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5714 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5715 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5716 0x01db,
5717 0x01dc,
5720 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5721 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5722 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5723 0x01da,
5724 0x01db,
5727 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5728 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5729 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5730 0x01d9,
5731 0x01da,
5734 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5735 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5736 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5737 0x01d8,
5738 0x01d9,
5741 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5742 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5743 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5744 0x01d7,
5745 0x01d8,
5748 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5749 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5750 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5751 0x01d7,
5752 0x01d7,
5755 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5756 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5757 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5758 0x01d6,
5759 0x01d7,
5762 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5763 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5764 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5765 0x01d5,
5766 0x01d6,
5769 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5770 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5771 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5772 0x01d4,
5773 0x01d5,
5776 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5777 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5778 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5779 0x01d3,
5780 0x01d4,
5783 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5784 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5785 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5786 0x01d2,
5787 0x01d3,
5790 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5791 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5792 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5793 0x01d2,
5794 0x01d2,
5797 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5798 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5799 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5800 0x01d1,
5801 0x01d2,
5804 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5805 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5806 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5807 0x01d0,
5808 0x01d1,
5811 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5812 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5813 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5814 0x01cf,
5815 0x01d0,
5818 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5819 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5820 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5821 0x01ce,
5822 0x01cf,
5825 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5826 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5827 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5828 0x01ce,
5829 0x01ce,
5832 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5833 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5834 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5835 0x01cd,
5836 0x01ce,
5839 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5840 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5841 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5842 0x01cc,
5843 0x01cd,
5846 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5847 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5848 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5849 0x01cb,
5850 0x01cc,
5853 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5854 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5855 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5856 0x01ca,
5857 0x01cb,
5860 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5861 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5862 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5863 0x01ca,
5864 0x01cb,
5867 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5868 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5869 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5870 0x01c9,
5871 0x01ca,
5874 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5875 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5876 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5877 0x01c9,
5878 0x01ca,
5881 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5882 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5883 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5884 0x01c9,
5885 0x01c9,
5888 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5889 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5890 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5891 0x01c8,
5892 0x01c9,
5895 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5896 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5897 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5898 0x01c8,
5899 0x01c9,
5902 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5903 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5904 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5905 0x01c8,
5906 0x01c8,
5909 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5910 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5911 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5912 0x01c7,
5913 0x01c8,
5916 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5917 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5918 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5919 0x01c7,
5920 0x01c8,
5923 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5924 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5925 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5926 0x01c6,
5927 0x01c7,
5930 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5931 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5932 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5933 0x01c6,
5934 0x01c7,
5937 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5938 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5939 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5940 0x01c6,
5941 0x01c6,
5944 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5945 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5946 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5947 0x01c5,
5948 0x01c6,
5951 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5952 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5953 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5954 0x01c5,
5955 0x01c6,
5958 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5959 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5960 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5961 0x01c4,
5962 0x01c5,
5965 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5966 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5967 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5968 0x01c4,
5969 0x01c5,
5972 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5973 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5974 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5975 0x01c4,
5976 0x01c4,
5979 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5980 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5981 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5982 0x01c3,
5983 0x01c4,
5986 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5987 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5988 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5989 0x01c3,
5990 0x01c4,
5993 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5994 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5995 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5996 0x01c2,
5997 0x01c3,
6000 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6001 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6002 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6003 0x01c2,
6004 0x01c3,
6007 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6008 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6009 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6010 0x01c2,
6011 0x01c2,
6014 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6015 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6016 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6017 0x01c1,
6018 0x01c2,
6021 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6022 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6023 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6024 0x01c0,
6025 0x01c1,
6028 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6029 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6030 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6031 0x01bf,
6032 0x01c0,
6035 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6036 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6037 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6038 0x01bf,
6039 0x01bf,
6042 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6043 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6044 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6045 0x01be,
6046 0x01bf,
6049 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6050 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6051 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6052 0x01bd,
6053 0x01be,
6056 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6057 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6058 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6059 0x01bc,
6060 0x01bd,
6063 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6064 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6065 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6066 0x043f,
6067 0x0443,
6070 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6071 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6072 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6073 0x043d,
6074 0x0441,
6077 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6078 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6079 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6080 0x043a,
6081 0x043f,
6084 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6085 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6086 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6087 0x0438,
6088 0x043d,
6091 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6092 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6093 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6094 0x0436,
6095 0x043a,
6098 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6099 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6100 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6101 0x0434,
6102 0x0438,
6105 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6106 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6107 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6108 0x0431,
6109 0x0436,
6112 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6113 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6114 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6115 0x042f,
6116 0x0434,
6119 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6120 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6121 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6122 0x042d,
6123 0x0431,
6126 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6127 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6128 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6129 0x042b,
6130 0x042f,
6133 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6134 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6135 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6136 0x0429,
6137 0x042d,
6140 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6141 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6142 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6143 0x0427,
6144 0x042b,
6147 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6148 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6149 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6150 0x0424,
6151 0x0429,
6154 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6155 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6156 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6157 0x041f,
6158 0x0424}
6161 static struct chan_info_nphy_radio2057_rev5 chan_info_nphyrev8_2057_rev5[] = {
6163 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6164 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6165 0x043a, 0x043f, 0x0443},
6167 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6168 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6169 0x0438, 0x043d, 0x0441},
6171 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6172 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6173 0x0436, 0x043a, 0x043f},
6175 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6176 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6177 0x0434, 0x0438, 0x043d},
6179 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6180 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6181 0x0431, 0x0436, 0x043a},
6183 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6184 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6185 0x042f, 0x0434, 0x0438},
6187 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6188 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6189 0x042d, 0x0431, 0x0436},
6191 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6192 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6193 0x042b, 0x042f, 0x0434},
6195 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6196 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6197 0x0429, 0x042d, 0x0431},
6199 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6200 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6201 0x0427, 0x042b, 0x042f},
6203 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6204 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6205 0x0424, 0x0429, 0x042d},
6207 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6208 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6209 0x0422, 0x0427, 0x042b},
6211 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6212 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6213 0x0420, 0x0424, 0x0429},
6215 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6216 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6217 0x041b, 0x041f, 0x0424}
6220 static struct chan_info_nphy_radio2057_rev5 chan_info_nphyrev9_2057_rev5v1[] = {
6222 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6223 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6224 0x043a, 0x043f, 0x0443},
6226 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6227 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6228 0x0438, 0x043d, 0x0441},
6230 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6231 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6232 0x0436, 0x043a, 0x043f},
6234 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6235 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6236 0x0434, 0x0438, 0x043d},
6238 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6239 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6240 0x0431, 0x0436, 0x043a},
6242 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6243 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6244 0x042f, 0x0434, 0x0438},
6246 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6247 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6248 0x042d, 0x0431, 0x0436},
6250 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6251 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6252 0x042b, 0x042f, 0x0434},
6254 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6255 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6256 0x0429, 0x042d, 0x0431},
6258 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6259 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6260 0x0427, 0x042b, 0x042f},
6262 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6263 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6264 0x0424, 0x0429, 0x042d},
6266 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6267 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6268 0x0422, 0x0427, 0x042b},
6270 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6271 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6272 0x0420, 0x0424, 0x0429},
6274 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6275 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6276 0x041b, 0x041f, 0x0424}
6279 static struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6281 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6282 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6283 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6284 0x0215,
6285 0x0216},
6287 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6288 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6289 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6290 0x0214,
6291 0x0215},
6293 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6294 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6295 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6296 0x0213,
6297 0x0214},
6299 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6300 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6301 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6302 0x0212,
6303 0x0213},
6305 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6306 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6307 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6308 0x0211,
6309 0x0212},
6311 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6312 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6313 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6314 0x020f,
6315 0x0211},
6317 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6318 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6319 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6320 0x020e,
6321 0x020f},
6323 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6324 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6325 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6326 0x020d,
6327 0x020e},
6329 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6330 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6331 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6332 0x020c,
6333 0x020d},
6335 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6336 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6337 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6338 0x020b,
6339 0x020c},
6341 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6342 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6343 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6344 0x020a,
6345 0x020b},
6347 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6348 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6349 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6350 0x0209,
6351 0x020a},
6353 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6354 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6355 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6356 0x0208,
6357 0x0209},
6359 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6360 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6361 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6362 0x0207,
6363 0x0208},
6365 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6366 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6367 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6368 0x0206,
6369 0x0207},
6371 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6372 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6373 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6374 0x0205,
6375 0x0206},
6377 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6378 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6379 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6380 0x0204,
6381 0x0205},
6383 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6384 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6385 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6386 0x0203,
6387 0x0204},
6389 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6390 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6391 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6392 0x0202,
6393 0x0203},
6395 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6396 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6397 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6398 0x0201,
6399 0x0202},
6401 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6402 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6403 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6404 0x0200,
6405 0x0201},
6407 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6408 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6409 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6410 0x01ff,
6411 0x0200},
6413 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6414 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6415 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6416 0x01fe,
6417 0x01ff},
6419 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6420 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6421 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6422 0x01fc,
6423 0x01fd},
6425 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6426 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6427 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6428 0x01fb,
6429 0x01fc},
6431 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6432 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6433 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6434 0x01fa,
6435 0x01fb},
6437 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6438 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6439 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6440 0x01f9,
6441 0x01fa},
6443 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6444 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6445 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6446 0x01f8,
6447 0x01f9},
6449 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6450 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6451 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6452 0x01f7,
6453 0x01f8},
6455 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6456 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6457 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6458 0x01f6,
6459 0x01f7},
6461 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6462 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6463 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6464 0x01f5,
6465 0x01f6},
6467 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6468 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6469 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6470 0x01f4,
6471 0x01f5},
6473 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6474 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6475 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6476 0x01f3,
6477 0x01f4},
6479 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6480 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6481 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6482 0x01f2,
6483 0x01f3},
6485 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6486 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6487 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6488 0x01f1,
6489 0x01f2},
6491 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6492 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6493 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6494 0x01f0,
6495 0x01f1},
6497 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6498 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6499 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6500 0x01f0,
6501 0x01f0},
6503 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6504 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6505 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6506 0x01ef,
6507 0x01f0},
6509 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6510 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6511 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6512 0x01ee,
6513 0x01ef},
6515 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6516 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6517 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6518 0x01ed,
6519 0x01ee},
6521 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6522 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6523 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6524 0x01ec,
6525 0x01ed},
6527 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6528 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6529 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6530 0x01eb,
6531 0x01ec},
6533 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6534 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6535 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6536 0x01ea,
6537 0x01eb},
6539 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6540 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6541 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6542 0x01e9,
6543 0x01ea},
6545 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6546 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6547 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6548 0x01e8,
6549 0x01e9},
6551 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6552 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6553 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6554 0x01e7,
6555 0x01e8},
6557 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6558 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6559 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6560 0x01e6,
6561 0x01e7},
6563 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6564 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6565 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6566 0x01e5,
6567 0x01e6},
6569 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6570 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6571 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6572 0x01e5,
6573 0x01e5},
6575 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6576 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6577 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6578 0x01e4,
6579 0x01e5},
6581 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6582 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6583 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6584 0x01e3,
6585 0x01e4},
6587 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6588 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6589 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6590 0x01e2,
6591 0x01e3},
6593 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6594 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6595 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6596 0x01e1,
6597 0x01e2},
6599 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6600 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6601 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6602 0x01e0,
6603 0x01e1},
6605 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6606 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6607 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6608 0x01df,
6609 0x01e0},
6611 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6612 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6613 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6614 0x01de,
6615 0x01df},
6617 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6618 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6619 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6620 0x01dd,
6621 0x01de},
6623 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6624 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6625 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6626 0x01dd,
6627 0x01dd},
6629 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6630 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6631 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6632 0x01dc,
6633 0x01dd},
6635 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6636 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6637 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6638 0x01db,
6639 0x01dc},
6641 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6642 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6643 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6644 0x01da,
6645 0x01db},
6647 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6648 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6649 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6650 0x01d9,
6651 0x01da},
6653 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6654 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6655 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6656 0x01d8,
6657 0x01d9},
6659 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6660 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6661 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6662 0x01d7,
6663 0x01d8},
6665 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6666 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6667 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6668 0x01d7,
6669 0x01d7},
6671 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6672 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6673 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6674 0x01d6,
6675 0x01d7},
6677 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6678 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6679 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6680 0x01d5,
6681 0x01d6},
6683 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6684 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6685 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6686 0x01d4,
6687 0x01d5},
6689 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6690 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6691 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6692 0x01d3,
6693 0x01d4},
6695 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6696 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6697 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6698 0x01d2,
6699 0x01d3},
6701 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6702 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6703 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6704 0x01d2,
6705 0x01d2},
6707 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6708 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6709 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6710 0x01d1,
6711 0x01d2},
6713 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6714 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6715 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6716 0x01d0,
6717 0x01d1},
6719 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6720 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6721 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6722 0x01cf,
6723 0x01d0},
6725 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6726 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6727 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6728 0x01ce,
6729 0x01cf},
6731 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6732 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6733 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6734 0x01ce,
6735 0x01ce},
6737 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6738 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6739 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6740 0x01cd,
6741 0x01ce},
6743 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6744 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6745 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6746 0x01cc,
6747 0x01cd},
6749 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6750 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6751 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6752 0x01cb,
6753 0x01cc},
6755 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6756 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6757 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6758 0x01ca,
6759 0x01cb},
6761 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6762 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6763 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6764 0x01ca,
6765 0x01cb},
6767 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6768 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6769 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6770 0x01c9,
6771 0x01ca},
6773 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6774 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6775 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6776 0x01c9,
6777 0x01ca},
6779 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6780 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6781 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6782 0x01c9,
6783 0x01c9},
6785 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6786 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6787 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6788 0x01c8,
6789 0x01c9},
6791 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6792 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6793 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6794 0x01c8,
6795 0x01c9},
6797 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6798 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6799 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6800 0x01c8,
6801 0x01c8},
6803 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6804 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6805 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6806 0x01c7,
6807 0x01c8},
6809 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6810 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6811 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6812 0x01c7,
6813 0x01c8},
6815 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6816 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6817 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6818 0x01c6,
6819 0x01c7},
6821 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6822 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6823 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6824 0x01c6,
6825 0x01c7},
6827 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6828 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6829 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6830 0x01c6,
6831 0x01c6},
6833 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6834 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6835 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6836 0x01c5,
6837 0x01c6},
6839 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6840 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6841 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6842 0x01c5,
6843 0x01c6},
6845 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6846 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6847 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6848 0x01c4,
6849 0x01c5},
6851 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6852 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6853 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6854 0x01c4,
6855 0x01c5},
6857 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6858 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6859 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6860 0x01c4,
6861 0x01c4},
6863 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6864 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6865 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6866 0x01c3,
6867 0x01c4},
6869 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6870 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6871 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6872 0x01c3,
6873 0x01c4},
6875 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6876 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6877 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6878 0x01c2,
6879 0x01c3},
6881 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6882 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6883 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6884 0x01c2,
6885 0x01c3},
6887 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6888 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6889 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6890 0x01c2,
6891 0x01c2},
6893 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6894 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6895 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6896 0x01c1,
6897 0x01c2},
6899 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6900 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6901 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6902 0x01c0,
6903 0x01c1},
6905 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6906 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6907 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6908 0x01bf,
6909 0x01c0},
6911 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6912 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6913 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6914 0x01bf,
6915 0x01bf},
6917 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6918 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6919 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6920 0x01be,
6921 0x01bf},
6923 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6924 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6925 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6926 0x01bd,
6927 0x01be},
6929 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6930 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6931 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6932 0x01bc,
6933 0x01bd},
6935 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6936 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6937 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6938 0x043f,
6939 0x0443},
6941 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6942 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6943 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6944 0x043d,
6945 0x0441},
6947 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6948 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6949 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6950 0x043a,
6951 0x043f},
6953 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6954 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6955 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6956 0x0438,
6957 0x043d},
6959 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6960 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6961 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6962 0x0436,
6963 0x043a},
6965 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6966 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6967 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6968 0x0434,
6969 0x0438},
6971 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6972 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6973 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6974 0x0431,
6975 0x0436},
6977 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6978 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6979 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6980 0x042f,
6981 0x0434},
6983 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6984 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6985 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6986 0x042d,
6987 0x0431},
6989 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6990 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6991 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6992 0x042b,
6993 0x042f},
6995 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6996 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6997 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6998 0x0429,
6999 0x042d},
7001 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7002 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7003 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7004 0x0427,
7005 0x042b},
7007 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7008 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7009 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7010 0x0424,
7011 0x0429},
7013 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7014 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7015 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7016 0x041f,
7017 0x0424}
7020 static struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7022 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7023 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7024 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7025 0x0214,
7026 0x0215},
7028 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7029 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7030 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7031 0x0213,
7032 0x0214},
7034 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7035 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7036 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7037 0x0212,
7038 0x0213},
7040 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7041 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7042 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7043 0x0211,
7044 0x0212},
7046 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7047 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7048 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7049 0x020f,
7050 0x0211},
7052 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7053 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7054 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7055 0x020e,
7056 0x020f},
7058 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7059 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7060 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7061 0x020d,
7062 0x020e},
7064 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7065 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7066 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7067 0x020c,
7068 0x020d},
7070 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7071 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7072 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7073 0x020b,
7074 0x020c},
7076 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7077 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7078 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7079 0x020a,
7080 0x020b},
7082 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7083 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7084 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7085 0x0209,
7086 0x020a},
7088 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7089 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7090 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7091 0x0208,
7092 0x0209},
7094 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7095 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7096 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7097 0x0207,
7098 0x0208},
7100 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7101 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7102 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7103 0x0206,
7104 0x0207},
7106 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7107 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7108 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7109 0x0205,
7110 0x0206},
7112 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7113 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7114 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7115 0x0204,
7116 0x0205},
7118 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7119 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7120 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7121 0x0203,
7122 0x0204},
7124 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7125 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7126 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7127 0x0202,
7128 0x0203},
7130 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7131 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7132 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7133 0x0201,
7134 0x0202},
7136 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7137 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7138 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7139 0x0200,
7140 0x0201},
7142 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7143 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7144 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7145 0x01ff,
7146 0x0200},
7148 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7149 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7150 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7151 0x01fe,
7152 0x01ff},
7154 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7155 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7156 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7157 0x01fc,
7158 0x01fd},
7160 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7161 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7162 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7163 0x01fb,
7164 0x01fc},
7166 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7167 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7168 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7169 0x01fa,
7170 0x01fb},
7172 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7173 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7174 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7175 0x01f9,
7176 0x01fa},
7178 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7179 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7180 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7181 0x01f8,
7182 0x01f9},
7184 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7185 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7186 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7187 0x01f7,
7188 0x01f8},
7190 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7191 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7192 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7193 0x01f6,
7194 0x01f7},
7196 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7197 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7198 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7199 0x01f5,
7200 0x01f6},
7202 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7203 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7204 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7205 0x01f4,
7206 0x01f5},
7208 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7209 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7210 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7211 0x01f3,
7212 0x01f4},
7214 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7215 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7216 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7217 0x01f2,
7218 0x01f3},
7220 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7221 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7222 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7223 0x01f1,
7224 0x01f2},
7226 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7227 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7228 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7229 0x01f0,
7230 0x01f1},
7232 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7233 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7234 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7235 0x01f0,
7236 0x01f0},
7238 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7239 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7240 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7241 0x01ef,
7242 0x01f0},
7244 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7245 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7246 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7247 0x01ee,
7248 0x01ef},
7250 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7251 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7252 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7253 0x01ed,
7254 0x01ee},
7256 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7257 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7258 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7259 0x01ec,
7260 0x01ed},
7262 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7263 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7264 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7265 0x01eb,
7266 0x01ec},
7268 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7269 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7270 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7271 0x01ea,
7272 0x01eb},
7274 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7275 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7276 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7277 0x01e9,
7278 0x01ea},
7280 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7281 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7282 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7283 0x01e8,
7284 0x01e9},
7286 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7287 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7288 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7289 0x01e7,
7290 0x01e8},
7292 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7293 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7294 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7295 0x01e6,
7296 0x01e7},
7298 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7299 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7300 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7301 0x01e5,
7302 0x01e6},
7304 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7305 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7306 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7307 0x01e5,
7308 0x01e5},
7310 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7311 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7312 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7313 0x01e4,
7314 0x01e5},
7316 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7317 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7318 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7319 0x01e3,
7320 0x01e4},
7322 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7323 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7324 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7325 0x01e2,
7326 0x01e3},
7328 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7329 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7330 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7331 0x01e1,
7332 0x01e2},
7334 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7335 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7336 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7337 0x01e0,
7338 0x01e1},
7340 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7341 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7342 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7343 0x01df,
7344 0x01e0},
7346 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7347 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7348 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7349 0x01de,
7350 0x01df},
7352 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7353 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7354 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7355 0x01dd,
7356 0x01de},
7358 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7359 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7360 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7361 0x01dd,
7362 0x01dd},
7364 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7365 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7366 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7367 0x01dc,
7368 0x01dd},
7370 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7371 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7372 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7373 0x01db,
7374 0x01dc},
7376 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7377 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7378 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7379 0x01da,
7380 0x01db},
7382 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7383 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7384 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7385 0x01d9,
7386 0x01da},
7388 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7389 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7390 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7391 0x01d8,
7392 0x01d9},
7394 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7395 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7396 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7397 0x01d7,
7398 0x01d8},
7400 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7401 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7402 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7403 0x01d7,
7404 0x01d7},
7406 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7407 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7408 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7409 0x01d6,
7410 0x01d7},
7412 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7413 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7414 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7415 0x01d5,
7416 0x01d6},
7418 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7419 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7420 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7421 0x01d4,
7422 0x01d5},
7424 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7425 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7426 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7427 0x01d3,
7428 0x01d4},
7430 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7431 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7432 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7433 0x01d2,
7434 0x01d3},
7436 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7437 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7438 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7439 0x01d2,
7440 0x01d2},
7442 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7443 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7444 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7445 0x01d1,
7446 0x01d2},
7448 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7449 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7450 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7451 0x01d0,
7452 0x01d1},
7454 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7455 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7456 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7457 0x01cf,
7458 0x01d0},
7460 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7461 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7462 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7463 0x01ce,
7464 0x01cf},
7466 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7467 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7468 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7469 0x01ce,
7470 0x01ce},
7472 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7473 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7474 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7475 0x01cd,
7476 0x01ce},
7478 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7479 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7480 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7481 0x01cc,
7482 0x01cd},
7484 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7485 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7486 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7487 0x01cb,
7488 0x01cc},
7490 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7491 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7492 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7493 0x01ca,
7494 0x01cb},
7496 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7497 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7498 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7499 0x01ca,
7500 0x01cb},
7502 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7503 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7504 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7505 0x01c9,
7506 0x01ca},
7508 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7509 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7510 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7511 0x01c9,
7512 0x01ca},
7514 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7515 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7516 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7517 0x01c9,
7518 0x01c9},
7520 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7521 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7522 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7523 0x01c8,
7524 0x01c9},
7526 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7527 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7528 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7529 0x01c8,
7530 0x01c9},
7532 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7533 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7534 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7535 0x01c8,
7536 0x01c8},
7538 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7539 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7540 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7541 0x01c7,
7542 0x01c8},
7544 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7545 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7546 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7547 0x01c7,
7548 0x01c8},
7550 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7551 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7552 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7553 0x01c6,
7554 0x01c7},
7556 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7557 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7558 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7559 0x01c6,
7560 0x01c7},
7562 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7563 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7564 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7565 0x01c6,
7566 0x01c6},
7568 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7569 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7570 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7571 0x01c5,
7572 0x01c6},
7574 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7575 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7576 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7577 0x01c5,
7578 0x01c6},
7580 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7581 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7582 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7583 0x01c4,
7584 0x01c5},
7586 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7587 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7588 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7589 0x01c4,
7590 0x01c5},
7592 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7593 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7594 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7595 0x01c4,
7596 0x01c4},
7598 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7599 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7600 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7601 0x01c3,
7602 0x01c4},
7604 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7605 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7606 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7607 0x01c3,
7608 0x01c4},
7610 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7611 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7612 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7613 0x01c2,
7614 0x01c3},
7616 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7617 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7618 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7619 0x01c2,
7620 0x01c3},
7622 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7623 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7624 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7625 0x01c2,
7626 0x01c2},
7628 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7629 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7630 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7631 0x01c1,
7632 0x01c2},
7634 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7635 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7636 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7637 0x01c0,
7638 0x01c1},
7640 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7641 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7642 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7643 0x01bf,
7644 0x01c0},
7646 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7647 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7648 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7649 0x01bf,
7650 0x01bf},
7652 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7653 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7654 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7655 0x01be,
7656 0x01bf},
7658 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7659 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7660 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7661 0x01bd,
7662 0x01be},
7664 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7665 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7666 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7667 0x01bc,
7668 0x01bd},
7670 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7671 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7672 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7673 0x043f,
7674 0x0443},
7676 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7677 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7678 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7679 0x043d,
7680 0x0441},
7682 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7683 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7684 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7685 0x043a,
7686 0x043f},
7688 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7689 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7690 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7691 0x0438,
7692 0x043d},
7694 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7695 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7696 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7697 0x0436,
7698 0x043a},
7700 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7701 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7702 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7703 0x0434,
7704 0x0438},
7706 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7707 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7708 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7709 0x0431,
7710 0x0436},
7712 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7713 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7714 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7715 0x042f,
7716 0x0434},
7718 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7719 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7720 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7721 0x042d,
7722 0x0431},
7724 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7725 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7726 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7727 0x042b,
7728 0x042f},
7730 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7731 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7732 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7733 0x0429,
7734 0x042d},
7736 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7737 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7738 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7739 0x0427,
7740 0x042b},
7742 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7743 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7744 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7745 0x0424,
7746 0x0429},
7748 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7749 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7750 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7751 0x041f,
7752 0x0424}
7755 struct radio_regs regs_2055[] = {
7756 {0x02, 0x80, 0x80, 0, 0},
7757 {0x03, 0, 0, 0, 0},
7758 {0x04, 0x27, 0x27, 0, 0},
7759 {0x05, 0, 0, 0, 0},
7760 {0x06, 0x27, 0x27, 0, 0},
7761 {0x07, 0x7f, 0x7f, 1, 1},
7762 {0x08, 0x7, 0x7, 1, 1},
7763 {0x09, 0x7f, 0x7f, 1, 1},
7764 {0x0A, 0x7, 0x7, 1, 1},
7765 {0x0B, 0x15, 0x15, 0, 0},
7766 {0x0C, 0x15, 0x15, 0, 0},
7767 {0x0D, 0x4f, 0x4f, 1, 1},
7768 {0x0E, 0x5, 0x5, 1, 1},
7769 {0x0F, 0x4f, 0x4f, 1, 1},
7770 {0x10, 0x5, 0x5, 1, 1},
7771 {0x11, 0xd0, 0xd0, 0, 0},
7772 {0x12, 0x2, 0x2, 0, 0},
7773 {0x13, 0, 0, 0, 0},
7774 {0x14, 0x40, 0x40, 0, 0},
7775 {0x15, 0, 0, 0, 0},
7776 {0x16, 0, 0, 0, 0},
7777 {0x17, 0, 0, 0, 0},
7778 {0x18, 0, 0, 0, 0},
7779 {0x19, 0, 0, 0, 0},
7780 {0x1A, 0, 0, 0, 0},
7781 {0x1B, 0, 0, 0, 0},
7782 {0x1C, 0, 0, 0, 0},
7783 {0x1D, 0xc0, 0xc0, 0, 0},
7784 {0x1E, 0xff, 0xff, 0, 0},
7785 {0x1F, 0xc0, 0xc0, 0, 0},
7786 {0x20, 0xff, 0xff, 0, 0},
7787 {0x21, 0xc0, 0xc0, 0, 0},
7788 {0x22, 0, 0, 0, 0},
7789 {0x23, 0x2c, 0x2c, 0, 0},
7790 {0x24, 0, 0, 0, 0},
7791 {0x25, 0, 0, 0, 0},
7792 {0x26, 0, 0, 0, 0},
7793 {0x27, 0, 0, 0, 0},
7794 {0x28, 0, 0, 0, 0},
7795 {0x29, 0, 0, 0, 0},
7796 {0x2A, 0, 0, 0, 0},
7797 {0x2B, 0, 0, 0, 0},
7798 {0x2C, 0, 0, 0, 0},
7799 {0x2D, 0xa4, 0xa4, 0, 0},
7800 {0x2E, 0x38, 0x38, 0, 0},
7801 {0x2F, 0, 0, 0, 0},
7802 {0x30, 0x4, 0x4, 1, 1},
7803 {0x31, 0, 0, 0, 0},
7804 {0x32, 0xa, 0xa, 0, 0},
7805 {0x33, 0x87, 0x87, 0, 0},
7806 {0x34, 0x9, 0x9, 0, 0},
7807 {0x35, 0x70, 0x70, 0, 0},
7808 {0x36, 0x11, 0x11, 0, 0},
7809 {0x37, 0x18, 0x18, 1, 1},
7810 {0x38, 0x6, 0x6, 0, 0},
7811 {0x39, 0x4, 0x4, 1, 1},
7812 {0x3A, 0x6, 0x6, 0, 0},
7813 {0x3B, 0x9e, 0x9e, 0, 0},
7814 {0x3C, 0x9, 0x9, 0, 0},
7815 {0x3D, 0xc8, 0xc8, 1, 1},
7816 {0x3E, 0x88, 0x88, 0, 0},
7817 {0x3F, 0, 0, 0, 0},
7818 {0x40, 0, 0, 0, 0},
7819 {0x41, 0, 0, 0, 0},
7820 {0x42, 0x1, 0x1, 0, 0},
7821 {0x43, 0x2, 0x2, 0, 0},
7822 {0x44, 0x96, 0x96, 0, 0},
7823 {0x45, 0x3e, 0x3e, 0, 0},
7824 {0x46, 0x3e, 0x3e, 0, 0},
7825 {0x47, 0x13, 0x13, 0, 0},
7826 {0x48, 0x2, 0x2, 0, 0},
7827 {0x49, 0x15, 0x15, 0, 0},
7828 {0x4A, 0x7, 0x7, 0, 0},
7829 {0x4B, 0, 0, 0, 0},
7830 {0x4C, 0, 0, 0, 0},
7831 {0x4D, 0, 0, 0, 0},
7832 {0x4E, 0, 0, 0, 0},
7833 {0x4F, 0, 0, 0, 0},
7834 {0x50, 0x8, 0x8, 0, 0},
7835 {0x51, 0x8, 0x8, 0, 0},
7836 {0x52, 0x6, 0x6, 0, 0},
7837 {0x53, 0x84, 0x84, 1, 1},
7838 {0x54, 0xc3, 0xc3, 0, 0},
7839 {0x55, 0x8f, 0x8f, 0, 0},
7840 {0x56, 0xff, 0xff, 0, 0},
7841 {0x57, 0xff, 0xff, 0, 0},
7842 {0x58, 0x88, 0x88, 0, 0},
7843 {0x59, 0x88, 0x88, 0, 0},
7844 {0x5A, 0, 0, 0, 0},
7845 {0x5B, 0xcc, 0xcc, 0, 0},
7846 {0x5C, 0x6, 0x6, 0, 0},
7847 {0x5D, 0x80, 0x80, 0, 0},
7848 {0x5E, 0x80, 0x80, 0, 0},
7849 {0x5F, 0xf8, 0xf8, 0, 0},
7850 {0x60, 0x88, 0x88, 0, 0},
7851 {0x61, 0x88, 0x88, 0, 0},
7852 {0x62, 0x88, 0x8, 1, 1},
7853 {0x63, 0x88, 0x88, 0, 0},
7854 {0x64, 0, 0, 0, 0},
7855 {0x65, 0x1, 0x1, 1, 1},
7856 {0x66, 0x8a, 0x8a, 0, 0},
7857 {0x67, 0x8, 0x8, 0, 0},
7858 {0x68, 0x83, 0x83, 0, 0},
7859 {0x69, 0x6, 0x6, 0, 0},
7860 {0x6A, 0xa0, 0xa0, 0, 0},
7861 {0x6B, 0xa, 0xa, 0, 0},
7862 {0x6C, 0x87, 0x87, 1, 1},
7863 {0x6D, 0x2a, 0x2a, 0, 0},
7864 {0x6E, 0x2a, 0x2a, 0, 0},
7865 {0x6F, 0x2a, 0x2a, 0, 0},
7866 {0x70, 0x2a, 0x2a, 0, 0},
7867 {0x71, 0x18, 0x18, 0, 0},
7868 {0x72, 0x6a, 0x6a, 1, 1},
7869 {0x73, 0xab, 0xab, 1, 1},
7870 {0x74, 0x13, 0x13, 1, 1},
7871 {0x75, 0xc1, 0xc1, 1, 1},
7872 {0x76, 0xaa, 0xaa, 1, 1},
7873 {0x77, 0x87, 0x87, 1, 1},
7874 {0x78, 0, 0, 0, 0},
7875 {0x79, 0x6, 0x6, 0, 0},
7876 {0x7A, 0x7, 0x7, 0, 0},
7877 {0x7B, 0x7, 0x7, 0, 0},
7878 {0x7C, 0x15, 0x15, 0, 0},
7879 {0x7D, 0x55, 0x55, 0, 0},
7880 {0x7E, 0x97, 0x97, 1, 1},
7881 {0x7F, 0x8, 0x8, 0, 0},
7882 {0x80, 0x14, 0x14, 1, 1},
7883 {0x81, 0x33, 0x33, 0, 0},
7884 {0x82, 0x88, 0x88, 0, 0},
7885 {0x83, 0x6, 0x6, 0, 0},
7886 {0x84, 0x3, 0x3, 1, 1},
7887 {0x85, 0xa, 0xa, 0, 0},
7888 {0x86, 0x3, 0x3, 1, 1},
7889 {0x87, 0x2a, 0x2a, 0, 0},
7890 {0x88, 0xa4, 0xa4, 0, 0},
7891 {0x89, 0x18, 0x18, 0, 0},
7892 {0x8A, 0x28, 0x28, 0, 0},
7893 {0x8B, 0, 0, 0, 0},
7894 {0x8C, 0x4a, 0x4a, 0, 0},
7895 {0x8D, 0, 0, 0, 0},
7896 {0x8E, 0xf8, 0xf8, 0, 0},
7897 {0x8F, 0x88, 0x88, 0, 0},
7898 {0x90, 0x88, 0x88, 0, 0},
7899 {0x91, 0x88, 0x8, 1, 1},
7900 {0x92, 0x88, 0x88, 0, 0},
7901 {0x93, 0, 0, 0, 0},
7902 {0x94, 0x1, 0x1, 1, 1},
7903 {0x95, 0x8a, 0x8a, 0, 0},
7904 {0x96, 0x8, 0x8, 0, 0},
7905 {0x97, 0x83, 0x83, 0, 0},
7906 {0x98, 0x6, 0x6, 0, 0},
7907 {0x99, 0xa0, 0xa0, 0, 0},
7908 {0x9A, 0xa, 0xa, 0, 0},
7909 {0x9B, 0x87, 0x87, 1, 1},
7910 {0x9C, 0x2a, 0x2a, 0, 0},
7911 {0x9D, 0x2a, 0x2a, 0, 0},
7912 {0x9E, 0x2a, 0x2a, 0, 0},
7913 {0x9F, 0x2a, 0x2a, 0, 0},
7914 {0xA0, 0x18, 0x18, 0, 0},
7915 {0xA1, 0x6a, 0x6a, 1, 1},
7916 {0xA2, 0xab, 0xab, 1, 1},
7917 {0xA3, 0x13, 0x13, 1, 1},
7918 {0xA4, 0xc1, 0xc1, 1, 1},
7919 {0xA5, 0xaa, 0xaa, 1, 1},
7920 {0xA6, 0x87, 0x87, 1, 1},
7921 {0xA7, 0, 0, 0, 0},
7922 {0xA8, 0x6, 0x6, 0, 0},
7923 {0xA9, 0x7, 0x7, 0, 0},
7924 {0xAA, 0x7, 0x7, 0, 0},
7925 {0xAB, 0x15, 0x15, 0, 0},
7926 {0xAC, 0x55, 0x55, 0, 0},
7927 {0xAD, 0x97, 0x97, 1, 1},
7928 {0xAE, 0x8, 0x8, 0, 0},
7929 {0xAF, 0x14, 0x14, 1, 1},
7930 {0xB0, 0x33, 0x33, 0, 0},
7931 {0xB1, 0x88, 0x88, 0, 0},
7932 {0xB2, 0x6, 0x6, 0, 0},
7933 {0xB3, 0x3, 0x3, 1, 1},
7934 {0xB4, 0xa, 0xa, 0, 0},
7935 {0xB5, 0x3, 0x3, 1, 1},
7936 {0xB6, 0x2a, 0x2a, 0, 0},
7937 {0xB7, 0xa4, 0xa4, 0, 0},
7938 {0xB8, 0x18, 0x18, 0, 0},
7939 {0xB9, 0x28, 0x28, 0, 0},
7940 {0xBA, 0, 0, 0, 0},
7941 {0xBB, 0x4a, 0x4a, 0, 0},
7942 {0xBC, 0, 0, 0, 0},
7943 {0xBD, 0x71, 0x71, 0, 0},
7944 {0xBE, 0x72, 0x72, 0, 0},
7945 {0xBF, 0x73, 0x73, 0, 0},
7946 {0xC0, 0x74, 0x74, 0, 0},
7947 {0xC1, 0x75, 0x75, 0, 0},
7948 {0xC2, 0x76, 0x76, 0, 0},
7949 {0xC3, 0x77, 0x77, 0, 0},
7950 {0xC4, 0x78, 0x78, 0, 0},
7951 {0xC5, 0x79, 0x79, 0, 0},
7952 {0xC6, 0x7a, 0x7a, 0, 0},
7953 {0xC7, 0, 0, 0, 0},
7954 {0xC8, 0, 0, 0, 0},
7955 {0xC9, 0, 0, 0, 0},
7956 {0xCA, 0, 0, 0, 0},
7957 {0xCB, 0, 0, 0, 0},
7958 {0xCC, 0, 0, 0, 0},
7959 {0xCD, 0, 0, 0, 0},
7960 {0xCE, 0x6, 0x6, 0, 0},
7961 {0xCF, 0, 0, 0, 0},
7962 {0xD0, 0, 0, 0, 0},
7963 {0xD1, 0x18, 0x18, 0, 0},
7964 {0xD2, 0x88, 0x88, 0, 0},
7965 {0xD3, 0, 0, 0, 0},
7966 {0xD4, 0, 0, 0, 0},
7967 {0xD5, 0, 0, 0, 0},
7968 {0xD6, 0, 0, 0, 0},
7969 {0xD7, 0, 0, 0, 0},
7970 {0xD8, 0, 0, 0, 0},
7971 {0xD9, 0, 0, 0, 0},
7972 {0xDA, 0x6, 0x6, 0, 0},
7973 {0xDB, 0, 0, 0, 0},
7974 {0xDC, 0, 0, 0, 0},
7975 {0xDD, 0x18, 0x18, 0, 0},
7976 {0xDE, 0x88, 0x88, 0, 0},
7977 {0xDF, 0, 0, 0, 0},
7978 {0xE0, 0, 0, 0, 0},
7979 {0xE1, 0, 0, 0, 0},
7980 {0xE2, 0, 0, 0, 0},
7981 {0xFFFF, 0, 0, 0, 0},
7984 struct radio_regs regs_SYN_2056[] = {
7985 {0x02, 0, 0, 0, 0},
7986 {0x03, 0, 0, 0, 0},
7987 {0x04, 0, 0, 0, 0},
7988 {0x05, 0, 0, 0, 0},
7989 {0x06, 0, 0, 0, 0},
7990 {0x07, 0, 0, 0, 0},
7991 {0x08, 0, 0, 0, 0},
7992 {0x09, 0x1, 0x1, 0, 0},
7993 {0x0A, 0, 0, 0, 0},
7994 {0x0B, 0, 0, 0, 0},
7995 {0x0C, 0, 0, 0, 0},
7996 {0x0D, 0, 0, 0, 0},
7997 {0x0E, 0, 0, 0, 0},
7998 {0x0F, 0, 0, 0, 0},
7999 {0x10, 0, 0, 0, 0},
8000 {0x11, 0, 0, 0, 0},
8001 {0x12, 0, 0, 0, 0},
8002 {0x13, 0, 0, 0, 0},
8003 {0x14, 0, 0, 0, 0},
8004 {0x15, 0, 0, 0, 0},
8005 {0x16, 0, 0, 0, 0},
8006 {0x17, 0, 0, 0, 0},
8007 {0x18, 0, 0, 0, 0},
8008 {0x19, 0, 0, 0, 0},
8009 {0x1A, 0, 0, 0, 0},
8010 {0x1B, 0, 0, 0, 0},
8011 {0x1C, 0, 0, 0, 0},
8012 {0x1D, 0, 0, 0, 0},
8013 {0x1E, 0, 0, 0, 0},
8014 {0x1F, 0, 0, 0, 0},
8015 {0x20, 0, 0, 0, 0},
8016 {0x21, 0, 0, 0, 0},
8017 {0x22, 0x60, 0x60, 0, 0},
8018 {0x23, 0x6, 0x6, 0, 0},
8019 {0x24, 0xc, 0xc, 0, 0},
8020 {0x25, 0, 0, 0, 0},
8021 {0x26, 0, 0, 0, 0},
8022 {0x27, 0, 0, 0, 0},
8023 {0x28, 0x1, 0x1, 0, 0},
8024 {0x29, 0, 0, 0, 0},
8025 {0x2A, 0, 0, 0, 0},
8026 {0x2B, 0, 0, 0, 0},
8027 {0x2C, 0, 0, 0, 0},
8028 {0x2D, 0, 0, 0, 0},
8029 {0x2E, 0xd, 0xd, 0, 0},
8030 {0x2F, 0x1f, 0x1f, 0, 0},
8031 {0x30, 0x15, 0x15, 0, 0},
8032 {0x31, 0xf, 0xf, 0, 0},
8033 {0x32, 0, 0, 0, 0},
8034 {0x33, 0, 0, 0, 0},
8035 {0x34, 0, 0, 0, 0},
8036 {0x35, 0, 0, 0, 0},
8037 {0x36, 0, 0, 0, 0},
8038 {0x37, 0, 0, 0, 0},
8039 {0x38, 0, 0, 0, 0},
8040 {0x39, 0, 0, 0, 0},
8041 {0x3A, 0, 0, 0, 0},
8042 {0x3B, 0, 0, 0, 0},
8043 {0x3C, 0x13, 0x13, 0, 0},
8044 {0x3D, 0xf, 0xf, 0, 0},
8045 {0x3E, 0x18, 0x18, 0, 0},
8046 {0x3F, 0, 0, 0, 0},
8047 {0x40, 0, 0, 0, 0},
8048 {0x41, 0x20, 0x20, 0, 0},
8049 {0x42, 0x20, 0x20, 0, 0},
8050 {0x43, 0, 0, 0, 0},
8051 {0x44, 0x77, 0x77, 0, 0},
8052 {0x45, 0x7, 0x7, 0, 0},
8053 {0x46, 0x1, 0x1, 0, 0},
8054 {0x47, 0x4, 0x4, 0, 0},
8055 {0x48, 0xf, 0xf, 0, 0},
8056 {0x49, 0x30, 0x30, 0, 0},
8057 {0x4A, 0x32, 0x32, 0, 0},
8058 {0x4B, 0xd, 0xd, 0, 0},
8059 {0x4C, 0xd, 0xd, 0, 0},
8060 {0x4D, 0x4, 0x4, 0, 0},
8061 {0x4E, 0x6, 0x6, 0, 0},
8062 {0x4F, 0x1, 0x1, 0, 0},
8063 {0x50, 0x1c, 0x1c, 0, 0},
8064 {0x51, 0x2, 0x2, 0, 0},
8065 {0x52, 0x2, 0x2, 0, 0},
8066 {0x53, 0xf7, 0xf7, 1, 1},
8067 {0x54, 0xb4, 0xb4, 0, 0},
8068 {0x55, 0xd2, 0xd2, 0, 0},
8069 {0x56, 0, 0, 0, 0},
8070 {0x57, 0, 0, 0, 0},
8071 {0x58, 0x4, 0x4, 0, 0},
8072 {0x59, 0x96, 0x96, 0, 0},
8073 {0x5A, 0x3e, 0x3e, 0, 0},
8074 {0x5B, 0x3e, 0x3e, 0, 0},
8075 {0x5C, 0x13, 0x13, 0, 0},
8076 {0x5D, 0x2, 0x2, 0, 0},
8077 {0x5E, 0, 0, 0, 0},
8078 {0x5F, 0x7, 0x7, 0, 0},
8079 {0x60, 0x7, 0x7, 1, 1},
8080 {0x61, 0x8, 0x8, 0, 0},
8081 {0x62, 0x3, 0x3, 0, 0},
8082 {0x63, 0, 0, 0, 0},
8083 {0x64, 0, 0, 0, 0},
8084 {0x65, 0, 0, 0, 0},
8085 {0x66, 0, 0, 0, 0},
8086 {0x67, 0, 0, 0, 0},
8087 {0x68, 0x40, 0x40, 0, 0},
8088 {0x69, 0, 0, 0, 0},
8089 {0x6A, 0, 0, 0, 0},
8090 {0x6B, 0, 0, 0, 0},
8091 {0x6C, 0, 0, 0, 0},
8092 {0x6D, 0x1, 0x1, 0, 0},
8093 {0x6E, 0, 0, 0, 0},
8094 {0x6F, 0, 0, 0, 0},
8095 {0x70, 0x60, 0x60, 0, 0},
8096 {0x71, 0x66, 0x66, 0, 0},
8097 {0x72, 0xc, 0xc, 0, 0},
8098 {0x73, 0x66, 0x66, 0, 0},
8099 {0x74, 0x8f, 0x8f, 1, 1},
8100 {0x75, 0, 0, 0, 0},
8101 {0x76, 0xcc, 0xcc, 0, 0},
8102 {0x77, 0x1, 0x1, 0, 0},
8103 {0x78, 0x66, 0x66, 0, 0},
8104 {0x79, 0x66, 0x66, 0, 0},
8105 {0x7A, 0, 0, 0, 0},
8106 {0x7B, 0, 0, 0, 0},
8107 {0x7C, 0, 0, 0, 0},
8108 {0x7D, 0, 0, 0, 0},
8109 {0x7E, 0, 0, 0, 0},
8110 {0x7F, 0, 0, 0, 0},
8111 {0x80, 0, 0, 0, 0},
8112 {0x81, 0, 0, 0, 0},
8113 {0x82, 0, 0, 0, 0},
8114 {0x83, 0, 0, 0, 0},
8115 {0x84, 0, 0, 0, 0},
8116 {0x85, 0xff, 0xff, 0, 0},
8117 {0x86, 0, 0, 0, 0},
8118 {0x87, 0, 0, 0, 0},
8119 {0x88, 0, 0, 0, 0},
8120 {0x89, 0, 0, 0, 0},
8121 {0x8A, 0, 0, 0, 0},
8122 {0x8B, 0, 0, 0, 0},
8123 {0x8C, 0, 0, 0, 0},
8124 {0x8D, 0, 0, 0, 0},
8125 {0x8E, 0, 0, 0, 0},
8126 {0x8F, 0, 0, 0, 0},
8127 {0x90, 0, 0, 0, 0},
8128 {0x91, 0, 0, 0, 0},
8129 {0x92, 0, 0, 0, 0},
8130 {0x93, 0, 0, 0, 0},
8131 {0x94, 0, 0, 0, 0},
8132 {0x95, 0, 0, 0, 0},
8133 {0x96, 0, 0, 0, 0},
8134 {0x97, 0, 0, 0, 0},
8135 {0x98, 0, 0, 0, 0},
8136 {0x99, 0, 0, 0, 0},
8137 {0x9A, 0, 0, 0, 0},
8138 {0x9B, 0, 0, 0, 0},
8139 {0x9C, 0, 0, 0, 0},
8140 {0x9D, 0, 0, 0, 0},
8141 {0x9E, 0, 0, 0, 0},
8142 {0x9F, 0x6, 0x6, 0, 0},
8143 {0xA0, 0x66, 0x66, 0, 0},
8144 {0xA1, 0x66, 0x66, 0, 0},
8145 {0xA2, 0x66, 0x66, 0, 0},
8146 {0xA3, 0x66, 0x66, 0, 0},
8147 {0xA4, 0x66, 0x66, 0, 0},
8148 {0xA5, 0x66, 0x66, 0, 0},
8149 {0xA6, 0x66, 0x66, 0, 0},
8150 {0xA7, 0x66, 0x66, 0, 0},
8151 {0xA8, 0x66, 0x66, 0, 0},
8152 {0xA9, 0x66, 0x66, 0, 0},
8153 {0xAA, 0x66, 0x66, 0, 0},
8154 {0xAB, 0x66, 0x66, 0, 0},
8155 {0xAC, 0x66, 0x66, 0, 0},
8156 {0xAD, 0x66, 0x66, 0, 0},
8157 {0xAE, 0x66, 0x66, 0, 0},
8158 {0xAF, 0x66, 0x66, 0, 0},
8159 {0xB0, 0x66, 0x66, 0, 0},
8160 {0xB1, 0x66, 0x66, 0, 0},
8161 {0xB2, 0x66, 0x66, 0, 0},
8162 {0xB3, 0xa, 0xa, 0, 0},
8163 {0xB4, 0, 0, 0, 0},
8164 {0xB5, 0, 0, 0, 0},
8165 {0xB6, 0, 0, 0, 0},
8166 {0xFFFF, 0, 0, 0, 0}
8169 struct radio_regs regs_TX_2056[] = {
8170 {0x02, 0, 0, 0, 0},
8171 {0x03, 0, 0, 0, 0},
8172 {0x04, 0, 0, 0, 0},
8173 {0x05, 0, 0, 0, 0},
8174 {0x06, 0, 0, 0, 0},
8175 {0x07, 0, 0, 0, 0},
8176 {0x08, 0, 0, 0, 0},
8177 {0x09, 0, 0, 0, 0},
8178 {0x0A, 0, 0, 0, 0},
8179 {0x0B, 0, 0, 0, 0},
8180 {0x0C, 0, 0, 0, 0},
8181 {0x0D, 0, 0, 0, 0},
8182 {0x0E, 0, 0, 0, 0},
8183 {0x0F, 0, 0, 0, 0},
8184 {0x10, 0, 0, 0, 0},
8185 {0x11, 0, 0, 0, 0},
8186 {0x12, 0, 0, 0, 0},
8187 {0x13, 0, 0, 0, 0},
8188 {0x14, 0, 0, 0, 0},
8189 {0x15, 0, 0, 0, 0},
8190 {0x16, 0, 0, 0, 0},
8191 {0x17, 0, 0, 0, 0},
8192 {0x18, 0, 0, 0, 0},
8193 {0x19, 0, 0, 0, 0},
8194 {0x1A, 0, 0, 0, 0},
8195 {0x1B, 0, 0, 0, 0},
8196 {0x1C, 0, 0, 0, 0},
8197 {0x1D, 0, 0, 0, 0},
8198 {0x1E, 0, 0, 0, 0},
8199 {0x1F, 0, 0, 0, 0},
8200 {0x20, 0, 0, 0, 0},
8201 {0x21, 0x88, 0x88, 0, 0},
8202 {0x22, 0x88, 0x88, 0, 0},
8203 {0x23, 0x88, 0x88, 0, 0},
8204 {0x24, 0x88, 0x88, 0, 0},
8205 {0x25, 0xc, 0xc, 0, 0},
8206 {0x26, 0, 0, 0, 0},
8207 {0x27, 0x3, 0x3, 0, 0},
8208 {0x28, 0, 0, 0, 0},
8209 {0x29, 0x3, 0x3, 0, 0},
8210 {0x2A, 0x37, 0x37, 0, 0},
8211 {0x2B, 0x3, 0x3, 0, 0},
8212 {0x2C, 0, 0, 0, 0},
8213 {0x2D, 0, 0, 0, 0},
8214 {0x2E, 0x1, 0x1, 0, 0},
8215 {0x2F, 0x1, 0x1, 0, 0},
8216 {0x30, 0, 0, 0, 0},
8217 {0x31, 0, 0, 0, 0},
8218 {0x32, 0, 0, 0, 0},
8219 {0x33, 0x11, 0x11, 0, 0},
8220 {0x34, 0x11, 0x11, 0, 0},
8221 {0x35, 0, 0, 0, 0},
8222 {0x36, 0, 0, 0, 0},
8223 {0x37, 0x3, 0x3, 0, 0},
8224 {0x38, 0xf, 0xf, 0, 0},
8225 {0x39, 0, 0, 0, 0},
8226 {0x3A, 0x2d, 0x2d, 0, 0},
8227 {0x3B, 0, 0, 0, 0},
8228 {0x3C, 0x6e, 0x6e, 0, 0},
8229 {0x3D, 0xf0, 0xf0, 1, 1},
8230 {0x3E, 0, 0, 0, 0},
8231 {0x3F, 0, 0, 0, 0},
8232 {0x40, 0, 0, 0, 0},
8233 {0x41, 0x3, 0x3, 0, 0},
8234 {0x42, 0x3, 0x3, 0, 0},
8235 {0x43, 0, 0, 0, 0},
8236 {0x44, 0x1e, 0x1e, 0, 0},
8237 {0x45, 0, 0, 0, 0},
8238 {0x46, 0x6e, 0x6e, 0, 0},
8239 {0x47, 0xf0, 0xf0, 1, 1},
8240 {0x48, 0, 0, 0, 0},
8241 {0x49, 0x2, 0x2, 0, 0},
8242 {0x4A, 0xff, 0xff, 1, 1},
8243 {0x4B, 0xc, 0xc, 0, 0},
8244 {0x4C, 0, 0, 0, 0},
8245 {0x4D, 0x38, 0x38, 0, 0},
8246 {0x4E, 0x70, 0x70, 1, 1},
8247 {0x4F, 0x2, 0x2, 0, 0},
8248 {0x50, 0x88, 0x88, 0, 0},
8249 {0x51, 0xc, 0xc, 0, 0},
8250 {0x52, 0, 0, 0, 0},
8251 {0x53, 0x8, 0x8, 0, 0},
8252 {0x54, 0x70, 0x70, 1, 1},
8253 {0x55, 0x2, 0x2, 0, 0},
8254 {0x56, 0xff, 0xff, 1, 1},
8255 {0x57, 0, 0, 0, 0},
8256 {0x58, 0x83, 0x83, 0, 0},
8257 {0x59, 0x77, 0x77, 1, 1},
8258 {0x5A, 0, 0, 0, 0},
8259 {0x5B, 0x2, 0x2, 0, 0},
8260 {0x5C, 0x88, 0x88, 0, 0},
8261 {0x5D, 0, 0, 0, 0},
8262 {0x5E, 0x8, 0x8, 0, 0},
8263 {0x5F, 0x77, 0x77, 1, 1},
8264 {0x60, 0x1, 0x1, 0, 0},
8265 {0x61, 0, 0, 0, 0},
8266 {0x62, 0x7, 0x7, 0, 0},
8267 {0x63, 0, 0, 0, 0},
8268 {0x64, 0x7, 0x7, 0, 0},
8269 {0x65, 0, 0, 0, 0},
8270 {0x66, 0, 0, 0, 0},
8271 {0x67, 0x74, 0x74, 1, 1},
8272 {0x68, 0, 0, 0, 0},
8273 {0x69, 0xa, 0xa, 0, 0},
8274 {0x6A, 0, 0, 0, 0},
8275 {0x6B, 0, 0, 0, 0},
8276 {0x6C, 0, 0, 0, 0},
8277 {0x6D, 0, 0, 0, 0},
8278 {0x6E, 0, 0, 0, 0},
8279 {0x6F, 0, 0, 0, 0},
8280 {0x70, 0, 0, 0, 0},
8281 {0x71, 0x2, 0x2, 0, 0},
8282 {0x72, 0, 0, 0, 0},
8283 {0x73, 0, 0, 0, 0},
8284 {0x74, 0xe, 0xe, 0, 0},
8285 {0x75, 0xe, 0xe, 0, 0},
8286 {0x76, 0xe, 0xe, 0, 0},
8287 {0x77, 0x13, 0x13, 0, 0},
8288 {0x78, 0x13, 0x13, 0, 0},
8289 {0x79, 0x1b, 0x1b, 0, 0},
8290 {0x7A, 0x1b, 0x1b, 0, 0},
8291 {0x7B, 0x55, 0x55, 0, 0},
8292 {0x7C, 0x5b, 0x5b, 0, 0},
8293 {0x7D, 0, 0, 0, 0},
8294 {0x7E, 0, 0, 0, 0},
8295 {0x7F, 0, 0, 0, 0},
8296 {0x80, 0, 0, 0, 0},
8297 {0x81, 0, 0, 0, 0},
8298 {0x82, 0, 0, 0, 0},
8299 {0x83, 0, 0, 0, 0},
8300 {0x84, 0, 0, 0, 0},
8301 {0x85, 0, 0, 0, 0},
8302 {0x86, 0, 0, 0, 0},
8303 {0x87, 0, 0, 0, 0},
8304 {0x88, 0, 0, 0, 0},
8305 {0x89, 0, 0, 0, 0},
8306 {0x8A, 0, 0, 0, 0},
8307 {0x8B, 0, 0, 0, 0},
8308 {0x8C, 0, 0, 0, 0},
8309 {0x8D, 0, 0, 0, 0},
8310 {0x8E, 0, 0, 0, 0},
8311 {0x8F, 0, 0, 0, 0},
8312 {0x90, 0, 0, 0, 0},
8313 {0x91, 0, 0, 0, 0},
8314 {0x92, 0, 0, 0, 0},
8315 {0xFFFF, 0, 0, 0, 0}
8318 struct radio_regs regs_RX_2056[] = {
8319 {0x02, 0, 0, 0, 0},
8320 {0x03, 0, 0, 0, 0},
8321 {0x04, 0, 0, 0, 0},
8322 {0x05, 0, 0, 0, 0},
8323 {0x06, 0, 0, 0, 0},
8324 {0x07, 0, 0, 0, 0},
8325 {0x08, 0, 0, 0, 0},
8326 {0x09, 0, 0, 0, 0},
8327 {0x0A, 0, 0, 0, 0},
8328 {0x0B, 0, 0, 0, 0},
8329 {0x0C, 0, 0, 0, 0},
8330 {0x0D, 0, 0, 0, 0},
8331 {0x0E, 0, 0, 0, 0},
8332 {0x0F, 0, 0, 0, 0},
8333 {0x10, 0, 0, 0, 0},
8334 {0x11, 0, 0, 0, 0},
8335 {0x12, 0, 0, 0, 0},
8336 {0x13, 0, 0, 0, 0},
8337 {0x14, 0, 0, 0, 0},
8338 {0x15, 0, 0, 0, 0},
8339 {0x16, 0, 0, 0, 0},
8340 {0x17, 0, 0, 0, 0},
8341 {0x18, 0, 0, 0, 0},
8342 {0x19, 0, 0, 0, 0},
8343 {0x1A, 0, 0, 0, 0},
8344 {0x1B, 0, 0, 0, 0},
8345 {0x1C, 0, 0, 0, 0},
8346 {0x1D, 0, 0, 0, 0},
8347 {0x1E, 0, 0, 0, 0},
8348 {0x1F, 0, 0, 0, 0},
8349 {0x20, 0x3, 0x3, 0, 0},
8350 {0x21, 0, 0, 0, 0},
8351 {0x22, 0, 0, 0, 0},
8352 {0x23, 0x90, 0x90, 0, 0},
8353 {0x24, 0x55, 0x55, 0, 0},
8354 {0x25, 0x15, 0x15, 0, 0},
8355 {0x26, 0x5, 0x5, 0, 0},
8356 {0x27, 0x15, 0x15, 0, 0},
8357 {0x28, 0x5, 0x5, 0, 0},
8358 {0x29, 0x20, 0x20, 0, 0},
8359 {0x2A, 0x11, 0x11, 0, 0},
8360 {0x2B, 0x90, 0x90, 0, 0},
8361 {0x2C, 0, 0, 0, 0},
8362 {0x2D, 0x88, 0x88, 0, 0},
8363 {0x2E, 0x32, 0x32, 0, 0},
8364 {0x2F, 0x77, 0x77, 0, 0},
8365 {0x30, 0x17, 0x17, 1, 1},
8366 {0x31, 0xff, 0xff, 1, 1},
8367 {0x32, 0x20, 0x20, 0, 0},
8368 {0x33, 0, 0, 0, 0},
8369 {0x34, 0x88, 0x88, 0, 0},
8370 {0x35, 0x32, 0x32, 0, 0},
8371 {0x36, 0x77, 0x77, 0, 0},
8372 {0x37, 0x17, 0x17, 1, 1},
8373 {0x38, 0xf0, 0xf0, 1, 1},
8374 {0x39, 0x20, 0x20, 0, 0},
8375 {0x3A, 0x8, 0x8, 0, 0},
8376 {0x3B, 0x99, 0x99, 0, 0},
8377 {0x3C, 0, 0, 0, 0},
8378 {0x3D, 0x44, 0x44, 1, 1},
8379 {0x3E, 0, 0, 0, 0},
8380 {0x3F, 0x44, 0x44, 0, 0},
8381 {0x40, 0xf, 0xf, 1, 1},
8382 {0x41, 0x6, 0x6, 0, 0},
8383 {0x42, 0x4, 0x4, 0, 0},
8384 {0x43, 0x50, 0x50, 1, 1},
8385 {0x44, 0x8, 0x8, 0, 0},
8386 {0x45, 0x99, 0x99, 0, 0},
8387 {0x46, 0, 0, 0, 0},
8388 {0x47, 0x11, 0x11, 0, 0},
8389 {0x48, 0, 0, 0, 0},
8390 {0x49, 0x44, 0x44, 0, 0},
8391 {0x4A, 0x7, 0x7, 0, 0},
8392 {0x4B, 0x6, 0x6, 0, 0},
8393 {0x4C, 0x4, 0x4, 0, 0},
8394 {0x4D, 0, 0, 0, 0},
8395 {0x4E, 0, 0, 0, 0},
8396 {0x4F, 0x66, 0x66, 0, 0},
8397 {0x50, 0x66, 0x66, 0, 0},
8398 {0x51, 0x57, 0x57, 0, 0},
8399 {0x52, 0x57, 0x57, 0, 0},
8400 {0x53, 0x44, 0x44, 0, 0},
8401 {0x54, 0, 0, 0, 0},
8402 {0x55, 0, 0, 0, 0},
8403 {0x56, 0x8, 0x8, 0, 0},
8404 {0x57, 0x8, 0x8, 0, 0},
8405 {0x58, 0x7, 0x7, 0, 0},
8406 {0x59, 0x22, 0x22, 0, 0},
8407 {0x5A, 0x22, 0x22, 0, 0},
8408 {0x5B, 0x2, 0x2, 0, 0},
8409 {0x5C, 0x23, 0x23, 0, 0},
8410 {0x5D, 0x7, 0x7, 0, 0},
8411 {0x5E, 0x55, 0x55, 0, 0},
8412 {0x5F, 0x23, 0x23, 0, 0},
8413 {0x60, 0x41, 0x41, 0, 0},
8414 {0x61, 0x1, 0x1, 0, 0},
8415 {0x62, 0xa, 0xa, 0, 0},
8416 {0x63, 0, 0, 0, 0},
8417 {0x64, 0, 0, 0, 0},
8418 {0x65, 0, 0, 0, 0},
8419 {0x66, 0, 0, 0, 0},
8420 {0x67, 0, 0, 0, 0},
8421 {0x68, 0, 0, 0, 0},
8422 {0x69, 0, 0, 0, 0},
8423 {0x6A, 0, 0, 0, 0},
8424 {0x6B, 0xc, 0xc, 0, 0},
8425 {0x6C, 0, 0, 0, 0},
8426 {0x6D, 0, 0, 0, 0},
8427 {0x6E, 0, 0, 0, 0},
8428 {0x6F, 0, 0, 0, 0},
8429 {0x70, 0, 0, 0, 0},
8430 {0x71, 0, 0, 0, 0},
8431 {0x72, 0x22, 0x22, 0, 0},
8432 {0x73, 0x22, 0x22, 0, 0},
8433 {0x74, 0x2, 0x2, 0, 0},
8434 {0x75, 0xa, 0xa, 0, 0},
8435 {0x76, 0x1, 0x1, 0, 0},
8436 {0x77, 0x22, 0x22, 0, 0},
8437 {0x78, 0x30, 0x30, 0, 0},
8438 {0x79, 0, 0, 0, 0},
8439 {0x7A, 0, 0, 0, 0},
8440 {0x7B, 0, 0, 0, 0},
8441 {0x7C, 0, 0, 0, 0},
8442 {0x7D, 0, 0, 0, 0},
8443 {0x7E, 0, 0, 0, 0},
8444 {0x7F, 0, 0, 0, 0},
8445 {0x80, 0, 0, 0, 0},
8446 {0x81, 0, 0, 0, 0},
8447 {0x82, 0, 0, 0, 0},
8448 {0x83, 0, 0, 0, 0},
8449 {0x84, 0, 0, 0, 0},
8450 {0x85, 0, 0, 0, 0},
8451 {0x86, 0, 0, 0, 0},
8452 {0x87, 0, 0, 0, 0},
8453 {0x88, 0, 0, 0, 0},
8454 {0x89, 0, 0, 0, 0},
8455 {0x8A, 0, 0, 0, 0},
8456 {0x8B, 0, 0, 0, 0},
8457 {0x8C, 0, 0, 0, 0},
8458 {0x8D, 0, 0, 0, 0},
8459 {0x8E, 0, 0, 0, 0},
8460 {0x8F, 0, 0, 0, 0},
8461 {0x90, 0, 0, 0, 0},
8462 {0x91, 0, 0, 0, 0},
8463 {0x92, 0, 0, 0, 0},
8464 {0x93, 0, 0, 0, 0},
8465 {0x94, 0, 0, 0, 0},
8466 {0xFFFF, 0, 0, 0, 0}
8469 struct radio_regs regs_SYN_2056_A1[] = {
8470 {0x02, 0, 0, 0, 0},
8471 {0x03, 0, 0, 0, 0},
8472 {0x04, 0, 0, 0, 0},
8473 {0x05, 0, 0, 0, 0},
8474 {0x06, 0, 0, 0, 0},
8475 {0x07, 0, 0, 0, 0},
8476 {0x08, 0, 0, 0, 0},
8477 {0x09, 0x1, 0x1, 0, 0},
8478 {0x0A, 0, 0, 0, 0},
8479 {0x0B, 0, 0, 0, 0},
8480 {0x0C, 0, 0, 0, 0},
8481 {0x0D, 0, 0, 0, 0},
8482 {0x0E, 0, 0, 0, 0},
8483 {0x0F, 0, 0, 0, 0},
8484 {0x10, 0, 0, 0, 0},
8485 {0x11, 0, 0, 0, 0},
8486 {0x12, 0, 0, 0, 0},
8487 {0x13, 0, 0, 0, 0},
8488 {0x14, 0, 0, 0, 0},
8489 {0x15, 0, 0, 0, 0},
8490 {0x16, 0, 0, 0, 0},
8491 {0x17, 0, 0, 0, 0},
8492 {0x18, 0, 0, 0, 0},
8493 {0x19, 0, 0, 0, 0},
8494 {0x1A, 0, 0, 0, 0},
8495 {0x1B, 0, 0, 0, 0},
8496 {0x1C, 0, 0, 0, 0},
8497 {0x1D, 0, 0, 0, 0},
8498 {0x1E, 0, 0, 0, 0},
8499 {0x1F, 0, 0, 0, 0},
8500 {0x20, 0, 0, 0, 0},
8501 {0x21, 0, 0, 0, 0},
8502 {0x22, 0x60, 0x60, 0, 0},
8503 {0x23, 0x6, 0x6, 0, 0},
8504 {0x24, 0xc, 0xc, 0, 0},
8505 {0x25, 0, 0, 0, 0},
8506 {0x26, 0, 0, 0, 0},
8507 {0x27, 0, 0, 0, 0},
8508 {0x28, 0x1, 0x1, 0, 0},
8509 {0x29, 0, 0, 0, 0},
8510 {0x2A, 0, 0, 0, 0},
8511 {0x2B, 0, 0, 0, 0},
8512 {0x2C, 0, 0, 0, 0},
8513 {0x2D, 0, 0, 0, 0},
8514 {0x2E, 0xd, 0xd, 0, 0},
8515 {0x2F, 0x1f, 0x1f, 0, 0},
8516 {0x30, 0x15, 0x15, 0, 0},
8517 {0x31, 0xf, 0xf, 0, 0},
8518 {0x32, 0, 0, 0, 0},
8519 {0x33, 0, 0, 0, 0},
8520 {0x34, 0, 0, 0, 0},
8521 {0x35, 0, 0, 0, 0},
8522 {0x36, 0, 0, 0, 0},
8523 {0x37, 0, 0, 0, 0},
8524 {0x38, 0, 0, 0, 0},
8525 {0x39, 0, 0, 0, 0},
8526 {0x3A, 0, 0, 0, 0},
8527 {0x3B, 0, 0, 0, 0},
8528 {0x3C, 0x13, 0x13, 0, 0},
8529 {0x3D, 0xf, 0xf, 0, 0},
8530 {0x3E, 0x18, 0x18, 0, 0},
8531 {0x3F, 0, 0, 0, 0},
8532 {0x40, 0, 0, 0, 0},
8533 {0x41, 0x20, 0x20, 0, 0},
8534 {0x42, 0x20, 0x20, 0, 0},
8535 {0x43, 0, 0, 0, 0},
8536 {0x44, 0x77, 0x77, 0, 0},
8537 {0x45, 0x7, 0x7, 0, 0},
8538 {0x46, 0x1, 0x1, 0, 0},
8539 {0x47, 0x4, 0x4, 0, 0},
8540 {0x48, 0xf, 0xf, 0, 0},
8541 {0x49, 0x30, 0x30, 0, 0},
8542 {0x4A, 0x32, 0x32, 0, 0},
8543 {0x4B, 0xd, 0xd, 0, 0},
8544 {0x4C, 0xd, 0xd, 0, 0},
8545 {0x4D, 0x4, 0x4, 0, 0},
8546 {0x4E, 0x6, 0x6, 0, 0},
8547 {0x4F, 0x1, 0x1, 0, 0},
8548 {0x50, 0x1c, 0x1c, 0, 0},
8549 {0x51, 0x2, 0x2, 0, 0},
8550 {0x52, 0x2, 0x2, 0, 0},
8551 {0x53, 0xf7, 0xf7, 1, 1},
8552 {0x54, 0xb4, 0xb4, 0, 0},
8553 {0x55, 0xd2, 0xd2, 0, 0},
8554 {0x56, 0, 0, 0, 0},
8555 {0x57, 0, 0, 0, 0},
8556 {0x58, 0x4, 0x4, 0, 0},
8557 {0x59, 0x96, 0x96, 0, 0},
8558 {0x5A, 0x3e, 0x3e, 0, 0},
8559 {0x5B, 0x3e, 0x3e, 0, 0},
8560 {0x5C, 0x13, 0x13, 0, 0},
8561 {0x5D, 0x2, 0x2, 0, 0},
8562 {0x5E, 0, 0, 0, 0},
8563 {0x5F, 0x7, 0x7, 0, 0},
8564 {0x60, 0x7, 0x7, 1, 1},
8565 {0x61, 0x8, 0x8, 0, 0},
8566 {0x62, 0x3, 0x3, 0, 0},
8567 {0x63, 0, 0, 0, 0},
8568 {0x64, 0, 0, 0, 0},
8569 {0x65, 0, 0, 0, 0},
8570 {0x66, 0, 0, 0, 0},
8571 {0x67, 0, 0, 0, 0},
8572 {0x68, 0x40, 0x40, 0, 0},
8573 {0x69, 0, 0, 0, 0},
8574 {0x6A, 0, 0, 0, 0},
8575 {0x6B, 0, 0, 0, 0},
8576 {0x6C, 0, 0, 0, 0},
8577 {0x6D, 0x1, 0x1, 0, 0},
8578 {0x6E, 0, 0, 0, 0},
8579 {0x6F, 0, 0, 0, 0},
8580 {0x70, 0x60, 0x60, 0, 0},
8581 {0x71, 0x66, 0x66, 0, 0},
8582 {0x72, 0xc, 0xc, 0, 0},
8583 {0x73, 0x66, 0x66, 0, 0},
8584 {0x74, 0x8f, 0x8f, 1, 1},
8585 {0x75, 0, 0, 0, 0},
8586 {0x76, 0xcc, 0xcc, 0, 0},
8587 {0x77, 0x1, 0x1, 0, 0},
8588 {0x78, 0x66, 0x66, 0, 0},
8589 {0x79, 0x66, 0x66, 0, 0},
8590 {0x7A, 0, 0, 0, 0},
8591 {0x7B, 0, 0, 0, 0},
8592 {0x7C, 0, 0, 0, 0},
8593 {0x7D, 0, 0, 0, 0},
8594 {0x7E, 0, 0, 0, 0},
8595 {0x7F, 0, 0, 0, 0},
8596 {0x80, 0, 0, 0, 0},
8597 {0x81, 0, 0, 0, 0},
8598 {0x82, 0, 0, 0, 0},
8599 {0x83, 0, 0, 0, 0},
8600 {0x84, 0, 0, 0, 0},
8601 {0x85, 0xff, 0xff, 0, 0},
8602 {0x86, 0, 0, 0, 0},
8603 {0x87, 0, 0, 0, 0},
8604 {0x88, 0, 0, 0, 0},
8605 {0x89, 0, 0, 0, 0},
8606 {0x8A, 0, 0, 0, 0},
8607 {0x8B, 0, 0, 0, 0},
8608 {0x8C, 0, 0, 0, 0},
8609 {0x8D, 0, 0, 0, 0},
8610 {0x8E, 0, 0, 0, 0},
8611 {0x8F, 0, 0, 0, 0},
8612 {0x90, 0, 0, 0, 0},
8613 {0x91, 0, 0, 0, 0},
8614 {0x92, 0, 0, 0, 0},
8615 {0x93, 0, 0, 0, 0},
8616 {0x94, 0, 0, 0, 0},
8617 {0x95, 0, 0, 0, 0},
8618 {0x96, 0, 0, 0, 0},
8619 {0x97, 0, 0, 0, 0},
8620 {0x98, 0, 0, 0, 0},
8621 {0x99, 0, 0, 0, 0},
8622 {0x9A, 0, 0, 0, 0},
8623 {0x9B, 0, 0, 0, 0},
8624 {0x9C, 0, 0, 0, 0},
8625 {0x9D, 0, 0, 0, 0},
8626 {0x9E, 0, 0, 0, 0},
8627 {0x9F, 0x6, 0x6, 0, 0},
8628 {0xA0, 0x66, 0x66, 0, 0},
8629 {0xA1, 0x66, 0x66, 0, 0},
8630 {0xA2, 0x66, 0x66, 0, 0},
8631 {0xA3, 0x66, 0x66, 0, 0},
8632 {0xA4, 0x66, 0x66, 0, 0},
8633 {0xA5, 0x66, 0x66, 0, 0},
8634 {0xA6, 0x66, 0x66, 0, 0},
8635 {0xA7, 0x66, 0x66, 0, 0},
8636 {0xA8, 0x66, 0x66, 0, 0},
8637 {0xA9, 0x66, 0x66, 0, 0},
8638 {0xAA, 0x66, 0x66, 0, 0},
8639 {0xAB, 0x66, 0x66, 0, 0},
8640 {0xAC, 0x66, 0x66, 0, 0},
8641 {0xAD, 0x66, 0x66, 0, 0},
8642 {0xAE, 0x66, 0x66, 0, 0},
8643 {0xAF, 0x66, 0x66, 0, 0},
8644 {0xB0, 0x66, 0x66, 0, 0},
8645 {0xB1, 0x66, 0x66, 0, 0},
8646 {0xB2, 0x66, 0x66, 0, 0},
8647 {0xB3, 0xa, 0xa, 0, 0},
8648 {0xB4, 0, 0, 0, 0},
8649 {0xB5, 0, 0, 0, 0},
8650 {0xB6, 0, 0, 0, 0},
8651 {0xFFFF, 0, 0, 0, 0}
8654 struct radio_regs regs_TX_2056_A1[] = {
8655 {0x02, 0, 0, 0, 0},
8656 {0x03, 0, 0, 0, 0},
8657 {0x04, 0, 0, 0, 0},
8658 {0x05, 0, 0, 0, 0},
8659 {0x06, 0, 0, 0, 0},
8660 {0x07, 0, 0, 0, 0},
8661 {0x08, 0, 0, 0, 0},
8662 {0x09, 0, 0, 0, 0},
8663 {0x0A, 0, 0, 0, 0},
8664 {0x0B, 0, 0, 0, 0},
8665 {0x0C, 0, 0, 0, 0},
8666 {0x0D, 0, 0, 0, 0},
8667 {0x0E, 0, 0, 0, 0},
8668 {0x0F, 0, 0, 0, 0},
8669 {0x10, 0, 0, 0, 0},
8670 {0x11, 0, 0, 0, 0},
8671 {0x12, 0, 0, 0, 0},
8672 {0x13, 0, 0, 0, 0},
8673 {0x14, 0, 0, 0, 0},
8674 {0x15, 0, 0, 0, 0},
8675 {0x16, 0, 0, 0, 0},
8676 {0x17, 0, 0, 0, 0},
8677 {0x18, 0, 0, 0, 0},
8678 {0x19, 0, 0, 0, 0},
8679 {0x1A, 0, 0, 0, 0},
8680 {0x1B, 0, 0, 0, 0},
8681 {0x1C, 0, 0, 0, 0},
8682 {0x1D, 0, 0, 0, 0},
8683 {0x1E, 0, 0, 0, 0},
8684 {0x1F, 0, 0, 0, 0},
8685 {0x20, 0, 0, 0, 0},
8686 {0x21, 0x88, 0x88, 0, 0},
8687 {0x22, 0x88, 0x88, 0, 0},
8688 {0x23, 0x88, 0x88, 0, 0},
8689 {0x24, 0x88, 0x88, 0, 0},
8690 {0x25, 0xc, 0xc, 0, 0},
8691 {0x26, 0, 0, 0, 0},
8692 {0x27, 0x3, 0x3, 0, 0},
8693 {0x28, 0, 0, 0, 0},
8694 {0x29, 0x3, 0x3, 0, 0},
8695 {0x2A, 0x37, 0x37, 0, 0},
8696 {0x2B, 0x3, 0x3, 0, 0},
8697 {0x2C, 0, 0, 0, 0},
8698 {0x2D, 0, 0, 0, 0},
8699 {0x2E, 0x1, 0x1, 0, 0},
8700 {0x2F, 0x1, 0x1, 0, 0},
8701 {0x30, 0, 0, 0, 0},
8702 {0x31, 0, 0, 0, 0},
8703 {0x32, 0, 0, 0, 0},
8704 {0x33, 0x11, 0x11, 0, 0},
8705 {0x34, 0x11, 0x11, 0, 0},
8706 {0x35, 0, 0, 0, 0},
8707 {0x36, 0, 0, 0, 0},
8708 {0x37, 0x3, 0x3, 0, 0},
8709 {0x38, 0xf, 0xf, 0, 0},
8710 {0x39, 0, 0, 0, 0},
8711 {0x3A, 0x2d, 0x2d, 0, 0},
8712 {0x3B, 0, 0, 0, 0},
8713 {0x3C, 0x6e, 0x6e, 0, 0},
8714 {0x3D, 0xf0, 0xf0, 1, 1},
8715 {0x3E, 0, 0, 0, 0},
8716 {0x3F, 0, 0, 0, 0},
8717 {0x40, 0, 0, 0, 0},
8718 {0x41, 0x3, 0x3, 0, 0},
8719 {0x42, 0x3, 0x3, 0, 0},
8720 {0x43, 0, 0, 0, 0},
8721 {0x44, 0x1e, 0x1e, 0, 0},
8722 {0x45, 0, 0, 0, 0},
8723 {0x46, 0x6e, 0x6e, 0, 0},
8724 {0x47, 0xf0, 0xf0, 1, 1},
8725 {0x48, 0, 0, 0, 0},
8726 {0x49, 0x2, 0x2, 0, 0},
8727 {0x4A, 0xff, 0xff, 1, 1},
8728 {0x4B, 0xc, 0xc, 0, 0},
8729 {0x4C, 0, 0, 0, 0},
8730 {0x4D, 0x38, 0x38, 0, 0},
8731 {0x4E, 0x70, 0x70, 1, 1},
8732 {0x4F, 0x2, 0x2, 0, 0},
8733 {0x50, 0x88, 0x88, 0, 0},
8734 {0x51, 0xc, 0xc, 0, 0},
8735 {0x52, 0, 0, 0, 0},
8736 {0x53, 0x8, 0x8, 0, 0},
8737 {0x54, 0x70, 0x70, 1, 1},
8738 {0x55, 0x2, 0x2, 0, 0},
8739 {0x56, 0xff, 0xff, 1, 1},
8740 {0x57, 0, 0, 0, 0},
8741 {0x58, 0x83, 0x83, 0, 0},
8742 {0x59, 0x77, 0x77, 1, 1},
8743 {0x5A, 0, 0, 0, 0},
8744 {0x5B, 0x2, 0x2, 0, 0},
8745 {0x5C, 0x88, 0x88, 0, 0},
8746 {0x5D, 0, 0, 0, 0},
8747 {0x5E, 0x8, 0x8, 0, 0},
8748 {0x5F, 0x77, 0x77, 1, 1},
8749 {0x60, 0x1, 0x1, 0, 0},
8750 {0x61, 0, 0, 0, 0},
8751 {0x62, 0x7, 0x7, 0, 0},
8752 {0x63, 0, 0, 0, 0},
8753 {0x64, 0x7, 0x7, 0, 0},
8754 {0x65, 0, 0, 0, 0},
8755 {0x66, 0, 0, 0, 0},
8756 {0x67, 0x72, 0x72, 1, 1},
8757 {0x68, 0, 0, 0, 0},
8758 {0x69, 0xa, 0xa, 0, 0},
8759 {0x6A, 0, 0, 0, 0},
8760 {0x6B, 0, 0, 0, 0},
8761 {0x6C, 0, 0, 0, 0},
8762 {0x6D, 0, 0, 0, 0},
8763 {0x6E, 0, 0, 0, 0},
8764 {0x6F, 0, 0, 0, 0},
8765 {0x70, 0, 0, 0, 0},
8766 {0x71, 0x2, 0x2, 0, 0},
8767 {0x72, 0, 0, 0, 0},
8768 {0x73, 0, 0, 0, 0},
8769 {0x74, 0xe, 0xe, 0, 0},
8770 {0x75, 0xe, 0xe, 0, 0},
8771 {0x76, 0xe, 0xe, 0, 0},
8772 {0x77, 0x13, 0x13, 0, 0},
8773 {0x78, 0x13, 0x13, 0, 0},
8774 {0x79, 0x1b, 0x1b, 0, 0},
8775 {0x7A, 0x1b, 0x1b, 0, 0},
8776 {0x7B, 0x55, 0x55, 0, 0},
8777 {0x7C, 0x5b, 0x5b, 0, 0},
8778 {0x7D, 0, 0, 0, 0},
8779 {0x7E, 0, 0, 0, 0},
8780 {0x7F, 0, 0, 0, 0},
8781 {0x80, 0, 0, 0, 0},
8782 {0x81, 0, 0, 0, 0},
8783 {0x82, 0, 0, 0, 0},
8784 {0x83, 0, 0, 0, 0},
8785 {0x84, 0, 0, 0, 0},
8786 {0x85, 0, 0, 0, 0},
8787 {0x86, 0, 0, 0, 0},
8788 {0x87, 0, 0, 0, 0},
8789 {0x88, 0, 0, 0, 0},
8790 {0x89, 0, 0, 0, 0},
8791 {0x8A, 0, 0, 0, 0},
8792 {0x8B, 0, 0, 0, 0},
8793 {0x8C, 0, 0, 0, 0},
8794 {0x8D, 0, 0, 0, 0},
8795 {0x8E, 0, 0, 0, 0},
8796 {0x8F, 0, 0, 0, 0},
8797 {0x90, 0, 0, 0, 0},
8798 {0x91, 0, 0, 0, 0},
8799 {0x92, 0, 0, 0, 0},
8800 {0xFFFF, 0, 0, 0, 0}
8803 struct radio_regs regs_RX_2056_A1[] = {
8804 {0x02, 0, 0, 0, 0},
8805 {0x03, 0, 0, 0, 0},
8806 {0x04, 0, 0, 0, 0},
8807 {0x05, 0, 0, 0, 0},
8808 {0x06, 0, 0, 0, 0},
8809 {0x07, 0, 0, 0, 0},
8810 {0x08, 0, 0, 0, 0},
8811 {0x09, 0, 0, 0, 0},
8812 {0x0A, 0, 0, 0, 0},
8813 {0x0B, 0, 0, 0, 0},
8814 {0x0C, 0, 0, 0, 0},
8815 {0x0D, 0, 0, 0, 0},
8816 {0x0E, 0, 0, 0, 0},
8817 {0x0F, 0, 0, 0, 0},
8818 {0x10, 0, 0, 0, 0},
8819 {0x11, 0, 0, 0, 0},
8820 {0x12, 0, 0, 0, 0},
8821 {0x13, 0, 0, 0, 0},
8822 {0x14, 0, 0, 0, 0},
8823 {0x15, 0, 0, 0, 0},
8824 {0x16, 0, 0, 0, 0},
8825 {0x17, 0, 0, 0, 0},
8826 {0x18, 0, 0, 0, 0},
8827 {0x19, 0, 0, 0, 0},
8828 {0x1A, 0, 0, 0, 0},
8829 {0x1B, 0, 0, 0, 0},
8830 {0x1C, 0, 0, 0, 0},
8831 {0x1D, 0, 0, 0, 0},
8832 {0x1E, 0, 0, 0, 0},
8833 {0x1F, 0, 0, 0, 0},
8834 {0x20, 0x3, 0x3, 0, 0},
8835 {0x21, 0, 0, 0, 0},
8836 {0x22, 0, 0, 0, 0},
8837 {0x23, 0x90, 0x90, 0, 0},
8838 {0x24, 0x55, 0x55, 0, 0},
8839 {0x25, 0x15, 0x15, 0, 0},
8840 {0x26, 0x5, 0x5, 0, 0},
8841 {0x27, 0x15, 0x15, 0, 0},
8842 {0x28, 0x5, 0x5, 0, 0},
8843 {0x29, 0x20, 0x20, 0, 0},
8844 {0x2A, 0x11, 0x11, 0, 0},
8845 {0x2B, 0x90, 0x90, 0, 0},
8846 {0x2C, 0, 0, 0, 0},
8847 {0x2D, 0x88, 0x88, 0, 0},
8848 {0x2E, 0x32, 0x32, 0, 0},
8849 {0x2F, 0x77, 0x77, 0, 0},
8850 {0x30, 0x17, 0x17, 1, 1},
8851 {0x31, 0xff, 0xff, 1, 1},
8852 {0x32, 0x20, 0x20, 0, 0},
8853 {0x33, 0, 0, 0, 0},
8854 {0x34, 0x88, 0x88, 0, 0},
8855 {0x35, 0x32, 0x32, 0, 0},
8856 {0x36, 0x77, 0x77, 0, 0},
8857 {0x37, 0x17, 0x17, 1, 1},
8858 {0x38, 0xf0, 0xf0, 1, 1},
8859 {0x39, 0x20, 0x20, 0, 0},
8860 {0x3A, 0x8, 0x8, 0, 0},
8861 {0x3B, 0x55, 0x55, 1, 1},
8862 {0x3C, 0, 0, 0, 0},
8863 {0x3D, 0x44, 0x44, 1, 1},
8864 {0x3E, 0, 0, 0, 0},
8865 {0x3F, 0x44, 0x44, 0, 0},
8866 {0x40, 0xf, 0xf, 1, 1},
8867 {0x41, 0x6, 0x6, 0, 0},
8868 {0x42, 0x4, 0x4, 0, 0},
8869 {0x43, 0x50, 0x50, 1, 1},
8870 {0x44, 0x8, 0x8, 0, 0},
8871 {0x45, 0x55, 0x55, 1, 1},
8872 {0x46, 0, 0, 0, 0},
8873 {0x47, 0x11, 0x11, 0, 0},
8874 {0x48, 0, 0, 0, 0},
8875 {0x49, 0x44, 0x44, 0, 0},
8876 {0x4A, 0x7, 0x7, 0, 0},
8877 {0x4B, 0x6, 0x6, 0, 0},
8878 {0x4C, 0x4, 0x4, 0, 0},
8879 {0x4D, 0, 0, 0, 0},
8880 {0x4E, 0, 0, 0, 0},
8881 {0x4F, 0x26, 0x26, 1, 1},
8882 {0x50, 0x26, 0x26, 1, 1},
8883 {0x51, 0xf, 0xf, 1, 1},
8884 {0x52, 0xf, 0xf, 1, 1},
8885 {0x53, 0x44, 0x44, 0, 0},
8886 {0x54, 0, 0, 0, 0},
8887 {0x55, 0, 0, 0, 0},
8888 {0x56, 0x8, 0x8, 0, 0},
8889 {0x57, 0x8, 0x8, 0, 0},
8890 {0x58, 0x7, 0x7, 0, 0},
8891 {0x59, 0x22, 0x22, 0, 0},
8892 {0x5A, 0x22, 0x22, 0, 0},
8893 {0x5B, 0x2, 0x2, 0, 0},
8894 {0x5C, 0x2f, 0x2f, 1, 1},
8895 {0x5D, 0x7, 0x7, 0, 0},
8896 {0x5E, 0x55, 0x55, 0, 0},
8897 {0x5F, 0x23, 0x23, 0, 0},
8898 {0x60, 0x41, 0x41, 0, 0},
8899 {0x61, 0x1, 0x1, 0, 0},
8900 {0x62, 0xa, 0xa, 0, 0},
8901 {0x63, 0, 0, 0, 0},
8902 {0x64, 0, 0, 0, 0},
8903 {0x65, 0, 0, 0, 0},
8904 {0x66, 0, 0, 0, 0},
8905 {0x67, 0, 0, 0, 0},
8906 {0x68, 0, 0, 0, 0},
8907 {0x69, 0, 0, 0, 0},
8908 {0x6A, 0, 0, 0, 0},
8909 {0x6B, 0xc, 0xc, 0, 0},
8910 {0x6C, 0, 0, 0, 0},
8911 {0x6D, 0, 0, 0, 0},
8912 {0x6E, 0, 0, 0, 0},
8913 {0x6F, 0, 0, 0, 0},
8914 {0x70, 0, 0, 0, 0},
8915 {0x71, 0, 0, 0, 0},
8916 {0x72, 0x22, 0x22, 0, 0},
8917 {0x73, 0x22, 0x22, 0, 0},
8918 {0x74, 0, 0, 1, 1},
8919 {0x75, 0xa, 0xa, 0, 0},
8920 {0x76, 0x1, 0x1, 0, 0},
8921 {0x77, 0x22, 0x22, 0, 0},
8922 {0x78, 0x30, 0x30, 0, 0},
8923 {0x79, 0, 0, 0, 0},
8924 {0x7A, 0, 0, 0, 0},
8925 {0x7B, 0, 0, 0, 0},
8926 {0x7C, 0, 0, 0, 0},
8927 {0x7D, 0, 0, 0, 0},
8928 {0x7E, 0, 0, 0, 0},
8929 {0x7F, 0, 0, 0, 0},
8930 {0x80, 0, 0, 0, 0},
8931 {0x81, 0, 0, 0, 0},
8932 {0x82, 0, 0, 0, 0},
8933 {0x83, 0, 0, 0, 0},
8934 {0x84, 0, 0, 0, 0},
8935 {0x85, 0, 0, 0, 0},
8936 {0x86, 0, 0, 0, 0},
8937 {0x87, 0, 0, 0, 0},
8938 {0x88, 0, 0, 0, 0},
8939 {0x89, 0, 0, 0, 0},
8940 {0x8A, 0, 0, 0, 0},
8941 {0x8B, 0, 0, 0, 0},
8942 {0x8C, 0, 0, 0, 0},
8943 {0x8D, 0, 0, 0, 0},
8944 {0x8E, 0, 0, 0, 0},
8945 {0x8F, 0, 0, 0, 0},
8946 {0x90, 0, 0, 0, 0},
8947 {0x91, 0, 0, 0, 0},
8948 {0x92, 0, 0, 0, 0},
8949 {0x93, 0, 0, 0, 0},
8950 {0x94, 0, 0, 0, 0},
8951 {0xFFFF, 0, 0, 0, 0}
8954 struct radio_regs regs_SYN_2056_rev5[] = {
8955 {0x02, 0, 0, 0, 0},
8956 {0x03, 0, 0, 0, 0},
8957 {0x04, 0, 0, 0, 0},
8958 {0x05, 0, 0, 0, 0},
8959 {0x06, 0, 0, 0, 0},
8960 {0x07, 0, 0, 0, 0},
8961 {0x08, 0, 0, 0, 0},
8962 {0x09, 0x1, 0x1, 0, 0},
8963 {0x0A, 0, 0, 0, 0},
8964 {0x0B, 0, 0, 0, 0},
8965 {0x0C, 0, 0, 0, 0},
8966 {0x0D, 0, 0, 0, 0},
8967 {0x0E, 0, 0, 0, 0},
8968 {0x0F, 0, 0, 0, 0},
8969 {0x10, 0, 0, 0, 0},
8970 {0x11, 0, 0, 0, 0},
8971 {0x12, 0, 0, 0, 0},
8972 {0x13, 0, 0, 0, 0},
8973 {0x14, 0, 0, 0, 0},
8974 {0x15, 0, 0, 0, 0},
8975 {0x16, 0, 0, 0, 0},
8976 {0x17, 0, 0, 0, 0},
8977 {0x18, 0, 0, 0, 0},
8978 {0x19, 0, 0, 0, 0},
8979 {0x1A, 0, 0, 0, 0},
8980 {0x1B, 0, 0, 0, 0},
8981 {0x1C, 0, 0, 0, 0},
8982 {0x1D, 0, 0, 0, 0},
8983 {0x1E, 0, 0, 0, 0},
8984 {0x1F, 0, 0, 0, 0},
8985 {0x20, 0, 0, 0, 0},
8986 {0x21, 0, 0, 0, 0},
8987 {0x22, 0x60, 0x60, 0, 0},
8988 {0x23, 0x6, 0x6, 0, 0},
8989 {0x24, 0xc, 0xc, 0, 0},
8990 {0x25, 0, 0, 0, 0},
8991 {0x26, 0, 0, 0, 0},
8992 {0x27, 0, 0, 0, 0},
8993 {0x28, 0x1, 0x1, 0, 0},
8994 {0x29, 0, 0, 0, 0},
8995 {0x2A, 0, 0, 0, 0},
8996 {0x2B, 0, 0, 0, 0},
8997 {0x2C, 0, 0, 0, 0},
8998 {0x2D, 0, 0, 0, 0},
8999 {0x2E, 0, 0, 0, 0},
9000 {0x2F, 0x1f, 0x1f, 0, 0},
9001 {0x30, 0x15, 0x15, 0, 0},
9002 {0x31, 0xf, 0xf, 0, 0},
9003 {0x32, 0, 0, 0, 0},
9004 {0x33, 0, 0, 0, 0},
9005 {0x34, 0, 0, 0, 0},
9006 {0x35, 0, 0, 0, 0},
9007 {0x36, 0, 0, 0, 0},
9008 {0x37, 0, 0, 0, 0},
9009 {0x38, 0, 0, 0, 0},
9010 {0x39, 0, 0, 0, 0},
9011 {0x3A, 0, 0, 0, 0},
9012 {0x3B, 0, 0, 0, 0},
9013 {0x3C, 0x13, 0x13, 0, 0},
9014 {0x3D, 0xf, 0xf, 0, 0},
9015 {0x3E, 0x18, 0x18, 0, 0},
9016 {0x3F, 0, 0, 0, 0},
9017 {0x40, 0, 0, 0, 0},
9018 {0x41, 0x20, 0x20, 0, 0},
9019 {0x42, 0x20, 0x20, 0, 0},
9020 {0x43, 0, 0, 0, 0},
9021 {0x44, 0x77, 0x77, 0, 0},
9022 {0x45, 0x7, 0x7, 0, 0},
9023 {0x46, 0x1, 0x1, 0, 0},
9024 {0x47, 0x4, 0x4, 0, 0},
9025 {0x48, 0xf, 0xf, 0, 0},
9026 {0x49, 0x30, 0x30, 0, 0},
9027 {0x4A, 0x32, 0x32, 0, 0},
9028 {0x4B, 0xd, 0xd, 0, 0},
9029 {0x4C, 0xd, 0xd, 0, 0},
9030 {0x4D, 0x4, 0x4, 0, 0},
9031 {0x4E, 0x6, 0x6, 0, 0},
9032 {0x4F, 0x1, 0x1, 0, 0},
9033 {0x50, 0x1c, 0x1c, 0, 0},
9034 {0x51, 0x2, 0x2, 0, 0},
9035 {0x52, 0x2, 0x2, 0, 0},
9036 {0x53, 0xf7, 0xf7, 1, 1},
9037 {0x54, 0xb4, 0xb4, 0, 0},
9038 {0x55, 0xd2, 0xd2, 0, 0},
9039 {0x56, 0, 0, 0, 0},
9040 {0x57, 0, 0, 0, 0},
9041 {0x58, 0x4, 0x4, 0, 0},
9042 {0x59, 0x96, 0x96, 0, 0},
9043 {0x5A, 0x3e, 0x3e, 0, 0},
9044 {0x5B, 0x3e, 0x3e, 0, 0},
9045 {0x5C, 0x13, 0x13, 0, 0},
9046 {0x5D, 0x2, 0x2, 0, 0},
9047 {0x5E, 0, 0, 0, 0},
9048 {0x5F, 0x7, 0x7, 0, 0},
9049 {0x60, 0x7, 0x7, 1, 1},
9050 {0x61, 0x8, 0x8, 0, 0},
9051 {0x62, 0x3, 0x3, 0, 0},
9052 {0x63, 0, 0, 0, 0},
9053 {0x64, 0, 0, 0, 0},
9054 {0x65, 0, 0, 0, 0},
9055 {0x66, 0, 0, 0, 0},
9056 {0x67, 0, 0, 0, 0},
9057 {0x68, 0x40, 0x40, 0, 0},
9058 {0x69, 0, 0, 0, 0},
9059 {0x6A, 0, 0, 0, 0},
9060 {0x6B, 0, 0, 0, 0},
9061 {0x6C, 0, 0, 0, 0},
9062 {0x6D, 0x1, 0x1, 0, 0},
9063 {0x6E, 0, 0, 0, 0},
9064 {0x6F, 0, 0, 0, 0},
9065 {0x70, 0x60, 0x60, 0, 0},
9066 {0x71, 0x66, 0x66, 0, 0},
9067 {0x72, 0xc, 0xc, 0, 0},
9068 {0x73, 0x66, 0x66, 0, 0},
9069 {0x74, 0x8f, 0x8f, 1, 1},
9070 {0x75, 0, 0, 0, 0},
9071 {0x76, 0xcc, 0xcc, 0, 0},
9072 {0x77, 0x1, 0x1, 0, 0},
9073 {0x78, 0x66, 0x66, 0, 0},
9074 {0x79, 0x66, 0x66, 0, 0},
9075 {0x7A, 0, 0, 0, 0},
9076 {0x7B, 0, 0, 0, 0},
9077 {0x7C, 0, 0, 0, 0},
9078 {0x7D, 0, 0, 0, 0},
9079 {0x7E, 0, 0, 0, 0},
9080 {0x7F, 0, 0, 0, 0},
9081 {0x80, 0, 0, 0, 0},
9082 {0x81, 0, 0, 0, 0},
9083 {0x82, 0, 0, 0, 0},
9084 {0x83, 0, 0, 0, 0},
9085 {0x84, 0, 0, 0, 0},
9086 {0x85, 0xff, 0xff, 0, 0},
9087 {0x86, 0, 0, 0, 0},
9088 {0x87, 0, 0, 0, 0},
9089 {0x88, 0, 0, 0, 0},
9090 {0x89, 0, 0, 0, 0},
9091 {0x8A, 0, 0, 0, 0},
9092 {0x8B, 0, 0, 0, 0},
9093 {0x8C, 0, 0, 0, 0},
9094 {0x8D, 0, 0, 0, 0},
9095 {0x8E, 0, 0, 0, 0},
9096 {0x8F, 0, 0, 0, 0},
9097 {0x90, 0, 0, 0, 0},
9098 {0x91, 0, 0, 0, 0},
9099 {0x92, 0, 0, 0, 0},
9100 {0x93, 0, 0, 0, 0},
9101 {0x94, 0, 0, 0, 0},
9102 {0x95, 0, 0, 0, 0},
9103 {0x96, 0, 0, 0, 0},
9104 {0x97, 0, 0, 0, 0},
9105 {0x98, 0, 0, 0, 0},
9106 {0x99, 0, 0, 0, 0},
9107 {0x9A, 0, 0, 0, 0},
9108 {0x9B, 0, 0, 0, 0},
9109 {0x9C, 0, 0, 0, 0},
9110 {0x9D, 0, 0, 0, 0},
9111 {0x9E, 0, 0, 0, 0},
9112 {0x9F, 0x6, 0x6, 0, 0},
9113 {0xA0, 0x66, 0x66, 0, 0},
9114 {0xA1, 0x66, 0x66, 0, 0},
9115 {0xA2, 0x66, 0x66, 0, 0},
9116 {0xA3, 0x66, 0x66, 0, 0},
9117 {0xA4, 0x66, 0x66, 0, 0},
9118 {0xA5, 0x66, 0x66, 0, 0},
9119 {0xA6, 0x66, 0x66, 0, 0},
9120 {0xA7, 0x66, 0x66, 0, 0},
9121 {0xA8, 0x66, 0x66, 0, 0},
9122 {0xA9, 0x66, 0x66, 0, 0},
9123 {0xAA, 0x66, 0x66, 0, 0},
9124 {0xAB, 0x66, 0x66, 0, 0},
9125 {0xAC, 0x66, 0x66, 0, 0},
9126 {0xAD, 0x66, 0x66, 0, 0},
9127 {0xAE, 0x66, 0x66, 0, 0},
9128 {0xAF, 0x66, 0x66, 0, 0},
9129 {0xB0, 0x66, 0x66, 0, 0},
9130 {0xB1, 0x66, 0x66, 0, 0},
9131 {0xB2, 0x66, 0x66, 0, 0},
9132 {0xB3, 0xa, 0xa, 0, 0},
9133 {0xB4, 0, 0, 0, 0},
9134 {0xB5, 0, 0, 0, 0},
9135 {0xB6, 0, 0, 0, 0},
9136 {0xFFFF, 0, 0, 0, 0}
9139 struct radio_regs regs_TX_2056_rev5[] = {
9140 {0x02, 0, 0, 0, 0},
9141 {0x03, 0, 0, 0, 0},
9142 {0x04, 0, 0, 0, 0},
9143 {0x05, 0, 0, 0, 0},
9144 {0x06, 0, 0, 0, 0},
9145 {0x07, 0, 0, 0, 0},
9146 {0x08, 0, 0, 0, 0},
9147 {0x09, 0, 0, 0, 0},
9148 {0x0A, 0, 0, 0, 0},
9149 {0x0B, 0, 0, 0, 0},
9150 {0x0C, 0, 0, 0, 0},
9151 {0x0D, 0, 0, 0, 0},
9152 {0x0E, 0, 0, 0, 0},
9153 {0x0F, 0, 0, 0, 0},
9154 {0x10, 0, 0, 0, 0},
9155 {0x11, 0, 0, 0, 0},
9156 {0x12, 0, 0, 0, 0},
9157 {0x13, 0, 0, 0, 0},
9158 {0x14, 0, 0, 0, 0},
9159 {0x15, 0, 0, 0, 0},
9160 {0x16, 0, 0, 0, 0},
9161 {0x17, 0, 0, 0, 0},
9162 {0x18, 0, 0, 0, 0},
9163 {0x19, 0, 0, 0, 0},
9164 {0x1A, 0, 0, 0, 0},
9165 {0x1B, 0, 0, 0, 0},
9166 {0x1C, 0, 0, 0, 0},
9167 {0x1D, 0, 0, 0, 0},
9168 {0x1E, 0, 0, 0, 0},
9169 {0x1F, 0, 0, 0, 0},
9170 {0x20, 0, 0, 0, 0},
9171 {0x21, 0x88, 0x88, 0, 0},
9172 {0x22, 0x88, 0x88, 0, 0},
9173 {0x23, 0x88, 0x88, 0, 0},
9174 {0x24, 0x88, 0x88, 0, 0},
9175 {0x25, 0xc, 0xc, 0, 0},
9176 {0x26, 0, 0, 0, 0},
9177 {0x27, 0x3, 0x3, 0, 0},
9178 {0x28, 0, 0, 0, 0},
9179 {0x29, 0x3, 0x3, 0, 0},
9180 {0x2A, 0x37, 0x37, 0, 0},
9181 {0x2B, 0x3, 0x3, 0, 0},
9182 {0x2C, 0, 0, 0, 0},
9183 {0x2D, 0, 0, 0, 0},
9184 {0x2E, 0x1, 0x1, 0, 0},
9185 {0x2F, 0x1, 0x1, 0, 0},
9186 {0x30, 0, 0, 0, 0},
9187 {0x31, 0, 0, 0, 0},
9188 {0x32, 0, 0, 0, 0},
9189 {0x33, 0x11, 0x11, 0, 0},
9190 {0x34, 0x11, 0x11, 0, 0},
9191 {0x35, 0, 0, 0, 0},
9192 {0x36, 0, 0, 0, 0},
9193 {0x37, 0x3, 0x3, 0, 0},
9194 {0x38, 0xf, 0xf, 0, 0},
9195 {0x39, 0, 0, 0, 0},
9196 {0x3A, 0x2d, 0x2d, 0, 0},
9197 {0x3B, 0, 0, 0, 0},
9198 {0x3C, 0x6e, 0x6e, 0, 0},
9199 {0x3D, 0xf0, 0xf0, 1, 1},
9200 {0x3E, 0, 0, 0, 0},
9201 {0x3F, 0, 0, 0, 0},
9202 {0x40, 0, 0, 0, 0},
9203 {0x41, 0x3, 0x3, 0, 0},
9204 {0x42, 0x3, 0x3, 0, 0},
9205 {0x43, 0, 0, 0, 0},
9206 {0x44, 0x1e, 0x1e, 0, 0},
9207 {0x45, 0, 0, 0, 0},
9208 {0x46, 0x6e, 0x6e, 0, 0},
9209 {0x47, 0xf0, 0xf0, 1, 1},
9210 {0x48, 0, 0, 0, 0},
9211 {0x49, 0x2, 0x2, 0, 0},
9212 {0x4A, 0xff, 0xff, 1, 1},
9213 {0x4B, 0xc, 0xc, 0, 0},
9214 {0x4C, 0, 0, 0, 0},
9215 {0x4D, 0x38, 0x38, 0, 0},
9216 {0x4E, 0x70, 0x70, 1, 1},
9217 {0x4F, 0x2, 0x2, 0, 0},
9218 {0x50, 0x88, 0x88, 0, 0},
9219 {0x51, 0xc, 0xc, 0, 0},
9220 {0x52, 0, 0, 0, 0},
9221 {0x53, 0x8, 0x8, 0, 0},
9222 {0x54, 0x70, 0x70, 1, 1},
9223 {0x55, 0x2, 0x2, 0, 0},
9224 {0x56, 0xff, 0xff, 1, 1},
9225 {0x57, 0, 0, 0, 0},
9226 {0x58, 0x83, 0x83, 0, 0},
9227 {0x59, 0x77, 0x77, 1, 1},
9228 {0x5A, 0, 0, 0, 0},
9229 {0x5B, 0x2, 0x2, 0, 0},
9230 {0x5C, 0x88, 0x88, 0, 0},
9231 {0x5D, 0, 0, 0, 0},
9232 {0x5E, 0x8, 0x8, 0, 0},
9233 {0x5F, 0x77, 0x77, 1, 1},
9234 {0x60, 0x1, 0x1, 0, 0},
9235 {0x61, 0, 0, 0, 0},
9236 {0x62, 0x7, 0x7, 0, 0},
9237 {0x63, 0, 0, 0, 0},
9238 {0x64, 0x7, 0x7, 0, 0},
9239 {0x65, 0, 0, 0, 0},
9240 {0x66, 0, 0, 0, 0},
9241 {0x67, 0, 0, 1, 1},
9242 {0x68, 0, 0, 0, 0},
9243 {0x69, 0xa, 0xa, 0, 0},
9244 {0x6A, 0, 0, 0, 0},
9245 {0x6B, 0, 0, 0, 0},
9246 {0x6C, 0, 0, 0, 0},
9247 {0x6D, 0, 0, 0, 0},
9248 {0x6E, 0, 0, 0, 0},
9249 {0x6F, 0, 0, 0, 0},
9250 {0x70, 0, 0, 0, 0},
9251 {0x71, 0x2, 0x2, 0, 0},
9252 {0x72, 0, 0, 0, 0},
9253 {0x73, 0, 0, 0, 0},
9254 {0x74, 0xe, 0xe, 0, 0},
9255 {0x75, 0xe, 0xe, 0, 0},
9256 {0x76, 0xe, 0xe, 0, 0},
9257 {0x77, 0x13, 0x13, 0, 0},
9258 {0x78, 0x13, 0x13, 0, 0},
9259 {0x79, 0x1b, 0x1b, 0, 0},
9260 {0x7A, 0x1b, 0x1b, 0, 0},
9261 {0x7B, 0x55, 0x55, 0, 0},
9262 {0x7C, 0x5b, 0x5b, 0, 0},
9263 {0x7D, 0, 0, 0, 0},
9264 {0x7E, 0, 0, 0, 0},
9265 {0x7F, 0, 0, 0, 0},
9266 {0x80, 0, 0, 0, 0},
9267 {0x81, 0, 0, 0, 0},
9268 {0x82, 0, 0, 0, 0},
9269 {0x83, 0, 0, 0, 0},
9270 {0x84, 0, 0, 0, 0},
9271 {0x85, 0, 0, 0, 0},
9272 {0x86, 0, 0, 0, 0},
9273 {0x87, 0, 0, 0, 0},
9274 {0x88, 0, 0, 0, 0},
9275 {0x89, 0, 0, 0, 0},
9276 {0x8A, 0, 0, 0, 0},
9277 {0x8B, 0, 0, 0, 0},
9278 {0x8C, 0, 0, 0, 0},
9279 {0x8D, 0, 0, 0, 0},
9280 {0x8E, 0, 0, 0, 0},
9281 {0x8F, 0, 0, 0, 0},
9282 {0x90, 0, 0, 0, 0},
9283 {0x91, 0, 0, 0, 0},
9284 {0x92, 0, 0, 0, 0},
9285 {0x93, 0x70, 0x70, 0, 0},
9286 {0x94, 0x70, 0x70, 0, 0},
9287 {0x95, 0x71, 0x71, 1, 1},
9288 {0x96, 0x71, 0x71, 1, 1},
9289 {0x97, 0x72, 0x72, 1, 1},
9290 {0x98, 0x73, 0x73, 1, 1},
9291 {0x99, 0x74, 0x74, 1, 1},
9292 {0x9A, 0x75, 0x75, 1, 1},
9293 {0xFFFF, 0, 0, 0, 0}
9296 struct radio_regs regs_RX_2056_rev5[] = {
9297 {0x02, 0, 0, 0, 0},
9298 {0x03, 0, 0, 0, 0},
9299 {0x04, 0, 0, 0, 0},
9300 {0x05, 0, 0, 0, 0},
9301 {0x06, 0, 0, 0, 0},
9302 {0x07, 0, 0, 0, 0},
9303 {0x08, 0, 0, 0, 0},
9304 {0x09, 0, 0, 0, 0},
9305 {0x0A, 0, 0, 0, 0},
9306 {0x0B, 0, 0, 0, 0},
9307 {0x0C, 0, 0, 0, 0},
9308 {0x0D, 0, 0, 0, 0},
9309 {0x0E, 0, 0, 0, 0},
9310 {0x0F, 0, 0, 0, 0},
9311 {0x10, 0, 0, 0, 0},
9312 {0x11, 0, 0, 0, 0},
9313 {0x12, 0, 0, 0, 0},
9314 {0x13, 0, 0, 0, 0},
9315 {0x14, 0, 0, 0, 0},
9316 {0x15, 0, 0, 0, 0},
9317 {0x16, 0, 0, 0, 0},
9318 {0x17, 0, 0, 0, 0},
9319 {0x18, 0, 0, 0, 0},
9320 {0x19, 0, 0, 0, 0},
9321 {0x1A, 0, 0, 0, 0},
9322 {0x1B, 0, 0, 0, 0},
9323 {0x1C, 0, 0, 0, 0},
9324 {0x1D, 0, 0, 0, 0},
9325 {0x1E, 0, 0, 0, 0},
9326 {0x1F, 0, 0, 0, 0},
9327 {0x20, 0x3, 0x3, 0, 0},
9328 {0x21, 0, 0, 0, 0},
9329 {0x22, 0, 0, 0, 0},
9330 {0x23, 0x90, 0x90, 0, 0},
9331 {0x24, 0x55, 0x55, 0, 0},
9332 {0x25, 0x15, 0x15, 0, 0},
9333 {0x26, 0x5, 0x5, 0, 0},
9334 {0x27, 0x15, 0x15, 0, 0},
9335 {0x28, 0x5, 0x5, 0, 0},
9336 {0x29, 0x20, 0x20, 0, 0},
9337 {0x2A, 0x11, 0x11, 0, 0},
9338 {0x2B, 0x90, 0x90, 0, 0},
9339 {0x2C, 0, 0, 0, 0},
9340 {0x2D, 0x88, 0x88, 0, 0},
9341 {0x2E, 0x32, 0x32, 0, 0},
9342 {0x2F, 0x77, 0x77, 0, 0},
9343 {0x30, 0x17, 0x17, 1, 1},
9344 {0x31, 0xff, 0xff, 1, 1},
9345 {0x32, 0x20, 0x20, 0, 0},
9346 {0x33, 0, 0, 0, 0},
9347 {0x34, 0x88, 0x88, 0, 0},
9348 {0x35, 0x32, 0x32, 0, 0},
9349 {0x36, 0x77, 0x77, 0, 0},
9350 {0x37, 0x17, 0x17, 1, 1},
9351 {0x38, 0xf0, 0xf0, 1, 1},
9352 {0x39, 0x20, 0x20, 0, 0},
9353 {0x3A, 0x8, 0x8, 0, 0},
9354 {0x3B, 0x55, 0x55, 1, 1},
9355 {0x3C, 0, 0, 0, 0},
9356 {0x3D, 0x88, 0x88, 1, 1},
9357 {0x3E, 0, 0, 0, 0},
9358 {0x3F, 0, 0, 1, 1},
9359 {0x40, 0x7, 0x7, 1, 1},
9360 {0x41, 0x6, 0x6, 0, 0},
9361 {0x42, 0x4, 0x4, 0, 0},
9362 {0x43, 0, 0, 0, 0},
9363 {0x44, 0x8, 0x8, 0, 0},
9364 {0x45, 0x55, 0x55, 1, 1},
9365 {0x46, 0, 0, 0, 0},
9366 {0x47, 0x11, 0x11, 0, 0},
9367 {0x48, 0, 0, 0, 0},
9368 {0x49, 0, 0, 1, 1},
9369 {0x4A, 0x7, 0x7, 0, 0},
9370 {0x4B, 0x6, 0x6, 0, 0},
9371 {0x4C, 0x4, 0x4, 0, 0},
9372 {0x4D, 0, 0, 0, 0},
9373 {0x4E, 0, 0, 0, 0},
9374 {0x4F, 0x26, 0x26, 1, 1},
9375 {0x50, 0x26, 0x26, 1, 1},
9376 {0x51, 0xf, 0xf, 1, 1},
9377 {0x52, 0xf, 0xf, 1, 1},
9378 {0x53, 0x44, 0x44, 0, 0},
9379 {0x54, 0, 0, 0, 0},
9380 {0x55, 0, 0, 0, 0},
9381 {0x56, 0x8, 0x8, 0, 0},
9382 {0x57, 0x8, 0x8, 0, 0},
9383 {0x58, 0x7, 0x7, 0, 0},
9384 {0x59, 0x22, 0x22, 0, 0},
9385 {0x5A, 0x22, 0x22, 0, 0},
9386 {0x5B, 0x2, 0x2, 0, 0},
9387 {0x5C, 0x4, 0x4, 1, 1},
9388 {0x5D, 0x7, 0x7, 0, 0},
9389 {0x5E, 0x55, 0x55, 0, 0},
9390 {0x5F, 0x23, 0x23, 0, 0},
9391 {0x60, 0x41, 0x41, 0, 0},
9392 {0x61, 0x1, 0x1, 0, 0},
9393 {0x62, 0xa, 0xa, 0, 0},
9394 {0x63, 0, 0, 0, 0},
9395 {0x64, 0, 0, 0, 0},
9396 {0x65, 0, 0, 0, 0},
9397 {0x66, 0, 0, 0, 0},
9398 {0x67, 0, 0, 0, 0},
9399 {0x68, 0, 0, 0, 0},
9400 {0x69, 0, 0, 0, 0},
9401 {0x6A, 0, 0, 0, 0},
9402 {0x6B, 0xc, 0xc, 0, 0},
9403 {0x6C, 0, 0, 0, 0},
9404 {0x6D, 0, 0, 0, 0},
9405 {0x6E, 0, 0, 0, 0},
9406 {0x6F, 0, 0, 0, 0},
9407 {0x70, 0, 0, 0, 0},
9408 {0x71, 0, 0, 0, 0},
9409 {0x72, 0x22, 0x22, 0, 0},
9410 {0x73, 0x22, 0x22, 0, 0},
9411 {0x74, 0, 0, 1, 1},
9412 {0x75, 0xa, 0xa, 0, 0},
9413 {0x76, 0x1, 0x1, 0, 0},
9414 {0x77, 0x22, 0x22, 0, 0},
9415 {0x78, 0x30, 0x30, 0, 0},
9416 {0x79, 0, 0, 0, 0},
9417 {0x7A, 0, 0, 0, 0},
9418 {0x7B, 0, 0, 0, 0},
9419 {0x7C, 0, 0, 0, 0},
9420 {0x7D, 0, 0, 0, 0},
9421 {0x7E, 0, 0, 0, 0},
9422 {0x7F, 0, 0, 0, 0},
9423 {0x80, 0, 0, 0, 0},
9424 {0x81, 0, 0, 0, 0},
9425 {0x82, 0, 0, 0, 0},
9426 {0x83, 0, 0, 0, 0},
9427 {0x84, 0, 0, 0, 0},
9428 {0x85, 0, 0, 0, 0},
9429 {0x86, 0, 0, 0, 0},
9430 {0x87, 0, 0, 0, 0},
9431 {0x88, 0, 0, 0, 0},
9432 {0x89, 0, 0, 0, 0},
9433 {0x8A, 0, 0, 0, 0},
9434 {0x8B, 0, 0, 0, 0},
9435 {0x8C, 0, 0, 0, 0},
9436 {0x8D, 0, 0, 0, 0},
9437 {0x8E, 0, 0, 0, 0},
9438 {0x8F, 0, 0, 0, 0},
9439 {0x90, 0, 0, 0, 0},
9440 {0x91, 0, 0, 0, 0},
9441 {0x92, 0, 0, 0, 0},
9442 {0x93, 0, 0, 0, 0},
9443 {0x94, 0, 0, 0, 0},
9444 {0xFFFF, 0, 0, 0, 0}
9447 struct radio_regs regs_SYN_2056_rev6[] = {
9448 {0x02, 0, 0, 0, 0},
9449 {0x03, 0, 0, 0, 0},
9450 {0x04, 0, 0, 0, 0},
9451 {0x05, 0, 0, 0, 0},
9452 {0x06, 0, 0, 0, 0},
9453 {0x07, 0, 0, 0, 0},
9454 {0x08, 0, 0, 0, 0},
9455 {0x09, 0x1, 0x1, 0, 0},
9456 {0x0A, 0, 0, 0, 0},
9457 {0x0B, 0, 0, 0, 0},
9458 {0x0C, 0, 0, 0, 0},
9459 {0x0D, 0, 0, 0, 0},
9460 {0x0E, 0, 0, 0, 0},
9461 {0x0F, 0, 0, 0, 0},
9462 {0x10, 0, 0, 0, 0},
9463 {0x11, 0, 0, 0, 0},
9464 {0x12, 0, 0, 0, 0},
9465 {0x13, 0, 0, 0, 0},
9466 {0x14, 0, 0, 0, 0},
9467 {0x15, 0, 0, 0, 0},
9468 {0x16, 0, 0, 0, 0},
9469 {0x17, 0, 0, 0, 0},
9470 {0x18, 0, 0, 0, 0},
9471 {0x19, 0, 0, 0, 0},
9472 {0x1A, 0, 0, 0, 0},
9473 {0x1B, 0, 0, 0, 0},
9474 {0x1C, 0, 0, 0, 0},
9475 {0x1D, 0, 0, 0, 0},
9476 {0x1E, 0, 0, 0, 0},
9477 {0x1F, 0, 0, 0, 0},
9478 {0x20, 0, 0, 0, 0},
9479 {0x21, 0, 0, 0, 0},
9480 {0x22, 0x60, 0x60, 0, 0},
9481 {0x23, 0x6, 0x6, 0, 0},
9482 {0x24, 0xc, 0xc, 0, 0},
9483 {0x25, 0, 0, 0, 0},
9484 {0x26, 0, 0, 0, 0},
9485 {0x27, 0, 0, 0, 0},
9486 {0x28, 0x1, 0x1, 0, 0},
9487 {0x29, 0, 0, 0, 0},
9488 {0x2A, 0, 0, 0, 0},
9489 {0x2B, 0, 0, 0, 0},
9490 {0x2C, 0, 0, 0, 0},
9491 {0x2D, 0, 0, 0, 0},
9492 {0x2E, 0, 0, 0, 0},
9493 {0x2F, 0x1f, 0x1f, 0, 0},
9494 {0x30, 0x15, 0x15, 0, 0},
9495 {0x31, 0xf, 0xf, 0, 0},
9496 {0x32, 0, 0, 0, 0},
9497 {0x33, 0, 0, 0, 0},
9498 {0x34, 0, 0, 0, 0},
9499 {0x35, 0, 0, 0, 0},
9500 {0x36, 0, 0, 0, 0},
9501 {0x37, 0, 0, 0, 0},
9502 {0x38, 0, 0, 0, 0},
9503 {0x39, 0, 0, 0, 0},
9504 {0x3A, 0, 0, 0, 0},
9505 {0x3B, 0, 0, 0, 0},
9506 {0x3C, 0x13, 0x13, 0, 0},
9507 {0x3D, 0xf, 0xf, 0, 0},
9508 {0x3E, 0x18, 0x18, 0, 0},
9509 {0x3F, 0, 0, 0, 0},
9510 {0x40, 0, 0, 0, 0},
9511 {0x41, 0x20, 0x20, 0, 0},
9512 {0x42, 0x20, 0x20, 0, 0},
9513 {0x43, 0, 0, 0, 0},
9514 {0x44, 0x77, 0x77, 0, 0},
9515 {0x45, 0x7, 0x7, 0, 0},
9516 {0x46, 0x1, 0x1, 0, 0},
9517 {0x47, 0x4, 0x4, 0, 0},
9518 {0x48, 0xf, 0xf, 0, 0},
9519 {0x49, 0x30, 0x30, 0, 0},
9520 {0x4A, 0x32, 0x32, 0, 0},
9521 {0x4B, 0xd, 0xd, 0, 0},
9522 {0x4C, 0xd, 0xd, 0, 0},
9523 {0x4D, 0x4, 0x4, 0, 0},
9524 {0x4E, 0x6, 0x6, 0, 0},
9525 {0x4F, 0x1, 0x1, 0, 0},
9526 {0x50, 0x1c, 0x1c, 0, 0},
9527 {0x51, 0x2, 0x2, 0, 0},
9528 {0x52, 0x2, 0x2, 0, 0},
9529 {0x53, 0xf7, 0xf7, 1, 1},
9530 {0x54, 0xb4, 0xb4, 0, 0},
9531 {0x55, 0xd2, 0xd2, 0, 0},
9532 {0x56, 0, 0, 0, 0},
9533 {0x57, 0, 0, 0, 0},
9534 {0x58, 0x4, 0x4, 0, 0},
9535 {0x59, 0x96, 0x96, 0, 0},
9536 {0x5A, 0x3e, 0x3e, 0, 0},
9537 {0x5B, 0x3e, 0x3e, 0, 0},
9538 {0x5C, 0x13, 0x13, 0, 0},
9539 {0x5D, 0x2, 0x2, 0, 0},
9540 {0x5E, 0, 0, 0, 0},
9541 {0x5F, 0x7, 0x7, 0, 0},
9542 {0x60, 0x7, 0x7, 1, 1},
9543 {0x61, 0x8, 0x8, 0, 0},
9544 {0x62, 0x3, 0x3, 0, 0},
9545 {0x63, 0, 0, 0, 0},
9546 {0x64, 0, 0, 0, 0},
9547 {0x65, 0, 0, 0, 0},
9548 {0x66, 0, 0, 0, 0},
9549 {0x67, 0, 0, 0, 0},
9550 {0x68, 0x40, 0x40, 0, 0},
9551 {0x69, 0, 0, 0, 0},
9552 {0x6A, 0, 0, 0, 0},
9553 {0x6B, 0, 0, 0, 0},
9554 {0x6C, 0, 0, 0, 0},
9555 {0x6D, 0x1, 0x1, 0, 0},
9556 {0x6E, 0, 0, 0, 0},
9557 {0x6F, 0, 0, 0, 0},
9558 {0x70, 0x60, 0x60, 0, 0},
9559 {0x71, 0x66, 0x66, 0, 0},
9560 {0x72, 0xc, 0xc, 0, 0},
9561 {0x73, 0x66, 0x66, 0, 0},
9562 {0x74, 0x8f, 0x8f, 1, 1},
9563 {0x75, 0, 0, 0, 0},
9564 {0x76, 0xcc, 0xcc, 0, 0},
9565 {0x77, 0x1, 0x1, 0, 0},
9566 {0x78, 0x66, 0x66, 0, 0},
9567 {0x79, 0x66, 0x66, 0, 0},
9568 {0x7A, 0, 0, 0, 0},
9569 {0x7B, 0, 0, 0, 0},
9570 {0x7C, 0, 0, 0, 0},
9571 {0x7D, 0, 0, 0, 0},
9572 {0x7E, 0, 0, 0, 0},
9573 {0x7F, 0, 0, 0, 0},
9574 {0x80, 0, 0, 0, 0},
9575 {0x81, 0, 0, 0, 0},
9576 {0x82, 0, 0, 0, 0},
9577 {0x83, 0, 0, 0, 0},
9578 {0x84, 0, 0, 0, 0},
9579 {0x85, 0xff, 0xff, 0, 0},
9580 {0x86, 0, 0, 0, 0},
9581 {0x87, 0, 0, 0, 0},
9582 {0x88, 0, 0, 0, 0},
9583 {0x89, 0, 0, 0, 0},
9584 {0x8A, 0, 0, 0, 0},
9585 {0x8B, 0, 0, 0, 0},
9586 {0x8C, 0, 0, 0, 0},
9587 {0x8D, 0, 0, 0, 0},
9588 {0x8E, 0, 0, 0, 0},
9589 {0x8F, 0, 0, 0, 0},
9590 {0x90, 0, 0, 0, 0},
9591 {0x91, 0, 0, 0, 0},
9592 {0x92, 0, 0, 0, 0},
9593 {0x93, 0, 0, 0, 0},
9594 {0x94, 0, 0, 0, 0},
9595 {0x95, 0, 0, 0, 0},
9596 {0x96, 0, 0, 0, 0},
9597 {0x97, 0, 0, 0, 0},
9598 {0x98, 0, 0, 0, 0},
9599 {0x99, 0, 0, 0, 0},
9600 {0x9A, 0, 0, 0, 0},
9601 {0x9B, 0, 0, 0, 0},
9602 {0x9C, 0, 0, 0, 0},
9603 {0x9D, 0, 0, 0, 0},
9604 {0x9E, 0, 0, 0, 0},
9605 {0x9F, 0x6, 0x6, 0, 0},
9606 {0xA0, 0x66, 0x66, 0, 0},
9607 {0xA1, 0x66, 0x66, 0, 0},
9608 {0xA2, 0x66, 0x66, 0, 0},
9609 {0xA3, 0x66, 0x66, 0, 0},
9610 {0xA4, 0x66, 0x66, 0, 0},
9611 {0xA5, 0x66, 0x66, 0, 0},
9612 {0xA6, 0x66, 0x66, 0, 0},
9613 {0xA7, 0x66, 0x66, 0, 0},
9614 {0xA8, 0x66, 0x66, 0, 0},
9615 {0xA9, 0x66, 0x66, 0, 0},
9616 {0xAA, 0x66, 0x66, 0, 0},
9617 {0xAB, 0x66, 0x66, 0, 0},
9618 {0xAC, 0x66, 0x66, 0, 0},
9619 {0xAD, 0x66, 0x66, 0, 0},
9620 {0xAE, 0x66, 0x66, 0, 0},
9621 {0xAF, 0x66, 0x66, 0, 0},
9622 {0xB0, 0x66, 0x66, 0, 0},
9623 {0xB1, 0x66, 0x66, 0, 0},
9624 {0xB2, 0x66, 0x66, 0, 0},
9625 {0xB3, 0xa, 0xa, 0, 0},
9626 {0xB4, 0, 0, 0, 0},
9627 {0xB5, 0, 0, 0, 0},
9628 {0xB6, 0, 0, 0, 0},
9629 {0xFFFF, 0, 0, 0, 0}
9632 struct radio_regs regs_TX_2056_rev6[] = {
9633 {0x02, 0, 0, 0, 0},
9634 {0x03, 0, 0, 0, 0},
9635 {0x04, 0, 0, 0, 0},
9636 {0x05, 0, 0, 0, 0},
9637 {0x06, 0, 0, 0, 0},
9638 {0x07, 0, 0, 0, 0},
9639 {0x08, 0, 0, 0, 0},
9640 {0x09, 0, 0, 0, 0},
9641 {0x0A, 0, 0, 0, 0},
9642 {0x0B, 0, 0, 0, 0},
9643 {0x0C, 0, 0, 0, 0},
9644 {0x0D, 0, 0, 0, 0},
9645 {0x0E, 0, 0, 0, 0},
9646 {0x0F, 0, 0, 0, 0},
9647 {0x10, 0, 0, 0, 0},
9648 {0x11, 0, 0, 0, 0},
9649 {0x12, 0, 0, 0, 0},
9650 {0x13, 0, 0, 0, 0},
9651 {0x14, 0, 0, 0, 0},
9652 {0x15, 0, 0, 0, 0},
9653 {0x16, 0, 0, 0, 0},
9654 {0x17, 0, 0, 0, 0},
9655 {0x18, 0, 0, 0, 0},
9656 {0x19, 0, 0, 0, 0},
9657 {0x1A, 0, 0, 0, 0},
9658 {0x1B, 0, 0, 0, 0},
9659 {0x1C, 0, 0, 0, 0},
9660 {0x1D, 0, 0, 0, 0},
9661 {0x1E, 0, 0, 0, 0},
9662 {0x1F, 0, 0, 0, 0},
9663 {0x20, 0, 0, 0, 0},
9664 {0x21, 0x88, 0x88, 0, 0},
9665 {0x22, 0x88, 0x88, 0, 0},
9666 {0x23, 0x88, 0x88, 0, 0},
9667 {0x24, 0x88, 0x88, 0, 0},
9668 {0x25, 0xc, 0xc, 0, 0},
9669 {0x26, 0, 0, 0, 0},
9670 {0x27, 0x3, 0x3, 0, 0},
9671 {0x28, 0, 0, 0, 0},
9672 {0x29, 0x3, 0x3, 0, 0},
9673 {0x2A, 0x37, 0x37, 0, 0},
9674 {0x2B, 0x3, 0x3, 0, 0},
9675 {0x2C, 0, 0, 0, 0},
9676 {0x2D, 0, 0, 0, 0},
9677 {0x2E, 0x1, 0x1, 0, 0},
9678 {0x2F, 0x1, 0x1, 0, 0},
9679 {0x30, 0, 0, 0, 0},
9680 {0x31, 0, 0, 0, 0},
9681 {0x32, 0, 0, 0, 0},
9682 {0x33, 0x11, 0x11, 0, 0},
9683 {0x34, 0xee, 0xee, 1, 1},
9684 {0x35, 0, 0, 0, 0},
9685 {0x36, 0, 0, 0, 0},
9686 {0x37, 0x3, 0x3, 0, 0},
9687 {0x38, 0x50, 0x50, 1, 1},
9688 {0x39, 0, 0, 0, 0},
9689 {0x3A, 0x50, 0x50, 1, 1},
9690 {0x3B, 0, 0, 0, 0},
9691 {0x3C, 0x6e, 0x6e, 0, 0},
9692 {0x3D, 0xf0, 0xf0, 1, 1},
9693 {0x3E, 0, 0, 0, 0},
9694 {0x3F, 0, 0, 0, 0},
9695 {0x40, 0, 0, 0, 0},
9696 {0x41, 0x3, 0x3, 0, 0},
9697 {0x42, 0x3, 0x3, 0, 0},
9698 {0x43, 0, 0, 0, 0},
9699 {0x44, 0x1e, 0x1e, 0, 0},
9700 {0x45, 0, 0, 0, 0},
9701 {0x46, 0x6e, 0x6e, 0, 0},
9702 {0x47, 0xf0, 0xf0, 1, 1},
9703 {0x48, 0, 0, 0, 0},
9704 {0x49, 0x2, 0x2, 0, 0},
9705 {0x4A, 0xff, 0xff, 1, 1},
9706 {0x4B, 0xc, 0xc, 0, 0},
9707 {0x4C, 0, 0, 0, 0},
9708 {0x4D, 0x38, 0x38, 0, 0},
9709 {0x4E, 0x70, 0x70, 1, 1},
9710 {0x4F, 0x2, 0x2, 0, 0},
9711 {0x50, 0x88, 0x88, 0, 0},
9712 {0x51, 0xc, 0xc, 0, 0},
9713 {0x52, 0, 0, 0, 0},
9714 {0x53, 0x8, 0x8, 0, 0},
9715 {0x54, 0x70, 0x70, 1, 1},
9716 {0x55, 0x2, 0x2, 0, 0},
9717 {0x56, 0xff, 0xff, 1, 1},
9718 {0x57, 0, 0, 0, 0},
9719 {0x58, 0x83, 0x83, 0, 0},
9720 {0x59, 0x77, 0x77, 1, 1},
9721 {0x5A, 0, 0, 0, 0},
9722 {0x5B, 0x2, 0x2, 0, 0},
9723 {0x5C, 0x88, 0x88, 0, 0},
9724 {0x5D, 0, 0, 0, 0},
9725 {0x5E, 0x8, 0x8, 0, 0},
9726 {0x5F, 0x77, 0x77, 1, 1},
9727 {0x60, 0x1, 0x1, 0, 0},
9728 {0x61, 0, 0, 0, 0},
9729 {0x62, 0x7, 0x7, 0, 0},
9730 {0x63, 0, 0, 0, 0},
9731 {0x64, 0x7, 0x7, 0, 0},
9732 {0x65, 0, 0, 0, 0},
9733 {0x66, 0, 0, 0, 0},
9734 {0x67, 0, 0, 1, 1},
9735 {0x68, 0, 0, 0, 0},
9736 {0x69, 0xa, 0xa, 0, 0},
9737 {0x6A, 0, 0, 0, 0},
9738 {0x6B, 0, 0, 0, 0},
9739 {0x6C, 0, 0, 0, 0},
9740 {0x6D, 0, 0, 0, 0},
9741 {0x6E, 0, 0, 0, 0},
9742 {0x6F, 0, 0, 0, 0},
9743 {0x70, 0, 0, 0, 0},
9744 {0x71, 0x2, 0x2, 0, 0},
9745 {0x72, 0, 0, 0, 0},
9746 {0x73, 0, 0, 0, 0},
9747 {0x74, 0xe, 0xe, 0, 0},
9748 {0x75, 0xe, 0xe, 0, 0},
9749 {0x76, 0xe, 0xe, 0, 0},
9750 {0x77, 0x13, 0x13, 0, 0},
9751 {0x78, 0x13, 0x13, 0, 0},
9752 {0x79, 0x1b, 0x1b, 0, 0},
9753 {0x7A, 0x1b, 0x1b, 0, 0},
9754 {0x7B, 0x55, 0x55, 0, 0},
9755 {0x7C, 0x5b, 0x5b, 0, 0},
9756 {0x7D, 0x30, 0x30, 1, 1},
9757 {0x7E, 0, 0, 0, 0},
9758 {0x7F, 0, 0, 0, 0},
9759 {0x80, 0, 0, 0, 0},
9760 {0x81, 0, 0, 0, 0},
9761 {0x82, 0, 0, 0, 0},
9762 {0x83, 0, 0, 0, 0},
9763 {0x84, 0, 0, 0, 0},
9764 {0x85, 0, 0, 0, 0},
9765 {0x86, 0, 0, 0, 0},
9766 {0x87, 0, 0, 0, 0},
9767 {0x88, 0, 0, 0, 0},
9768 {0x89, 0, 0, 0, 0},
9769 {0x8A, 0, 0, 0, 0},
9770 {0x8B, 0, 0, 0, 0},
9771 {0x8C, 0, 0, 0, 0},
9772 {0x8D, 0, 0, 0, 0},
9773 {0x8E, 0, 0, 0, 0},
9774 {0x8F, 0, 0, 0, 0},
9775 {0x90, 0, 0, 0, 0},
9776 {0x91, 0, 0, 0, 0},
9777 {0x92, 0, 0, 0, 0},
9778 {0x93, 0x70, 0x70, 0, 0},
9779 {0x94, 0x70, 0x70, 0, 0},
9780 {0x95, 0x70, 0x70, 0, 0},
9781 {0x96, 0x70, 0x70, 0, 0},
9782 {0x97, 0x70, 0x70, 0, 0},
9783 {0x98, 0x70, 0x70, 0, 0},
9784 {0x99, 0x70, 0x70, 0, 0},
9785 {0x9A, 0x70, 0x70, 0, 0},
9786 {0xFFFF, 0, 0, 0, 0}
9789 struct radio_regs regs_RX_2056_rev6[] = {
9790 {0x02, 0, 0, 0, 0},
9791 {0x03, 0, 0, 0, 0},
9792 {0x04, 0, 0, 0, 0},
9793 {0x05, 0, 0, 0, 0},
9794 {0x06, 0, 0, 0, 0},
9795 {0x07, 0, 0, 0, 0},
9796 {0x08, 0, 0, 0, 0},
9797 {0x09, 0, 0, 0, 0},
9798 {0x0A, 0, 0, 0, 0},
9799 {0x0B, 0, 0, 0, 0},
9800 {0x0C, 0, 0, 0, 0},
9801 {0x0D, 0, 0, 0, 0},
9802 {0x0E, 0, 0, 0, 0},
9803 {0x0F, 0, 0, 0, 0},
9804 {0x10, 0, 0, 0, 0},
9805 {0x11, 0, 0, 0, 0},
9806 {0x12, 0, 0, 0, 0},
9807 {0x13, 0, 0, 0, 0},
9808 {0x14, 0, 0, 0, 0},
9809 {0x15, 0, 0, 0, 0},
9810 {0x16, 0, 0, 0, 0},
9811 {0x17, 0, 0, 0, 0},
9812 {0x18, 0, 0, 0, 0},
9813 {0x19, 0, 0, 0, 0},
9814 {0x1A, 0, 0, 0, 0},
9815 {0x1B, 0, 0, 0, 0},
9816 {0x1C, 0, 0, 0, 0},
9817 {0x1D, 0, 0, 0, 0},
9818 {0x1E, 0, 0, 0, 0},
9819 {0x1F, 0, 0, 0, 0},
9820 {0x20, 0x3, 0x3, 0, 0},
9821 {0x21, 0, 0, 0, 0},
9822 {0x22, 0, 0, 0, 0},
9823 {0x23, 0x90, 0x90, 0, 0},
9824 {0x24, 0x55, 0x55, 0, 0},
9825 {0x25, 0x15, 0x15, 0, 0},
9826 {0x26, 0x5, 0x5, 0, 0},
9827 {0x27, 0x15, 0x15, 0, 0},
9828 {0x28, 0x5, 0x5, 0, 0},
9829 {0x29, 0x20, 0x20, 0, 0},
9830 {0x2A, 0x11, 0x11, 0, 0},
9831 {0x2B, 0x90, 0x90, 0, 0},
9832 {0x2C, 0, 0, 0, 0},
9833 {0x2D, 0x88, 0x88, 0, 0},
9834 {0x2E, 0x32, 0x32, 0, 0},
9835 {0x2F, 0x77, 0x77, 0, 0},
9836 {0x30, 0x17, 0x17, 1, 1},
9837 {0x31, 0xff, 0xff, 1, 1},
9838 {0x32, 0x20, 0x20, 0, 0},
9839 {0x33, 0, 0, 0, 0},
9840 {0x34, 0x88, 0x88, 0, 0},
9841 {0x35, 0x32, 0x32, 0, 0},
9842 {0x36, 0x77, 0x77, 0, 0},
9843 {0x37, 0x17, 0x17, 1, 1},
9844 {0x38, 0xf0, 0xf0, 1, 1},
9845 {0x39, 0x20, 0x20, 0, 0},
9846 {0x3A, 0x8, 0x8, 0, 0},
9847 {0x3B, 0x55, 0x55, 1, 1},
9848 {0x3C, 0, 0, 0, 0},
9849 {0x3D, 0x88, 0x88, 1, 1},
9850 {0x3E, 0, 0, 0, 0},
9851 {0x3F, 0x44, 0x44, 0, 0},
9852 {0x40, 0x7, 0x7, 1, 1},
9853 {0x41, 0x6, 0x6, 0, 0},
9854 {0x42, 0x4, 0x4, 0, 0},
9855 {0x43, 0, 0, 0, 0},
9856 {0x44, 0x8, 0x8, 0, 0},
9857 {0x45, 0x55, 0x55, 1, 1},
9858 {0x46, 0, 0, 0, 0},
9859 {0x47, 0x11, 0x11, 0, 0},
9860 {0x48, 0, 0, 0, 0},
9861 {0x49, 0x44, 0x44, 0, 0},
9862 {0x4A, 0x7, 0x7, 0, 0},
9863 {0x4B, 0x6, 0x6, 0, 0},
9864 {0x4C, 0x4, 0x4, 0, 0},
9865 {0x4D, 0, 0, 0, 0},
9866 {0x4E, 0, 0, 0, 0},
9867 {0x4F, 0x26, 0x26, 1, 1},
9868 {0x50, 0x26, 0x26, 1, 1},
9869 {0x51, 0xf, 0xf, 1, 1},
9870 {0x52, 0xf, 0xf, 1, 1},
9871 {0x53, 0x44, 0x44, 0, 0},
9872 {0x54, 0, 0, 0, 0},
9873 {0x55, 0, 0, 0, 0},
9874 {0x56, 0x8, 0x8, 0, 0},
9875 {0x57, 0x8, 0x8, 0, 0},
9876 {0x58, 0x7, 0x7, 0, 0},
9877 {0x59, 0x22, 0x22, 0, 0},
9878 {0x5A, 0x22, 0x22, 0, 0},
9879 {0x5B, 0x2, 0x2, 0, 0},
9880 {0x5C, 0x4, 0x4, 1, 1},
9881 {0x5D, 0x7, 0x7, 0, 0},
9882 {0x5E, 0x55, 0x55, 0, 0},
9883 {0x5F, 0x23, 0x23, 0, 0},
9884 {0x60, 0x41, 0x41, 0, 0},
9885 {0x61, 0x1, 0x1, 0, 0},
9886 {0x62, 0xa, 0xa, 0, 0},
9887 {0x63, 0, 0, 0, 0},
9888 {0x64, 0, 0, 0, 0},
9889 {0x65, 0, 0, 0, 0},
9890 {0x66, 0, 0, 0, 0},
9891 {0x67, 0, 0, 0, 0},
9892 {0x68, 0, 0, 0, 0},
9893 {0x69, 0, 0, 0, 0},
9894 {0x6A, 0, 0, 0, 0},
9895 {0x6B, 0xc, 0xc, 0, 0},
9896 {0x6C, 0, 0, 0, 0},
9897 {0x6D, 0, 0, 0, 0},
9898 {0x6E, 0, 0, 0, 0},
9899 {0x6F, 0, 0, 0, 0},
9900 {0x70, 0, 0, 0, 0},
9901 {0x71, 0, 0, 0, 0},
9902 {0x72, 0x22, 0x22, 0, 0},
9903 {0x73, 0x22, 0x22, 0, 0},
9904 {0x74, 0, 0, 1, 1},
9905 {0x75, 0xa, 0xa, 0, 0},
9906 {0x76, 0x1, 0x1, 0, 0},
9907 {0x77, 0x22, 0x22, 0, 0},
9908 {0x78, 0x30, 0x30, 0, 0},
9909 {0x79, 0, 0, 0, 0},
9910 {0x7A, 0, 0, 0, 0},
9911 {0x7B, 0, 0, 0, 0},
9912 {0x7C, 0, 0, 0, 0},
9913 {0x7D, 0x5, 0x5, 1, 1},
9914 {0x7E, 0, 0, 0, 0},
9915 {0x7F, 0, 0, 0, 0},
9916 {0x80, 0, 0, 0, 0},
9917 {0x81, 0, 0, 0, 0},
9918 {0x82, 0, 0, 0, 0},
9919 {0x83, 0, 0, 0, 0},
9920 {0x84, 0, 0, 0, 0},
9921 {0x85, 0, 0, 0, 0},
9922 {0x86, 0, 0, 0, 0},
9923 {0x87, 0, 0, 0, 0},
9924 {0x88, 0, 0, 0, 0},
9925 {0x89, 0, 0, 0, 0},
9926 {0x8A, 0, 0, 0, 0},
9927 {0x8B, 0, 0, 0, 0},
9928 {0x8C, 0, 0, 0, 0},
9929 {0x8D, 0, 0, 0, 0},
9930 {0x8E, 0, 0, 0, 0},
9931 {0x8F, 0, 0, 0, 0},
9932 {0x90, 0, 0, 0, 0},
9933 {0x91, 0, 0, 0, 0},
9934 {0x92, 0, 0, 0, 0},
9935 {0x93, 0, 0, 0, 0},
9936 {0x94, 0, 0, 0, 0},
9937 {0xFFFF, 0, 0, 0, 0}
9940 struct radio_regs regs_SYN_2056_rev7[] = {
9941 {0x02, 0, 0, 0, 0},
9942 {0x03, 0, 0, 0, 0},
9943 {0x04, 0, 0, 0, 0},
9944 {0x05, 0, 0, 0, 0},
9945 {0x06, 0, 0, 0, 0},
9946 {0x07, 0, 0, 0, 0},
9947 {0x08, 0, 0, 0, 0},
9948 {0x09, 0x1, 0x1, 0, 0},
9949 {0x0A, 0, 0, 0, 0},
9950 {0x0B, 0, 0, 0, 0},
9951 {0x0C, 0, 0, 0, 0},
9952 {0x0D, 0, 0, 0, 0},
9953 {0x0E, 0, 0, 0, 0},
9954 {0x0F, 0, 0, 0, 0},
9955 {0x10, 0, 0, 0, 0},
9956 {0x11, 0, 0, 0, 0},
9957 {0x12, 0, 0, 0, 0},
9958 {0x13, 0, 0, 0, 0},
9959 {0x14, 0, 0, 0, 0},
9960 {0x15, 0, 0, 0, 0},
9961 {0x16, 0, 0, 0, 0},
9962 {0x17, 0, 0, 0, 0},
9963 {0x18, 0, 0, 0, 0},
9964 {0x19, 0, 0, 0, 0},
9965 {0x1A, 0, 0, 0, 0},
9966 {0x1B, 0, 0, 0, 0},
9967 {0x1C, 0, 0, 0, 0},
9968 {0x1D, 0, 0, 0, 0},
9969 {0x1E, 0, 0, 0, 0},
9970 {0x1F, 0, 0, 0, 0},
9971 {0x20, 0, 0, 0, 0},
9972 {0x21, 0, 0, 0, 0},
9973 {0x22, 0x60, 0x60, 0, 0},
9974 {0x23, 0x6, 0x6, 0, 0},
9975 {0x24, 0xc, 0xc, 0, 0},
9976 {0x25, 0, 0, 0, 0},
9977 {0x26, 0, 0, 0, 0},
9978 {0x27, 0, 0, 0, 0},
9979 {0x28, 0x1, 0x1, 0, 0},
9980 {0x29, 0, 0, 0, 0},
9981 {0x2A, 0, 0, 0, 0},
9982 {0x2B, 0, 0, 0, 0},
9983 {0x2C, 0, 0, 0, 0},
9984 {0x2D, 0, 0, 0, 0},
9985 {0x2E, 0, 0, 0, 0},
9986 {0x2F, 0x1f, 0x1f, 0, 0},
9987 {0x30, 0x15, 0x15, 0, 0},
9988 {0x31, 0xf, 0xf, 0, 0},
9989 {0x32, 0, 0, 0, 0},
9990 {0x33, 0, 0, 0, 0},
9991 {0x34, 0, 0, 0, 0},
9992 {0x35, 0, 0, 0, 0},
9993 {0x36, 0, 0, 0, 0},
9994 {0x37, 0, 0, 0, 0},
9995 {0x38, 0, 0, 0, 0},
9996 {0x39, 0, 0, 0, 0},
9997 {0x3A, 0, 0, 0, 0},
9998 {0x3B, 0, 0, 0, 0},
9999 {0x3C, 0x13, 0x13, 0, 0},
10000 {0x3D, 0xf, 0xf, 0, 0},
10001 {0x3E, 0x18, 0x18, 0, 0},
10002 {0x3F, 0, 0, 0, 0},
10003 {0x40, 0, 0, 0, 0},
10004 {0x41, 0x20, 0x20, 0, 0},
10005 {0x42, 0x20, 0x20, 0, 0},
10006 {0x43, 0, 0, 0, 0},
10007 {0x44, 0x77, 0x77, 0, 0},
10008 {0x45, 0x7, 0x7, 0, 0},
10009 {0x46, 0x1, 0x1, 0, 0},
10010 {0x47, 0x4, 0x4, 0, 0},
10011 {0x48, 0xf, 0xf, 0, 0},
10012 {0x49, 0x30, 0x30, 0, 0},
10013 {0x4A, 0x32, 0x32, 0, 0},
10014 {0x4B, 0xd, 0xd, 0, 0},
10015 {0x4C, 0xd, 0xd, 0, 0},
10016 {0x4D, 0x4, 0x4, 0, 0},
10017 {0x4E, 0x6, 0x6, 0, 0},
10018 {0x4F, 0x1, 0x1, 0, 0},
10019 {0x50, 0x1c, 0x1c, 0, 0},
10020 {0x51, 0x2, 0x2, 0, 0},
10021 {0x52, 0x2, 0x2, 0, 0},
10022 {0x53, 0xf7, 0xf7, 1, 1},
10023 {0x54, 0xb4, 0xb4, 0, 0},
10024 {0x55, 0xd2, 0xd2, 0, 0},
10025 {0x56, 0, 0, 0, 0},
10026 {0x57, 0, 0, 0, 0},
10027 {0x58, 0x4, 0x4, 0, 0},
10028 {0x59, 0x96, 0x96, 0, 0},
10029 {0x5A, 0x3e, 0x3e, 0, 0},
10030 {0x5B, 0x3e, 0x3e, 0, 0},
10031 {0x5C, 0x13, 0x13, 0, 0},
10032 {0x5D, 0x2, 0x2, 0, 0},
10033 {0x5E, 0, 0, 0, 0},
10034 {0x5F, 0x7, 0x7, 0, 0},
10035 {0x60, 0x7, 0x7, 1, 1},
10036 {0x61, 0x8, 0x8, 0, 0},
10037 {0x62, 0x3, 0x3, 0, 0},
10038 {0x63, 0, 0, 0, 0},
10039 {0x64, 0, 0, 0, 0},
10040 {0x65, 0, 0, 0, 0},
10041 {0x66, 0, 0, 0, 0},
10042 {0x67, 0, 0, 0, 0},
10043 {0x68, 0x40, 0x40, 0, 0},
10044 {0x69, 0, 0, 0, 0},
10045 {0x6A, 0, 0, 0, 0},
10046 {0x6B, 0, 0, 0, 0},
10047 {0x6C, 0, 0, 0, 0},
10048 {0x6D, 0x1, 0x1, 0, 0},
10049 {0x6E, 0, 0, 0, 0},
10050 {0x6F, 0, 0, 0, 0},
10051 {0x70, 0x60, 0x60, 0, 0},
10052 {0x71, 0x66, 0x66, 0, 0},
10053 {0x72, 0xc, 0xc, 0, 0},
10054 {0x73, 0x66, 0x66, 0, 0},
10055 {0x74, 0x8f, 0x8f, 1, 1},
10056 {0x75, 0, 0, 0, 0},
10057 {0x76, 0xcc, 0xcc, 0, 0},
10058 {0x77, 0x1, 0x1, 0, 0},
10059 {0x78, 0x66, 0x66, 0, 0},
10060 {0x79, 0x66, 0x66, 0, 0},
10061 {0x7A, 0, 0, 0, 0},
10062 {0x7B, 0, 0, 0, 0},
10063 {0x7C, 0, 0, 0, 0},
10064 {0x7D, 0, 0, 0, 0},
10065 {0x7E, 0, 0, 0, 0},
10066 {0x7F, 0, 0, 0, 0},
10067 {0x80, 0, 0, 0, 0},
10068 {0x81, 0, 0, 0, 0},
10069 {0x82, 0, 0, 0, 0},
10070 {0x83, 0, 0, 0, 0},
10071 {0x84, 0, 0, 0, 0},
10072 {0x85, 0xff, 0xff, 0, 0},
10073 {0x86, 0, 0, 0, 0},
10074 {0x87, 0, 0, 0, 0},
10075 {0x88, 0, 0, 0, 0},
10076 {0x89, 0, 0, 0, 0},
10077 {0x8A, 0, 0, 0, 0},
10078 {0x8B, 0, 0, 0, 0},
10079 {0x8C, 0, 0, 0, 0},
10080 {0x8D, 0, 0, 0, 0},
10081 {0x8E, 0, 0, 0, 0},
10082 {0x8F, 0, 0, 0, 0},
10083 {0x90, 0, 0, 0, 0},
10084 {0x91, 0, 0, 0, 0},
10085 {0x92, 0, 0, 0, 0},
10086 {0x93, 0, 0, 0, 0},
10087 {0x94, 0, 0, 0, 0},
10088 {0x95, 0, 0, 0, 0},
10089 {0x96, 0, 0, 0, 0},
10090 {0x97, 0, 0, 0, 0},
10091 {0x98, 0, 0, 0, 0},
10092 {0x99, 0, 0, 0, 0},
10093 {0x9A, 0, 0, 0, 0},
10094 {0x9B, 0, 0, 0, 0},
10095 {0x9C, 0, 0, 0, 0},
10096 {0x9D, 0, 0, 0, 0},
10097 {0x9E, 0, 0, 0, 0},
10098 {0x9F, 0x6, 0x6, 0, 0},
10099 {0xA0, 0x66, 0x66, 0, 0},
10100 {0xA1, 0x66, 0x66, 0, 0},
10101 {0xA2, 0x66, 0x66, 0, 0},
10102 {0xA3, 0x66, 0x66, 0, 0},
10103 {0xA4, 0x66, 0x66, 0, 0},
10104 {0xA5, 0x66, 0x66, 0, 0},
10105 {0xA6, 0x66, 0x66, 0, 0},
10106 {0xA7, 0x66, 0x66, 0, 0},
10107 {0xA8, 0x66, 0x66, 0, 0},
10108 {0xA9, 0x66, 0x66, 0, 0},
10109 {0xAA, 0x66, 0x66, 0, 0},
10110 {0xAB, 0x66, 0x66, 0, 0},
10111 {0xAC, 0x66, 0x66, 0, 0},
10112 {0xAD, 0x66, 0x66, 0, 0},
10113 {0xAE, 0x66, 0x66, 0, 0},
10114 {0xAF, 0x66, 0x66, 0, 0},
10115 {0xB0, 0x66, 0x66, 0, 0},
10116 {0xB1, 0x66, 0x66, 0, 0},
10117 {0xB2, 0x66, 0x66, 0, 0},
10118 {0xB3, 0xa, 0xa, 0, 0},
10119 {0xB4, 0, 0, 0, 0},
10120 {0xB5, 0, 0, 0, 0},
10121 {0xB6, 0, 0, 0, 0},
10122 {0xFFFF, 0, 0, 0, 0},
10125 struct radio_regs regs_TX_2056_rev7[] = {
10126 {0x02, 0, 0, 0, 0},
10127 {0x03, 0, 0, 0, 0},
10128 {0x04, 0, 0, 0, 0},
10129 {0x05, 0, 0, 0, 0},
10130 {0x06, 0, 0, 0, 0},
10131 {0x07, 0, 0, 0, 0},
10132 {0x08, 0, 0, 0, 0},
10133 {0x09, 0, 0, 0, 0},
10134 {0x0A, 0, 0, 0, 0},
10135 {0x0B, 0, 0, 0, 0},
10136 {0x0C, 0, 0, 0, 0},
10137 {0x0D, 0, 0, 0, 0},
10138 {0x0E, 0, 0, 0, 0},
10139 {0x0F, 0, 0, 0, 0},
10140 {0x10, 0, 0, 0, 0},
10141 {0x11, 0, 0, 0, 0},
10142 {0x12, 0, 0, 0, 0},
10143 {0x13, 0, 0, 0, 0},
10144 {0x14, 0, 0, 0, 0},
10145 {0x15, 0, 0, 0, 0},
10146 {0x16, 0, 0, 0, 0},
10147 {0x17, 0, 0, 0, 0},
10148 {0x18, 0, 0, 0, 0},
10149 {0x19, 0, 0, 0, 0},
10150 {0x1A, 0, 0, 0, 0},
10151 {0x1B, 0, 0, 0, 0},
10152 {0x1C, 0, 0, 0, 0},
10153 {0x1D, 0, 0, 0, 0},
10154 {0x1E, 0, 0, 0, 0},
10155 {0x1F, 0, 0, 0, 0},
10156 {0x20, 0, 0, 0, 0},
10157 {0x21, 0x88, 0x88, 0, 0},
10158 {0x22, 0x88, 0x88, 0, 0},
10159 {0x23, 0x88, 0x88, 0, 0},
10160 {0x24, 0x88, 0x88, 0, 0},
10161 {0x25, 0xc, 0xc, 0, 0},
10162 {0x26, 0, 0, 0, 0},
10163 {0x27, 0x3, 0x3, 0, 0},
10164 {0x28, 0, 0, 0, 0},
10165 {0x29, 0x3, 0x3, 0, 0},
10166 {0x2A, 0x37, 0x37, 0, 0},
10167 {0x2B, 0x3, 0x3, 0, 0},
10168 {0x2C, 0, 0, 0, 0},
10169 {0x2D, 0, 0, 0, 0},
10170 {0x2E, 0x1, 0x1, 0, 0},
10171 {0x2F, 0x1, 0x1, 0, 0},
10172 {0x30, 0, 0, 0, 0},
10173 {0x31, 0, 0, 0, 0},
10174 {0x32, 0, 0, 0, 0},
10175 {0x33, 0x11, 0x11, 0, 0},
10176 {0x34, 0xee, 0xee, 1, 1},
10177 {0x35, 0, 0, 0, 0},
10178 {0x36, 0, 0, 0, 0},
10179 {0x37, 0x3, 0x3, 0, 0},
10180 {0x38, 0x50, 0x50, 1, 1},
10181 {0x39, 0, 0, 0, 0},
10182 {0x3A, 0x50, 0x50, 1, 1},
10183 {0x3B, 0, 0, 0, 0},
10184 {0x3C, 0x6e, 0x6e, 0, 0},
10185 {0x3D, 0xf0, 0xf0, 1, 1},
10186 {0x3E, 0, 0, 0, 0},
10187 {0x3F, 0, 0, 0, 0},
10188 {0x40, 0, 0, 0, 0},
10189 {0x41, 0x3, 0x3, 0, 0},
10190 {0x42, 0x3, 0x3, 0, 0},
10191 {0x43, 0, 0, 0, 0},
10192 {0x44, 0x1e, 0x1e, 0, 0},
10193 {0x45, 0, 0, 0, 0},
10194 {0x46, 0x6e, 0x6e, 0, 0},
10195 {0x47, 0xf0, 0xf0, 1, 1},
10196 {0x48, 0, 0, 0, 0},
10197 {0x49, 0x2, 0x2, 0, 0},
10198 {0x4A, 0xff, 0xff, 1, 1},
10199 {0x4B, 0xc, 0xc, 0, 0},
10200 {0x4C, 0, 0, 0, 0},
10201 {0x4D, 0x38, 0x38, 0, 0},
10202 {0x4E, 0x70, 0x70, 1, 1},
10203 {0x4F, 0x2, 0x2, 0, 0},
10204 {0x50, 0x88, 0x88, 0, 0},
10205 {0x51, 0xc, 0xc, 0, 0},
10206 {0x52, 0, 0, 0, 0},
10207 {0x53, 0x8, 0x8, 0, 0},
10208 {0x54, 0x70, 0x70, 1, 1},
10209 {0x55, 0x2, 0x2, 0, 0},
10210 {0x56, 0xff, 0xff, 1, 1},
10211 {0x57, 0, 0, 0, 0},
10212 {0x58, 0x83, 0x83, 0, 0},
10213 {0x59, 0x77, 0x77, 1, 1},
10214 {0x5A, 0, 0, 0, 0},
10215 {0x5B, 0x2, 0x2, 0, 0},
10216 {0x5C, 0x88, 0x88, 0, 0},
10217 {0x5D, 0, 0, 0, 0},
10218 {0x5E, 0x8, 0x8, 0, 0},
10219 {0x5F, 0x77, 0x77, 1, 1},
10220 {0x60, 0x1, 0x1, 0, 0},
10221 {0x61, 0, 0, 0, 0},
10222 {0x62, 0x7, 0x7, 0, 0},
10223 {0x63, 0, 0, 0, 0},
10224 {0x64, 0x7, 0x7, 0, 0},
10225 {0x65, 0, 0, 0, 0},
10226 {0x66, 0, 0, 0, 0},
10227 {0x67, 0, 0, 1, 1},
10228 {0x68, 0, 0, 0, 0},
10229 {0x69, 0xa, 0xa, 0, 0},
10230 {0x6A, 0, 0, 0, 0},
10231 {0x6B, 0, 0, 0, 0},
10232 {0x6C, 0, 0, 0, 0},
10233 {0x6D, 0, 0, 0, 0},
10234 {0x6E, 0, 0, 0, 0},
10235 {0x6F, 0, 0, 0, 0},
10236 {0x70, 0, 0, 0, 0},
10237 {0x71, 0x2, 0x2, 0, 0},
10238 {0x72, 0, 0, 0, 0},
10239 {0x73, 0, 0, 0, 0},
10240 {0x74, 0xe, 0xe, 0, 0},
10241 {0x75, 0xe, 0xe, 0, 0},
10242 {0x76, 0xe, 0xe, 0, 0},
10243 {0x77, 0x13, 0x13, 0, 0},
10244 {0x78, 0x13, 0x13, 0, 0},
10245 {0x79, 0x1b, 0x1b, 0, 0},
10246 {0x7A, 0x1b, 0x1b, 0, 0},
10247 {0x7B, 0x55, 0x55, 0, 0},
10248 {0x7C, 0x5b, 0x5b, 0, 0},
10249 {0x7D, 0x30, 0x30, 1, 1},
10250 {0x7E, 0, 0, 0, 0},
10251 {0x7F, 0, 0, 0, 0},
10252 {0x80, 0, 0, 0, 0},
10253 {0x81, 0, 0, 0, 0},
10254 {0x82, 0, 0, 0, 0},
10255 {0x83, 0, 0, 0, 0},
10256 {0x84, 0, 0, 0, 0},
10257 {0x85, 0, 0, 0, 0},
10258 {0x86, 0, 0, 0, 0},
10259 {0x87, 0, 0, 0, 0},
10260 {0x88, 0, 0, 0, 0},
10261 {0x89, 0, 0, 0, 0},
10262 {0x8A, 0, 0, 0, 0},
10263 {0x8B, 0, 0, 0, 0},
10264 {0x8C, 0, 0, 0, 0},
10265 {0x8D, 0, 0, 0, 0},
10266 {0x8E, 0, 0, 0, 0},
10267 {0x8F, 0, 0, 0, 0},
10268 {0x90, 0, 0, 0, 0},
10269 {0x91, 0, 0, 0, 0},
10270 {0x92, 0, 0, 0, 0},
10271 {0x93, 0x70, 0x70, 0, 0},
10272 {0x94, 0x70, 0x70, 0, 0},
10273 {0x95, 0x71, 0x71, 1, 1},
10274 {0x96, 0x71, 0x71, 1, 1},
10275 {0x97, 0x72, 0x72, 1, 1},
10276 {0x98, 0x73, 0x73, 1, 1},
10277 {0x99, 0x74, 0x74, 1, 1},
10278 {0x9A, 0x75, 0x75, 1, 1},
10279 {0xFFFF, 0, 0, 0, 0},
10282 struct radio_regs regs_RX_2056_rev7[] = {
10283 {0x02, 0, 0, 0, 0},
10284 {0x03, 0, 0, 0, 0},
10285 {0x04, 0, 0, 0, 0},
10286 {0x05, 0, 0, 0, 0},
10287 {0x06, 0, 0, 0, 0},
10288 {0x07, 0, 0, 0, 0},
10289 {0x08, 0, 0, 0, 0},
10290 {0x09, 0, 0, 0, 0},
10291 {0x0A, 0, 0, 0, 0},
10292 {0x0B, 0, 0, 0, 0},
10293 {0x0C, 0, 0, 0, 0},
10294 {0x0D, 0, 0, 0, 0},
10295 {0x0E, 0, 0, 0, 0},
10296 {0x0F, 0, 0, 0, 0},
10297 {0x10, 0, 0, 0, 0},
10298 {0x11, 0, 0, 0, 0},
10299 {0x12, 0, 0, 0, 0},
10300 {0x13, 0, 0, 0, 0},
10301 {0x14, 0, 0, 0, 0},
10302 {0x15, 0, 0, 0, 0},
10303 {0x16, 0, 0, 0, 0},
10304 {0x17, 0, 0, 0, 0},
10305 {0x18, 0, 0, 0, 0},
10306 {0x19, 0, 0, 0, 0},
10307 {0x1A, 0, 0, 0, 0},
10308 {0x1B, 0, 0, 0, 0},
10309 {0x1C, 0, 0, 0, 0},
10310 {0x1D, 0, 0, 0, 0},
10311 {0x1E, 0, 0, 0, 0},
10312 {0x1F, 0, 0, 0, 0},
10313 {0x20, 0x3, 0x3, 0, 0},
10314 {0x21, 0, 0, 0, 0},
10315 {0x22, 0, 0, 0, 0},
10316 {0x23, 0x90, 0x90, 0, 0},
10317 {0x24, 0x55, 0x55, 0, 0},
10318 {0x25, 0x15, 0x15, 0, 0},
10319 {0x26, 0x5, 0x5, 0, 0},
10320 {0x27, 0x15, 0x15, 0, 0},
10321 {0x28, 0x5, 0x5, 0, 0},
10322 {0x29, 0x20, 0x20, 0, 0},
10323 {0x2A, 0x11, 0x11, 0, 0},
10324 {0x2B, 0x90, 0x90, 0, 0},
10325 {0x2C, 0, 0, 0, 0},
10326 {0x2D, 0x88, 0x88, 0, 0},
10327 {0x2E, 0x32, 0x32, 0, 0},
10328 {0x2F, 0x77, 0x77, 0, 0},
10329 {0x30, 0x17, 0x17, 1, 1},
10330 {0x31, 0xff, 0xff, 1, 1},
10331 {0x32, 0x20, 0x20, 0, 0},
10332 {0x33, 0, 0, 0, 0},
10333 {0x34, 0x88, 0x88, 0, 0},
10334 {0x35, 0x32, 0x32, 0, 0},
10335 {0x36, 0x77, 0x77, 0, 0},
10336 {0x37, 0x17, 0x17, 1, 1},
10337 {0x38, 0xf0, 0xf0, 1, 1},
10338 {0x39, 0x20, 0x20, 0, 0},
10339 {0x3A, 0x8, 0x8, 0, 0},
10340 {0x3B, 0x55, 0x55, 1, 1},
10341 {0x3C, 0, 0, 0, 0},
10342 {0x3D, 0x88, 0x88, 1, 1},
10343 {0x3E, 0, 0, 0, 0},
10344 {0x3F, 0, 0, 1, 1},
10345 {0x40, 0x7, 0x7, 1, 1},
10346 {0x41, 0x6, 0x6, 0, 0},
10347 {0x42, 0x4, 0x4, 0, 0},
10348 {0x43, 0, 0, 0, 0},
10349 {0x44, 0x8, 0x8, 0, 0},
10350 {0x45, 0x55, 0x55, 1, 1},
10351 {0x46, 0, 0, 0, 0},
10352 {0x47, 0x11, 0x11, 0, 0},
10353 {0x48, 0, 0, 0, 0},
10354 {0x49, 0, 0, 1, 1},
10355 {0x4A, 0x7, 0x7, 0, 0},
10356 {0x4B, 0x6, 0x6, 0, 0},
10357 {0x4C, 0x4, 0x4, 0, 0},
10358 {0x4D, 0, 0, 0, 0},
10359 {0x4E, 0, 0, 0, 0},
10360 {0x4F, 0x26, 0x26, 1, 1},
10361 {0x50, 0x26, 0x26, 1, 1},
10362 {0x51, 0xf, 0xf, 1, 1},
10363 {0x52, 0xf, 0xf, 1, 1},
10364 {0x53, 0x44, 0x44, 0, 0},
10365 {0x54, 0, 0, 0, 0},
10366 {0x55, 0, 0, 0, 0},
10367 {0x56, 0x8, 0x8, 0, 0},
10368 {0x57, 0x8, 0x8, 0, 0},
10369 {0x58, 0x7, 0x7, 0, 0},
10370 {0x59, 0x22, 0x22, 0, 0},
10371 {0x5A, 0x22, 0x22, 0, 0},
10372 {0x5B, 0x2, 0x2, 0, 0},
10373 {0x5C, 0x4, 0x4, 1, 1},
10374 {0x5D, 0x7, 0x7, 0, 0},
10375 {0x5E, 0x55, 0x55, 0, 0},
10376 {0x5F, 0x23, 0x23, 0, 0},
10377 {0x60, 0x41, 0x41, 0, 0},
10378 {0x61, 0x1, 0x1, 0, 0},
10379 {0x62, 0xa, 0xa, 0, 0},
10380 {0x63, 0, 0, 0, 0},
10381 {0x64, 0, 0, 0, 0},
10382 {0x65, 0, 0, 0, 0},
10383 {0x66, 0, 0, 0, 0},
10384 {0x67, 0, 0, 0, 0},
10385 {0x68, 0, 0, 0, 0},
10386 {0x69, 0, 0, 0, 0},
10387 {0x6A, 0, 0, 0, 0},
10388 {0x6B, 0xc, 0xc, 0, 0},
10389 {0x6C, 0, 0, 0, 0},
10390 {0x6D, 0, 0, 0, 0},
10391 {0x6E, 0, 0, 0, 0},
10392 {0x6F, 0, 0, 0, 0},
10393 {0x70, 0, 0, 0, 0},
10394 {0x71, 0, 0, 0, 0},
10395 {0x72, 0x22, 0x22, 0, 0},
10396 {0x73, 0x22, 0x22, 0, 0},
10397 {0x74, 0, 0, 1, 1},
10398 {0x75, 0xa, 0xa, 0, 0},
10399 {0x76, 0x1, 0x1, 0, 0},
10400 {0x77, 0x22, 0x22, 0, 0},
10401 {0x78, 0x30, 0x30, 0, 0},
10402 {0x79, 0, 0, 0, 0},
10403 {0x7A, 0, 0, 0, 0},
10404 {0x7B, 0, 0, 0, 0},
10405 {0x7C, 0, 0, 0, 0},
10406 {0x7D, 0, 0, 0, 0},
10407 {0x7E, 0, 0, 0, 0},
10408 {0x7F, 0, 0, 0, 0},
10409 {0x80, 0, 0, 0, 0},
10410 {0x81, 0, 0, 0, 0},
10411 {0x82, 0, 0, 0, 0},
10412 {0x83, 0, 0, 0, 0},
10413 {0x84, 0, 0, 0, 0},
10414 {0x85, 0, 0, 0, 0},
10415 {0x86, 0, 0, 0, 0},
10416 {0x87, 0, 0, 0, 0},
10417 {0x88, 0, 0, 0, 0},
10418 {0x89, 0, 0, 0, 0},
10419 {0x8A, 0, 0, 0, 0},
10420 {0x8B, 0, 0, 0, 0},
10421 {0x8C, 0, 0, 0, 0},
10422 {0x8D, 0, 0, 0, 0},
10423 {0x8E, 0, 0, 0, 0},
10424 {0x8F, 0, 0, 0, 0},
10425 {0x90, 0, 0, 0, 0},
10426 {0x91, 0, 0, 0, 0},
10427 {0x92, 0, 0, 0, 0},
10428 {0x93, 0, 0, 0, 0},
10429 {0x94, 0, 0, 0, 0},
10430 {0xFFFF, 0, 0, 0, 0},
10433 struct radio_regs regs_SYN_2056_rev8[] = {
10434 {0x02, 0, 0, 0, 0},
10435 {0x03, 0, 0, 0, 0},
10436 {0x04, 0, 0, 0, 0},
10437 {0x05, 0, 0, 0, 0},
10438 {0x06, 0, 0, 0, 0},
10439 {0x07, 0, 0, 0, 0},
10440 {0x08, 0, 0, 0, 0},
10441 {0x09, 0x1, 0x1, 0, 0},
10442 {0x0A, 0, 0, 0, 0},
10443 {0x0B, 0, 0, 0, 0},
10444 {0x0C, 0, 0, 0, 0},
10445 {0x0D, 0, 0, 0, 0},
10446 {0x0E, 0, 0, 0, 0},
10447 {0x0F, 0, 0, 0, 0},
10448 {0x10, 0, 0, 0, 0},
10449 {0x11, 0, 0, 0, 0},
10450 {0x12, 0, 0, 0, 0},
10451 {0x13, 0, 0, 0, 0},
10452 {0x14, 0, 0, 0, 0},
10453 {0x15, 0, 0, 0, 0},
10454 {0x16, 0, 0, 0, 0},
10455 {0x17, 0, 0, 0, 0},
10456 {0x18, 0, 0, 0, 0},
10457 {0x19, 0, 0, 0, 0},
10458 {0x1A, 0, 0, 0, 0},
10459 {0x1B, 0, 0, 0, 0},
10460 {0x1C, 0, 0, 0, 0},
10461 {0x1D, 0, 0, 0, 0},
10462 {0x1E, 0, 0, 0, 0},
10463 {0x1F, 0, 0, 0, 0},
10464 {0x20, 0, 0, 0, 0},
10465 {0x21, 0, 0, 0, 0},
10466 {0x22, 0x60, 0x60, 0, 0},
10467 {0x23, 0x6, 0x6, 0, 0},
10468 {0x24, 0xc, 0xc, 0, 0},
10469 {0x25, 0, 0, 0, 0},
10470 {0x26, 0, 0, 0, 0},
10471 {0x27, 0, 0, 0, 0},
10472 {0x28, 0x1, 0x1, 0, 0},
10473 {0x29, 0, 0, 0, 0},
10474 {0x2A, 0, 0, 0, 0},
10475 {0x2B, 0, 0, 0, 0},
10476 {0x2C, 0, 0, 0, 0},
10477 {0x2D, 0, 0, 0, 0},
10478 {0x2E, 0, 0, 0, 0},
10479 {0x2F, 0x1f, 0x1f, 0, 0},
10480 {0x30, 0x15, 0x15, 0, 0},
10481 {0x31, 0xf, 0xf, 0, 0},
10482 {0x32, 0, 0, 0, 0},
10483 {0x33, 0, 0, 0, 0},
10484 {0x34, 0, 0, 0, 0},
10485 {0x35, 0, 0, 0, 0},
10486 {0x36, 0, 0, 0, 0},
10487 {0x37, 0, 0, 0, 0},
10488 {0x38, 0, 0, 0, 0},
10489 {0x39, 0, 0, 0, 0},
10490 {0x3A, 0, 0, 0, 0},
10491 {0x3B, 0, 0, 0, 0},
10492 {0x3C, 0x13, 0x13, 0, 0},
10493 {0x3D, 0xf, 0xf, 0, 0},
10494 {0x3E, 0x18, 0x18, 0, 0},
10495 {0x3F, 0, 0, 0, 0},
10496 {0x40, 0, 0, 0, 0},
10497 {0x41, 0x20, 0x20, 0, 0},
10498 {0x42, 0x20, 0x20, 0, 0},
10499 {0x43, 0, 0, 0, 0},
10500 {0x44, 0x77, 0x77, 0, 0},
10501 {0x45, 0x7, 0x7, 0, 0},
10502 {0x46, 0x1, 0x1, 0, 0},
10503 {0x47, 0x4, 0x4, 0, 0},
10504 {0x48, 0xf, 0xf, 0, 0},
10505 {0x49, 0x30, 0x30, 0, 0},
10506 {0x4A, 0x32, 0x32, 0, 0},
10507 {0x4B, 0xd, 0xd, 0, 0},
10508 {0x4C, 0xd, 0xd, 0, 0},
10509 {0x4D, 0x4, 0x4, 0, 0},
10510 {0x4E, 0x6, 0x6, 0, 0},
10511 {0x4F, 0x1, 0x1, 0, 0},
10512 {0x50, 0x1c, 0x1c, 0, 0},
10513 {0x51, 0x2, 0x2, 0, 0},
10514 {0x52, 0x2, 0x2, 0, 0},
10515 {0x53, 0xf7, 0xf7, 1, 1},
10516 {0x54, 0xb4, 0xb4, 0, 0},
10517 {0x55, 0xd2, 0xd2, 0, 0},
10518 {0x56, 0, 0, 0, 0},
10519 {0x57, 0, 0, 0, 0},
10520 {0x58, 0x4, 0x4, 0, 0},
10521 {0x59, 0x96, 0x96, 0, 0},
10522 {0x5A, 0x3e, 0x3e, 0, 0},
10523 {0x5B, 0x3e, 0x3e, 0, 0},
10524 {0x5C, 0x13, 0x13, 0, 0},
10525 {0x5D, 0x2, 0x2, 0, 0},
10526 {0x5E, 0, 0, 0, 0},
10527 {0x5F, 0x7, 0x7, 0, 0},
10528 {0x60, 0x7, 0x7, 1, 1},
10529 {0x61, 0x8, 0x8, 0, 0},
10530 {0x62, 0x3, 0x3, 0, 0},
10531 {0x63, 0, 0, 0, 0},
10532 {0x64, 0, 0, 0, 0},
10533 {0x65, 0, 0, 0, 0},
10534 {0x66, 0, 0, 0, 0},
10535 {0x67, 0, 0, 0, 0},
10536 {0x68, 0x40, 0x40, 0, 0},
10537 {0x69, 0, 0, 0, 0},
10538 {0x6A, 0, 0, 0, 0},
10539 {0x6B, 0, 0, 0, 0},
10540 {0x6C, 0, 0, 0, 0},
10541 {0x6D, 0x1, 0x1, 0, 0},
10542 {0x6E, 0, 0, 0, 0},
10543 {0x6F, 0, 0, 0, 0},
10544 {0x70, 0x60, 0x60, 0, 0},
10545 {0x71, 0x66, 0x66, 0, 0},
10546 {0x72, 0xc, 0xc, 0, 0},
10547 {0x73, 0x66, 0x66, 0, 0},
10548 {0x74, 0x8f, 0x8f, 1, 1},
10549 {0x75, 0, 0, 0, 0},
10550 {0x76, 0xcc, 0xcc, 0, 0},
10551 {0x77, 0x1, 0x1, 0, 0},
10552 {0x78, 0x66, 0x66, 0, 0},
10553 {0x79, 0x66, 0x66, 0, 0},
10554 {0x7A, 0, 0, 0, 0},
10555 {0x7B, 0, 0, 0, 0},
10556 {0x7C, 0, 0, 0, 0},
10557 {0x7D, 0, 0, 0, 0},
10558 {0x7E, 0, 0, 0, 0},
10559 {0x7F, 0, 0, 0, 0},
10560 {0x80, 0, 0, 0, 0},
10561 {0x81, 0, 0, 0, 0},
10562 {0x82, 0, 0, 0, 0},
10563 {0x83, 0, 0, 0, 0},
10564 {0x84, 0, 0, 0, 0},
10565 {0x85, 0xff, 0xff, 0, 0},
10566 {0x86, 0, 0, 0, 0},
10567 {0x87, 0, 0, 0, 0},
10568 {0x88, 0, 0, 0, 0},
10569 {0x89, 0, 0, 0, 0},
10570 {0x8A, 0, 0, 0, 0},
10571 {0x8B, 0, 0, 0, 0},
10572 {0x8C, 0, 0, 0, 0},
10573 {0x8D, 0, 0, 0, 0},
10574 {0x8E, 0, 0, 0, 0},
10575 {0x8F, 0, 0, 0, 0},
10576 {0x90, 0, 0, 0, 0},
10577 {0x91, 0, 0, 0, 0},
10578 {0x92, 0, 0, 0, 0},
10579 {0x93, 0, 0, 0, 0},
10580 {0x94, 0, 0, 0, 0},
10581 {0x95, 0, 0, 0, 0},
10582 {0x96, 0, 0, 0, 0},
10583 {0x97, 0, 0, 0, 0},
10584 {0x98, 0, 0, 0, 0},
10585 {0x99, 0, 0, 0, 0},
10586 {0x9A, 0, 0, 0, 0},
10587 {0x9B, 0, 0, 0, 0},
10588 {0x9C, 0, 0, 0, 0},
10589 {0x9D, 0, 0, 0, 0},
10590 {0x9E, 0, 0, 0, 0},
10591 {0x9F, 0x6, 0x6, 0, 0},
10592 {0xA0, 0x66, 0x66, 0, 0},
10593 {0xA1, 0x66, 0x66, 0, 0},
10594 {0xA2, 0x66, 0x66, 0, 0},
10595 {0xA3, 0x66, 0x66, 0, 0},
10596 {0xA4, 0x66, 0x66, 0, 0},
10597 {0xA5, 0x66, 0x66, 0, 0},
10598 {0xA6, 0x66, 0x66, 0, 0},
10599 {0xA7, 0x66, 0x66, 0, 0},
10600 {0xA8, 0x66, 0x66, 0, 0},
10601 {0xA9, 0x66, 0x66, 0, 0},
10602 {0xAA, 0x66, 0x66, 0, 0},
10603 {0xAB, 0x66, 0x66, 0, 0},
10604 {0xAC, 0x66, 0x66, 0, 0},
10605 {0xAD, 0x66, 0x66, 0, 0},
10606 {0xAE, 0x66, 0x66, 0, 0},
10607 {0xAF, 0x66, 0x66, 0, 0},
10608 {0xB0, 0x66, 0x66, 0, 0},
10609 {0xB1, 0x66, 0x66, 0, 0},
10610 {0xB2, 0x66, 0x66, 0, 0},
10611 {0xB3, 0xa, 0xa, 0, 0},
10612 {0xB4, 0, 0, 0, 0},
10613 {0xB5, 0, 0, 0, 0},
10614 {0xB6, 0, 0, 0, 0},
10615 {0xFFFF, 0, 0, 0, 0},
10618 struct radio_regs regs_TX_2056_rev8[] = {
10619 {0x02, 0, 0, 0, 0},
10620 {0x03, 0, 0, 0, 0},
10621 {0x04, 0, 0, 0, 0},
10622 {0x05, 0, 0, 0, 0},
10623 {0x06, 0, 0, 0, 0},
10624 {0x07, 0, 0, 0, 0},
10625 {0x08, 0, 0, 0, 0},
10626 {0x09, 0, 0, 0, 0},
10627 {0x0A, 0, 0, 0, 0},
10628 {0x0B, 0, 0, 0, 0},
10629 {0x0C, 0, 0, 0, 0},
10630 {0x0D, 0, 0, 0, 0},
10631 {0x0E, 0, 0, 0, 0},
10632 {0x0F, 0, 0, 0, 0},
10633 {0x10, 0, 0, 0, 0},
10634 {0x11, 0, 0, 0, 0},
10635 {0x12, 0, 0, 0, 0},
10636 {0x13, 0, 0, 0, 0},
10637 {0x14, 0, 0, 0, 0},
10638 {0x15, 0, 0, 0, 0},
10639 {0x16, 0, 0, 0, 0},
10640 {0x17, 0, 0, 0, 0},
10641 {0x18, 0, 0, 0, 0},
10642 {0x19, 0, 0, 0, 0},
10643 {0x1A, 0, 0, 0, 0},
10644 {0x1B, 0, 0, 0, 0},
10645 {0x1C, 0, 0, 0, 0},
10646 {0x1D, 0, 0, 0, 0},
10647 {0x1E, 0, 0, 0, 0},
10648 {0x1F, 0, 0, 0, 0},
10649 {0x20, 0, 0, 0, 0},
10650 {0x21, 0x88, 0x88, 0, 0},
10651 {0x22, 0x88, 0x88, 0, 0},
10652 {0x23, 0x88, 0x88, 0, 0},
10653 {0x24, 0x88, 0x88, 0, 0},
10654 {0x25, 0xc, 0xc, 0, 0},
10655 {0x26, 0, 0, 0, 0},
10656 {0x27, 0x3, 0x3, 0, 0},
10657 {0x28, 0, 0, 0, 0},
10658 {0x29, 0x3, 0x3, 0, 0},
10659 {0x2A, 0x37, 0x37, 0, 0},
10660 {0x2B, 0x3, 0x3, 0, 0},
10661 {0x2C, 0, 0, 0, 0},
10662 {0x2D, 0, 0, 0, 0},
10663 {0x2E, 0x1, 0x1, 0, 0},
10664 {0x2F, 0x1, 0x1, 0, 0},
10665 {0x30, 0, 0, 0, 0},
10666 {0x31, 0, 0, 0, 0},
10667 {0x32, 0, 0, 0, 0},
10668 {0x33, 0x11, 0x11, 0, 0},
10669 {0x34, 0xee, 0xee, 1, 1},
10670 {0x35, 0, 0, 0, 0},
10671 {0x36, 0, 0, 0, 0},
10672 {0x37, 0x3, 0x3, 0, 0},
10673 {0x38, 0x50, 0x50, 1, 1},
10674 {0x39, 0, 0, 0, 0},
10675 {0x3A, 0x50, 0x50, 1, 1},
10676 {0x3B, 0, 0, 0, 0},
10677 {0x3C, 0x6e, 0x6e, 0, 0},
10678 {0x3D, 0xf0, 0xf0, 1, 1},
10679 {0x3E, 0, 0, 0, 0},
10680 {0x3F, 0, 0, 0, 0},
10681 {0x40, 0, 0, 0, 0},
10682 {0x41, 0x3, 0x3, 0, 0},
10683 {0x42, 0x3, 0x3, 0, 0},
10684 {0x43, 0, 0, 0, 0},
10685 {0x44, 0x1e, 0x1e, 0, 0},
10686 {0x45, 0, 0, 0, 0},
10687 {0x46, 0x6e, 0x6e, 0, 0},
10688 {0x47, 0xf0, 0xf0, 1, 1},
10689 {0x48, 0, 0, 0, 0},
10690 {0x49, 0x2, 0x2, 0, 0},
10691 {0x4A, 0xff, 0xff, 1, 1},
10692 {0x4B, 0xc, 0xc, 0, 0},
10693 {0x4C, 0, 0, 0, 0},
10694 {0x4D, 0x38, 0x38, 0, 0},
10695 {0x4E, 0x70, 0x70, 1, 1},
10696 {0x4F, 0x2, 0x2, 0, 0},
10697 {0x50, 0x88, 0x88, 0, 0},
10698 {0x51, 0xc, 0xc, 0, 0},
10699 {0x52, 0, 0, 0, 0},
10700 {0x53, 0x8, 0x8, 0, 0},
10701 {0x54, 0x70, 0x70, 1, 1},
10702 {0x55, 0x2, 0x2, 0, 0},
10703 {0x56, 0xff, 0xff, 1, 1},
10704 {0x57, 0, 0, 0, 0},
10705 {0x58, 0x83, 0x83, 0, 0},
10706 {0x59, 0x77, 0x77, 1, 1},
10707 {0x5A, 0, 0, 0, 0},
10708 {0x5B, 0x2, 0x2, 0, 0},
10709 {0x5C, 0x88, 0x88, 0, 0},
10710 {0x5D, 0, 0, 0, 0},
10711 {0x5E, 0x8, 0x8, 0, 0},
10712 {0x5F, 0x77, 0x77, 1, 1},
10713 {0x60, 0x1, 0x1, 0, 0},
10714 {0x61, 0, 0, 0, 0},
10715 {0x62, 0x7, 0x7, 0, 0},
10716 {0x63, 0, 0, 0, 0},
10717 {0x64, 0x7, 0x7, 0, 0},
10718 {0x65, 0, 0, 0, 0},
10719 {0x66, 0, 0, 0, 0},
10720 {0x67, 0, 0, 1, 1},
10721 {0x68, 0, 0, 0, 0},
10722 {0x69, 0xa, 0xa, 0, 0},
10723 {0x6A, 0, 0, 0, 0},
10724 {0x6B, 0, 0, 0, 0},
10725 {0x6C, 0, 0, 0, 0},
10726 {0x6D, 0, 0, 0, 0},
10727 {0x6E, 0, 0, 0, 0},
10728 {0x6F, 0, 0, 0, 0},
10729 {0x70, 0, 0, 0, 0},
10730 {0x71, 0x2, 0x2, 0, 0},
10731 {0x72, 0, 0, 0, 0},
10732 {0x73, 0, 0, 0, 0},
10733 {0x74, 0xe, 0xe, 0, 0},
10734 {0x75, 0xe, 0xe, 0, 0},
10735 {0x76, 0xe, 0xe, 0, 0},
10736 {0x77, 0x13, 0x13, 0, 0},
10737 {0x78, 0x13, 0x13, 0, 0},
10738 {0x79, 0x1b, 0x1b, 0, 0},
10739 {0x7A, 0x1b, 0x1b, 0, 0},
10740 {0x7B, 0x55, 0x55, 0, 0},
10741 {0x7C, 0x5b, 0x5b, 0, 0},
10742 {0x7D, 0x30, 0x30, 1, 1},
10743 {0x7E, 0, 0, 0, 0},
10744 {0x7F, 0, 0, 0, 0},
10745 {0x80, 0, 0, 0, 0},
10746 {0x81, 0, 0, 0, 0},
10747 {0x82, 0, 0, 0, 0},
10748 {0x83, 0, 0, 0, 0},
10749 {0x84, 0, 0, 0, 0},
10750 {0x85, 0, 0, 0, 0},
10751 {0x86, 0, 0, 0, 0},
10752 {0x87, 0, 0, 0, 0},
10753 {0x88, 0, 0, 0, 0},
10754 {0x89, 0, 0, 0, 0},
10755 {0x8A, 0, 0, 0, 0},
10756 {0x8B, 0, 0, 0, 0},
10757 {0x8C, 0, 0, 0, 0},
10758 {0x8D, 0, 0, 0, 0},
10759 {0x8E, 0, 0, 0, 0},
10760 {0x8F, 0, 0, 0, 0},
10761 {0x90, 0, 0, 0, 0},
10762 {0x91, 0, 0, 0, 0},
10763 {0x92, 0, 0, 0, 0},
10764 {0x93, 0x70, 0x70, 0, 0},
10765 {0x94, 0x70, 0x70, 0, 0},
10766 {0x95, 0x70, 0x70, 0, 0},
10767 {0x96, 0x70, 0x70, 0, 0},
10768 {0x97, 0x70, 0x70, 0, 0},
10769 {0x98, 0x70, 0x70, 0, 0},
10770 {0x99, 0x70, 0x70, 0, 0},
10771 {0x9A, 0x70, 0x70, 0, 0},
10772 {0xFFFF, 0, 0, 0, 0},
10775 struct radio_regs regs_RX_2056_rev8[] = {
10776 {0x02, 0, 0, 0, 0},
10777 {0x03, 0, 0, 0, 0},
10778 {0x04, 0, 0, 0, 0},
10779 {0x05, 0, 0, 0, 0},
10780 {0x06, 0, 0, 0, 0},
10781 {0x07, 0, 0, 0, 0},
10782 {0x08, 0, 0, 0, 0},
10783 {0x09, 0, 0, 0, 0},
10784 {0x0A, 0, 0, 0, 0},
10785 {0x0B, 0, 0, 0, 0},
10786 {0x0C, 0, 0, 0, 0},
10787 {0x0D, 0, 0, 0, 0},
10788 {0x0E, 0, 0, 0, 0},
10789 {0x0F, 0, 0, 0, 0},
10790 {0x10, 0, 0, 0, 0},
10791 {0x11, 0, 0, 0, 0},
10792 {0x12, 0, 0, 0, 0},
10793 {0x13, 0, 0, 0, 0},
10794 {0x14, 0, 0, 0, 0},
10795 {0x15, 0, 0, 0, 0},
10796 {0x16, 0, 0, 0, 0},
10797 {0x17, 0, 0, 0, 0},
10798 {0x18, 0, 0, 0, 0},
10799 {0x19, 0, 0, 0, 0},
10800 {0x1A, 0, 0, 0, 0},
10801 {0x1B, 0, 0, 0, 0},
10802 {0x1C, 0, 0, 0, 0},
10803 {0x1D, 0, 0, 0, 0},
10804 {0x1E, 0, 0, 0, 0},
10805 {0x1F, 0, 0, 0, 0},
10806 {0x20, 0x3, 0x3, 0, 0},
10807 {0x21, 0, 0, 0, 0},
10808 {0x22, 0, 0, 0, 0},
10809 {0x23, 0x90, 0x90, 0, 0},
10810 {0x24, 0x55, 0x55, 0, 0},
10811 {0x25, 0x15, 0x15, 0, 0},
10812 {0x26, 0x5, 0x5, 0, 0},
10813 {0x27, 0x15, 0x15, 0, 0},
10814 {0x28, 0x5, 0x5, 0, 0},
10815 {0x29, 0x20, 0x20, 0, 0},
10816 {0x2A, 0x11, 0x11, 0, 0},
10817 {0x2B, 0x90, 0x90, 0, 0},
10818 {0x2C, 0, 0, 0, 0},
10819 {0x2D, 0x88, 0x88, 0, 0},
10820 {0x2E, 0x32, 0x32, 0, 0},
10821 {0x2F, 0x77, 0x77, 0, 0},
10822 {0x30, 0x17, 0x17, 1, 1},
10823 {0x31, 0xff, 0xff, 1, 1},
10824 {0x32, 0x20, 0x20, 0, 0},
10825 {0x33, 0, 0, 0, 0},
10826 {0x34, 0x88, 0x88, 0, 0},
10827 {0x35, 0x32, 0x32, 0, 0},
10828 {0x36, 0x77, 0x77, 0, 0},
10829 {0x37, 0x17, 0x17, 1, 1},
10830 {0x38, 0xf0, 0xf0, 1, 1},
10831 {0x39, 0x20, 0x20, 0, 0},
10832 {0x3A, 0x8, 0x8, 0, 0},
10833 {0x3B, 0x55, 0x55, 1, 1},
10834 {0x3C, 0, 0, 0, 0},
10835 {0x3D, 0x88, 0x88, 1, 1},
10836 {0x3E, 0, 0, 0, 0},
10837 {0x3F, 0x44, 0x44, 0, 0},
10838 {0x40, 0x7, 0x7, 1, 1},
10839 {0x41, 0x6, 0x6, 0, 0},
10840 {0x42, 0x4, 0x4, 0, 0},
10841 {0x43, 0, 0, 0, 0},
10842 {0x44, 0x8, 0x8, 0, 0},
10843 {0x45, 0x55, 0x55, 1, 1},
10844 {0x46, 0, 0, 0, 0},
10845 {0x47, 0x11, 0x11, 0, 0},
10846 {0x48, 0, 0, 0, 0},
10847 {0x49, 0x44, 0x44, 0, 0},
10848 {0x4A, 0x7, 0x7, 0, 0},
10849 {0x4B, 0x6, 0x6, 0, 0},
10850 {0x4C, 0x4, 0x4, 0, 0},
10851 {0x4D, 0, 0, 0, 0},
10852 {0x4E, 0, 0, 0, 0},
10853 {0x4F, 0x26, 0x26, 1, 1},
10854 {0x50, 0x26, 0x26, 1, 1},
10855 {0x51, 0xf, 0xf, 1, 1},
10856 {0x52, 0xf, 0xf, 1, 1},
10857 {0x53, 0x44, 0x44, 0, 0},
10858 {0x54, 0, 0, 0, 0},
10859 {0x55, 0, 0, 0, 0},
10860 {0x56, 0x8, 0x8, 0, 0},
10861 {0x57, 0x8, 0x8, 0, 0},
10862 {0x58, 0x7, 0x7, 0, 0},
10863 {0x59, 0x22, 0x22, 0, 0},
10864 {0x5A, 0x22, 0x22, 0, 0},
10865 {0x5B, 0x2, 0x2, 0, 0},
10866 {0x5C, 0x4, 0x4, 1, 1},
10867 {0x5D, 0x7, 0x7, 0, 0},
10868 {0x5E, 0x55, 0x55, 0, 0},
10869 {0x5F, 0x23, 0x23, 0, 0},
10870 {0x60, 0x41, 0x41, 0, 0},
10871 {0x61, 0x1, 0x1, 0, 0},
10872 {0x62, 0xa, 0xa, 0, 0},
10873 {0x63, 0, 0, 0, 0},
10874 {0x64, 0, 0, 0, 0},
10875 {0x65, 0, 0, 0, 0},
10876 {0x66, 0, 0, 0, 0},
10877 {0x67, 0, 0, 0, 0},
10878 {0x68, 0, 0, 0, 0},
10879 {0x69, 0, 0, 0, 0},
10880 {0x6A, 0, 0, 0, 0},
10881 {0x6B, 0xc, 0xc, 0, 0},
10882 {0x6C, 0, 0, 0, 0},
10883 {0x6D, 0, 0, 0, 0},
10884 {0x6E, 0, 0, 0, 0},
10885 {0x6F, 0, 0, 0, 0},
10886 {0x70, 0, 0, 0, 0},
10887 {0x71, 0, 0, 0, 0},
10888 {0x72, 0x22, 0x22, 0, 0},
10889 {0x73, 0x22, 0x22, 0, 0},
10890 {0x74, 0, 0, 1, 1},
10891 {0x75, 0xa, 0xa, 0, 0},
10892 {0x76, 0x1, 0x1, 0, 0},
10893 {0x77, 0x22, 0x22, 0, 0},
10894 {0x78, 0x30, 0x30, 0, 0},
10895 {0x79, 0, 0, 0, 0},
10896 {0x7A, 0, 0, 0, 0},
10897 {0x7B, 0, 0, 0, 0},
10898 {0x7C, 0, 0, 0, 0},
10899 {0x7D, 0x5, 0x5, 1, 1},
10900 {0x7E, 0, 0, 0, 0},
10901 {0x7F, 0, 0, 0, 0},
10902 {0x80, 0, 0, 0, 0},
10903 {0x81, 0, 0, 0, 0},
10904 {0x82, 0, 0, 0, 0},
10905 {0x83, 0, 0, 0, 0},
10906 {0x84, 0, 0, 0, 0},
10907 {0x85, 0, 0, 0, 0},
10908 {0x86, 0, 0, 0, 0},
10909 {0x87, 0, 0, 0, 0},
10910 {0x88, 0, 0, 0, 0},
10911 {0x89, 0, 0, 0, 0},
10912 {0x8A, 0, 0, 0, 0},
10913 {0x8B, 0, 0, 0, 0},
10914 {0x8C, 0, 0, 0, 0},
10915 {0x8D, 0, 0, 0, 0},
10916 {0x8E, 0, 0, 0, 0},
10917 {0x8F, 0, 0, 0, 0},
10918 {0x90, 0, 0, 0, 0},
10919 {0x91, 0, 0, 0, 0},
10920 {0x92, 0, 0, 0, 0},
10921 {0x93, 0, 0, 0, 0},
10922 {0x94, 0, 0, 0, 0},
10923 {0xFFFF, 0, 0, 0, 0},
10926 struct radio_regs regs_SYN_2056_rev11[] = {
10927 {0x02, 0, 0, 0, 0},
10928 {0x03, 0, 0, 0, 0},
10929 {0x04, 0, 0, 0, 0},
10930 {0x05, 0, 0, 0, 0},
10931 {0x06, 0, 0, 0, 0},
10932 {0x07, 0, 0, 0, 0},
10933 {0x08, 0, 0, 0, 0},
10934 {0x09, 0x1, 0x1, 0, 0},
10935 {0x0A, 0, 0, 0, 0},
10936 {0x0B, 0, 0, 0, 0},
10937 {0x0C, 0, 0, 0, 0},
10938 {0x0D, 0, 0, 0, 0},
10939 {0x0E, 0, 0, 0, 0},
10940 {0x0F, 0, 0, 0, 0},
10941 {0x10, 0, 0, 0, 0},
10942 {0x11, 0, 0, 0, 0},
10943 {0x12, 0, 0, 0, 0},
10944 {0x13, 0, 0, 0, 0},
10945 {0x14, 0, 0, 0, 0},
10946 {0x15, 0, 0, 0, 0},
10947 {0x16, 0, 0, 0, 0},
10948 {0x17, 0, 0, 0, 0},
10949 {0x18, 0, 0, 0, 0},
10950 {0x19, 0, 0, 0, 0},
10951 {0x1A, 0, 0, 0, 0},
10952 {0x1B, 0, 0, 0, 0},
10953 {0x1C, 0, 0, 0, 0},
10954 {0x1D, 0, 0, 0, 0},
10955 {0x1E, 0, 0, 0, 0},
10956 {0x1F, 0, 0, 0, 0},
10957 {0x20, 0, 0, 0, 0},
10958 {0x21, 0, 0, 0, 0},
10959 {0x22, 0x60, 0x60, 0, 0},
10960 {0x23, 0x6, 0x6, 0, 0},
10961 {0x24, 0xc, 0xc, 0, 0},
10962 {0x25, 0, 0, 0, 0},
10963 {0x26, 0, 0, 0, 0},
10964 {0x27, 0, 0, 0, 0},
10965 {0x28, 0x1, 0x1, 0, 0},
10966 {0x29, 0, 0, 0, 0},
10967 {0x2A, 0, 0, 0, 0},
10968 {0x2B, 0, 0, 0, 0},
10969 {0x2C, 0, 0, 0, 0},
10970 {0x2D, 0, 0, 0, 0},
10971 {0x2E, 0, 0, 0, 0},
10972 {0x2F, 0x1f, 0x1f, 0, 0},
10973 {0x30, 0x15, 0x15, 0, 0},
10974 {0x31, 0xf, 0xf, 0, 0},
10975 {0x32, 0, 0, 0, 0},
10976 {0x33, 0, 0, 0, 0},
10977 {0x34, 0, 0, 0, 0},
10978 {0x35, 0, 0, 0, 0},
10979 {0x36, 0, 0, 0, 0},
10980 {0x37, 0, 0, 0, 0},
10981 {0x38, 0, 0, 0, 0},
10982 {0x39, 0, 0, 0, 0},
10983 {0x3A, 0, 0, 0, 0},
10984 {0x3B, 0, 0, 0, 0},
10985 {0x3C, 0x13, 0x13, 0, 0},
10986 {0x3D, 0xf, 0xf, 0, 0},
10987 {0x3E, 0x18, 0x18, 0, 0},
10988 {0x3F, 0, 0, 0, 0},
10989 {0x40, 0, 0, 0, 0},
10990 {0x41, 0x20, 0x20, 0, 0},
10991 {0x42, 0x20, 0x20, 0, 0},
10992 {0x43, 0, 0, 0, 0},
10993 {0x44, 0x77, 0x77, 0, 0},
10994 {0x45, 0x7, 0x7, 0, 0},
10995 {0x46, 0x1, 0x1, 0, 0},
10996 {0x47, 0x6, 0x6, 1, 1},
10997 {0x48, 0xf, 0xf, 0, 0},
10998 {0x49, 0x3f, 0x3f, 1, 1},
10999 {0x4A, 0x32, 0x32, 0, 0},
11000 {0x4B, 0x6, 0x6, 1, 1},
11001 {0x4C, 0x6, 0x6, 1, 1},
11002 {0x4D, 0x4, 0x4, 0, 0},
11003 {0x4E, 0x2b, 0x2b, 1, 1},
11004 {0x4F, 0x1, 0x1, 0, 0},
11005 {0x50, 0x1c, 0x1c, 0, 0},
11006 {0x51, 0x2, 0x2, 0, 0},
11007 {0x52, 0x2, 0x2, 0, 0},
11008 {0x53, 0xf7, 0xf7, 1, 1},
11009 {0x54, 0xb4, 0xb4, 0, 0},
11010 {0x55, 0xd2, 0xd2, 0, 0},
11011 {0x56, 0, 0, 0, 0},
11012 {0x57, 0, 0, 0, 0},
11013 {0x58, 0x4, 0x4, 0, 0},
11014 {0x59, 0x96, 0x96, 0, 0},
11015 {0x5A, 0x3e, 0x3e, 0, 0},
11016 {0x5B, 0x3e, 0x3e, 0, 0},
11017 {0x5C, 0x13, 0x13, 0, 0},
11018 {0x5D, 0x2, 0x2, 0, 0},
11019 {0x5E, 0, 0, 0, 0},
11020 {0x5F, 0x7, 0x7, 0, 0},
11021 {0x60, 0x7, 0x7, 1, 1},
11022 {0x61, 0x8, 0x8, 0, 0},
11023 {0x62, 0x3, 0x3, 0, 0},
11024 {0x63, 0, 0, 0, 0},
11025 {0x64, 0, 0, 0, 0},
11026 {0x65, 0, 0, 0, 0},
11027 {0x66, 0, 0, 0, 0},
11028 {0x67, 0, 0, 0, 0},
11029 {0x68, 0x40, 0x40, 0, 0},
11030 {0x69, 0, 0, 0, 0},
11031 {0x6A, 0, 0, 0, 0},
11032 {0x6B, 0, 0, 0, 0},
11033 {0x6C, 0, 0, 0, 0},
11034 {0x6D, 0x1, 0x1, 0, 0},
11035 {0x6E, 0, 0, 0, 0},
11036 {0x6F, 0, 0, 0, 0},
11037 {0x70, 0x60, 0x60, 0, 0},
11038 {0x71, 0x66, 0x66, 0, 0},
11039 {0x72, 0xc, 0xc, 0, 0},
11040 {0x73, 0x66, 0x66, 0, 0},
11041 {0x74, 0x8f, 0x8f, 1, 1},
11042 {0x75, 0, 0, 0, 0},
11043 {0x76, 0xcc, 0xcc, 0, 0},
11044 {0x77, 0x1, 0x1, 0, 0},
11045 {0x78, 0x66, 0x66, 0, 0},
11046 {0x79, 0x66, 0x66, 0, 0},
11047 {0x7A, 0, 0, 0, 0},
11048 {0x7B, 0, 0, 0, 0},
11049 {0x7C, 0, 0, 0, 0},
11050 {0x7D, 0, 0, 0, 0},
11051 {0x7E, 0, 0, 0, 0},
11052 {0x7F, 0, 0, 0, 0},
11053 {0x80, 0, 0, 0, 0},
11054 {0x81, 0, 0, 0, 0},
11055 {0x82, 0, 0, 0, 0},
11056 {0x83, 0, 0, 0, 0},
11057 {0x84, 0, 0, 0, 0},
11058 {0x85, 0xff, 0xff, 0, 0},
11059 {0x86, 0, 0, 0, 0},
11060 {0x87, 0, 0, 0, 0},
11061 {0x88, 0, 0, 0, 0},
11062 {0x89, 0, 0, 0, 0},
11063 {0x8A, 0, 0, 0, 0},
11064 {0x8B, 0, 0, 0, 0},
11065 {0x8C, 0, 0, 0, 0},
11066 {0x8D, 0, 0, 0, 0},
11067 {0x8E, 0, 0, 0, 0},
11068 {0x8F, 0, 0, 0, 0},
11069 {0x90, 0, 0, 0, 0},
11070 {0x91, 0, 0, 0, 0},
11071 {0x92, 0, 0, 0, 0},
11072 {0x93, 0, 0, 0, 0},
11073 {0x94, 0, 0, 0, 0},
11074 {0x95, 0, 0, 0, 0},
11075 {0x96, 0, 0, 0, 0},
11076 {0x97, 0, 0, 0, 0},
11077 {0x98, 0, 0, 0, 0},
11078 {0x99, 0, 0, 0, 0},
11079 {0x9A, 0, 0, 0, 0},
11080 {0x9B, 0, 0, 0, 0},
11081 {0x9C, 0, 0, 0, 0},
11082 {0x9D, 0, 0, 0, 0},
11083 {0x9E, 0, 0, 0, 0},
11084 {0x9F, 0x6, 0x6, 0, 0},
11085 {0xA0, 0x66, 0x66, 0, 0},
11086 {0xA1, 0x66, 0x66, 0, 0},
11087 {0xA2, 0x66, 0x66, 0, 0},
11088 {0xA3, 0x66, 0x66, 0, 0},
11089 {0xA4, 0x66, 0x66, 0, 0},
11090 {0xA5, 0x66, 0x66, 0, 0},
11091 {0xA6, 0x66, 0x66, 0, 0},
11092 {0xA7, 0x66, 0x66, 0, 0},
11093 {0xA8, 0x66, 0x66, 0, 0},
11094 {0xA9, 0x66, 0x66, 0, 0},
11095 {0xAA, 0x66, 0x66, 0, 0},
11096 {0xAB, 0x66, 0x66, 0, 0},
11097 {0xAC, 0x66, 0x66, 0, 0},
11098 {0xAD, 0x66, 0x66, 0, 0},
11099 {0xAE, 0x66, 0x66, 0, 0},
11100 {0xAF, 0x66, 0x66, 0, 0},
11101 {0xB0, 0x66, 0x66, 0, 0},
11102 {0xB1, 0x66, 0x66, 0, 0},
11103 {0xB2, 0x66, 0x66, 0, 0},
11104 {0xB3, 0xa, 0xa, 0, 0},
11105 {0xB4, 0, 0, 0, 0},
11106 {0xB5, 0, 0, 0, 0},
11107 {0xB6, 0, 0, 0, 0},
11108 {0xFFFF, 0, 0, 0, 0},
11111 struct radio_regs regs_TX_2056_rev11[] = {
11112 {0x02, 0, 0, 0, 0},
11113 {0x03, 0, 0, 0, 0},
11114 {0x04, 0, 0, 0, 0},
11115 {0x05, 0, 0, 0, 0},
11116 {0x06, 0, 0, 0, 0},
11117 {0x07, 0, 0, 0, 0},
11118 {0x08, 0, 0, 0, 0},
11119 {0x09, 0, 0, 0, 0},
11120 {0x0A, 0, 0, 0, 0},
11121 {0x0B, 0, 0, 0, 0},
11122 {0x0C, 0, 0, 0, 0},
11123 {0x0D, 0, 0, 0, 0},
11124 {0x0E, 0, 0, 0, 0},
11125 {0x0F, 0, 0, 0, 0},
11126 {0x10, 0, 0, 0, 0},
11127 {0x11, 0, 0, 0, 0},
11128 {0x12, 0, 0, 0, 0},
11129 {0x13, 0, 0, 0, 0},
11130 {0x14, 0, 0, 0, 0},
11131 {0x15, 0, 0, 0, 0},
11132 {0x16, 0, 0, 0, 0},
11133 {0x17, 0, 0, 0, 0},
11134 {0x18, 0, 0, 0, 0},
11135 {0x19, 0, 0, 0, 0},
11136 {0x1A, 0, 0, 0, 0},
11137 {0x1B, 0, 0, 0, 0},
11138 {0x1C, 0, 0, 0, 0},
11139 {0x1D, 0, 0, 0, 0},
11140 {0x1E, 0, 0, 0, 0},
11141 {0x1F, 0, 0, 0, 0},
11142 {0x20, 0, 0, 0, 0},
11143 {0x21, 0x88, 0x88, 0, 0},
11144 {0x22, 0x88, 0x88, 0, 0},
11145 {0x23, 0x88, 0x88, 0, 0},
11146 {0x24, 0x88, 0x88, 0, 0},
11147 {0x25, 0xc, 0xc, 0, 0},
11148 {0x26, 0, 0, 0, 0},
11149 {0x27, 0x3, 0x3, 0, 0},
11150 {0x28, 0, 0, 0, 0},
11151 {0x29, 0x3, 0x3, 0, 0},
11152 {0x2A, 0x37, 0x37, 0, 0},
11153 {0x2B, 0x3, 0x3, 0, 0},
11154 {0x2C, 0, 0, 0, 0},
11155 {0x2D, 0, 0, 0, 0},
11156 {0x2E, 0x1, 0x1, 0, 0},
11157 {0x2F, 0x1, 0x1, 0, 0},
11158 {0x30, 0, 0, 0, 0},
11159 {0x31, 0, 0, 0, 0},
11160 {0x32, 0, 0, 0, 0},
11161 {0x33, 0x11, 0x11, 0, 0},
11162 {0x34, 0xee, 0xee, 1, 1},
11163 {0x35, 0, 0, 0, 0},
11164 {0x36, 0, 0, 0, 0},
11165 {0x37, 0x3, 0x3, 0, 0},
11166 {0x38, 0x50, 0x50, 1, 1},
11167 {0x39, 0, 0, 0, 0},
11168 {0x3A, 0x50, 0x50, 1, 1},
11169 {0x3B, 0, 0, 0, 0},
11170 {0x3C, 0x6e, 0x6e, 0, 0},
11171 {0x3D, 0xf0, 0xf0, 1, 1},
11172 {0x3E, 0, 0, 0, 0},
11173 {0x3F, 0, 0, 0, 0},
11174 {0x40, 0, 0, 0, 0},
11175 {0x41, 0x3, 0x3, 0, 0},
11176 {0x42, 0x3, 0x3, 0, 0},
11177 {0x43, 0, 0, 0, 0},
11178 {0x44, 0x1e, 0x1e, 0, 0},
11179 {0x45, 0, 0, 0, 0},
11180 {0x46, 0x6e, 0x6e, 0, 0},
11181 {0x47, 0xf0, 0xf0, 1, 1},
11182 {0x48, 0, 0, 0, 0},
11183 {0x49, 0x2, 0x2, 0, 0},
11184 {0x4A, 0xff, 0xff, 1, 1},
11185 {0x4B, 0xc, 0xc, 0, 0},
11186 {0x4C, 0, 0, 0, 0},
11187 {0x4D, 0x38, 0x38, 0, 0},
11188 {0x4E, 0x70, 0x70, 1, 1},
11189 {0x4F, 0x2, 0x2, 0, 0},
11190 {0x50, 0x88, 0x88, 0, 0},
11191 {0x51, 0xc, 0xc, 0, 0},
11192 {0x52, 0, 0, 0, 0},
11193 {0x53, 0x8, 0x8, 0, 0},
11194 {0x54, 0x70, 0x70, 1, 1},
11195 {0x55, 0x2, 0x2, 0, 0},
11196 {0x56, 0xff, 0xff, 1, 1},
11197 {0x57, 0, 0, 0, 0},
11198 {0x58, 0x83, 0x83, 0, 0},
11199 {0x59, 0x77, 0x77, 1, 1},
11200 {0x5A, 0, 0, 0, 0},
11201 {0x5B, 0x2, 0x2, 0, 0},
11202 {0x5C, 0x88, 0x88, 0, 0},
11203 {0x5D, 0, 0, 0, 0},
11204 {0x5E, 0x8, 0x8, 0, 0},
11205 {0x5F, 0x77, 0x77, 1, 1},
11206 {0x60, 0x1, 0x1, 0, 0},
11207 {0x61, 0, 0, 0, 0},
11208 {0x62, 0x7, 0x7, 0, 0},
11209 {0x63, 0, 0, 0, 0},
11210 {0x64, 0x7, 0x7, 0, 0},
11211 {0x65, 0, 0, 0, 0},
11212 {0x66, 0, 0, 0, 0},
11213 {0x67, 0, 0, 1, 1},
11214 {0x68, 0, 0, 0, 0},
11215 {0x69, 0xa, 0xa, 0, 0},
11216 {0x6A, 0, 0, 0, 0},
11217 {0x6B, 0, 0, 0, 0},
11218 {0x6C, 0, 0, 0, 0},
11219 {0x6D, 0, 0, 0, 0},
11220 {0x6E, 0, 0, 0, 0},
11221 {0x6F, 0, 0, 0, 0},
11222 {0x70, 0, 0, 0, 0},
11223 {0x71, 0x2, 0x2, 0, 0},
11224 {0x72, 0, 0, 0, 0},
11225 {0x73, 0, 0, 0, 0},
11226 {0x74, 0xe, 0xe, 0, 0},
11227 {0x75, 0xe, 0xe, 0, 0},
11228 {0x76, 0xe, 0xe, 0, 0},
11229 {0x77, 0x13, 0x13, 0, 0},
11230 {0x78, 0x13, 0x13, 0, 0},
11231 {0x79, 0x1b, 0x1b, 0, 0},
11232 {0x7A, 0x1b, 0x1b, 0, 0},
11233 {0x7B, 0x55, 0x55, 0, 0},
11234 {0x7C, 0x5b, 0x5b, 0, 0},
11235 {0x7D, 0x30, 0x30, 1, 1},
11236 {0x7E, 0, 0, 0, 0},
11237 {0x7F, 0, 0, 0, 0},
11238 {0x80, 0, 0, 0, 0},
11239 {0x81, 0, 0, 0, 0},
11240 {0x82, 0, 0, 0, 0},
11241 {0x83, 0, 0, 0, 0},
11242 {0x84, 0, 0, 0, 0},
11243 {0x85, 0, 0, 0, 0},
11244 {0x86, 0, 0, 0, 0},
11245 {0x87, 0, 0, 0, 0},
11246 {0x88, 0, 0, 0, 0},
11247 {0x89, 0, 0, 0, 0},
11248 {0x8A, 0, 0, 0, 0},
11249 {0x8B, 0, 0, 0, 0},
11250 {0x8C, 0, 0, 0, 0},
11251 {0x8D, 0, 0, 0, 0},
11252 {0x8E, 0, 0, 0, 0},
11253 {0x8F, 0, 0, 0, 0},
11254 {0x90, 0, 0, 0, 0},
11255 {0x91, 0, 0, 0, 0},
11256 {0x92, 0, 0, 0, 0},
11257 {0x93, 0x70, 0x70, 0, 0},
11258 {0x94, 0x70, 0x70, 0, 0},
11259 {0x95, 0x70, 0x70, 0, 0},
11260 {0x96, 0x70, 0x70, 0, 0},
11261 {0x97, 0x70, 0x70, 0, 0},
11262 {0x98, 0x70, 0x70, 0, 0},
11263 {0x99, 0x70, 0x70, 0, 0},
11264 {0x9A, 0x70, 0x70, 0, 0},
11265 {0xFFFF, 0, 0, 0, 0},
11268 struct radio_regs regs_RX_2056_rev11[] = {
11269 {0x02, 0, 0, 0, 0},
11270 {0x03, 0, 0, 0, 0},
11271 {0x04, 0, 0, 0, 0},
11272 {0x05, 0, 0, 0, 0},
11273 {0x06, 0, 0, 0, 0},
11274 {0x07, 0, 0, 0, 0},
11275 {0x08, 0, 0, 0, 0},
11276 {0x09, 0, 0, 0, 0},
11277 {0x0A, 0, 0, 0, 0},
11278 {0x0B, 0, 0, 0, 0},
11279 {0x0C, 0, 0, 0, 0},
11280 {0x0D, 0, 0, 0, 0},
11281 {0x0E, 0, 0, 0, 0},
11282 {0x0F, 0, 0, 0, 0},
11283 {0x10, 0, 0, 0, 0},
11284 {0x11, 0, 0, 0, 0},
11285 {0x12, 0, 0, 0, 0},
11286 {0x13, 0, 0, 0, 0},
11287 {0x14, 0, 0, 0, 0},
11288 {0x15, 0, 0, 0, 0},
11289 {0x16, 0, 0, 0, 0},
11290 {0x17, 0, 0, 0, 0},
11291 {0x18, 0, 0, 0, 0},
11292 {0x19, 0, 0, 0, 0},
11293 {0x1A, 0, 0, 0, 0},
11294 {0x1B, 0, 0, 0, 0},
11295 {0x1C, 0, 0, 0, 0},
11296 {0x1D, 0, 0, 0, 0},
11297 {0x1E, 0, 0, 0, 0},
11298 {0x1F, 0, 0, 0, 0},
11299 {0x20, 0x3, 0x3, 0, 0},
11300 {0x21, 0, 0, 0, 0},
11301 {0x22, 0, 0, 0, 0},
11302 {0x23, 0x90, 0x90, 0, 0},
11303 {0x24, 0x55, 0x55, 0, 0},
11304 {0x25, 0x15, 0x15, 0, 0},
11305 {0x26, 0x5, 0x5, 0, 0},
11306 {0x27, 0x15, 0x15, 0, 0},
11307 {0x28, 0x5, 0x5, 0, 0},
11308 {0x29, 0x20, 0x20, 0, 0},
11309 {0x2A, 0x11, 0x11, 0, 0},
11310 {0x2B, 0x90, 0x90, 0, 0},
11311 {0x2C, 0, 0, 0, 0},
11312 {0x2D, 0x88, 0x88, 0, 0},
11313 {0x2E, 0x32, 0x32, 0, 0},
11314 {0x2F, 0x77, 0x77, 0, 0},
11315 {0x30, 0x17, 0x17, 1, 1},
11316 {0x31, 0xff, 0xff, 1, 1},
11317 {0x32, 0x20, 0x20, 0, 0},
11318 {0x33, 0, 0, 0, 0},
11319 {0x34, 0x88, 0x88, 0, 0},
11320 {0x35, 0x32, 0x32, 0, 0},
11321 {0x36, 0x77, 0x77, 0, 0},
11322 {0x37, 0x17, 0x17, 1, 1},
11323 {0x38, 0xf0, 0xf0, 1, 1},
11324 {0x39, 0x20, 0x20, 0, 0},
11325 {0x3A, 0x8, 0x8, 0, 0},
11326 {0x3B, 0x55, 0x55, 1, 1},
11327 {0x3C, 0, 0, 0, 0},
11328 {0x3D, 0x88, 0x88, 1, 1},
11329 {0x3E, 0, 0, 0, 0},
11330 {0x3F, 0x44, 0x44, 0, 0},
11331 {0x40, 0x7, 0x7, 1, 1},
11332 {0x41, 0x6, 0x6, 0, 0},
11333 {0x42, 0x4, 0x4, 0, 0},
11334 {0x43, 0, 0, 0, 0},
11335 {0x44, 0x8, 0x8, 0, 0},
11336 {0x45, 0x55, 0x55, 1, 1},
11337 {0x46, 0, 0, 0, 0},
11338 {0x47, 0x11, 0x11, 0, 0},
11339 {0x48, 0, 0, 0, 0},
11340 {0x49, 0x44, 0x44, 0, 0},
11341 {0x4A, 0x7, 0x7, 0, 0},
11342 {0x4B, 0x6, 0x6, 0, 0},
11343 {0x4C, 0x4, 0x4, 0, 0},
11344 {0x4D, 0, 0, 0, 0},
11345 {0x4E, 0, 0, 0, 0},
11346 {0x4F, 0x26, 0x26, 1, 1},
11347 {0x50, 0x26, 0x26, 1, 1},
11348 {0x51, 0xf, 0xf, 1, 1},
11349 {0x52, 0xf, 0xf, 1, 1},
11350 {0x53, 0x44, 0x44, 0, 0},
11351 {0x54, 0, 0, 0, 0},
11352 {0x55, 0, 0, 0, 0},
11353 {0x56, 0x8, 0x8, 0, 0},
11354 {0x57, 0x8, 0x8, 0, 0},
11355 {0x58, 0x7, 0x7, 0, 0},
11356 {0x59, 0x22, 0x22, 0, 0},
11357 {0x5A, 0x22, 0x22, 0, 0},
11358 {0x5B, 0x2, 0x2, 0, 0},
11359 {0x5C, 0x4, 0x4, 1, 1},
11360 {0x5D, 0x7, 0x7, 0, 0},
11361 {0x5E, 0x55, 0x55, 0, 0},
11362 {0x5F, 0x23, 0x23, 0, 0},
11363 {0x60, 0x41, 0x41, 0, 0},
11364 {0x61, 0x1, 0x1, 0, 0},
11365 {0x62, 0xa, 0xa, 0, 0},
11366 {0x63, 0, 0, 0, 0},
11367 {0x64, 0, 0, 0, 0},
11368 {0x65, 0, 0, 0, 0},
11369 {0x66, 0, 0, 0, 0},
11370 {0x67, 0, 0, 0, 0},
11371 {0x68, 0, 0, 0, 0},
11372 {0x69, 0, 0, 0, 0},
11373 {0x6A, 0, 0, 0, 0},
11374 {0x6B, 0xc, 0xc, 0, 0},
11375 {0x6C, 0, 0, 0, 0},
11376 {0x6D, 0, 0, 0, 0},
11377 {0x6E, 0, 0, 0, 0},
11378 {0x6F, 0, 0, 0, 0},
11379 {0x70, 0, 0, 0, 0},
11380 {0x71, 0, 0, 0, 0},
11381 {0x72, 0x22, 0x22, 0, 0},
11382 {0x73, 0x22, 0x22, 0, 0},
11383 {0x74, 0, 0, 1, 1},
11384 {0x75, 0xa, 0xa, 0, 0},
11385 {0x76, 0x1, 0x1, 0, 0},
11386 {0x77, 0x22, 0x22, 0, 0},
11387 {0x78, 0x30, 0x30, 0, 0},
11388 {0x79, 0, 0, 0, 0},
11389 {0x7A, 0, 0, 0, 0},
11390 {0x7B, 0, 0, 0, 0},
11391 {0x7C, 0, 0, 0, 0},
11392 {0x7D, 0x5, 0x5, 1, 1},
11393 {0x7E, 0, 0, 0, 0},
11394 {0x7F, 0, 0, 0, 0},
11395 {0x80, 0, 0, 0, 0},
11396 {0x81, 0, 0, 0, 0},
11397 {0x82, 0, 0, 0, 0},
11398 {0x83, 0, 0, 0, 0},
11399 {0x84, 0, 0, 0, 0},
11400 {0x85, 0, 0, 0, 0},
11401 {0x86, 0, 0, 0, 0},
11402 {0x87, 0, 0, 0, 0},
11403 {0x88, 0, 0, 0, 0},
11404 {0x89, 0, 0, 0, 0},
11405 {0x8A, 0, 0, 0, 0},
11406 {0x8B, 0, 0, 0, 0},
11407 {0x8C, 0, 0, 0, 0},
11408 {0x8D, 0, 0, 0, 0},
11409 {0x8E, 0, 0, 0, 0},
11410 {0x8F, 0, 0, 0, 0},
11411 {0x90, 0, 0, 0, 0},
11412 {0x91, 0, 0, 0, 0},
11413 {0x92, 0, 0, 0, 0},
11414 {0x93, 0, 0, 0, 0},
11415 {0x94, 0, 0, 0, 0},
11416 {0xFFFF, 0, 0, 0, 0},
11419 struct radio_20xx_regs regs_2057_rev4[] = {
11420 {0x00, 0x84, 0},
11421 {0x01, 0, 0},
11422 {0x02, 0x60, 0},
11423 {0x03, 0x1f, 0},
11424 {0x04, 0x4, 0},
11425 {0x05, 0x2, 0},
11426 {0x06, 0x1, 0},
11427 {0x07, 0x1, 0},
11428 {0x08, 0x1, 0},
11429 {0x09, 0x69, 0},
11430 {0x0A, 0x66, 0},
11431 {0x0B, 0x6, 0},
11432 {0x0C, 0x18, 0},
11433 {0x0D, 0x3, 0},
11434 {0x0E, 0x20, 1},
11435 {0x0F, 0x20, 0},
11436 {0x10, 0, 0},
11437 {0x11, 0x7c, 0},
11438 {0x12, 0x42, 0},
11439 {0x13, 0xbd, 0},
11440 {0x14, 0x7, 0},
11441 {0x15, 0xf7, 0},
11442 {0x16, 0x8, 0},
11443 {0x17, 0x17, 0},
11444 {0x18, 0x7, 0},
11445 {0x19, 0, 0},
11446 {0x1A, 0x2, 0},
11447 {0x1B, 0x13, 0},
11448 {0x1C, 0x3e, 0},
11449 {0x1D, 0x3e, 0},
11450 {0x1E, 0x96, 0},
11451 {0x1F, 0x4, 0},
11452 {0x20, 0, 0},
11453 {0x21, 0, 0},
11454 {0x22, 0x17, 0},
11455 {0x23, 0x4, 0},
11456 {0x24, 0x1, 0},
11457 {0x25, 0x6, 0},
11458 {0x26, 0x4, 0},
11459 {0x27, 0xd, 0},
11460 {0x28, 0xd, 0},
11461 {0x29, 0x30, 0},
11462 {0x2A, 0x32, 0},
11463 {0x2B, 0x8, 0},
11464 {0x2C, 0x1c, 0},
11465 {0x2D, 0x2, 0},
11466 {0x2E, 0x4, 0},
11467 {0x2F, 0x7f, 0},
11468 {0x30, 0x27, 0},
11469 {0x31, 0, 1},
11470 {0x32, 0, 1},
11471 {0x33, 0, 1},
11472 {0x34, 0, 0},
11473 {0x35, 0x26, 1},
11474 {0x36, 0x18, 0},
11475 {0x37, 0x7, 0},
11476 {0x38, 0x66, 0},
11477 {0x39, 0x66, 0},
11478 {0x3A, 0x66, 0},
11479 {0x3B, 0x66, 0},
11480 {0x3C, 0xff, 1},
11481 {0x3D, 0xff, 1},
11482 {0x3E, 0xff, 1},
11483 {0x3F, 0xff, 1},
11484 {0x40, 0x16, 0},
11485 {0x41, 0x7, 0},
11486 {0x42, 0x19, 0},
11487 {0x43, 0x7, 0},
11488 {0x44, 0x6, 0},
11489 {0x45, 0x3, 0},
11490 {0x46, 0x1, 0},
11491 {0x47, 0x7, 0},
11492 {0x48, 0x33, 0},
11493 {0x49, 0x5, 0},
11494 {0x4A, 0x77, 0},
11495 {0x4B, 0x66, 0},
11496 {0x4C, 0x66, 0},
11497 {0x4D, 0, 0},
11498 {0x4E, 0x4, 0},
11499 {0x4F, 0xc, 0},
11500 {0x50, 0, 0},
11501 {0x51, 0x75, 0},
11502 {0x56, 0x7, 0},
11503 {0x57, 0, 0},
11504 {0x58, 0, 0},
11505 {0x59, 0xa8, 0},
11506 {0x5A, 0, 0},
11507 {0x5B, 0x1f, 0},
11508 {0x5C, 0x30, 0},
11509 {0x5D, 0x1, 0},
11510 {0x5E, 0x30, 0},
11511 {0x5F, 0x70, 0},
11512 {0x60, 0, 0},
11513 {0x61, 0, 0},
11514 {0x62, 0x33, 1},
11515 {0x63, 0x19, 0},
11516 {0x64, 0x62, 0},
11517 {0x65, 0, 0},
11518 {0x66, 0x11, 0},
11519 {0x69, 0, 0},
11520 {0x6A, 0x7e, 0},
11521 {0x6B, 0x3f, 0},
11522 {0x6C, 0x7f, 0},
11523 {0x6D, 0x78, 0},
11524 {0x6E, 0xc8, 0},
11525 {0x6F, 0x88, 0},
11526 {0x70, 0x8, 0},
11527 {0x71, 0xf, 0},
11528 {0x72, 0xbc, 0},
11529 {0x73, 0x8, 0},
11530 {0x74, 0x60, 0},
11531 {0x75, 0x1e, 0},
11532 {0x76, 0x70, 0},
11533 {0x77, 0, 0},
11534 {0x78, 0, 0},
11535 {0x79, 0, 0},
11536 {0x7A, 0x33, 0},
11537 {0x7B, 0x1e, 0},
11538 {0x7C, 0x62, 0},
11539 {0x7D, 0x11, 0},
11540 {0x80, 0x3c, 0},
11541 {0x81, 0x9c, 0},
11542 {0x82, 0xa, 0},
11543 {0x83, 0x9d, 0},
11544 {0x84, 0xa, 0},
11545 {0x85, 0, 0},
11546 {0x86, 0x40, 0},
11547 {0x87, 0x40, 0},
11548 {0x88, 0x88, 0},
11549 {0x89, 0x10, 0},
11550 {0x8A, 0xf0, 1},
11551 {0x8B, 0x10, 1},
11552 {0x8C, 0xf0, 1},
11553 {0x8D, 0, 0},
11554 {0x8E, 0, 0},
11555 {0x8F, 0x10, 0},
11556 {0x90, 0x55, 0},
11557 {0x91, 0x3f, 1},
11558 {0x92, 0x36, 1},
11559 {0x93, 0, 0},
11560 {0x94, 0, 0},
11561 {0x95, 0, 0},
11562 {0x96, 0x87, 0},
11563 {0x97, 0x11, 0},
11564 {0x98, 0, 0},
11565 {0x99, 0x33, 0},
11566 {0x9A, 0x88, 0},
11567 {0x9B, 0, 0},
11568 {0x9C, 0x87, 0},
11569 {0x9D, 0x11, 0},
11570 {0x9E, 0, 0},
11571 {0x9F, 0x33, 0},
11572 {0xA0, 0x88, 0},
11573 {0xA1, 0xe1, 0},
11574 {0xA2, 0x3f, 0},
11575 {0xA3, 0x44, 0},
11576 {0xA4, 0x8c, 1},
11577 {0xA5, 0x6d, 0},
11578 {0xA6, 0x22, 0},
11579 {0xA7, 0xbe, 0},
11580 {0xA8, 0x55, 1},
11581 {0xA9, 0xc, 0},
11582 {0xAA, 0xc, 0},
11583 {0xAB, 0xaa, 0},
11584 {0xAC, 0x2, 0},
11585 {0xAD, 0, 0},
11586 {0xAE, 0x10, 0},
11587 {0xAF, 0x1, 1},
11588 {0xB0, 0, 0},
11589 {0xB1, 0, 0},
11590 {0xB2, 0x80, 0},
11591 {0xB3, 0x60, 0},
11592 {0xB4, 0x44, 0},
11593 {0xB5, 0x55, 0},
11594 {0xB6, 0x1, 0},
11595 {0xB7, 0x55, 0},
11596 {0xB8, 0x1, 0},
11597 {0xB9, 0x5, 0},
11598 {0xBA, 0x55, 0},
11599 {0xBB, 0x55, 0},
11600 {0xC1, 0, 0},
11601 {0xC2, 0, 0},
11602 {0xC3, 0, 0},
11603 {0xC4, 0, 0},
11604 {0xC5, 0, 0},
11605 {0xC6, 0, 0},
11606 {0xC7, 0, 0},
11607 {0xC8, 0, 0},
11608 {0xC9, 0, 0},
11609 {0xCA, 0, 0},
11610 {0xCB, 0, 0},
11611 {0xCC, 0, 0},
11612 {0xCD, 0, 0},
11613 {0xCE, 0x5e, 0},
11614 {0xCF, 0xc, 0},
11615 {0xD0, 0xc, 0},
11616 {0xD1, 0xc, 0},
11617 {0xD2, 0, 0},
11618 {0xD3, 0x2b, 0},
11619 {0xD4, 0xc, 0},
11620 {0xD5, 0, 0},
11621 {0xD6, 0x75, 0},
11622 {0xDB, 0x7, 0},
11623 {0xDC, 0, 0},
11624 {0xDD, 0, 0},
11625 {0xDE, 0xa8, 0},
11626 {0xDF, 0, 0},
11627 {0xE0, 0x1f, 0},
11628 {0xE1, 0x30, 0},
11629 {0xE2, 0x1, 0},
11630 {0xE3, 0x30, 0},
11631 {0xE4, 0x70, 0},
11632 {0xE5, 0, 0},
11633 {0xE6, 0, 0},
11634 {0xE7, 0x33, 0},
11635 {0xE8, 0x19, 0},
11636 {0xE9, 0x62, 0},
11637 {0xEA, 0, 0},
11638 {0xEB, 0x11, 0},
11639 {0xEE, 0, 0},
11640 {0xEF, 0x7e, 0},
11641 {0xF0, 0x3f, 0},
11642 {0xF1, 0x7f, 0},
11643 {0xF2, 0x78, 0},
11644 {0xF3, 0xc8, 0},
11645 {0xF4, 0x88, 0},
11646 {0xF5, 0x8, 0},
11647 {0xF6, 0xf, 0},
11648 {0xF7, 0xbc, 0},
11649 {0xF8, 0x8, 0},
11650 {0xF9, 0x60, 0},
11651 {0xFA, 0x1e, 0},
11652 {0xFB, 0x70, 0},
11653 {0xFC, 0, 0},
11654 {0xFD, 0, 0},
11655 {0xFE, 0, 0},
11656 {0xFF, 0x33, 0},
11657 {0x100, 0x1e, 0},
11658 {0x101, 0x62, 0},
11659 {0x102, 0x11, 0},
11660 {0x105, 0x3c, 0},
11661 {0x106, 0x9c, 0},
11662 {0x107, 0xa, 0},
11663 {0x108, 0x9d, 0},
11664 {0x109, 0xa, 0},
11665 {0x10A, 0, 0},
11666 {0x10B, 0x40, 0},
11667 {0x10C, 0x40, 0},
11668 {0x10D, 0x88, 0},
11669 {0x10E, 0x10, 0},
11670 {0x10F, 0xf0, 1},
11671 {0x110, 0x10, 1},
11672 {0x111, 0xf0, 1},
11673 {0x112, 0, 0},
11674 {0x113, 0, 0},
11675 {0x114, 0x10, 0},
11676 {0x115, 0x55, 0},
11677 {0x116, 0x3f, 1},
11678 {0x117, 0x36, 1},
11679 {0x118, 0, 0},
11680 {0x119, 0, 0},
11681 {0x11A, 0, 0},
11682 {0x11B, 0x87, 0},
11683 {0x11C, 0x11, 0},
11684 {0x11D, 0, 0},
11685 {0x11E, 0x33, 0},
11686 {0x11F, 0x88, 0},
11687 {0x120, 0, 0},
11688 {0x121, 0x87, 0},
11689 {0x122, 0x11, 0},
11690 {0x123, 0, 0},
11691 {0x124, 0x33, 0},
11692 {0x125, 0x88, 0},
11693 {0x126, 0xe1, 0},
11694 {0x127, 0x3f, 0},
11695 {0x128, 0x44, 0},
11696 {0x129, 0x8c, 1},
11697 {0x12A, 0x6d, 0},
11698 {0x12B, 0x22, 0},
11699 {0x12C, 0xbe, 0},
11700 {0x12D, 0x55, 1},
11701 {0x12E, 0xc, 0},
11702 {0x12F, 0xc, 0},
11703 {0x130, 0xaa, 0},
11704 {0x131, 0x2, 0},
11705 {0x132, 0, 0},
11706 {0x133, 0x10, 0},
11707 {0x134, 0x1, 1},
11708 {0x135, 0, 0},
11709 {0x136, 0, 0},
11710 {0x137, 0x80, 0},
11711 {0x138, 0x60, 0},
11712 {0x139, 0x44, 0},
11713 {0x13A, 0x55, 0},
11714 {0x13B, 0x1, 0},
11715 {0x13C, 0x55, 0},
11716 {0x13D, 0x1, 0},
11717 {0x13E, 0x5, 0},
11718 {0x13F, 0x55, 0},
11719 {0x140, 0x55, 0},
11720 {0x146, 0, 0},
11721 {0x147, 0, 0},
11722 {0x148, 0, 0},
11723 {0x149, 0, 0},
11724 {0x14A, 0, 0},
11725 {0x14B, 0, 0},
11726 {0x14C, 0, 0},
11727 {0x14D, 0, 0},
11728 {0x14E, 0, 0},
11729 {0x14F, 0, 0},
11730 {0x150, 0, 0},
11731 {0x151, 0, 0},
11732 {0x152, 0, 0},
11733 {0x153, 0, 0},
11734 {0x154, 0xc, 0},
11735 {0x155, 0xc, 0},
11736 {0x156, 0xc, 0},
11737 {0x157, 0, 0},
11738 {0x158, 0x2b, 0},
11739 {0x159, 0x84, 0},
11740 {0x15A, 0x15, 0},
11741 {0x15B, 0xf, 0},
11742 {0x15C, 0, 0},
11743 {0x15D, 0, 0},
11744 {0x15E, 0, 1},
11745 {0x15F, 0, 1},
11746 {0x160, 0, 1},
11747 {0x161, 0, 1},
11748 {0x162, 0, 1},
11749 {0x163, 0, 1},
11750 {0x164, 0, 0},
11751 {0x165, 0, 0},
11752 {0x166, 0, 0},
11753 {0x167, 0, 0},
11754 {0x168, 0, 0},
11755 {0x169, 0x2, 1},
11756 {0x16A, 0, 1},
11757 {0x16B, 0, 1},
11758 {0x16C, 0, 1},
11759 {0x16D, 0, 0},
11760 {0x170, 0, 0},
11761 {0x171, 0x77, 0},
11762 {0x172, 0x77, 0},
11763 {0x173, 0x77, 0},
11764 {0x174, 0x77, 0},
11765 {0x175, 0, 0},
11766 {0x176, 0x3, 0},
11767 {0x177, 0x37, 0},
11768 {0x178, 0x3, 0},
11769 {0x179, 0, 0},
11770 {0x17A, 0x21, 0},
11771 {0x17B, 0x21, 0},
11772 {0x17C, 0, 0},
11773 {0x17D, 0xaa, 0},
11774 {0x17E, 0, 0},
11775 {0x17F, 0xaa, 0},
11776 {0x180, 0, 0},
11777 {0x190, 0, 0},
11778 {0x191, 0x77, 0},
11779 {0x192, 0x77, 0},
11780 {0x193, 0x77, 0},
11781 {0x194, 0x77, 0},
11782 {0x195, 0, 0},
11783 {0x196, 0x3, 0},
11784 {0x197, 0x37, 0},
11785 {0x198, 0x3, 0},
11786 {0x199, 0, 0},
11787 {0x19A, 0x21, 0},
11788 {0x19B, 0x21, 0},
11789 {0x19C, 0, 0},
11790 {0x19D, 0xaa, 0},
11791 {0x19E, 0, 0},
11792 {0x19F, 0xaa, 0},
11793 {0x1A0, 0, 0},
11794 {0x1A1, 0x2, 0},
11795 {0x1A2, 0xf, 0},
11796 {0x1A3, 0xf, 0},
11797 {0x1A4, 0, 1},
11798 {0x1A5, 0, 1},
11799 {0x1A6, 0, 1},
11800 {0x1A7, 0x2, 0},
11801 {0x1A8, 0xf, 0},
11802 {0x1A9, 0xf, 0},
11803 {0x1AA, 0, 1},
11804 {0x1AB, 0, 1},
11805 {0x1AC, 0, 1},
11806 {0xFFFF, 0, 0},
11809 struct radio_20xx_regs regs_2057_rev5[] = {
11810 {0x00, 0, 1},
11811 {0x01, 0x57, 1},
11812 {0x02, 0x20, 1},
11813 {0x03, 0x1f, 0},
11814 {0x04, 0x4, 0},
11815 {0x05, 0x2, 0},
11816 {0x06, 0x1, 0},
11817 {0x07, 0x1, 0},
11818 {0x08, 0x1, 0},
11819 {0x09, 0x69, 0},
11820 {0x0A, 0x66, 0},
11821 {0x0B, 0x6, 0},
11822 {0x0C, 0x18, 0},
11823 {0x0D, 0x3, 0},
11824 {0x0E, 0x20, 0},
11825 {0x0F, 0x20, 0},
11826 {0x10, 0, 0},
11827 {0x11, 0x7c, 0},
11828 {0x12, 0x42, 0},
11829 {0x13, 0xbd, 0},
11830 {0x14, 0x7, 0},
11831 {0x15, 0x87, 0},
11832 {0x16, 0x8, 0},
11833 {0x17, 0x17, 0},
11834 {0x18, 0x7, 0},
11835 {0x19, 0, 0},
11836 {0x1A, 0x2, 0},
11837 {0x1B, 0x13, 0},
11838 {0x1C, 0x3e, 0},
11839 {0x1D, 0x3e, 0},
11840 {0x1E, 0x96, 0},
11841 {0x1F, 0x4, 0},
11842 {0x20, 0, 0},
11843 {0x21, 0, 0},
11844 {0x22, 0x17, 0},
11845 {0x23, 0x6, 1},
11846 {0x24, 0x1, 0},
11847 {0x25, 0x6, 0},
11848 {0x26, 0x4, 0},
11849 {0x27, 0xd, 0},
11850 {0x28, 0xd, 0},
11851 {0x29, 0x30, 0},
11852 {0x2A, 0x32, 0},
11853 {0x2B, 0x8, 0},
11854 {0x2C, 0x1c, 0},
11855 {0x2D, 0x2, 0},
11856 {0x2E, 0x4, 0},
11857 {0x2F, 0x7f, 0},
11858 {0x30, 0x27, 0},
11859 {0x31, 0, 1},
11860 {0x32, 0, 1},
11861 {0x33, 0, 1},
11862 {0x34, 0, 0},
11863 {0x35, 0x20, 0},
11864 {0x36, 0x18, 0},
11865 {0x37, 0x7, 0},
11866 {0x38, 0x66, 0},
11867 {0x39, 0x66, 0},
11868 {0x3C, 0xff, 0},
11869 {0x3D, 0xff, 0},
11870 {0x40, 0x16, 0},
11871 {0x41, 0x7, 0},
11872 {0x45, 0x3, 0},
11873 {0x46, 0x1, 0},
11874 {0x47, 0x7, 0},
11875 {0x4B, 0x66, 0},
11876 {0x4C, 0x66, 0},
11877 {0x4D, 0, 0},
11878 {0x4E, 0x4, 0},
11879 {0x4F, 0xc, 0},
11880 {0x50, 0, 0},
11881 {0x51, 0x70, 1},
11882 {0x56, 0x7, 0},
11883 {0x57, 0, 0},
11884 {0x58, 0, 0},
11885 {0x59, 0x88, 1},
11886 {0x5A, 0, 0},
11887 {0x5B, 0x1f, 0},
11888 {0x5C, 0x20, 1},
11889 {0x5D, 0x1, 0},
11890 {0x5E, 0x30, 0},
11891 {0x5F, 0x70, 0},
11892 {0x60, 0, 0},
11893 {0x61, 0, 0},
11894 {0x62, 0x33, 1},
11895 {0x63, 0xf, 1},
11896 {0x64, 0xf, 1},
11897 {0x65, 0, 0},
11898 {0x66, 0x11, 0},
11899 {0x80, 0x3c, 0},
11900 {0x81, 0x1, 1},
11901 {0x82, 0xa, 0},
11902 {0x85, 0, 0},
11903 {0x86, 0x40, 0},
11904 {0x87, 0x40, 0},
11905 {0x88, 0x88, 0},
11906 {0x89, 0x10, 0},
11907 {0x8A, 0xf0, 0},
11908 {0x8B, 0x10, 0},
11909 {0x8C, 0xf0, 0},
11910 {0x8F, 0x10, 0},
11911 {0x90, 0x55, 0},
11912 {0x91, 0x3f, 1},
11913 {0x92, 0x36, 1},
11914 {0x93, 0, 0},
11915 {0x94, 0, 0},
11916 {0x95, 0, 0},
11917 {0x96, 0x87, 0},
11918 {0x97, 0x11, 0},
11919 {0x98, 0, 0},
11920 {0x99, 0x33, 0},
11921 {0x9A, 0x88, 0},
11922 {0xA1, 0x20, 1},
11923 {0xA2, 0x3f, 0},
11924 {0xA3, 0x44, 0},
11925 {0xA4, 0x8c, 0},
11926 {0xA5, 0x6c, 0},
11927 {0xA6, 0x22, 0},
11928 {0xA7, 0xbe, 0},
11929 {0xA8, 0x55, 0},
11930 {0xAA, 0xc, 0},
11931 {0xAB, 0xaa, 0},
11932 {0xAC, 0x2, 0},
11933 {0xAD, 0, 0},
11934 {0xAE, 0x10, 0},
11935 {0xAF, 0x1, 0},
11936 {0xB0, 0, 0},
11937 {0xB1, 0, 0},
11938 {0xB2, 0x80, 0},
11939 {0xB3, 0x60, 0},
11940 {0xB4, 0x44, 0},
11941 {0xB5, 0x55, 0},
11942 {0xB6, 0x1, 0},
11943 {0xB7, 0x55, 0},
11944 {0xB8, 0x1, 0},
11945 {0xB9, 0x5, 0},
11946 {0xBA, 0x55, 0},
11947 {0xBB, 0x55, 0},
11948 {0xC3, 0, 0},
11949 {0xC4, 0, 0},
11950 {0xC5, 0, 0},
11951 {0xC6, 0, 0},
11952 {0xC7, 0, 0},
11953 {0xC8, 0, 0},
11954 {0xC9, 0, 0},
11955 {0xCA, 0, 0},
11956 {0xCB, 0, 0},
11957 {0xCD, 0, 0},
11958 {0xCE, 0x5e, 0},
11959 {0xCF, 0xc, 0},
11960 {0xD0, 0xc, 0},
11961 {0xD1, 0xc, 0},
11962 {0xD2, 0, 0},
11963 {0xD3, 0x2b, 0},
11964 {0xD4, 0xc, 0},
11965 {0xD5, 0, 0},
11966 {0xD6, 0x70, 1},
11967 {0xDB, 0x7, 0},
11968 {0xDC, 0, 0},
11969 {0xDD, 0, 0},
11970 {0xDE, 0x88, 1},
11971 {0xDF, 0, 0},
11972 {0xE0, 0x1f, 0},
11973 {0xE1, 0x20, 1},
11974 {0xE2, 0x1, 0},
11975 {0xE3, 0x30, 0},
11976 {0xE4, 0x70, 0},
11977 {0xE5, 0, 0},
11978 {0xE6, 0, 0},
11979 {0xE7, 0x33, 0},
11980 {0xE8, 0xf, 1},
11981 {0xE9, 0xf, 1},
11982 {0xEA, 0, 0},
11983 {0xEB, 0x11, 0},
11984 {0x105, 0x3c, 0},
11985 {0x106, 0x1, 1},
11986 {0x107, 0xa, 0},
11987 {0x10A, 0, 0},
11988 {0x10B, 0x40, 0},
11989 {0x10C, 0x40, 0},
11990 {0x10D, 0x88, 0},
11991 {0x10E, 0x10, 0},
11992 {0x10F, 0xf0, 0},
11993 {0x110, 0x10, 0},
11994 {0x111, 0xf0, 0},
11995 {0x114, 0x10, 0},
11996 {0x115, 0x55, 0},
11997 {0x116, 0x3f, 1},
11998 {0x117, 0x36, 1},
11999 {0x118, 0, 0},
12000 {0x119, 0, 0},
12001 {0x11A, 0, 0},
12002 {0x11B, 0x87, 0},
12003 {0x11C, 0x11, 0},
12004 {0x11D, 0, 0},
12005 {0x11E, 0x33, 0},
12006 {0x11F, 0x88, 0},
12007 {0x126, 0x20, 1},
12008 {0x127, 0x3f, 0},
12009 {0x128, 0x44, 0},
12010 {0x129, 0x8c, 0},
12011 {0x12A, 0x6c, 0},
12012 {0x12B, 0x22, 0},
12013 {0x12C, 0xbe, 0},
12014 {0x12D, 0x55, 0},
12015 {0x12F, 0xc, 0},
12016 {0x130, 0xaa, 0},
12017 {0x131, 0x2, 0},
12018 {0x132, 0, 0},
12019 {0x133, 0x10, 0},
12020 {0x134, 0x1, 0},
12021 {0x135, 0, 0},
12022 {0x136, 0, 0},
12023 {0x137, 0x80, 0},
12024 {0x138, 0x60, 0},
12025 {0x139, 0x44, 0},
12026 {0x13A, 0x55, 0},
12027 {0x13B, 0x1, 0},
12028 {0x13C, 0x55, 0},
12029 {0x13D, 0x1, 0},
12030 {0x13E, 0x5, 0},
12031 {0x13F, 0x55, 0},
12032 {0x140, 0x55, 0},
12033 {0x148, 0, 0},
12034 {0x149, 0, 0},
12035 {0x14A, 0, 0},
12036 {0x14B, 0, 0},
12037 {0x14C, 0, 0},
12038 {0x14D, 0, 0},
12039 {0x14E, 0, 0},
12040 {0x14F, 0, 0},
12041 {0x150, 0, 0},
12042 {0x154, 0xc, 0},
12043 {0x155, 0xc, 0},
12044 {0x156, 0xc, 0},
12045 {0x157, 0, 0},
12046 {0x158, 0x2b, 0},
12047 {0x159, 0x84, 0},
12048 {0x15A, 0x15, 0},
12049 {0x15B, 0xf, 0},
12050 {0x15C, 0, 0},
12051 {0x15D, 0, 0},
12052 {0x15E, 0, 1},
12053 {0x15F, 0, 1},
12054 {0x160, 0, 1},
12055 {0x161, 0, 1},
12056 {0x162, 0, 1},
12057 {0x163, 0, 1},
12058 {0x164, 0, 0},
12059 {0x165, 0, 0},
12060 {0x166, 0, 0},
12061 {0x167, 0, 0},
12062 {0x168, 0, 0},
12063 {0x169, 0, 0},
12064 {0x16A, 0, 1},
12065 {0x16B, 0, 1},
12066 {0x16C, 0, 1},
12067 {0x16D, 0, 0},
12068 {0x170, 0, 0},
12069 {0x171, 0x77, 0},
12070 {0x172, 0x77, 0},
12071 {0x173, 0x77, 0},
12072 {0x174, 0x77, 0},
12073 {0x175, 0, 0},
12074 {0x176, 0x3, 0},
12075 {0x177, 0x37, 0},
12076 {0x178, 0x3, 0},
12077 {0x179, 0, 0},
12078 {0x17B, 0x21, 0},
12079 {0x17C, 0, 0},
12080 {0x17D, 0xaa, 0},
12081 {0x17E, 0, 0},
12082 {0x190, 0, 0},
12083 {0x191, 0x77, 0},
12084 {0x192, 0x77, 0},
12085 {0x193, 0x77, 0},
12086 {0x194, 0x77, 0},
12087 {0x195, 0, 0},
12088 {0x196, 0x3, 0},
12089 {0x197, 0x37, 0},
12090 {0x198, 0x3, 0},
12091 {0x199, 0, 0},
12092 {0x19B, 0x21, 0},
12093 {0x19C, 0, 0},
12094 {0x19D, 0xaa, 0},
12095 {0x19E, 0, 0},
12096 {0x1A1, 0x2, 0},
12097 {0x1A2, 0xf, 0},
12098 {0x1A3, 0xf, 0},
12099 {0x1A4, 0, 1},
12100 {0x1A5, 0, 1},
12101 {0x1A6, 0, 1},
12102 {0x1A7, 0x2, 0},
12103 {0x1A8, 0xf, 0},
12104 {0x1A9, 0xf, 0},
12105 {0x1AA, 0, 1},
12106 {0x1AB, 0, 1},
12107 {0x1AC, 0, 1},
12108 {0x1AD, 0x84, 0},
12109 {0x1AE, 0x60, 0},
12110 {0x1AF, 0x47, 0},
12111 {0x1B0, 0x47, 0},
12112 {0x1B1, 0, 0},
12113 {0x1B2, 0, 0},
12114 {0x1B3, 0, 0},
12115 {0x1B4, 0, 0},
12116 {0x1B5, 0, 0},
12117 {0x1B6, 0, 0},
12118 {0x1B7, 0xc, 1},
12119 {0x1B8, 0, 0},
12120 {0x1B9, 0, 0},
12121 {0x1BA, 0, 0},
12122 {0x1BB, 0, 0},
12123 {0x1BC, 0, 0},
12124 {0x1BD, 0, 0},
12125 {0x1BE, 0, 0},
12126 {0x1BF, 0, 0},
12127 {0x1C0, 0, 0},
12128 {0x1C1, 0x1, 1},
12129 {0x1C2, 0x80, 1},
12130 {0x1C3, 0, 0},
12131 {0x1C4, 0, 0},
12132 {0x1C5, 0, 0},
12133 {0x1C6, 0, 0},
12134 {0x1C7, 0, 0},
12135 {0x1C8, 0, 0},
12136 {0x1C9, 0, 0},
12137 {0x1CA, 0, 0},
12138 {0xFFFF, 0, 0}
12141 struct radio_20xx_regs regs_2057_rev5v1[] = {
12142 {0x00, 0x15, 1},
12143 {0x01, 0x57, 1},
12144 {0x02, 0x20, 1},
12145 {0x03, 0x1f, 0},
12146 {0x04, 0x4, 0},
12147 {0x05, 0x2, 0},
12148 {0x06, 0x1, 0},
12149 {0x07, 0x1, 0},
12150 {0x08, 0x1, 0},
12151 {0x09, 0x69, 0},
12152 {0x0A, 0x66, 0},
12153 {0x0B, 0x6, 0},
12154 {0x0C, 0x18, 0},
12155 {0x0D, 0x3, 0},
12156 {0x0E, 0x20, 0},
12157 {0x0F, 0x20, 0},
12158 {0x10, 0, 0},
12159 {0x11, 0x7c, 0},
12160 {0x12, 0x42, 0},
12161 {0x13, 0xbd, 0},
12162 {0x14, 0x7, 0},
12163 {0x15, 0x87, 0},
12164 {0x16, 0x8, 0},
12165 {0x17, 0x17, 0},
12166 {0x18, 0x7, 0},
12167 {0x19, 0, 0},
12168 {0x1A, 0x2, 0},
12169 {0x1B, 0x13, 0},
12170 {0x1C, 0x3e, 0},
12171 {0x1D, 0x3e, 0},
12172 {0x1E, 0x96, 0},
12173 {0x1F, 0x4, 0},
12174 {0x20, 0, 0},
12175 {0x21, 0, 0},
12176 {0x22, 0x17, 0},
12177 {0x23, 0x6, 1},
12178 {0x24, 0x1, 0},
12179 {0x25, 0x6, 0},
12180 {0x26, 0x4, 0},
12181 {0x27, 0xd, 0},
12182 {0x28, 0xd, 0},
12183 {0x29, 0x30, 0},
12184 {0x2A, 0x32, 0},
12185 {0x2B, 0x8, 0},
12186 {0x2C, 0x1c, 0},
12187 {0x2D, 0x2, 0},
12188 {0x2E, 0x4, 0},
12189 {0x2F, 0x7f, 0},
12190 {0x30, 0x27, 0},
12191 {0x31, 0, 1},
12192 {0x32, 0, 1},
12193 {0x33, 0, 1},
12194 {0x34, 0, 0},
12195 {0x35, 0x20, 0},
12196 {0x36, 0x18, 0},
12197 {0x37, 0x7, 0},
12198 {0x38, 0x66, 0},
12199 {0x39, 0x66, 0},
12200 {0x3C, 0xff, 0},
12201 {0x3D, 0xff, 0},
12202 {0x40, 0x16, 0},
12203 {0x41, 0x7, 0},
12204 {0x45, 0x3, 0},
12205 {0x46, 0x1, 0},
12206 {0x47, 0x7, 0},
12207 {0x4B, 0x66, 0},
12208 {0x4C, 0x66, 0},
12209 {0x4D, 0, 0},
12210 {0x4E, 0x4, 0},
12211 {0x4F, 0xc, 0},
12212 {0x50, 0, 0},
12213 {0x51, 0x70, 1},
12214 {0x56, 0x7, 0},
12215 {0x57, 0, 0},
12216 {0x58, 0, 0},
12217 {0x59, 0x88, 1},
12218 {0x5A, 0, 0},
12219 {0x5B, 0x1f, 0},
12220 {0x5C, 0x20, 1},
12221 {0x5D, 0x1, 0},
12222 {0x5E, 0x30, 0},
12223 {0x5F, 0x70, 0},
12224 {0x60, 0, 0},
12225 {0x61, 0, 0},
12226 {0x62, 0x33, 1},
12227 {0x63, 0xf, 1},
12228 {0x64, 0xf, 1},
12229 {0x65, 0, 0},
12230 {0x66, 0x11, 0},
12231 {0x80, 0x3c, 0},
12232 {0x81, 0x1, 1},
12233 {0x82, 0xa, 0},
12234 {0x85, 0, 0},
12235 {0x86, 0x40, 0},
12236 {0x87, 0x40, 0},
12237 {0x88, 0x88, 0},
12238 {0x89, 0x10, 0},
12239 {0x8A, 0xf0, 0},
12240 {0x8B, 0x10, 0},
12241 {0x8C, 0xf0, 0},
12242 {0x8F, 0x10, 0},
12243 {0x90, 0x55, 0},
12244 {0x91, 0x3f, 1},
12245 {0x92, 0x36, 1},
12246 {0x93, 0, 0},
12247 {0x94, 0, 0},
12248 {0x95, 0, 0},
12249 {0x96, 0x87, 0},
12250 {0x97, 0x11, 0},
12251 {0x98, 0, 0},
12252 {0x99, 0x33, 0},
12253 {0x9A, 0x88, 0},
12254 {0xA1, 0x20, 1},
12255 {0xA2, 0x3f, 0},
12256 {0xA3, 0x44, 0},
12257 {0xA4, 0x8c, 0},
12258 {0xA5, 0x6c, 0},
12259 {0xA6, 0x22, 0},
12260 {0xA7, 0xbe, 0},
12261 {0xA8, 0x55, 0},
12262 {0xAA, 0xc, 0},
12263 {0xAB, 0xaa, 0},
12264 {0xAC, 0x2, 0},
12265 {0xAD, 0, 0},
12266 {0xAE, 0x10, 0},
12267 {0xAF, 0x1, 0},
12268 {0xB0, 0, 0},
12269 {0xB1, 0, 0},
12270 {0xB2, 0x80, 0},
12271 {0xB3, 0x60, 0},
12272 {0xB4, 0x44, 0},
12273 {0xB5, 0x55, 0},
12274 {0xB6, 0x1, 0},
12275 {0xB7, 0x55, 0},
12276 {0xB8, 0x1, 0},
12277 {0xB9, 0x5, 0},
12278 {0xBA, 0x55, 0},
12279 {0xBB, 0x55, 0},
12280 {0xC3, 0, 0},
12281 {0xC4, 0, 0},
12282 {0xC5, 0, 0},
12283 {0xC6, 0, 0},
12284 {0xC7, 0, 0},
12285 {0xC8, 0, 0},
12286 {0xC9, 0x1, 1},
12287 {0xCA, 0, 0},
12288 {0xCB, 0, 0},
12289 {0xCD, 0, 0},
12290 {0xCE, 0x5e, 0},
12291 {0xCF, 0xc, 0},
12292 {0xD0, 0xc, 0},
12293 {0xD1, 0xc, 0},
12294 {0xD2, 0, 0},
12295 {0xD3, 0x2b, 0},
12296 {0xD4, 0xc, 0},
12297 {0xD5, 0, 0},
12298 {0xD6, 0x70, 1},
12299 {0xDB, 0x7, 0},
12300 {0xDC, 0, 0},
12301 {0xDD, 0, 0},
12302 {0xDE, 0x88, 1},
12303 {0xDF, 0, 0},
12304 {0xE0, 0x1f, 0},
12305 {0xE1, 0x20, 1},
12306 {0xE2, 0x1, 0},
12307 {0xE3, 0x30, 0},
12308 {0xE4, 0x70, 0},
12309 {0xE5, 0, 0},
12310 {0xE6, 0, 0},
12311 {0xE7, 0x33, 0},
12312 {0xE8, 0xf, 1},
12313 {0xE9, 0xf, 1},
12314 {0xEA, 0, 0},
12315 {0xEB, 0x11, 0},
12316 {0x105, 0x3c, 0},
12317 {0x106, 0x1, 1},
12318 {0x107, 0xa, 0},
12319 {0x10A, 0, 0},
12320 {0x10B, 0x40, 0},
12321 {0x10C, 0x40, 0},
12322 {0x10D, 0x88, 0},
12323 {0x10E, 0x10, 0},
12324 {0x10F, 0xf0, 0},
12325 {0x110, 0x10, 0},
12326 {0x111, 0xf0, 0},
12327 {0x114, 0x10, 0},
12328 {0x115, 0x55, 0},
12329 {0x116, 0x3f, 1},
12330 {0x117, 0x36, 1},
12331 {0x118, 0, 0},
12332 {0x119, 0, 0},
12333 {0x11A, 0, 0},
12334 {0x11B, 0x87, 0},
12335 {0x11C, 0x11, 0},
12336 {0x11D, 0, 0},
12337 {0x11E, 0x33, 0},
12338 {0x11F, 0x88, 0},
12339 {0x126, 0x20, 1},
12340 {0x127, 0x3f, 0},
12341 {0x128, 0x44, 0},
12342 {0x129, 0x8c, 0},
12343 {0x12A, 0x6c, 0},
12344 {0x12B, 0x22, 0},
12345 {0x12C, 0xbe, 0},
12346 {0x12D, 0x55, 0},
12347 {0x12F, 0xc, 0},
12348 {0x130, 0xaa, 0},
12349 {0x131, 0x2, 0},
12350 {0x132, 0, 0},
12351 {0x133, 0x10, 0},
12352 {0x134, 0x1, 0},
12353 {0x135, 0, 0},
12354 {0x136, 0, 0},
12355 {0x137, 0x80, 0},
12356 {0x138, 0x60, 0},
12357 {0x139, 0x44, 0},
12358 {0x13A, 0x55, 0},
12359 {0x13B, 0x1, 0},
12360 {0x13C, 0x55, 0},
12361 {0x13D, 0x1, 0},
12362 {0x13E, 0x5, 0},
12363 {0x13F, 0x55, 0},
12364 {0x140, 0x55, 0},
12365 {0x148, 0, 0},
12366 {0x149, 0, 0},
12367 {0x14A, 0, 0},
12368 {0x14B, 0, 0},
12369 {0x14C, 0, 0},
12370 {0x14D, 0, 0},
12371 {0x14E, 0x1, 1},
12372 {0x14F, 0, 0},
12373 {0x150, 0, 0},
12374 {0x154, 0xc, 0},
12375 {0x155, 0xc, 0},
12376 {0x156, 0xc, 0},
12377 {0x157, 0, 0},
12378 {0x158, 0x2b, 0},
12379 {0x159, 0x84, 0},
12380 {0x15A, 0x15, 0},
12381 {0x15B, 0xf, 0},
12382 {0x15C, 0, 0},
12383 {0x15D, 0, 0},
12384 {0x15E, 0, 1},
12385 {0x15F, 0, 1},
12386 {0x160, 0, 1},
12387 {0x161, 0, 1},
12388 {0x162, 0, 1},
12389 {0x163, 0, 1},
12390 {0x164, 0, 0},
12391 {0x165, 0, 0},
12392 {0x166, 0, 0},
12393 {0x167, 0, 0},
12394 {0x168, 0, 0},
12395 {0x169, 0, 0},
12396 {0x16A, 0, 1},
12397 {0x16B, 0, 1},
12398 {0x16C, 0, 1},
12399 {0x16D, 0, 0},
12400 {0x170, 0, 0},
12401 {0x171, 0x77, 0},
12402 {0x172, 0x77, 0},
12403 {0x173, 0x77, 0},
12404 {0x174, 0x77, 0},
12405 {0x175, 0, 0},
12406 {0x176, 0x3, 0},
12407 {0x177, 0x37, 0},
12408 {0x178, 0x3, 0},
12409 {0x179, 0, 0},
12410 {0x17B, 0x21, 0},
12411 {0x17C, 0, 0},
12412 {0x17D, 0xaa, 0},
12413 {0x17E, 0, 0},
12414 {0x190, 0, 0},
12415 {0x191, 0x77, 0},
12416 {0x192, 0x77, 0},
12417 {0x193, 0x77, 0},
12418 {0x194, 0x77, 0},
12419 {0x195, 0, 0},
12420 {0x196, 0x3, 0},
12421 {0x197, 0x37, 0},
12422 {0x198, 0x3, 0},
12423 {0x199, 0, 0},
12424 {0x19B, 0x21, 0},
12425 {0x19C, 0, 0},
12426 {0x19D, 0xaa, 0},
12427 {0x19E, 0, 0},
12428 {0x1A1, 0x2, 0},
12429 {0x1A2, 0xf, 0},
12430 {0x1A3, 0xf, 0},
12431 {0x1A4, 0, 1},
12432 {0x1A5, 0, 1},
12433 {0x1A6, 0, 1},
12434 {0x1A7, 0x2, 0},
12435 {0x1A8, 0xf, 0},
12436 {0x1A9, 0xf, 0},
12437 {0x1AA, 0, 1},
12438 {0x1AB, 0, 1},
12439 {0x1AC, 0, 1},
12440 {0x1AD, 0x84, 0},
12441 {0x1AE, 0x60, 0},
12442 {0x1AF, 0x47, 0},
12443 {0x1B0, 0x47, 0},
12444 {0x1B1, 0, 0},
12445 {0x1B2, 0, 0},
12446 {0x1B3, 0, 0},
12447 {0x1B4, 0, 0},
12448 {0x1B5, 0, 0},
12449 {0x1B6, 0, 0},
12450 {0x1B7, 0xc, 1},
12451 {0x1B8, 0, 0},
12452 {0x1B9, 0, 0},
12453 {0x1BA, 0, 0},
12454 {0x1BB, 0, 0},
12455 {0x1BC, 0, 0},
12456 {0x1BD, 0, 0},
12457 {0x1BE, 0, 0},
12458 {0x1BF, 0, 0},
12459 {0x1C0, 0, 0},
12460 {0x1C1, 0x1, 1},
12461 {0x1C2, 0x80, 1},
12462 {0x1C3, 0, 0},
12463 {0x1C4, 0, 0},
12464 {0x1C5, 0, 0},
12465 {0x1C6, 0, 0},
12466 {0x1C7, 0, 0},
12467 {0x1C8, 0, 0},
12468 {0x1C9, 0, 0},
12469 {0x1CA, 0, 0},
12470 {0xFFFF, 0, 0}
12473 struct radio_20xx_regs regs_2057_rev7[] = {
12474 {0x00, 0, 1},
12475 {0x01, 0x57, 1},
12476 {0x02, 0x20, 1},
12477 {0x03, 0x1f, 0},
12478 {0x04, 0x4, 0},
12479 {0x05, 0x2, 0},
12480 {0x06, 0x1, 0},
12481 {0x07, 0x1, 0},
12482 {0x08, 0x1, 0},
12483 {0x09, 0x69, 0},
12484 {0x0A, 0x66, 0},
12485 {0x0B, 0x6, 0},
12486 {0x0C, 0x18, 0},
12487 {0x0D, 0x3, 0},
12488 {0x0E, 0x20, 0},
12489 {0x0F, 0x20, 0},
12490 {0x10, 0, 0},
12491 {0x11, 0x7c, 0},
12492 {0x12, 0x42, 0},
12493 {0x13, 0xbd, 0},
12494 {0x14, 0x7, 0},
12495 {0x15, 0x87, 0},
12496 {0x16, 0x8, 0},
12497 {0x17, 0x17, 0},
12498 {0x18, 0x7, 0},
12499 {0x19, 0, 0},
12500 {0x1A, 0x2, 0},
12501 {0x1B, 0x13, 0},
12502 {0x1C, 0x3e, 0},
12503 {0x1D, 0x3e, 0},
12504 {0x1E, 0x96, 0},
12505 {0x1F, 0x4, 0},
12506 {0x20, 0, 0},
12507 {0x21, 0, 0},
12508 {0x22, 0x17, 0},
12509 {0x23, 0x6, 0},
12510 {0x24, 0x1, 0},
12511 {0x25, 0x6, 0},
12512 {0x26, 0x4, 0},
12513 {0x27, 0xd, 0},
12514 {0x28, 0xd, 0},
12515 {0x29, 0x30, 0},
12516 {0x2A, 0x32, 0},
12517 {0x2B, 0x8, 0},
12518 {0x2C, 0x1c, 0},
12519 {0x2D, 0x2, 0},
12520 {0x2E, 0x4, 0},
12521 {0x2F, 0x7f, 0},
12522 {0x30, 0x27, 0},
12523 {0x31, 0, 1},
12524 {0x32, 0, 1},
12525 {0x33, 0, 1},
12526 {0x34, 0, 0},
12527 {0x35, 0x20, 0},
12528 {0x36, 0x18, 0},
12529 {0x37, 0x7, 0},
12530 {0x38, 0x66, 0},
12531 {0x39, 0x66, 0},
12532 {0x3A, 0x66, 0},
12533 {0x3B, 0x66, 0},
12534 {0x3C, 0xff, 0},
12535 {0x3D, 0xff, 0},
12536 {0x3E, 0xff, 0},
12537 {0x3F, 0xff, 0},
12538 {0x40, 0x16, 0},
12539 {0x41, 0x7, 0},
12540 {0x42, 0x19, 0},
12541 {0x43, 0x7, 0},
12542 {0x44, 0x6, 0},
12543 {0x45, 0x3, 0},
12544 {0x46, 0x1, 0},
12545 {0x47, 0x7, 0},
12546 {0x48, 0x33, 0},
12547 {0x49, 0x5, 0},
12548 {0x4A, 0x77, 0},
12549 {0x4B, 0x66, 0},
12550 {0x4C, 0x66, 0},
12551 {0x4D, 0, 0},
12552 {0x4E, 0x4, 0},
12553 {0x4F, 0xc, 0},
12554 {0x50, 0, 0},
12555 {0x51, 0x70, 1},
12556 {0x56, 0x7, 0},
12557 {0x57, 0, 0},
12558 {0x58, 0, 0},
12559 {0x59, 0x88, 1},
12560 {0x5A, 0, 0},
12561 {0x5B, 0x1f, 0},
12562 {0x5C, 0x20, 1},
12563 {0x5D, 0x1, 0},
12564 {0x5E, 0x30, 0},
12565 {0x5F, 0x70, 0},
12566 {0x60, 0, 0},
12567 {0x61, 0, 0},
12568 {0x62, 0x33, 1},
12569 {0x63, 0xf, 1},
12570 {0x64, 0x13, 1},
12571 {0x65, 0, 0},
12572 {0x66, 0xee, 1},
12573 {0x69, 0, 0},
12574 {0x6A, 0x7e, 0},
12575 {0x6B, 0x3f, 0},
12576 {0x6C, 0x7f, 0},
12577 {0x6D, 0x78, 0},
12578 {0x6E, 0x58, 1},
12579 {0x6F, 0x88, 0},
12580 {0x70, 0x8, 0},
12581 {0x71, 0xf, 0},
12582 {0x72, 0xbc, 0},
12583 {0x73, 0x8, 0},
12584 {0x74, 0x60, 0},
12585 {0x75, 0x13, 1},
12586 {0x76, 0x70, 0},
12587 {0x77, 0, 0},
12588 {0x78, 0, 0},
12589 {0x79, 0, 0},
12590 {0x7A, 0x33, 0},
12591 {0x7B, 0x13, 1},
12592 {0x7C, 0x14, 1},
12593 {0x7D, 0xee, 1},
12594 {0x80, 0x3c, 0},
12595 {0x81, 0x1, 1},
12596 {0x82, 0xa, 0},
12597 {0x83, 0x9d, 0},
12598 {0x84, 0xa, 0},
12599 {0x85, 0, 0},
12600 {0x86, 0x40, 0},
12601 {0x87, 0x40, 0},
12602 {0x88, 0x88, 0},
12603 {0x89, 0x10, 0},
12604 {0x8A, 0xf0, 0},
12605 {0x8B, 0x10, 0},
12606 {0x8C, 0xf0, 0},
12607 {0x8D, 0, 0},
12608 {0x8E, 0, 0},
12609 {0x8F, 0x10, 0},
12610 {0x90, 0x55, 0},
12611 {0x91, 0x3f, 1},
12612 {0x92, 0x36, 1},
12613 {0x93, 0, 0},
12614 {0x94, 0, 0},
12615 {0x95, 0, 0},
12616 {0x96, 0x87, 0},
12617 {0x97, 0x11, 0},
12618 {0x98, 0, 0},
12619 {0x99, 0x33, 0},
12620 {0x9A, 0x88, 0},
12621 {0x9B, 0, 0},
12622 {0x9C, 0x87, 0},
12623 {0x9D, 0x11, 0},
12624 {0x9E, 0, 0},
12625 {0x9F, 0x33, 0},
12626 {0xA0, 0x88, 0},
12627 {0xA1, 0x20, 1},
12628 {0xA2, 0x3f, 0},
12629 {0xA3, 0x44, 0},
12630 {0xA4, 0x8c, 0},
12631 {0xA5, 0x6c, 0},
12632 {0xA6, 0x22, 0},
12633 {0xA7, 0xbe, 0},
12634 {0xA8, 0x55, 0},
12635 {0xAA, 0xc, 0},
12636 {0xAB, 0xaa, 0},
12637 {0xAC, 0x2, 0},
12638 {0xAD, 0, 0},
12639 {0xAE, 0x10, 0},
12640 {0xAF, 0x1, 0},
12641 {0xB0, 0, 0},
12642 {0xB1, 0, 0},
12643 {0xB2, 0x80, 0},
12644 {0xB3, 0x60, 0},
12645 {0xB4, 0x44, 0},
12646 {0xB5, 0x55, 0},
12647 {0xB6, 0x1, 0},
12648 {0xB7, 0x55, 0},
12649 {0xB8, 0x1, 0},
12650 {0xB9, 0x5, 0},
12651 {0xBA, 0x55, 0},
12652 {0xBB, 0x55, 0},
12653 {0xC1, 0, 0},
12654 {0xC2, 0, 0},
12655 {0xC3, 0, 0},
12656 {0xC4, 0, 0},
12657 {0xC5, 0, 0},
12658 {0xC6, 0, 0},
12659 {0xC7, 0, 0},
12660 {0xC8, 0, 0},
12661 {0xC9, 0, 0},
12662 {0xCA, 0, 0},
12663 {0xCB, 0, 0},
12664 {0xCC, 0, 0},
12665 {0xCD, 0, 0},
12666 {0xCE, 0x5e, 0},
12667 {0xCF, 0xc, 0},
12668 {0xD0, 0xc, 0},
12669 {0xD1, 0xc, 0},
12670 {0xD2, 0, 0},
12671 {0xD3, 0x2b, 0},
12672 {0xD4, 0xc, 0},
12673 {0xD5, 0, 0},
12674 {0xD6, 0x70, 1},
12675 {0xDB, 0x7, 0},
12676 {0xDC, 0, 0},
12677 {0xDD, 0, 0},
12678 {0xDE, 0x88, 1},
12679 {0xDF, 0, 0},
12680 {0xE0, 0x1f, 0},
12681 {0xE1, 0x20, 1},
12682 {0xE2, 0x1, 0},
12683 {0xE3, 0x30, 0},
12684 {0xE4, 0x70, 0},
12685 {0xE5, 0, 0},
12686 {0xE6, 0, 0},
12687 {0xE7, 0x33, 0},
12688 {0xE8, 0xf, 1},
12689 {0xE9, 0x13, 1},
12690 {0xEA, 0, 0},
12691 {0xEB, 0xee, 1},
12692 {0xEE, 0, 0},
12693 {0xEF, 0x7e, 0},
12694 {0xF0, 0x3f, 0},
12695 {0xF1, 0x7f, 0},
12696 {0xF2, 0x78, 0},
12697 {0xF3, 0x58, 1},
12698 {0xF4, 0x88, 0},
12699 {0xF5, 0x8, 0},
12700 {0xF6, 0xf, 0},
12701 {0xF7, 0xbc, 0},
12702 {0xF8, 0x8, 0},
12703 {0xF9, 0x60, 0},
12704 {0xFA, 0x13, 1},
12705 {0xFB, 0x70, 0},
12706 {0xFC, 0, 0},
12707 {0xFD, 0, 0},
12708 {0xFE, 0, 0},
12709 {0xFF, 0x33, 0},
12710 {0x100, 0x13, 1},
12711 {0x101, 0x14, 1},
12712 {0x102, 0xee, 1},
12713 {0x105, 0x3c, 0},
12714 {0x106, 0x1, 1},
12715 {0x107, 0xa, 0},
12716 {0x108, 0x9d, 0},
12717 {0x109, 0xa, 0},
12718 {0x10A, 0, 0},
12719 {0x10B, 0x40, 0},
12720 {0x10C, 0x40, 0},
12721 {0x10D, 0x88, 0},
12722 {0x10E, 0x10, 0},
12723 {0x10F, 0xf0, 0},
12724 {0x110, 0x10, 0},
12725 {0x111, 0xf0, 0},
12726 {0x112, 0, 0},
12727 {0x113, 0, 0},
12728 {0x114, 0x10, 0},
12729 {0x115, 0x55, 0},
12730 {0x116, 0x3f, 1},
12731 {0x117, 0x36, 1},
12732 {0x118, 0, 0},
12733 {0x119, 0, 0},
12734 {0x11A, 0, 0},
12735 {0x11B, 0x87, 0},
12736 {0x11C, 0x11, 0},
12737 {0x11D, 0, 0},
12738 {0x11E, 0x33, 0},
12739 {0x11F, 0x88, 0},
12740 {0x120, 0, 0},
12741 {0x121, 0x87, 0},
12742 {0x122, 0x11, 0},
12743 {0x123, 0, 0},
12744 {0x124, 0x33, 0},
12745 {0x125, 0x88, 0},
12746 {0x126, 0x20, 1},
12747 {0x127, 0x3f, 0},
12748 {0x128, 0x44, 0},
12749 {0x129, 0x8c, 0},
12750 {0x12A, 0x6c, 0},
12751 {0x12B, 0x22, 0},
12752 {0x12C, 0xbe, 0},
12753 {0x12D, 0x55, 0},
12754 {0x12F, 0xc, 0},
12755 {0x130, 0xaa, 0},
12756 {0x131, 0x2, 0},
12757 {0x132, 0, 0},
12758 {0x133, 0x10, 0},
12759 {0x134, 0x1, 0},
12760 {0x135, 0, 0},
12761 {0x136, 0, 0},
12762 {0x137, 0x80, 0},
12763 {0x138, 0x60, 0},
12764 {0x139, 0x44, 0},
12765 {0x13A, 0x55, 0},
12766 {0x13B, 0x1, 0},
12767 {0x13C, 0x55, 0},
12768 {0x13D, 0x1, 0},
12769 {0x13E, 0x5, 0},
12770 {0x13F, 0x55, 0},
12771 {0x140, 0x55, 0},
12772 {0x146, 0, 0},
12773 {0x147, 0, 0},
12774 {0x148, 0, 0},
12775 {0x149, 0, 0},
12776 {0x14A, 0, 0},
12777 {0x14B, 0, 0},
12778 {0x14C, 0, 0},
12779 {0x14D, 0, 0},
12780 {0x14E, 0, 0},
12781 {0x14F, 0, 0},
12782 {0x150, 0, 0},
12783 {0x151, 0, 0},
12784 {0x154, 0xc, 0},
12785 {0x155, 0xc, 0},
12786 {0x156, 0xc, 0},
12787 {0x157, 0, 0},
12788 {0x158, 0x2b, 0},
12789 {0x159, 0x84, 0},
12790 {0x15A, 0x15, 0},
12791 {0x15B, 0xf, 0},
12792 {0x15C, 0, 0},
12793 {0x15D, 0, 0},
12794 {0x15E, 0, 1},
12795 {0x15F, 0, 1},
12796 {0x160, 0, 1},
12797 {0x161, 0, 1},
12798 {0x162, 0, 1},
12799 {0x163, 0, 1},
12800 {0x164, 0, 0},
12801 {0x165, 0, 0},
12802 {0x166, 0, 0},
12803 {0x167, 0, 0},
12804 {0x168, 0, 0},
12805 {0x169, 0, 0},
12806 {0x16A, 0, 1},
12807 {0x16B, 0, 1},
12808 {0x16C, 0, 1},
12809 {0x16D, 0, 0},
12810 {0x170, 0, 0},
12811 {0x171, 0x77, 0},
12812 {0x172, 0x77, 0},
12813 {0x173, 0x77, 0},
12814 {0x174, 0x77, 0},
12815 {0x175, 0, 0},
12816 {0x176, 0x3, 0},
12817 {0x177, 0x37, 0},
12818 {0x178, 0x3, 0},
12819 {0x179, 0, 0},
12820 {0x17A, 0x21, 0},
12821 {0x17B, 0x21, 0},
12822 {0x17C, 0, 0},
12823 {0x17D, 0xaa, 0},
12824 {0x17E, 0, 0},
12825 {0x17F, 0xaa, 0},
12826 {0x180, 0, 0},
12827 {0x190, 0, 0},
12828 {0x191, 0x77, 0},
12829 {0x192, 0x77, 0},
12830 {0x193, 0x77, 0},
12831 {0x194, 0x77, 0},
12832 {0x195, 0, 0},
12833 {0x196, 0x3, 0},
12834 {0x197, 0x37, 0},
12835 {0x198, 0x3, 0},
12836 {0x199, 0, 0},
12837 {0x19A, 0x21, 0},
12838 {0x19B, 0x21, 0},
12839 {0x19C, 0, 0},
12840 {0x19D, 0xaa, 0},
12841 {0x19E, 0, 0},
12842 {0x19F, 0xaa, 0},
12843 {0x1A0, 0, 0},
12844 {0x1A1, 0x2, 0},
12845 {0x1A2, 0xf, 0},
12846 {0x1A3, 0xf, 0},
12847 {0x1A4, 0, 1},
12848 {0x1A5, 0, 1},
12849 {0x1A6, 0, 1},
12850 {0x1A7, 0x2, 0},
12851 {0x1A8, 0xf, 0},
12852 {0x1A9, 0xf, 0},
12853 {0x1AA, 0, 1},
12854 {0x1AB, 0, 1},
12855 {0x1AC, 0, 1},
12856 {0x1AD, 0x84, 0},
12857 {0x1AE, 0x60, 0},
12858 {0x1AF, 0x47, 0},
12859 {0x1B0, 0x47, 0},
12860 {0x1B1, 0, 0},
12861 {0x1B2, 0, 0},
12862 {0x1B3, 0, 0},
12863 {0x1B4, 0, 0},
12864 {0x1B5, 0, 0},
12865 {0x1B6, 0, 0},
12866 {0x1B7, 0x5, 1},
12867 {0x1B8, 0, 0},
12868 {0x1B9, 0, 0},
12869 {0x1BA, 0, 0},
12870 {0x1BB, 0, 0},
12871 {0x1BC, 0, 0},
12872 {0x1BD, 0, 0},
12873 {0x1BE, 0, 0},
12874 {0x1BF, 0, 0},
12875 {0x1C0, 0, 0},
12876 {0x1C1, 0, 0},
12877 {0x1C2, 0xa0, 1},
12878 {0x1C3, 0, 0},
12879 {0x1C4, 0, 0},
12880 {0x1C5, 0, 0},
12881 {0x1C6, 0, 0},
12882 {0x1C7, 0, 0},
12883 {0x1C8, 0, 0},
12884 {0x1C9, 0, 0},
12885 {0x1CA, 0, 0},
12886 {0xFFFF, 0, 0}
12889 struct radio_20xx_regs regs_2057_rev8[] = {
12890 {0x00, 0x8, 1},
12891 {0x01, 0x57, 1},
12892 {0x02, 0x20, 1},
12893 {0x03, 0x1f, 0},
12894 {0x04, 0x4, 0},
12895 {0x05, 0x2, 0},
12896 {0x06, 0x1, 0},
12897 {0x07, 0x1, 0},
12898 {0x08, 0x1, 0},
12899 {0x09, 0x69, 0},
12900 {0x0A, 0x66, 0},
12901 {0x0B, 0x6, 0},
12902 {0x0C, 0x18, 0},
12903 {0x0D, 0x3, 0},
12904 {0x0E, 0x20, 0},
12905 {0x0F, 0x20, 0},
12906 {0x10, 0, 0},
12907 {0x11, 0x7c, 0},
12908 {0x12, 0x42, 0},
12909 {0x13, 0xbd, 0},
12910 {0x14, 0x7, 0},
12911 {0x15, 0x87, 0},
12912 {0x16, 0x8, 0},
12913 {0x17, 0x17, 0},
12914 {0x18, 0x7, 0},
12915 {0x19, 0, 0},
12916 {0x1A, 0x2, 0},
12917 {0x1B, 0x13, 0},
12918 {0x1C, 0x3e, 0},
12919 {0x1D, 0x3e, 0},
12920 {0x1E, 0x96, 0},
12921 {0x1F, 0x4, 0},
12922 {0x20, 0, 0},
12923 {0x21, 0, 0},
12924 {0x22, 0x17, 0},
12925 {0x23, 0x6, 0},
12926 {0x24, 0x1, 0},
12927 {0x25, 0x6, 0},
12928 {0x26, 0x4, 0},
12929 {0x27, 0xd, 0},
12930 {0x28, 0xd, 0},
12931 {0x29, 0x30, 0},
12932 {0x2A, 0x32, 0},
12933 {0x2B, 0x8, 0},
12934 {0x2C, 0x1c, 0},
12935 {0x2D, 0x2, 0},
12936 {0x2E, 0x4, 0},
12937 {0x2F, 0x7f, 0},
12938 {0x30, 0x27, 0},
12939 {0x31, 0, 1},
12940 {0x32, 0, 1},
12941 {0x33, 0, 1},
12942 {0x34, 0, 0},
12943 {0x35, 0x20, 0},
12944 {0x36, 0x18, 0},
12945 {0x37, 0x7, 0},
12946 {0x38, 0x66, 0},
12947 {0x39, 0x66, 0},
12948 {0x3A, 0x66, 0},
12949 {0x3B, 0x66, 0},
12950 {0x3C, 0xff, 0},
12951 {0x3D, 0xff, 0},
12952 {0x3E, 0xff, 0},
12953 {0x3F, 0xff, 0},
12954 {0x40, 0x16, 0},
12955 {0x41, 0x7, 0},
12956 {0x42, 0x19, 0},
12957 {0x43, 0x7, 0},
12958 {0x44, 0x6, 0},
12959 {0x45, 0x3, 0},
12960 {0x46, 0x1, 0},
12961 {0x47, 0x7, 0},
12962 {0x48, 0x33, 0},
12963 {0x49, 0x5, 0},
12964 {0x4A, 0x77, 0},
12965 {0x4B, 0x66, 0},
12966 {0x4C, 0x66, 0},
12967 {0x4D, 0, 0},
12968 {0x4E, 0x4, 0},
12969 {0x4F, 0xc, 0},
12970 {0x50, 0, 0},
12971 {0x51, 0x70, 1},
12972 {0x56, 0x7, 0},
12973 {0x57, 0, 0},
12974 {0x58, 0, 0},
12975 {0x59, 0x88, 1},
12976 {0x5A, 0, 0},
12977 {0x5B, 0x1f, 0},
12978 {0x5C, 0x20, 1},
12979 {0x5D, 0x1, 0},
12980 {0x5E, 0x30, 0},
12981 {0x5F, 0x70, 0},
12982 {0x60, 0, 0},
12983 {0x61, 0, 0},
12984 {0x62, 0x33, 1},
12985 {0x63, 0xf, 1},
12986 {0x64, 0xf, 1},
12987 {0x65, 0, 0},
12988 {0x66, 0x11, 0},
12989 {0x69, 0, 0},
12990 {0x6A, 0x7e, 0},
12991 {0x6B, 0x3f, 0},
12992 {0x6C, 0x7f, 0},
12993 {0x6D, 0x78, 0},
12994 {0x6E, 0x58, 1},
12995 {0x6F, 0x88, 0},
12996 {0x70, 0x8, 0},
12997 {0x71, 0xf, 0},
12998 {0x72, 0xbc, 0},
12999 {0x73, 0x8, 0},
13000 {0x74, 0x60, 0},
13001 {0x75, 0x13, 1},
13002 {0x76, 0x70, 0},
13003 {0x77, 0, 0},
13004 {0x78, 0, 0},
13005 {0x79, 0, 0},
13006 {0x7A, 0x33, 0},
13007 {0x7B, 0x13, 1},
13008 {0x7C, 0xf, 1},
13009 {0x7D, 0xee, 1},
13010 {0x80, 0x3c, 0},
13011 {0x81, 0x1, 1},
13012 {0x82, 0xa, 0},
13013 {0x83, 0x9d, 0},
13014 {0x84, 0xa, 0},
13015 {0x85, 0, 0},
13016 {0x86, 0x40, 0},
13017 {0x87, 0x40, 0},
13018 {0x88, 0x88, 0},
13019 {0x89, 0x10, 0},
13020 {0x8A, 0xf0, 0},
13021 {0x8B, 0x10, 0},
13022 {0x8C, 0xf0, 0},
13023 {0x8D, 0, 0},
13024 {0x8E, 0, 0},
13025 {0x8F, 0x10, 0},
13026 {0x90, 0x55, 0},
13027 {0x91, 0x3f, 1},
13028 {0x92, 0x36, 1},
13029 {0x93, 0, 0},
13030 {0x94, 0, 0},
13031 {0x95, 0, 0},
13032 {0x96, 0x87, 0},
13033 {0x97, 0x11, 0},
13034 {0x98, 0, 0},
13035 {0x99, 0x33, 0},
13036 {0x9A, 0x88, 0},
13037 {0x9B, 0, 0},
13038 {0x9C, 0x87, 0},
13039 {0x9D, 0x11, 0},
13040 {0x9E, 0, 0},
13041 {0x9F, 0x33, 0},
13042 {0xA0, 0x88, 0},
13043 {0xA1, 0x20, 1},
13044 {0xA2, 0x3f, 0},
13045 {0xA3, 0x44, 0},
13046 {0xA4, 0x8c, 0},
13047 {0xA5, 0x6c, 0},
13048 {0xA6, 0x22, 0},
13049 {0xA7, 0xbe, 0},
13050 {0xA8, 0x55, 0},
13051 {0xAA, 0xc, 0},
13052 {0xAB, 0xaa, 0},
13053 {0xAC, 0x2, 0},
13054 {0xAD, 0, 0},
13055 {0xAE, 0x10, 0},
13056 {0xAF, 0x1, 0},
13057 {0xB0, 0, 0},
13058 {0xB1, 0, 0},
13059 {0xB2, 0x80, 0},
13060 {0xB3, 0x60, 0},
13061 {0xB4, 0x44, 0},
13062 {0xB5, 0x55, 0},
13063 {0xB6, 0x1, 0},
13064 {0xB7, 0x55, 0},
13065 {0xB8, 0x1, 0},
13066 {0xB9, 0x5, 0},
13067 {0xBA, 0x55, 0},
13068 {0xBB, 0x55, 0},
13069 {0xC1, 0, 0},
13070 {0xC2, 0, 0},
13071 {0xC3, 0, 0},
13072 {0xC4, 0, 0},
13073 {0xC5, 0, 0},
13074 {0xC6, 0, 0},
13075 {0xC7, 0, 0},
13076 {0xC8, 0, 0},
13077 {0xC9, 0x1, 1},
13078 {0xCA, 0, 0},
13079 {0xCB, 0, 0},
13080 {0xCC, 0, 0},
13081 {0xCD, 0, 0},
13082 {0xCE, 0x5e, 0},
13083 {0xCF, 0xc, 0},
13084 {0xD0, 0xc, 0},
13085 {0xD1, 0xc, 0},
13086 {0xD2, 0, 0},
13087 {0xD3, 0x2b, 0},
13088 {0xD4, 0xc, 0},
13089 {0xD5, 0, 0},
13090 {0xD6, 0x70, 1},
13091 {0xDB, 0x7, 0},
13092 {0xDC, 0, 0},
13093 {0xDD, 0, 0},
13094 {0xDE, 0x88, 1},
13095 {0xDF, 0, 0},
13096 {0xE0, 0x1f, 0},
13097 {0xE1, 0x20, 1},
13098 {0xE2, 0x1, 0},
13099 {0xE3, 0x30, 0},
13100 {0xE4, 0x70, 0},
13101 {0xE5, 0, 0},
13102 {0xE6, 0, 0},
13103 {0xE7, 0x33, 0},
13104 {0xE8, 0xf, 1},
13105 {0xE9, 0xf, 1},
13106 {0xEA, 0, 0},
13107 {0xEB, 0x11, 0},
13108 {0xEE, 0, 0},
13109 {0xEF, 0x7e, 0},
13110 {0xF0, 0x3f, 0},
13111 {0xF1, 0x7f, 0},
13112 {0xF2, 0x78, 0},
13113 {0xF3, 0x58, 1},
13114 {0xF4, 0x88, 0},
13115 {0xF5, 0x8, 0},
13116 {0xF6, 0xf, 0},
13117 {0xF7, 0xbc, 0},
13118 {0xF8, 0x8, 0},
13119 {0xF9, 0x60, 0},
13120 {0xFA, 0x13, 1},
13121 {0xFB, 0x70, 0},
13122 {0xFC, 0, 0},
13123 {0xFD, 0, 0},
13124 {0xFE, 0, 0},
13125 {0xFF, 0x33, 0},
13126 {0x100, 0x13, 1},
13127 {0x101, 0xf, 1},
13128 {0x102, 0xee, 1},
13129 {0x105, 0x3c, 0},
13130 {0x106, 0x1, 1},
13131 {0x107, 0xa, 0},
13132 {0x108, 0x9d, 0},
13133 {0x109, 0xa, 0},
13134 {0x10A, 0, 0},
13135 {0x10B, 0x40, 0},
13136 {0x10C, 0x40, 0},
13137 {0x10D, 0x88, 0},
13138 {0x10E, 0x10, 0},
13139 {0x10F, 0xf0, 0},
13140 {0x110, 0x10, 0},
13141 {0x111, 0xf0, 0},
13142 {0x112, 0, 0},
13143 {0x113, 0, 0},
13144 {0x114, 0x10, 0},
13145 {0x115, 0x55, 0},
13146 {0x116, 0x3f, 1},
13147 {0x117, 0x36, 1},
13148 {0x118, 0, 0},
13149 {0x119, 0, 0},
13150 {0x11A, 0, 0},
13151 {0x11B, 0x87, 0},
13152 {0x11C, 0x11, 0},
13153 {0x11D, 0, 0},
13154 {0x11E, 0x33, 0},
13155 {0x11F, 0x88, 0},
13156 {0x120, 0, 0},
13157 {0x121, 0x87, 0},
13158 {0x122, 0x11, 0},
13159 {0x123, 0, 0},
13160 {0x124, 0x33, 0},
13161 {0x125, 0x88, 0},
13162 {0x126, 0x20, 1},
13163 {0x127, 0x3f, 0},
13164 {0x128, 0x44, 0},
13165 {0x129, 0x8c, 0},
13166 {0x12A, 0x6c, 0},
13167 {0x12B, 0x22, 0},
13168 {0x12C, 0xbe, 0},
13169 {0x12D, 0x55, 0},
13170 {0x12F, 0xc, 0},
13171 {0x130, 0xaa, 0},
13172 {0x131, 0x2, 0},
13173 {0x132, 0, 0},
13174 {0x133, 0x10, 0},
13175 {0x134, 0x1, 0},
13176 {0x135, 0, 0},
13177 {0x136, 0, 0},
13178 {0x137, 0x80, 0},
13179 {0x138, 0x60, 0},
13180 {0x139, 0x44, 0},
13181 {0x13A, 0x55, 0},
13182 {0x13B, 0x1, 0},
13183 {0x13C, 0x55, 0},
13184 {0x13D, 0x1, 0},
13185 {0x13E, 0x5, 0},
13186 {0x13F, 0x55, 0},
13187 {0x140, 0x55, 0},
13188 {0x146, 0, 0},
13189 {0x147, 0, 0},
13190 {0x148, 0, 0},
13191 {0x149, 0, 0},
13192 {0x14A, 0, 0},
13193 {0x14B, 0, 0},
13194 {0x14C, 0, 0},
13195 {0x14D, 0, 0},
13196 {0x14E, 0x1, 1},
13197 {0x14F, 0, 0},
13198 {0x150, 0, 0},
13199 {0x151, 0, 0},
13200 {0x154, 0xc, 0},
13201 {0x155, 0xc, 0},
13202 {0x156, 0xc, 0},
13203 {0x157, 0, 0},
13204 {0x158, 0x2b, 0},
13205 {0x159, 0x84, 0},
13206 {0x15A, 0x15, 0},
13207 {0x15B, 0xf, 0},
13208 {0x15C, 0, 0},
13209 {0x15D, 0, 0},
13210 {0x15E, 0, 1},
13211 {0x15F, 0, 1},
13212 {0x160, 0, 1},
13213 {0x161, 0, 1},
13214 {0x162, 0, 1},
13215 {0x163, 0, 1},
13216 {0x164, 0, 0},
13217 {0x165, 0, 0},
13218 {0x166, 0, 0},
13219 {0x167, 0, 0},
13220 {0x168, 0, 0},
13221 {0x169, 0, 0},
13222 {0x16A, 0, 1},
13223 {0x16B, 0, 1},
13224 {0x16C, 0, 1},
13225 {0x16D, 0, 0},
13226 {0x170, 0, 0},
13227 {0x171, 0x77, 0},
13228 {0x172, 0x77, 0},
13229 {0x173, 0x77, 0},
13230 {0x174, 0x77, 0},
13231 {0x175, 0, 0},
13232 {0x176, 0x3, 0},
13233 {0x177, 0x37, 0},
13234 {0x178, 0x3, 0},
13235 {0x179, 0, 0},
13236 {0x17A, 0x21, 0},
13237 {0x17B, 0x21, 0},
13238 {0x17C, 0, 0},
13239 {0x17D, 0xaa, 0},
13240 {0x17E, 0, 0},
13241 {0x17F, 0xaa, 0},
13242 {0x180, 0, 0},
13243 {0x190, 0, 0},
13244 {0x191, 0x77, 0},
13245 {0x192, 0x77, 0},
13246 {0x193, 0x77, 0},
13247 {0x194, 0x77, 0},
13248 {0x195, 0, 0},
13249 {0x196, 0x3, 0},
13250 {0x197, 0x37, 0},
13251 {0x198, 0x3, 0},
13252 {0x199, 0, 0},
13253 {0x19A, 0x21, 0},
13254 {0x19B, 0x21, 0},
13255 {0x19C, 0, 0},
13256 {0x19D, 0xaa, 0},
13257 {0x19E, 0, 0},
13258 {0x19F, 0xaa, 0},
13259 {0x1A0, 0, 0},
13260 {0x1A1, 0x2, 0},
13261 {0x1A2, 0xf, 0},
13262 {0x1A3, 0xf, 0},
13263 {0x1A4, 0, 1},
13264 {0x1A5, 0, 1},
13265 {0x1A6, 0, 1},
13266 {0x1A7, 0x2, 0},
13267 {0x1A8, 0xf, 0},
13268 {0x1A9, 0xf, 0},
13269 {0x1AA, 0, 1},
13270 {0x1AB, 0, 1},
13271 {0x1AC, 0, 1},
13272 {0x1AD, 0x84, 0},
13273 {0x1AE, 0x60, 0},
13274 {0x1AF, 0x47, 0},
13275 {0x1B0, 0x47, 0},
13276 {0x1B1, 0, 0},
13277 {0x1B2, 0, 0},
13278 {0x1B3, 0, 0},
13279 {0x1B4, 0, 0},
13280 {0x1B5, 0, 0},
13281 {0x1B6, 0, 0},
13282 {0x1B7, 0x5, 1},
13283 {0x1B8, 0, 0},
13284 {0x1B9, 0, 0},
13285 {0x1BA, 0, 0},
13286 {0x1BB, 0, 0},
13287 {0x1BC, 0, 0},
13288 {0x1BD, 0, 0},
13289 {0x1BE, 0, 0},
13290 {0x1BF, 0, 0},
13291 {0x1C0, 0, 0},
13292 {0x1C1, 0, 0},
13293 {0x1C2, 0xa0, 1},
13294 {0x1C3, 0, 0},
13295 {0x1C4, 0, 0},
13296 {0x1C5, 0, 0},
13297 {0x1C6, 0, 0},
13298 {0x1C7, 0, 0},
13299 {0x1C8, 0, 0},
13300 {0x1C9, 0, 0},
13301 {0x1CA, 0, 0},
13302 {0xFFFF, 0, 0}
13305 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13307 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13308 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13310 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13312 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13313 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13314 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13315 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13316 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13317 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13318 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13319 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13320 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13323 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13324 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13325 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13326 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13327 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13328 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13329 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13330 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13331 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13335 static const u32 nphy_tpc_txgain[] = {
13336 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13337 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13338 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13339 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13340 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13341 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13342 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13343 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13344 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13345 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13346 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13347 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13348 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13349 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13350 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13351 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13352 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13353 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13354 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13355 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13356 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13357 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13358 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13359 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13360 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13361 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13362 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13363 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13364 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13365 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13366 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13367 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13370 static const u16 nphy_tpc_loscale[] = {
13371 256, 256, 271, 271, 287, 256, 256, 271,
13372 271, 287, 287, 304, 304, 256, 256, 271,
13373 271, 287, 287, 304, 304, 322, 322, 341,
13374 341, 362, 362, 383, 383, 256, 256, 271,
13375 271, 287, 287, 304, 304, 322, 322, 256,
13376 256, 271, 271, 287, 287, 304, 304, 322,
13377 322, 341, 341, 362, 362, 256, 256, 271,
13378 271, 287, 287, 304, 304, 322, 322, 256,
13379 256, 271, 271, 287, 287, 304, 304, 322,
13380 322, 341, 341, 362, 362, 256, 256, 271,
13381 271, 287, 287, 304, 304, 322, 322, 341,
13382 341, 362, 362, 383, 383, 406, 406, 430,
13383 430, 455, 455, 482, 482, 511, 511, 541,
13384 541, 573, 573, 607, 607, 643, 643, 681,
13385 681, 722, 722, 764, 764, 810, 810, 858,
13386 858, 908, 908, 962, 962, 1019, 1019, 256
13389 static u32 nphy_tpc_txgain_ipa[] = {
13390 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13391 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13392 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13393 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13394 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13395 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13396 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13397 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13398 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13399 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13400 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13401 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13402 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13403 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13404 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13405 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13406 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13407 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13408 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13409 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13410 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13411 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13412 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13413 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13414 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13415 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13416 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13417 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13418 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13419 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13420 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13421 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13424 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13425 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13426 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13427 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13428 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13429 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13430 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13431 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13432 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13433 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13434 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13435 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13436 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13437 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13438 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13439 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13440 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13441 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13442 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13443 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13444 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13445 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13446 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13447 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13448 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13449 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13450 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13451 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13452 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13453 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13454 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13455 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13456 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13459 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13460 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13461 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13462 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13463 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13464 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13465 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13466 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13467 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13468 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13469 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13470 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13471 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13472 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13473 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13474 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13475 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13476 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13477 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13478 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13479 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13480 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13481 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13482 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13483 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13484 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13485 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13486 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13487 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13488 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13489 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13490 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13491 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13494 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13495 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13496 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13497 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13498 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13499 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13500 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13501 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13502 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13503 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13504 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13505 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13506 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13507 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13508 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13509 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13510 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13511 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13512 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13513 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13514 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13515 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13516 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13517 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13518 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13519 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13520 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13521 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13522 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13523 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13524 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13525 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13526 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13529 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13530 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13531 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13532 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13533 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13534 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13535 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13536 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13537 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13538 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13539 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13540 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13541 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13542 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13543 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13544 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13545 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13546 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13547 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13548 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13549 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13550 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13551 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13552 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13553 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13554 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13555 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13556 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13557 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13558 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13559 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13560 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13561 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13564 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13565 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13566 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13567 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13568 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13569 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13570 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13571 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13572 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13573 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13574 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13575 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13576 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13577 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13578 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13579 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13580 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13581 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13582 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13583 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13584 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13585 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13586 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13587 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13588 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13589 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13590 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13591 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13592 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13593 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13594 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13595 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13596 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13599 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13600 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13601 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13602 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13603 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13604 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13605 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13606 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13607 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13608 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13609 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13610 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13611 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13612 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13613 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13614 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13615 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13616 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13617 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13618 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13619 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13620 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13621 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13622 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13623 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13624 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13625 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13626 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13627 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13628 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13629 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13630 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13631 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13634 static u32 nphy_tpc_txgain_ipa_5g[] = {
13635 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13636 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13637 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13638 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13639 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13640 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13641 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13642 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13643 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13644 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13645 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13646 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13647 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13648 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13649 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13650 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13651 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13652 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13653 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13654 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13655 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13656 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13657 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13658 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13659 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13660 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13661 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13662 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13663 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13664 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13665 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13666 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13669 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13670 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13671 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13672 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13673 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13674 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13675 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13676 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13677 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13678 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13679 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13680 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13681 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13682 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13683 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13684 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13685 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13686 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13687 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13688 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13689 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13690 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13691 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13692 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13693 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13694 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13695 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13696 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13697 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13698 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13699 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13700 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13701 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13704 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13705 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13706 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13707 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13708 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13709 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13710 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13711 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13712 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13713 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13714 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13715 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13716 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13717 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13718 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13719 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13720 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13721 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13722 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13723 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13724 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13725 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13726 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13727 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13728 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13729 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13730 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13731 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13732 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13733 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13734 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13735 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13736 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13739 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13740 -114, -108, -98, -91, -84, -78, -70, -62,
13741 -54, -46, -39, -31, -23, -15, -8, 0
13744 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13745 -100, -95, -89, -83, -77, -70, -63, -56,
13746 -48, -41, -33, -25, -19, -12, -6, 0
13749 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13750 -159, -113, -86, -72, -62, -54, -48, -43,
13751 -39, -35, -31, -28, -25, -23, -20, -18,
13752 -17, -15, -13, -11, -10, -8, -7, -6,
13753 -5, -4, -3, -3, -2, -1, -1, 0
13756 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13757 -109, -109, -82, -68, -58, -50, -44, -39,
13758 -35, -31, -28, -26, -23, -21, -19, -17,
13759 -16, -14, -13, -11, -10, -9, -8, -7,
13760 -5, -5, -4, -3, -2, -1, -1, 0
13763 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13764 -122, -122, -95, -80, -69, -61, -54, -49,
13765 -43, -39, -35, -32, -28, -26, -23, -21,
13766 -18, -16, -15, -13, -11, -10, -8, -7,
13767 -6, -5, -4, -3, -2, -1, -1, 0
13770 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13771 -107, -101, -92, -85, -78, -71, -62, -55,
13772 -47, -39, -32, -24, -19, -12, -6, 0
13775 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13776 -110, -104, -95, -88, -81, -74, -66, -58,
13777 -50, -44, -36, -28, -23, -15, -8, 0
13780 static u8 pad_gain_codes_used_2057rev5[] = {
13781 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13782 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13785 static u8 pad_gain_codes_used_2057rev7[] = {
13786 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13787 5, 4, 3, 2, 1
13790 static u8 pad_all_gain_codes_2057[] = {
13791 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13792 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13793 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13794 1, 0
13797 static u8 pga_all_gain_codes_2057[] = {
13798 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13801 static u32 nphy_papd_scaltbl[] = {
13802 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13803 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13804 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13805 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13806 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13807 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13808 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13809 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13810 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13811 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13812 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13813 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13814 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13815 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13816 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13817 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13820 static u32 nphy_tpc_txgain_rev3[] = {
13821 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13822 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13823 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13824 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13825 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13826 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13827 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13828 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13829 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13830 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13831 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13832 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13833 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13834 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13835 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13836 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13837 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13838 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13839 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13840 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13841 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13842 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13843 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13844 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13845 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13846 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13847 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13848 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13849 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13850 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13851 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13852 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13855 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13856 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13857 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13858 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13859 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13860 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13861 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13862 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13863 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13864 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13865 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13866 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13867 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13868 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13869 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13870 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13871 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13872 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13873 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13874 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13875 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13876 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13877 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13878 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13879 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13880 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13881 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13882 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13883 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13884 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13885 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13886 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13887 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13890 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13891 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13892 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13893 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13894 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13895 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13896 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13897 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13898 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13899 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13900 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13901 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13902 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13903 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13904 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13905 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13906 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13907 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13908 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13909 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13910 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13911 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13912 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13913 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13914 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13915 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13916 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13917 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13918 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13919 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13920 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13921 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13922 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13925 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13926 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13927 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13928 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13929 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13930 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13931 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13932 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13933 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13934 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13935 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13936 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13937 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13938 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13939 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13940 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13941 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13942 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13943 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13944 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13945 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13946 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13947 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13948 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13949 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13950 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13951 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13952 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13953 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13954 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13955 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13956 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13957 0x10090001, 0x10090001, 0x10090001, 0x10090001
13960 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13961 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13962 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13963 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13964 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13965 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13966 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13967 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13968 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13969 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13970 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13971 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13972 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13973 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13974 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13975 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13976 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13977 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13978 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13979 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13980 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13981 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13982 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13983 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13984 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13985 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13986 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13987 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13988 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13989 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13990 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13991 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13992 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13995 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
13996 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13997 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13998 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13999 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14000 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14001 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14002 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14003 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14004 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14005 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14006 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14007 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14008 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14009 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14010 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14011 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14012 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14013 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14014 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14015 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14016 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14017 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14018 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14019 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14020 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14021 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14022 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14023 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14024 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14025 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14026 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14027 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14030 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14031 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14032 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14033 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14034 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14035 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14036 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14037 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14038 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14039 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14040 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14041 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14042 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14043 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14044 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14045 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14046 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14047 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14048 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14049 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14050 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14051 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14052 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14053 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14054 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14055 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14056 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14057 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14058 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14059 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14060 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14061 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14062 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14065 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14066 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14067 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14068 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14069 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14070 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14071 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14072 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14073 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14074 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14075 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14076 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14077 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14078 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14079 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14080 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14081 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14082 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14083 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14084 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14085 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14086 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14087 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14088 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14089 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14090 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14091 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14092 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14093 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14094 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14095 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14096 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14097 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14100 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14101 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14102 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14103 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14105 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14106 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14109 static bool wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
14110 struct chan_info_nphy_radio2057 **t0,
14111 struct chan_info_nphy_radio205x **t1,
14112 struct chan_info_nphy_radio2057_rev5 **t2,
14113 struct chan_info_nphy_2055 **t3);
14114 static void wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chans,
14115 const struct nphy_sfo_cfg *c);
14117 static void wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi,
14118 u16 reduction_factr);
14119 static void wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi,
14120 int ntones, int *, u32 *buf);
14121 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr);
14122 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi);
14123 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi);
14125 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi);
14126 static void wlc_phy_radio_init_2055(struct brcms_phy *pi);
14127 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi);
14128 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi);
14129 static void wlc_phy_radio_init_2056(struct brcms_phy *pi);
14130 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi);
14131 static void wlc_phy_radio_init_2057(struct brcms_phy *pi);
14132 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi);
14133 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi);
14134 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi);
14135 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi);
14136 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi);
14137 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi);
14139 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi);
14140 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi);
14141 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi);
14142 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
14143 struct nphy_txgains tg, u8 type, bool d);
14144 static void wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rxcore,
14145 u16 *rg, u8 type);
14146 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble);
14147 static void wlc_phy_savecal_nphy(struct brcms_phy *pi);
14148 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi);
14149 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi);
14151 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi);
14152 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi);
14153 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi);
14154 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core);
14156 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi);
14157 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi);
14158 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi);
14159 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi);
14160 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1);
14161 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi);
14163 static void wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32,
14164 u32 e);
14165 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core);
14166 static void wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *,
14167 enum phy_cal_mode, u8);
14169 static void
14170 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
14171 struct nphy_papd_restore_state *state);
14173 static void wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
14174 struct nphy_papd_restore_state *state,
14175 u8);
14177 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals);
14179 static void wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *evts,
14180 u8 *dlys, u8 len);
14182 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset);
14184 static void
14185 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14186 u8 core_mask, u8 off,
14187 u8 override_id);
14189 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type);
14190 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi);
14192 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi);
14193 static void wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max,
14194 u16 *pwr_offset,
14195 u8 tmp_max_pwr, u8 rate_start,
14196 u8 rate_end);
14198 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi);
14199 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi);
14200 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi);
14201 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi);
14203 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi);
14204 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core);
14205 static void wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0,
14206 u8 idx1);
14207 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal);
14209 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi);
14211 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi);
14213 static u16 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz,
14214 u16 max_val,
14215 u8 dac_test_mode);
14216 static void wlc_phy_loadsampletable_nphy(struct brcms_phy *pi,
14217 struct cs32 *tone_buf, u16 num_samps);
14218 static void wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 n, u16 lps,
14219 u16 wait, u8 iq, u8 dac_test_mode,
14220 bool modify_bbmult);
14222 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14224 struct brcms_phy *pi = (struct brcms_phy *) pih;
14225 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14227 if (NREV_GE(pi->pubpi.phy_rev, 16))
14228 return true;
14230 phybist0 = read_phy_reg(pi, 0x0e);
14231 phybist1 = read_phy_reg(pi, 0x0f);
14232 phybist2 = read_phy_reg(pi, 0xea);
14233 phybist3 = read_phy_reg(pi, 0xeb);
14234 phybist4 = read_phy_reg(pi, 0x156);
14236 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14237 (phybist3 == 0) && (phybist4 == 0))
14238 return true;
14240 return false;
14243 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14245 u16 addr, val;
14247 val = 0x1e1f;
14248 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14249 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14250 write_phy_reg(pi, addr, val);
14251 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14252 val = 0x3e3f;
14253 else
14254 val -= 0x0202;
14257 if (NORADIO_ENAB(pi->pubpi)) {
14259 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_PHYCRSTH, 0x3206);
14261 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_RSSI_TRESH, 0x281e);
14263 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_LNA_GAIN_RANGE, 0x1a);
14265 } else {
14266 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14270 void
14271 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14272 u32 width, const void *data)
14274 struct phytbl_info tbl;
14276 tbl.tbl_id = id;
14277 tbl.tbl_len = len;
14278 tbl.tbl_offset = offset;
14279 tbl.tbl_width = width;
14280 tbl.tbl_ptr = data;
14281 wlc_phy_write_table_nphy(pi, &tbl);
14284 void
14285 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14286 u32 width, void *data)
14288 struct phytbl_info tbl;
14290 tbl.tbl_id = id;
14291 tbl.tbl_len = len;
14292 tbl.tbl_offset = offset;
14293 tbl.tbl_width = width;
14294 tbl.tbl_ptr = data;
14295 wlc_phy_read_table_nphy(pi, &tbl);
14298 static void
14299 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14301 uint idx;
14303 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14304 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14305 wlc_phy_write_table_nphy(pi,
14306 &mimophytbl_info_rev16[idx]);
14307 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14308 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14309 wlc_phy_write_table_nphy(pi,
14310 &mimophytbl_info_rev7[idx]);
14311 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14312 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14313 wlc_phy_write_table_nphy(pi,
14314 &mimophytbl_info_rev3[idx]);
14315 } else {
14316 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14317 wlc_phy_write_table_nphy(pi,
14318 &mimophytbl_info_rev0[idx]);
14322 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14324 uint idx = 0;
14325 u8 antswctrllut;
14327 if (pi->phy_init_por)
14328 wlc_phy_static_table_download_nphy(pi);
14330 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14332 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14333 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14334 antswctrllut;
14336 switch (antswctrllut) {
14337 case 0:
14339 break;
14341 case 1:
14343 if (pi->aa2g == 7)
14344 wlc_phy_table_write_nphy(
14346 NPHY_TBL_ID_ANTSWCTRLLUT,
14347 2, 0x21, 8,
14348 &ant_sw_ctrl_tbl_rev8_2o3[0]);
14349 else
14350 wlc_phy_table_write_nphy(
14352 NPHY_TBL_ID_ANTSWCTRLLUT,
14353 2, 0x21, 8,
14354 &ant_sw_ctrl_tbl_rev8
14355 [0]);
14357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14358 2, 0x25, 8,
14359 &ant_sw_ctrl_tbl_rev8[2]);
14360 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14361 2, 0x29, 8,
14362 &ant_sw_ctrl_tbl_rev8[4]);
14363 break;
14365 case 2:
14367 wlc_phy_table_write_nphy(
14368 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14369 2, 0x1, 8,
14370 &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14371 wlc_phy_table_write_nphy(
14372 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14373 2, 0x5, 8,
14374 &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14375 wlc_phy_table_write_nphy(
14376 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14377 2, 0x9, 8,
14378 &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14380 wlc_phy_table_write_nphy(
14381 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14382 2, 0x21, 8,
14383 &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14384 wlc_phy_table_write_nphy(
14385 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14386 2, 0x25, 8,
14387 &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14388 wlc_phy_table_write_nphy(
14389 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14390 2, 0x29, 8,
14391 &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14392 break;
14394 default:
14395 break;
14398 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14399 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14401 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14402 antswctrllut =
14403 CHSPEC_IS2G(pi->radio_chanspec) ?
14404 pi->srom_fem2g.antswctrllut :
14405 pi->srom_fem5g.antswctrllut;
14406 switch (antswctrllut) {
14407 case 0:
14408 wlc_phy_write_table_nphy(
14410 &mimophytbl_info_rev3_volatile
14411 [idx]);
14412 break;
14413 case 1:
14414 wlc_phy_write_table_nphy(
14416 &mimophytbl_info_rev3_volatile1
14417 [idx]);
14418 break;
14419 case 2:
14420 wlc_phy_write_table_nphy(
14422 &mimophytbl_info_rev3_volatile2
14423 [idx]);
14424 break;
14425 case 3:
14426 wlc_phy_write_table_nphy(
14428 &mimophytbl_info_rev3_volatile3
14429 [idx]);
14430 break;
14431 default:
14432 break;
14434 } else {
14435 wlc_phy_write_table_nphy(
14437 &mimophytbl_info_rev3_volatile[idx]);
14440 } else {
14441 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14442 wlc_phy_write_table_nphy(pi,
14443 &mimophytbl_info_rev0_volatile
14444 [idx]);
14448 static void
14449 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14451 write_phy_reg(pi, 0x77, holdoff);
14452 write_phy_reg(pi, 0xb4, delay);
14455 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14457 u16 holdoff, delay;
14459 if (rifs) {
14461 holdoff = 0x10;
14462 delay = 0x258;
14463 } else {
14465 holdoff = 0x15;
14466 delay = 0x320;
14469 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14471 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs))
14472 pi->sh->_rifs_phy = rifs;
14475 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14477 uint i;
14479 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14480 pi->phyhang_avoid = true;
14482 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14483 pi->nphy_gband_spurwar_en = true;
14484 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14485 pi->nphy_aband_spurwar_en = true;
14487 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14488 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14489 pi->nphy_gband_spurwar2_en = true;
14492 pi->n_preamble_override = AUTO;
14493 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14494 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14496 pi->nphy_txrx_chain = AUTO;
14497 pi->phy_scraminit = AUTO;
14499 pi->nphy_rxcalparams = 0x010100B5;
14501 pi->nphy_perical = PHY_PERICAL_MPHASE;
14502 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14503 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14505 pi->nphy_gain_boost = true;
14506 pi->nphy_elna_gain_config = false;
14507 pi->radio_is_on = false;
14509 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14510 pi->nphy_txpwrindex[i].index = AUTO;
14512 wlc_phy_txpwrctrl_config_nphy(pi);
14513 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14514 pi->hwpwrctrl_capable = true;
14516 pi->pi_fptr.init = wlc_phy_init_nphy;
14517 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14518 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14519 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14521 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14522 return false;
14524 return true;
14527 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14530 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14531 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14532 pi->phy_5g_pwrgain = true;
14533 return;
14536 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14537 pi->phy_5g_pwrgain = false;
14539 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14540 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14541 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14542 else if ((pi->sh->sromrev >= 4)
14543 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14544 pi->phy_5g_pwrgain = true;
14547 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14549 s32 rfpwr_offset = 0;
14551 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14552 if ((pi->pubpi.radiorev == 3) ||
14553 (pi->pubpi.radiorev == 4) ||
14554 (pi->pubpi.radiorev == 6))
14555 rfpwr_offset = (s16)
14556 nphy_papd_padgain_dlt_2g_2057rev3n4
14557 [pad_gn];
14558 else if (pi->pubpi.radiorev == 5)
14559 rfpwr_offset = (s16)
14560 nphy_papd_padgain_dlt_2g_2057rev5
14561 [pad_gn];
14562 else if ((pi->pubpi.radiorev == 7)
14563 || (pi->pubpi.radiorev ==
14565 rfpwr_offset = (s16)
14566 nphy_papd_padgain_dlt_2g_2057rev7
14567 [pad_gn];
14568 } else {
14569 if ((pi->pubpi.radiorev == 3) ||
14570 (pi->pubpi.radiorev == 4) ||
14571 (pi->pubpi.radiorev == 6))
14572 rfpwr_offset = (s16)
14573 nphy_papd_pgagain_dlt_5g_2057
14574 [pga_gn];
14575 else if ((pi->pubpi.radiorev == 7)
14576 || (pi->pubpi.radiorev ==
14578 rfpwr_offset = (s16)
14579 nphy_papd_pgagain_dlt_5g_2057rev7
14580 [pga_gn];
14582 return rfpwr_offset;
14585 void wlc_phy_init_nphy(struct brcms_phy *pi)
14587 u16 val;
14588 u16 clip1_ths[2];
14589 struct nphy_txgains target_gain;
14590 u8 tx_pwr_ctrl_state;
14591 bool do_nphy_cal = false;
14592 uint core;
14593 uint origidx, intr_val;
14594 struct d11regs *regs;
14595 u32 d11_clk_ctl_st;
14597 core = 0;
14599 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
14600 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14602 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14603 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14604 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14605 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14606 (CHSPEC_IS2G(pi->radio_chanspec)))
14607 ai_corereg(pi->sh->sih, SI_CC_IDX,
14608 offsetof(struct chipcregs, chipcontrol),
14609 0x40, 0x40);
14612 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14613 CHSPEC_IS40(pi->radio_chanspec)) {
14615 regs = (struct d11regs *) ai_switch_core(pi->sh->sih,
14616 D11_CORE_ID, &origidx,
14617 &intr_val);
14618 d11_clk_ctl_st = R_REG(&regs->clk_ctl_st);
14619 AND_REG(&regs->clk_ctl_st,
14620 ~(CCS_FORCEHT | CCS_HTAREQ));
14622 W_REG(&regs->clk_ctl_st, d11_clk_ctl_st);
14624 ai_restore_core(pi->sh->sih, origidx, intr_val);
14627 pi->use_int_tx_iqlo_cal_nphy =
14628 (PHY_IPA(pi) ||
14629 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14630 (NREV_GE(pi->pubpi.phy_rev, 5)
14631 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14633 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
14635 pi->nphy_deaf_count = 0;
14637 wlc_phy_tbl_init_nphy(pi);
14639 pi->nphy_crsminpwr_adjusted = false;
14640 pi->nphy_noisevars_adjusted = false;
14642 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14643 write_phy_reg(pi, 0xe7, 0);
14644 write_phy_reg(pi, 0xec, 0);
14645 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14646 write_phy_reg(pi, 0x342, 0);
14647 write_phy_reg(pi, 0x343, 0);
14648 write_phy_reg(pi, 0x346, 0);
14649 write_phy_reg(pi, 0x347, 0);
14651 write_phy_reg(pi, 0xe5, 0);
14652 write_phy_reg(pi, 0xe6, 0);
14653 } else {
14654 write_phy_reg(pi, 0xec, 0);
14657 write_phy_reg(pi, 0x91, 0);
14658 write_phy_reg(pi, 0x92, 0);
14659 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14660 write_phy_reg(pi, 0x93, 0);
14661 write_phy_reg(pi, 0x94, 0);
14664 and_phy_reg(pi, 0xa1, ~3);
14666 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14667 write_phy_reg(pi, 0x8f, 0);
14668 write_phy_reg(pi, 0xa5, 0);
14669 } else {
14670 write_phy_reg(pi, 0xa5, 0);
14673 if (NREV_IS(pi->pubpi.phy_rev, 2))
14674 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14675 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14676 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14678 write_phy_reg(pi, 0x203, 32);
14679 write_phy_reg(pi, 0x201, 32);
14681 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14682 write_phy_reg(pi, 0x20d, 160);
14683 else
14684 write_phy_reg(pi, 0x20d, 184);
14686 write_phy_reg(pi, 0x13a, 200);
14688 write_phy_reg(pi, 0x70, 80);
14690 write_phy_reg(pi, 0x1ff, 48);
14692 if (NREV_LT(pi->pubpi.phy_rev, 8))
14693 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14695 wlc_phy_stf_chain_upd_nphy(pi);
14697 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14698 write_phy_reg(pi, 0x180, 0xaa8);
14699 write_phy_reg(pi, 0x181, 0x9a4);
14702 if (PHY_IPA(pi)) {
14703 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14705 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14706 0x29b, (0x1 << 0), (1) << 0);
14708 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14709 0x29c, (0x1ff << 7),
14710 (pi->nphy_papd_epsilon_offset[core]) << 7);
14714 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14715 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14716 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14719 wlc_phy_workarounds_nphy(pi);
14721 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14723 val = read_phy_reg(pi, 0x01);
14724 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14725 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14726 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14728 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14730 wlc_phy_pa_override_nphy(pi, OFF);
14731 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14732 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14733 wlc_phy_pa_override_nphy(pi, ON);
14735 wlc_phy_classifier_nphy(pi, 0, 0);
14736 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14738 if (CHSPEC_IS2G(pi->radio_chanspec))
14739 wlc_phy_bphy_init_nphy(pi);
14741 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14742 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14744 wlc_phy_txpwr_fixpower_nphy(pi);
14746 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14748 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14750 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14751 u32 *tx_pwrctrl_tbl = NULL;
14752 u16 idx;
14753 s16 pga_gn = 0;
14754 s16 pad_gn = 0;
14755 s32 rfpwr_offset;
14757 if (PHY_IPA(pi)) {
14758 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14759 } else {
14760 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14761 if (NREV_IS(pi->pubpi.phy_rev, 3))
14762 tx_pwrctrl_tbl =
14763 nphy_tpc_5GHz_txgain_rev3;
14764 else if (NREV_IS(pi->pubpi.phy_rev, 4))
14765 tx_pwrctrl_tbl =
14766 (pi->srom_fem5g.extpagain ==
14767 3) ?
14768 nphy_tpc_5GHz_txgain_HiPwrEPA :
14769 nphy_tpc_5GHz_txgain_rev4;
14770 else
14771 tx_pwrctrl_tbl =
14772 nphy_tpc_5GHz_txgain_rev5;
14773 } else {
14774 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14775 if (pi->pubpi.radiorev == 5)
14776 tx_pwrctrl_tbl =
14777 nphy_tpc_txgain_epa_2057rev5;
14778 else if (pi->pubpi.radiorev == 3)
14779 tx_pwrctrl_tbl =
14780 nphy_tpc_txgain_epa_2057rev3;
14781 } else {
14782 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14783 (pi->srom_fem2g.extpagain == 3))
14784 tx_pwrctrl_tbl =
14785 nphy_tpc_txgain_HiPwrEPA;
14786 else
14787 tx_pwrctrl_tbl =
14788 nphy_tpc_txgain_rev3;
14793 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14794 192, 32, tx_pwrctrl_tbl);
14795 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14796 192, 32, tx_pwrctrl_tbl);
14798 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
14800 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14802 for (idx = 0; idx < 128; idx++) {
14803 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14804 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14805 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
14806 pad_gn);
14807 wlc_phy_table_write_nphy(
14809 NPHY_TBL_ID_CORE1TXPWRCTL,
14810 1, 576 + idx, 32,
14811 &rfpwr_offset);
14812 wlc_phy_table_write_nphy(
14814 NPHY_TBL_ID_CORE2TXPWRCTL,
14815 1, 576 + idx, 32,
14816 &rfpwr_offset);
14818 } else {
14820 for (idx = 0; idx < 128; idx++) {
14821 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14822 if (CHSPEC_IS2G(pi->radio_chanspec))
14823 rfpwr_offset = (s16)
14824 nphy_papd_pga_gain_delta_ipa_2g
14825 [pga_gn];
14826 else
14827 rfpwr_offset = (s16)
14828 nphy_papd_pga_gain_delta_ipa_5g
14829 [pga_gn];
14831 wlc_phy_table_write_nphy(
14833 NPHY_TBL_ID_CORE1TXPWRCTL,
14834 1, 576 + idx, 32,
14835 &rfpwr_offset);
14836 wlc_phy_table_write_nphy(
14838 NPHY_TBL_ID_CORE2TXPWRCTL,
14839 1, 576 + idx, 32,
14840 &rfpwr_offset);
14844 } else {
14846 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14847 192, 32, nphy_tpc_txgain);
14848 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14849 192, 32, nphy_tpc_txgain);
14852 if (pi->sh->phyrxchain != 0x3)
14853 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
14854 pi->sh->phyrxchain);
14856 if (PHY_PERICAL_MPHASE_PENDING(pi))
14857 wlc_phy_cal_perical_mphase_restart(pi);
14859 if (!NORADIO_ENAB(pi->pubpi)) {
14860 bool do_rssi_cal = false;
14862 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14863 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14864 (pi->nphy_rssical_chanspec_2G == 0) :
14865 (pi->nphy_rssical_chanspec_5G == 0);
14867 if (do_rssi_cal)
14868 wlc_phy_rssi_cal_nphy(pi);
14869 else
14870 wlc_phy_restore_rssical_nphy(pi);
14871 } else {
14872 wlc_phy_rssi_cal_nphy(pi);
14875 if (!SCAN_RM_IN_PROGRESS(pi))
14876 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14877 (pi->nphy_iqcal_chanspec_2G == 0) :
14878 (pi->nphy_iqcal_chanspec_5G == 0);
14880 if (!pi->do_initcal)
14881 do_nphy_cal = false;
14883 if (do_nphy_cal) {
14885 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14887 if (pi->antsel_type == ANTSEL_2x3)
14888 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
14889 true);
14891 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14892 wlc_phy_rssi_cal_nphy(pi);
14894 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14895 pi->nphy_cal_orig_pwr_idx[0] =
14896 pi->nphy_txpwrindex[PHY_CORE_0]
14898 index_internal;
14899 pi->nphy_cal_orig_pwr_idx[1] =
14900 pi->nphy_txpwrindex[PHY_CORE_1]
14902 index_internal;
14904 wlc_phy_precal_txgain_nphy(pi);
14905 target_gain =
14906 wlc_phy_get_tx_gain_nphy(pi);
14909 if (wlc_phy_cal_txiqlo_nphy
14910 (pi, target_gain, true,
14911 false) == 0) {
14912 if (wlc_phy_cal_rxiq_nphy
14913 (pi, target_gain, 2,
14914 false) == 0)
14915 wlc_phy_savecal_nphy(pi);
14918 } else if (pi->mphase_cal_phase_id ==
14919 MPHASE_CAL_STATE_IDLE) {
14920 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
14921 PHY_PERICAL_PHYINIT);
14923 } else {
14924 wlc_phy_restorecal_nphy(pi);
14928 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14930 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14932 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14934 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14936 write_phy_reg(pi, 0x70, 50);
14938 wlc_phy_txlpfbw_nphy(pi);
14940 wlc_phy_spurwar_nphy(pi);
14944 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14946 bool gf_preamble = false;
14947 u16 val;
14949 if (preamble == BRCMS_N_PREAMBLE_GF)
14950 gf_preamble = true;
14952 val = read_phy_reg(pi, 0xed);
14954 val |= RX_GF_MM_AUTO;
14955 val &= ~RX_GF_OR_MM;
14956 if (gf_preamble)
14957 val |= RX_GF_OR_MM;
14959 write_phy_reg(pi, 0xed, val);
14962 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
14964 u16 val;
14966 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14968 val = read_phy_reg(pi, 0x01);
14969 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14970 udelay(1);
14971 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14973 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14975 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14978 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
14980 u16 rfctrlintc_override_val;
14982 if (!en) {
14984 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14985 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14987 if (NREV_GE(pi->pubpi.phy_rev, 7))
14988 rfctrlintc_override_val = 0x1480;
14989 else if (NREV_GE(pi->pubpi.phy_rev, 3))
14990 rfctrlintc_override_val =
14991 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14992 else
14993 rfctrlintc_override_val =
14994 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14996 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
14997 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
14998 } else {
14999 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
15000 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
15005 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
15008 u16 txrx_chain =
15009 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
15010 bool CoreActv_override = false;
15012 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
15013 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
15014 CoreActv_override = true;
15016 if (NREV_LE(pi->pubpi.phy_rev, 2))
15017 and_phy_reg(pi, 0xa0, ~0x20);
15018 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
15019 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
15020 CoreActv_override = true;
15022 if (NREV_LE(pi->pubpi.phy_rev, 2))
15023 or_phy_reg(pi, 0xa0, 0x20);
15026 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15028 if (CoreActv_override) {
15029 pi->nphy_perical = PHY_PERICAL_DISABLE;
15030 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15031 } else {
15032 pi->nphy_perical = PHY_PERICAL_MPHASE;
15033 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15037 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
15039 u16 regval;
15040 u16 tbl_buf[16];
15041 uint i;
15042 struct brcms_phy *pi = (struct brcms_phy *) pih;
15043 u16 tbl_opcode;
15044 bool suspend;
15046 pi->sh->phyrxchain = rxcore_bitmask;
15048 if (!pi->sh->clk)
15049 return;
15051 suspend = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
15052 if (!suspend)
15053 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15055 if (pi->phyhang_avoid)
15056 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15058 regval = read_phy_reg(pi, 0xa2);
15059 regval &= ~(0xf << 4);
15060 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
15061 write_phy_reg(pi, 0xa2, regval);
15063 if ((rxcore_bitmask & 0x3) != 0x3) {
15065 write_phy_reg(pi, 0x20e, 1);
15067 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15068 if (pi->rx2tx_biasentry == -1) {
15069 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
15070 ARRAY_SIZE(tbl_buf), 80,
15071 16, tbl_buf);
15073 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
15074 if (tbl_buf[i] ==
15075 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15076 pi->rx2tx_biasentry = (u8) i;
15077 tbl_opcode =
15078 NPHY_REV3_RFSEQ_CMD_NOP;
15079 wlc_phy_table_write_nphy(
15081 NPHY_TBL_ID_RFSEQ,
15082 1, i,
15084 &tbl_opcode);
15085 break;
15086 } else if (tbl_buf[i] ==
15087 NPHY_REV3_RFSEQ_CMD_END)
15088 break;
15092 } else {
15094 write_phy_reg(pi, 0x20e, 30);
15096 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15097 if (pi->rx2tx_biasentry != -1) {
15098 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15099 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15100 1, pi->rx2tx_biasentry,
15101 16, &tbl_opcode);
15102 pi->rx2tx_biasentry = -1;
15107 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15109 if (pi->phyhang_avoid)
15110 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15112 if (!suspend)
15113 wlapi_enable_mac(pi->sh->physhim);
15116 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
15118 u16 regval, rxen_bits;
15119 struct brcms_phy *pi = (struct brcms_phy *) pih;
15121 regval = read_phy_reg(pi, 0xa2);
15122 rxen_bits = (regval >> 4) & 0xf;
15124 return (u8) rxen_bits;
15127 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
15129 return PHY_IPA(pi);
15132 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
15134 u8 idx, idx2, i, delta_ind;
15136 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
15137 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15139 for (i = 0; i < 4; i++) {
15140 idx2 = 0;
15142 delta_ind = 0;
15144 switch (i) {
15145 case 0:
15147 if (CHSPEC_IS40(pi->radio_chanspec)
15148 && NPHY_IS_SROM_REINTERPRET) {
15149 idx = TXP_FIRST_MCS_40_SISO;
15150 } else {
15151 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15152 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15153 delta_ind = 1;
15155 break;
15157 case 1:
15159 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15160 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15161 break;
15163 case 2:
15165 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15166 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15167 break;
15169 case 3:
15171 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15172 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15173 break;
15176 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15177 pi->tx_power_offset[idx];
15178 idx = idx + delta_ind;
15179 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15180 pi->tx_power_offset[idx];
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++];
15186 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15187 pi->tx_power_offset[idx++];
15188 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15189 pi->tx_power_offset[idx];
15190 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++];
15195 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15196 pi->tx_power_offset[idx++];
15197 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15198 pi->tx_power_offset[idx];
15199 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++];
15204 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15205 pi->tx_power_offset[idx];
15206 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15207 pi->tx_power_offset[idx++];
15208 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15209 pi->tx_power_offset[idx];
15210 idx = idx + 1 - delta_ind;
15211 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15212 pi->tx_power_offset[idx];
15214 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15215 pi->tx_power_offset[idx];
15216 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15217 pi->tx_power_offset[idx];
15218 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15219 pi->tx_power_offset[idx];
15220 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15221 pi->tx_power_offset[idx];
15225 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
15229 static void
15230 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15232 if (core == PHY_CORE_0) {
15233 write_phy_reg(pi, 0x38, 0x4);
15234 if (CHSPEC_IS2G(pi->radio_chanspec))
15235 write_phy_reg(pi, 0x37, 0x0060);
15236 else
15237 write_phy_reg(pi, 0x37, 0x1080);
15238 } else if (core == PHY_CORE_1) {
15239 write_phy_reg(pi, 0x2ae, 0x4);
15240 if (CHSPEC_IS2G(pi->radio_chanspec))
15241 write_phy_reg(pi, 0x2ad, 0x0060);
15242 else
15243 write_phy_reg(pi, 0x2ad, 0x1080);
15247 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15249 u8 txchain0, txchain1;
15251 txchain0 = txchain & 0x1;
15252 txchain1 = (txchain & 0x2) >> 1;
15253 if (!txchain0)
15254 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15256 if (!txchain1)
15257 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15260 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
15262 u8 rfseq_rx2tx_events[] = {
15263 NPHY_RFSEQ_CMD_NOP,
15264 NPHY_RFSEQ_CMD_RXG_FBW,
15265 NPHY_RFSEQ_CMD_TR_SWITCH,
15266 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15267 NPHY_RFSEQ_CMD_RXPD_TXPD,
15268 NPHY_RFSEQ_CMD_TX_GAIN,
15269 NPHY_RFSEQ_CMD_EXT_PA
15271 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15272 u8 rfseq_tx2rx_events[] = {
15273 NPHY_RFSEQ_CMD_NOP,
15274 NPHY_RFSEQ_CMD_EXT_PA,
15275 NPHY_RFSEQ_CMD_TX_GAIN,
15276 NPHY_RFSEQ_CMD_RXPD_TXPD,
15277 NPHY_RFSEQ_CMD_TR_SWITCH,
15278 NPHY_RFSEQ_CMD_RXG_FBW,
15279 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15281 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15282 u8 rfseq_tx2rx_events_rev3[] = {
15283 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15284 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15285 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15286 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15287 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15288 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15289 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15290 NPHY_REV3_RFSEQ_CMD_END
15292 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15293 u8 rfseq_rx2tx_events_rev3[] = {
15294 NPHY_REV3_RFSEQ_CMD_NOP,
15295 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15296 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15297 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15298 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15299 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15300 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15301 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15302 NPHY_REV3_RFSEQ_CMD_END
15304 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
15306 u8 rfseq_rx2tx_events_rev3_ipa[] = {
15307 NPHY_REV3_RFSEQ_CMD_NOP,
15308 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15309 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15310 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15311 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15312 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15313 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
15314 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15315 NPHY_REV3_RFSEQ_CMD_END
15317 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
15318 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
15320 s16 alpha0, alpha1, alpha2;
15321 s16 beta0, beta1, beta2;
15322 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
15323 stbc_data_weights;
15324 u8 chan_freq_range = 0;
15325 u16 dac_control = 0x0002;
15326 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15327 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15328 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15329 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15330 u16 *aux_adc_vmid;
15331 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15332 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15333 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15334 u16 *aux_adc_gain;
15335 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15336 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
15337 s32 min_nvar_val = 0x18d;
15338 s32 min_nvar_offset_6mbps = 20;
15339 u8 pdetrange;
15340 u8 triso;
15341 u16 regval;
15342 u16 afectrl_adc_ctrl1_rev7 = 0x20;
15343 u16 afectrl_adc_ctrl2_rev7 = 0x0;
15344 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15345 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15346 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15347 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15348 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15349 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15350 u16 ipalvlshift_3p3_war_en = 0;
15351 u16 rccal_bcap_val, rccal_scap_val;
15352 u16 rccal_tx20_11b_bcap = 0;
15353 u16 rccal_tx20_11b_scap = 0;
15354 u16 rccal_tx20_11n_bcap = 0;
15355 u16 rccal_tx20_11n_scap = 0;
15356 u16 rccal_tx40_11n_bcap = 0;
15357 u16 rccal_tx40_11n_scap = 0;
15358 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15359 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15360 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15361 u16 tx_lpf_bw_ofdm_20mhz = 0;
15362 u16 tx_lpf_bw_ofdm_40mhz = 0;
15363 u16 tx_lpf_bw_11b = 0;
15364 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15365 u16 txgm_idac_bleed = 0;
15366 bool rccal_ovrd = false;
15367 u16 freq;
15368 int coreNum;
15370 if (CHSPEC_IS5G(pi->radio_chanspec))
15371 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15372 else
15373 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15375 if (pi->phyhang_avoid)
15376 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15378 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15380 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15382 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15383 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15385 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15386 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15387 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15388 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15389 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15390 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15391 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15392 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15393 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15394 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15395 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15396 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15397 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15398 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15399 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15400 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15403 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15404 write_phy_reg(pi, 0x23f, 0x1b0);
15405 write_phy_reg(pi, 0x240, 0x1b0);
15408 if (NREV_GE(pi->pubpi.phy_rev, 8))
15409 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15411 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15412 &dac_control);
15413 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15414 &dac_control);
15416 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15417 1, 0, 32, &leg_data_weights);
15418 leg_data_weights = leg_data_weights & 0xffffff;
15419 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15420 1, 0, 32, &leg_data_weights);
15422 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15423 2, 0x15e, 16,
15424 rfseq_rx2tx_dacbufpu_rev7);
15425 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15426 rfseq_rx2tx_dacbufpu_rev7);
15428 if (PHY_IPA(pi))
15429 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15430 rfseq_rx2tx_events_rev3_ipa,
15431 rfseq_rx2tx_dlys_rev3_ipa,
15432 sizeof
15433 (rfseq_rx2tx_events_rev3_ipa) /
15434 sizeof
15435 (rfseq_rx2tx_events_rev3_ipa
15436 [0]));
15438 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15439 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15441 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15442 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15443 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15445 if (PHY_IPA(pi)) {
15447 if (((pi->pubpi.radiorev == 5)
15448 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15449 || (pi->pubpi.radiorev == 7)
15450 || (pi->pubpi.radiorev == 8)) {
15452 rccal_bcap_val =
15453 read_radio_reg(
15455 RADIO_2057_RCCAL_BCAP_VAL);
15456 rccal_scap_val =
15457 read_radio_reg(
15459 RADIO_2057_RCCAL_SCAP_VAL);
15461 rccal_tx20_11b_bcap = rccal_bcap_val;
15462 rccal_tx20_11b_scap = rccal_scap_val;
15464 if ((pi->pubpi.radiorev == 5) &&
15465 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15467 rccal_tx20_11n_bcap = rccal_bcap_val;
15468 rccal_tx20_11n_scap = rccal_scap_val;
15469 rccal_tx40_11n_bcap = 0xc;
15470 rccal_tx40_11n_scap = 0xc;
15472 rccal_ovrd = true;
15474 } else if ((pi->pubpi.radiorev == 7)
15475 || (pi->pubpi.radiorev == 8)) {
15477 tx_lpf_bw_ofdm_20mhz = 4;
15478 tx_lpf_bw_11b = 1;
15480 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15481 rccal_tx20_11n_bcap = 0xc;
15482 rccal_tx20_11n_scap = 0xc;
15483 rccal_tx40_11n_bcap = 0xa;
15484 rccal_tx40_11n_scap = 0xa;
15485 } else {
15486 rccal_tx20_11n_bcap = 0x14;
15487 rccal_tx20_11n_scap = 0x14;
15488 rccal_tx40_11n_bcap = 0xf;
15489 rccal_tx40_11n_scap = 0xf;
15492 rccal_ovrd = true;
15496 } else {
15498 if (pi->pubpi.radiorev == 5) {
15500 tx_lpf_bw_ofdm_20mhz = 1;
15501 tx_lpf_bw_ofdm_40mhz = 3;
15503 rccal_bcap_val =
15504 read_radio_reg(
15506 RADIO_2057_RCCAL_BCAP_VAL);
15507 rccal_scap_val =
15508 read_radio_reg(
15510 RADIO_2057_RCCAL_SCAP_VAL);
15512 rccal_tx20_11b_bcap = rccal_bcap_val;
15513 rccal_tx20_11b_scap = rccal_scap_val;
15515 rccal_tx20_11n_bcap = 0x13;
15516 rccal_tx20_11n_scap = 0x11;
15517 rccal_tx40_11n_bcap = 0x13;
15518 rccal_tx40_11n_scap = 0x11;
15520 rccal_ovrd = true;
15524 if (rccal_ovrd) {
15526 rx2tx_lpf_rc_lut_tx20_11b =
15527 (rccal_tx20_11b_bcap << 8) |
15528 (rccal_tx20_11b_scap << 3) |
15529 tx_lpf_bw_11b;
15530 rx2tx_lpf_rc_lut_tx20_11n =
15531 (rccal_tx20_11n_bcap << 8) |
15532 (rccal_tx20_11n_scap << 3) |
15533 tx_lpf_bw_ofdm_20mhz;
15534 rx2tx_lpf_rc_lut_tx40_11n =
15535 (rccal_tx40_11n_bcap << 8) |
15536 (rccal_tx40_11n_scap << 3) |
15537 tx_lpf_bw_ofdm_40mhz;
15539 for (coreNum = 0; coreNum <= 1; coreNum++) {
15540 wlc_phy_table_write_nphy(
15541 pi, NPHY_TBL_ID_RFSEQ,
15543 0x152 + coreNum * 0x10,
15545 &rx2tx_lpf_rc_lut_tx20_11b);
15546 wlc_phy_table_write_nphy(
15547 pi, NPHY_TBL_ID_RFSEQ,
15549 0x153 + coreNum * 0x10,
15551 &rx2tx_lpf_rc_lut_tx20_11n);
15552 wlc_phy_table_write_nphy(
15553 pi, NPHY_TBL_ID_RFSEQ,
15555 0x154 + coreNum * 0x10,
15557 &rx2tx_lpf_rc_lut_tx20_11n);
15558 wlc_phy_table_write_nphy(
15559 pi, NPHY_TBL_ID_RFSEQ,
15561 0x155 + coreNum * 0x10,
15563 &rx2tx_lpf_rc_lut_tx40_11n);
15564 wlc_phy_table_write_nphy(
15565 pi, NPHY_TBL_ID_RFSEQ,
15567 0x156 + coreNum * 0x10,
15569 &rx2tx_lpf_rc_lut_tx40_11n);
15570 wlc_phy_table_write_nphy(
15571 pi, NPHY_TBL_ID_RFSEQ,
15573 0x157 + coreNum * 0x10,
15575 &rx2tx_lpf_rc_lut_tx40_11n);
15576 wlc_phy_table_write_nphy(
15577 pi, NPHY_TBL_ID_RFSEQ,
15579 0x158 + coreNum * 0x10,
15581 &rx2tx_lpf_rc_lut_tx40_11n);
15582 wlc_phy_table_write_nphy(
15583 pi, NPHY_TBL_ID_RFSEQ,
15585 0x159 + coreNum * 0x10,
15587 &rx2tx_lpf_rc_lut_tx40_11n);
15590 wlc_phy_rfctrl_override_nphy_rev7(
15591 pi, (0x1 << 4),
15592 1, 0x3, 0,
15593 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15596 if (!NORADIO_ENAB(pi->pubpi))
15597 write_phy_reg(pi, 0x32f, 0x3);
15599 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
15600 wlc_phy_rfctrl_override_nphy_rev7(
15601 pi, (0x1 << 2),
15602 1, 0x3, 0,
15603 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15605 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15606 (pi->pubpi.radiorev == 6)) {
15607 if ((pi->sh->sromrev >= 8)
15608 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15609 ipalvlshift_3p3_war_en = 1;
15611 if (ipalvlshift_3p3_war_en) {
15612 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15613 0x5);
15614 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15615 0x30);
15616 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15617 or_radio_reg(pi,
15618 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15619 0x1);
15620 or_radio_reg(pi,
15621 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15622 0x1);
15624 ipa2g_mainbias = 0x1f;
15626 ipa2g_casconv = 0x6f;
15628 ipa2g_biasfilt = 0xaa;
15629 } else {
15631 ipa2g_mainbias = 0x2b;
15633 ipa2g_casconv = 0x7f;
15635 ipa2g_biasfilt = 0xee;
15638 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15639 for (coreNum = 0; coreNum <= 1; coreNum++) {
15640 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15641 coreNum, IPA2G_IMAIN,
15642 ipa2g_mainbias);
15643 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15644 coreNum, IPA2G_CASCONV,
15645 ipa2g_casconv);
15646 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15647 coreNum,
15648 IPA2G_BIAS_FILTER,
15649 ipa2g_biasfilt);
15654 if (PHY_IPA(pi)) {
15655 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15656 if ((pi->pubpi.radiorev == 3)
15657 || (pi->pubpi.radiorev == 4)
15658 || (pi->pubpi.radiorev == 6))
15659 txgm_idac_bleed = 0x7f;
15661 for (coreNum = 0; coreNum <= 1; coreNum++) {
15662 if (txgm_idac_bleed != 0)
15663 WRITE_RADIO_REG4(
15664 pi, RADIO_2057,
15665 CORE, coreNum,
15666 TXGM_IDAC_BLEED,
15667 txgm_idac_bleed);
15670 if (pi->pubpi.radiorev == 5) {
15672 for (coreNum = 0; coreNum <= 1;
15673 coreNum++) {
15674 WRITE_RADIO_REG4(pi, RADIO_2057,
15675 CORE, coreNum,
15676 IPA2G_CASCONV,
15677 0x13);
15678 WRITE_RADIO_REG4(pi, RADIO_2057,
15679 CORE, coreNum,
15680 IPA2G_IMAIN,
15681 0x1f);
15682 WRITE_RADIO_REG4(
15683 pi, RADIO_2057,
15684 CORE, coreNum,
15685 IPA2G_BIAS_FILTER,
15686 0xee);
15687 WRITE_RADIO_REG4(pi, RADIO_2057,
15688 CORE, coreNum,
15689 PAD2G_IDACS,
15690 0x8a);
15691 WRITE_RADIO_REG4(
15692 pi, RADIO_2057,
15693 CORE, coreNum,
15694 PAD_BIAS_FILTER_BWS,
15695 0x3e);
15698 } else if ((pi->pubpi.radiorev == 7)
15699 || (pi->pubpi.radiorev == 8)) {
15701 if (CHSPEC_IS40(pi->radio_chanspec) ==
15702 0) {
15703 WRITE_RADIO_REG4(pi, RADIO_2057,
15704 CORE, 0,
15705 IPA2G_IMAIN,
15706 0x14);
15707 WRITE_RADIO_REG4(pi, RADIO_2057,
15708 CORE, 1,
15709 IPA2G_IMAIN,
15710 0x12);
15711 } else {
15712 WRITE_RADIO_REG4(pi, RADIO_2057,
15713 CORE, 0,
15714 IPA2G_IMAIN,
15715 0x16);
15716 WRITE_RADIO_REG4(pi, RADIO_2057,
15717 CORE, 1,
15718 IPA2G_IMAIN,
15719 0x16);
15723 } else {
15724 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
15725 pi->radio_chanspec));
15726 if (((freq >= 5180) && (freq <= 5230))
15727 || ((freq >= 5745) && (freq <= 5805))) {
15728 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15729 0, IPA5G_BIAS_FILTER,
15730 0xff);
15731 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15732 1, IPA5G_BIAS_FILTER,
15733 0xff);
15736 } else {
15738 if (pi->pubpi.radiorev != 5) {
15739 for (coreNum = 0; coreNum <= 1; coreNum++) {
15740 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15741 coreNum,
15742 TXMIX2G_TUNE_BOOST_PU,
15743 0x61);
15744 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15745 coreNum,
15746 TXGM_IDAC_BLEED, 0x70);
15751 if (pi->pubpi.radiorev == 4) {
15752 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15753 0x05, 16,
15754 &afectrl_adc_ctrl1_rev7);
15755 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15756 0x15, 16,
15757 &afectrl_adc_ctrl1_rev7);
15759 for (coreNum = 0; coreNum <= 1; coreNum++) {
15760 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15761 AFE_VCM_CAL_MASTER, 0x0);
15762 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15763 AFE_SET_VCM_I, 0x3f);
15764 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15765 AFE_SET_VCM_Q, 0x3f);
15767 } else {
15768 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15769 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15770 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15771 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15773 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15774 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15775 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15776 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15778 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15779 0x05, 16,
15780 &afectrl_adc_ctrl2_rev7);
15781 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15782 0x15, 16,
15783 &afectrl_adc_ctrl2_rev7);
15785 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15786 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15787 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15788 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15791 write_phy_reg(pi, 0x6a, 0x2);
15793 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15794 &min_nvar_offset_6mbps);
15796 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15797 &rfseq_pktgn_lpf_hpc_rev7);
15799 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15800 &rfseq_pktgn_lpf_h_hpc_rev7);
15802 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15803 &rfseq_htpktgn_lpf_hpc_rev7);
15805 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15806 &rfseq_cckpktgn_lpf_hpc_rev7);
15808 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15809 &rfseq_tx2rx_lpf_h_hpc_rev7);
15811 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15812 &rfseq_rx2tx_lpf_h_hpc_rev7);
15814 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15815 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15816 32, &min_nvar_val);
15817 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15818 127, 32, &min_nvar_val);
15819 } else {
15820 min_nvar_val = noise_var_tbl_rev7[3];
15821 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15822 32, &min_nvar_val);
15824 min_nvar_val = noise_var_tbl_rev7[127];
15825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15826 127, 32, &min_nvar_val);
15829 wlc_phy_workarounds_nphy_gainctrl(pi);
15831 pdetrange =
15832 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15833 pdetrange : pi->srom_fem2g.pdetrange;
15835 if (pdetrange == 0) {
15836 chan_freq_range =
15837 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15838 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15839 aux_adc_vmid_rev7_core0[3] = 0x70;
15840 aux_adc_vmid_rev7_core1[3] = 0x70;
15841 aux_adc_gain_rev7[3] = 2;
15842 } else {
15843 aux_adc_vmid_rev7_core0[3] = 0x80;
15844 aux_adc_vmid_rev7_core1[3] = 0x80;
15845 aux_adc_gain_rev7[3] = 3;
15847 } else if (pdetrange == 1) {
15848 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15849 aux_adc_vmid_rev7_core0[3] = 0x7c;
15850 aux_adc_vmid_rev7_core1[3] = 0x7c;
15851 aux_adc_gain_rev7[3] = 2;
15852 } else {
15853 aux_adc_vmid_rev7_core0[3] = 0x8c;
15854 aux_adc_vmid_rev7_core1[3] = 0x8c;
15855 aux_adc_gain_rev7[3] = 1;
15857 } else if (pdetrange == 2) {
15858 if (pi->pubpi.radioid == BCM2057_ID) {
15859 if ((pi->pubpi.radiorev == 5)
15860 || (pi->pubpi.radiorev == 7)
15861 || (pi->pubpi.radiorev == 8)) {
15862 if (chan_freq_range ==
15863 WL_CHAN_FREQ_RANGE_2G) {
15864 aux_adc_vmid_rev7_core0[3] =
15865 0x8c;
15866 aux_adc_vmid_rev7_core1[3] =
15867 0x8c;
15868 aux_adc_gain_rev7[3] = 0;
15869 } else {
15870 aux_adc_vmid_rev7_core0[3] =
15871 0x96;
15872 aux_adc_vmid_rev7_core1[3] =
15873 0x96;
15874 aux_adc_gain_rev7[3] = 0;
15879 } else if (pdetrange == 3) {
15880 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15881 aux_adc_vmid_rev7_core0[3] = 0x89;
15882 aux_adc_vmid_rev7_core1[3] = 0x89;
15883 aux_adc_gain_rev7[3] = 0;
15886 } else if (pdetrange == 5) {
15888 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15889 aux_adc_vmid_rev7_core0[3] = 0x80;
15890 aux_adc_vmid_rev7_core1[3] = 0x80;
15891 aux_adc_gain_rev7[3] = 3;
15892 } else {
15893 aux_adc_vmid_rev7_core0[3] = 0x70;
15894 aux_adc_vmid_rev7_core1[3] = 0x70;
15895 aux_adc_gain_rev7[3] = 2;
15899 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15900 &aux_adc_vmid_rev7_core0);
15901 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15902 &aux_adc_vmid_rev7_core1);
15903 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15904 &aux_adc_gain_rev7);
15905 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15906 &aux_adc_gain_rev7);
15908 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15910 write_phy_reg(pi, 0x23f, 0x1f8);
15911 write_phy_reg(pi, 0x240, 0x1f8);
15913 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15914 1, 0, 32, &leg_data_weights);
15915 leg_data_weights = leg_data_weights & 0xffffff;
15916 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15917 1, 0, 32, &leg_data_weights);
15919 alpha0 = 293;
15920 alpha1 = 435;
15921 alpha2 = 261;
15922 beta0 = 366;
15923 beta1 = 205;
15924 beta2 = 32;
15925 write_phy_reg(pi, 0x145, alpha0);
15926 write_phy_reg(pi, 0x146, alpha1);
15927 write_phy_reg(pi, 0x147, alpha2);
15928 write_phy_reg(pi, 0x148, beta0);
15929 write_phy_reg(pi, 0x149, beta1);
15930 write_phy_reg(pi, 0x14a, beta2);
15932 write_phy_reg(pi, 0x38, 0xC);
15933 write_phy_reg(pi, 0x2ae, 0xC);
15935 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15936 rfseq_tx2rx_events_rev3,
15937 rfseq_tx2rx_dlys_rev3,
15938 sizeof(rfseq_tx2rx_events_rev3) /
15939 sizeof(rfseq_tx2rx_events_rev3[0]));
15941 if (PHY_IPA(pi))
15942 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15943 rfseq_rx2tx_events_rev3_ipa,
15944 rfseq_rx2tx_dlys_rev3_ipa,
15945 sizeof
15946 (rfseq_rx2tx_events_rev3_ipa) /
15947 sizeof
15948 (rfseq_rx2tx_events_rev3_ipa
15949 [0]));
15951 if ((pi->sh->hw_phyrxchain != 0x3) &&
15952 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15954 if (PHY_IPA(pi)) {
15955 rfseq_rx2tx_dlys_rev3[5] = 59;
15956 rfseq_rx2tx_dlys_rev3[6] = 1;
15957 rfseq_rx2tx_events_rev3[7] =
15958 NPHY_REV3_RFSEQ_CMD_END;
15961 wlc_phy_set_rfseq_nphy(
15962 pi, NPHY_RFSEQ_RX2TX,
15963 rfseq_rx2tx_events_rev3,
15964 rfseq_rx2tx_dlys_rev3,
15965 sizeof(rfseq_rx2tx_events_rev3) /
15966 sizeof(rfseq_rx2tx_events_rev3[0]));
15969 if (CHSPEC_IS2G(pi->radio_chanspec))
15970 write_phy_reg(pi, 0x6a, 0x2);
15971 else
15972 write_phy_reg(pi, 0x6a, 0x9c40);
15974 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15976 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15977 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15978 32, &min_nvar_val);
15979 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15980 127, 32, &min_nvar_val);
15981 } else {
15982 min_nvar_val = noise_var_tbl_rev3[3];
15983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15984 32, &min_nvar_val);
15986 min_nvar_val = noise_var_tbl_rev3[127];
15987 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15988 127, 32, &min_nvar_val);
15991 wlc_phy_workarounds_nphy_gainctrl(pi);
15993 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15994 &dac_control);
15995 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15996 &dac_control);
15998 pdetrange =
15999 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16000 pdetrange : pi->srom_fem2g.pdetrange;
16002 if (pdetrange == 0) {
16003 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16004 aux_adc_vmid = aux_adc_vmid_rev4;
16005 aux_adc_gain = aux_adc_gain_rev4;
16006 } else {
16007 aux_adc_vmid = aux_adc_vmid_rev3;
16008 aux_adc_gain = aux_adc_gain_rev3;
16010 chan_freq_range =
16011 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16012 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16013 switch (chan_freq_range) {
16014 case WL_CHAN_FREQ_RANGE_5GL:
16015 aux_adc_vmid[3] = 0x89;
16016 aux_adc_gain[3] = 0;
16017 break;
16018 case WL_CHAN_FREQ_RANGE_5GM:
16019 aux_adc_vmid[3] = 0x89;
16020 aux_adc_gain[3] = 0;
16021 break;
16022 case WL_CHAN_FREQ_RANGE_5GH:
16023 aux_adc_vmid[3] = 0x89;
16024 aux_adc_gain[3] = 0;
16025 break;
16026 default:
16027 break;
16030 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16031 0x08, 16, aux_adc_vmid);
16032 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16033 0x18, 16, aux_adc_vmid);
16034 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16035 0x0c, 16, aux_adc_gain);
16036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16037 0x1c, 16, aux_adc_gain);
16038 } else if (pdetrange == 1) {
16039 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16040 0x08, 16, sk_adc_vmid);
16041 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16042 0x18, 16, sk_adc_vmid);
16043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16044 0x0c, 16, sk_adc_gain);
16045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16046 0x1c, 16, sk_adc_gain);
16047 } else if (pdetrange == 2) {
16049 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16050 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16052 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16053 chan_freq_range =
16054 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16055 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16056 bcm_adc_vmid[3] = 0x8e;
16057 bcm_adc_gain[3] = 0x03;
16058 } else {
16059 bcm_adc_vmid[3] = 0x94;
16060 bcm_adc_gain[3] = 0x03;
16062 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16063 bcm_adc_vmid[3] = 0x84;
16064 bcm_adc_gain[3] = 0x02;
16067 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16068 0x08, 16, bcm_adc_vmid);
16069 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16070 0x18, 16, bcm_adc_vmid);
16071 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16072 0x0c, 16, bcm_adc_gain);
16073 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16074 0x1c, 16, bcm_adc_gain);
16075 } else if (pdetrange == 3) {
16076 chan_freq_range =
16077 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16078 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16079 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16081 u16 auxadc_vmid[] = {
16082 0xa2, 0xb4, 0xb4, 0x270
16084 u16 auxadc_gain[] = {
16085 0x02, 0x02, 0x02, 0x00
16088 wlc_phy_table_write_nphy(pi,
16089 NPHY_TBL_ID_AFECTRL, 4,
16090 0x08, 16, auxadc_vmid);
16091 wlc_phy_table_write_nphy(pi,
16092 NPHY_TBL_ID_AFECTRL, 4,
16093 0x18, 16, auxadc_vmid);
16094 wlc_phy_table_write_nphy(pi,
16095 NPHY_TBL_ID_AFECTRL, 4,
16096 0x0c, 16, auxadc_gain);
16097 wlc_phy_table_write_nphy(pi,
16098 NPHY_TBL_ID_AFECTRL, 4,
16099 0x1c, 16, auxadc_gain);
16101 } else if ((pdetrange == 4) || (pdetrange == 5)) {
16102 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16103 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16104 u16 Vmid[2], Av[2];
16106 chan_freq_range =
16107 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16108 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16109 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16110 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16111 Av[0] = (pdetrange == 4) ? 2 : 0;
16112 Av[1] = (pdetrange == 4) ? 2 : 0;
16113 } else {
16114 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16115 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16116 Av[0] = (pdetrange == 4) ? 2 : 0;
16117 Av[1] = (pdetrange == 4) ? 2 : 0;
16120 bcm_adc_vmid[3] = Vmid[0];
16121 bcm_adc_gain[3] = Av[0];
16122 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16123 0x08, 16, bcm_adc_vmid);
16124 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16125 0x0c, 16, bcm_adc_gain);
16127 bcm_adc_vmid[3] = Vmid[1];
16128 bcm_adc_gain[3] = Av[1];
16129 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16130 0x18, 16, bcm_adc_vmid);
16131 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16132 0x1c, 16, bcm_adc_gain);
16135 write_radio_reg(pi,
16136 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16137 0x0);
16138 write_radio_reg(pi,
16139 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16140 0x0);
16142 write_radio_reg(pi,
16143 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16144 0x6);
16145 write_radio_reg(pi,
16146 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16147 0x6);
16149 write_radio_reg(pi,
16150 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16151 0x7);
16152 write_radio_reg(pi,
16153 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16154 0x7);
16156 write_radio_reg(pi,
16157 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16158 0x88);
16159 write_radio_reg(pi,
16160 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16161 0x88);
16163 write_radio_reg(pi,
16164 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16165 0x0);
16166 write_radio_reg(pi,
16167 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16168 0x0);
16170 write_radio_reg(pi,
16171 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16172 0x0);
16173 write_radio_reg(pi,
16174 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16175 0x0);
16177 triso =
16178 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16179 triso : pi->srom_fem2g.triso;
16180 if (triso == 7) {
16181 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16182 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16185 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16187 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16188 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16189 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16190 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16191 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16192 nss1_data_weights = 0x00088888;
16193 ht_data_weights = 0x00088888;
16194 stbc_data_weights = 0x00088888;
16195 } else {
16196 nss1_data_weights = 0x88888888;
16197 ht_data_weights = 0x88888888;
16198 stbc_data_weights = 0x88888888;
16200 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16201 1, 1, 32, &nss1_data_weights);
16202 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16203 1, 2, 32, &ht_data_weights);
16204 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16205 1, 3, 32, &stbc_data_weights);
16207 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16208 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16209 write_radio_reg(pi,
16210 RADIO_2056_TX_GMBB_IDAC |
16211 RADIO_2056_TX0, 0x70);
16212 write_radio_reg(pi,
16213 RADIO_2056_TX_GMBB_IDAC |
16214 RADIO_2056_TX1, 0x70);
16218 if (!pi->edcrs_threshold_lock) {
16219 write_phy_reg(pi, 0x224, 0x3eb);
16220 write_phy_reg(pi, 0x225, 0x3eb);
16221 write_phy_reg(pi, 0x226, 0x341);
16222 write_phy_reg(pi, 0x227, 0x341);
16223 write_phy_reg(pi, 0x228, 0x42b);
16224 write_phy_reg(pi, 0x229, 0x42b);
16225 write_phy_reg(pi, 0x22a, 0x381);
16226 write_phy_reg(pi, 0x22b, 0x381);
16227 write_phy_reg(pi, 0x22c, 0x42b);
16228 write_phy_reg(pi, 0x22d, 0x42b);
16229 write_phy_reg(pi, 0x22e, 0x381);
16230 write_phy_reg(pi, 0x22f, 0x381);
16233 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16235 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
16236 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16237 MHF4_BPHY_TXCORE0,
16238 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
16240 } else {
16242 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16243 (pi->sh->boardtype == 0x8b)) {
16244 uint i;
16245 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
16246 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
16247 rfseq_rx2tx_dlys[i] = war_dlys[i];
16250 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16251 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16252 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16253 } else {
16254 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16255 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16258 regval = 0x000a;
16259 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16260 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16262 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16263 regval = 0xcdaa;
16264 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16265 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16268 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16269 regval = 0x0000;
16270 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16271 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16273 regval = 0x7aab;
16274 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16275 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16277 regval = 0x0800;
16278 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16279 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16282 write_phy_reg(pi, 0xf8, 0x02d8);
16283 write_phy_reg(pi, 0xf9, 0x0301);
16284 write_phy_reg(pi, 0xfa, 0x02d8);
16285 write_phy_reg(pi, 0xfb, 0x0301);
16287 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16288 rfseq_rx2tx_dlys,
16289 sizeof(rfseq_rx2tx_events) /
16290 sizeof(rfseq_rx2tx_events[0]));
16292 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16293 rfseq_tx2rx_dlys,
16294 sizeof(rfseq_tx2rx_events) /
16295 sizeof(rfseq_tx2rx_events[0]));
16297 wlc_phy_workarounds_nphy_gainctrl(pi);
16299 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16301 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16302 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16303 MHF3_NPHY_MLADV_WAR,
16304 MHF3_NPHY_MLADV_WAR,
16305 BRCM_BAND_ALL);
16307 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16308 write_phy_reg(pi, 0x1e3, 0x0);
16309 write_phy_reg(pi, 0x1e4, 0x0);
16312 if (NREV_LT(pi->pubpi.phy_rev, 2))
16313 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16315 alpha0 = 293;
16316 alpha1 = 435;
16317 alpha2 = 261;
16318 beta0 = 366;
16319 beta1 = 205;
16320 beta2 = 32;
16321 write_phy_reg(pi, 0x145, alpha0);
16322 write_phy_reg(pi, 0x146, alpha1);
16323 write_phy_reg(pi, 0x147, alpha2);
16324 write_phy_reg(pi, 0x148, beta0);
16325 write_phy_reg(pi, 0x149, beta1);
16326 write_phy_reg(pi, 0x14a, beta2);
16328 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16329 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16331 write_phy_reg(pi, 0x192, 0xb5);
16332 write_phy_reg(pi, 0x193, 0xa4);
16333 write_phy_reg(pi, 0x194, 0x0);
16336 if (NREV_IS(pi->pubpi.phy_rev, 2))
16337 mod_phy_reg(pi, 0x221,
16338 NPHY_FORCESIG_DECODEGATEDCLKS,
16339 NPHY_FORCESIG_DECODEGATEDCLKS);
16342 if (pi->phyhang_avoid)
16343 wlc_phy_stay_in_carriersearch_nphy(pi, false);
16346 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
16348 u16 w1th, hpf_code, currband;
16349 int ctr;
16350 u8 rfseq_updategainu_events[] = {
16351 NPHY_RFSEQ_CMD_RX_GAIN,
16352 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16353 NPHY_RFSEQ_CMD_SET_HPF_BW
16355 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
16356 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16357 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16358 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16359 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16360 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16361 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16362 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16363 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16364 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16365 s8 *lna1_gain_db = NULL;
16366 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16367 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16368 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16369 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16370 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16371 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16372 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16373 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16374 s8 *lna2_gain_db = NULL;
16375 s8 tiaG_gain_db[] = {
16376 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
16377 s8 tiaA_gain_db[] = {
16378 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
16379 s8 tiaA_gain_db_rev4[] = {
16380 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16381 s8 tiaA_gain_db_rev5[] = {
16382 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16383 s8 tiaA_gain_db_rev6[] = {
16384 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16385 s8 *tia_gain_db;
16386 s8 tiaG_gainbits[] = {
16387 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16388 s8 tiaA_gainbits[] = {
16389 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
16390 s8 tiaA_gainbits_rev4[] = {
16391 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16392 s8 tiaA_gainbits_rev5[] = {
16393 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16394 s8 tiaA_gainbits_rev6[] = {
16395 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16396 s8 *tia_gainbits;
16397 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16398 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
16399 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16400 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16401 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16402 u16 rfseqG_init_gain_rev5_elna[] = {
16403 0x013f, 0x013f, 0x013f, 0x013f };
16404 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16405 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16406 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16407 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16408 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16409 u16 rfseqA_init_gain_rev4_elna[] = {
16410 0x314f, 0x314f, 0x314f, 0x314f };
16411 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16412 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16413 u16 *rfseq_init_gain;
16414 u16 initG_gaincode = 0x627e;
16415 u16 initG_gaincode_rev4 = 0x527e;
16416 u16 initG_gaincode_rev5 = 0x427e;
16417 u16 initG_gaincode_rev5_elna = 0x027e;
16418 u16 initG_gaincode_rev6 = 0x527e;
16419 u16 initG_gaincode_rev6_224B0 = 0x427e;
16420 u16 initG_gaincode_rev6_elna = 0x127e;
16421 u16 initA_gaincode = 0x52de;
16422 u16 initA_gaincode_rev4 = 0x629e;
16423 u16 initA_gaincode_rev4_elna = 0x329e;
16424 u16 initA_gaincode_rev5 = 0x729e;
16425 u16 initA_gaincode_rev6 = 0x729e;
16426 u16 init_gaincode;
16427 u16 clip1hiG_gaincode = 0x107e;
16428 u16 clip1hiG_gaincode_rev4 = 0x007e;
16429 u16 clip1hiG_gaincode_rev5 = 0x1076;
16430 u16 clip1hiG_gaincode_rev6 = 0x007e;
16431 u16 clip1hiA_gaincode = 0x00de;
16432 u16 clip1hiA_gaincode_rev4 = 0x029e;
16433 u16 clip1hiA_gaincode_rev5 = 0x029e;
16434 u16 clip1hiA_gaincode_rev6 = 0x029e;
16435 u16 clip1hi_gaincode;
16436 u16 clip1mdG_gaincode = 0x0066;
16437 u16 clip1mdA_gaincode = 0x00ca;
16438 u16 clip1mdA_gaincode_rev4 = 0x1084;
16439 u16 clip1mdA_gaincode_rev5 = 0x2084;
16440 u16 clip1mdA_gaincode_rev6 = 0x2084;
16441 u16 clip1md_gaincode = 0;
16442 u16 clip1loG_gaincode = 0x0074;
16443 u16 clip1loG_gaincode_rev5[] = {
16444 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16446 u16 clip1loG_gaincode_rev6[] = {
16447 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16449 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16450 u16 clip1loA_gaincode = 0x00cc;
16451 u16 clip1loA_gaincode_rev4 = 0x0086;
16452 u16 clip1loA_gaincode_rev5 = 0x2086;
16453 u16 clip1loA_gaincode_rev6 = 0x2086;
16454 u16 clip1lo_gaincode;
16455 u8 crsminG_th = 0x18;
16456 u8 crsminG_th_rev5 = 0x18;
16457 u8 crsminG_th_rev6 = 0x18;
16458 u8 crsminA_th = 0x1e;
16459 u8 crsminA_th_rev4 = 0x24;
16460 u8 crsminA_th_rev5 = 0x24;
16461 u8 crsminA_th_rev6 = 0x24;
16462 u8 crsmin_th;
16463 u8 crsminlG_th = 0x18;
16464 u8 crsminlG_th_rev5 = 0x18;
16465 u8 crsminlG_th_rev6 = 0x18;
16466 u8 crsminlA_th = 0x1e;
16467 u8 crsminlA_th_rev4 = 0x24;
16468 u8 crsminlA_th_rev5 = 0x24;
16469 u8 crsminlA_th_rev6 = 0x24;
16470 u8 crsminl_th = 0;
16471 u8 crsminuG_th = 0x18;
16472 u8 crsminuG_th_rev5 = 0x18;
16473 u8 crsminuG_th_rev6 = 0x18;
16474 u8 crsminuA_th = 0x1e;
16475 u8 crsminuA_th_rev4 = 0x24;
16476 u8 crsminuA_th_rev5 = 0x24;
16477 u8 crsminuA_th_rev6 = 0x24;
16478 u8 crsminuA_th_rev6_224B0 = 0x2d;
16479 u8 crsminu_th;
16480 u16 nbclipG_th = 0x20d;
16481 u16 nbclipG_th_rev4 = 0x1a1;
16482 u16 nbclipG_th_rev5 = 0x1d0;
16483 u16 nbclipG_th_rev6 = 0x1d0;
16484 u16 nbclipA_th = 0x1a1;
16485 u16 nbclipA_th_rev4 = 0x107;
16486 u16 nbclipA_th_rev5 = 0x0a9;
16487 u16 nbclipA_th_rev6 = 0x0f0;
16488 u16 nbclip_th = 0;
16489 u8 w1clipG_th = 5;
16490 u8 w1clipG_th_rev5 = 9;
16491 u8 w1clipG_th_rev6 = 5;
16492 u8 w1clipA_th = 25, w1clip_th;
16493 u8 rssi_gain_default = 0x50;
16494 u8 rssiG_gain_rev6_224B0 = 0x50;
16495 u8 rssiA_gain_rev5 = 0x90;
16496 u8 rssiA_gain_rev6 = 0x90;
16497 u8 rssi_gain;
16498 u16 regval[21];
16499 u8 triso;
16501 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16502 pi->srom_fem2g.triso;
16504 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16505 if (pi->pubpi.radiorev == 5) {
16506 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16507 } else if (pi->pubpi.radiorev == 7) {
16508 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16510 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16511 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16513 } else if ((pi->pubpi.radiorev == 3)
16514 || (pi->pubpi.radiorev == 8)) {
16515 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16517 if (pi->pubpi.radiorev == 8) {
16518 mod_phy_reg(pi, 0x283,
16519 (0xff << 0), (0x44 << 0));
16520 mod_phy_reg(pi, 0x280,
16521 (0xff << 0), (0x44 << 0));
16523 } else {
16524 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16526 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16528 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16530 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16531 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16533 currband =
16534 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16535 if (currband == 0) {
16536 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16537 if (pi->pubpi.radiorev == 11) {
16538 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16539 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16540 rfseq_init_gain =
16541 rfseqG_init_gain_rev6_224B0;
16542 init_gaincode =
16543 initG_gaincode_rev6_224B0;
16544 clip1hi_gaincode =
16545 clip1hiG_gaincode_rev6;
16546 clip1lo_gaincode =
16547 clip1loG_gaincode_rev6_224B0;
16548 nbclip_th = nbclipG_th_rev6;
16549 w1clip_th = w1clipG_th_rev6;
16550 crsmin_th = crsminG_th_rev6;
16551 crsminl_th = crsminlG_th_rev6;
16552 crsminu_th = crsminuG_th_rev6;
16553 rssi_gain = rssiG_gain_rev6_224B0;
16554 } else {
16555 lna1_gain_db = lna1G_gain_db_rev6;
16556 lna2_gain_db = lna2G_gain_db_rev6;
16557 if (pi->sh->boardflags & BFL_EXTLNA) {
16559 rfseq_init_gain =
16560 rfseqG_init_gain_rev6_elna;
16561 init_gaincode =
16562 initG_gaincode_rev6_elna;
16563 } else {
16564 rfseq_init_gain =
16565 rfseqG_init_gain_rev6;
16566 init_gaincode =
16567 initG_gaincode_rev6;
16569 clip1hi_gaincode =
16570 clip1hiG_gaincode_rev6;
16571 switch (triso) {
16572 case 0:
16573 clip1lo_gaincode =
16574 clip1loG_gaincode_rev6
16575 [0];
16576 break;
16577 case 1:
16578 clip1lo_gaincode =
16579 clip1loG_gaincode_rev6
16580 [1];
16581 break;
16582 case 2:
16583 clip1lo_gaincode =
16584 clip1loG_gaincode_rev6
16585 [2];
16586 break;
16587 case 3:
16588 default:
16590 clip1lo_gaincode =
16591 clip1loG_gaincode_rev6
16592 [3];
16593 break;
16594 case 4:
16595 clip1lo_gaincode =
16596 clip1loG_gaincode_rev6
16597 [4];
16598 break;
16599 case 5:
16600 clip1lo_gaincode =
16601 clip1loG_gaincode_rev6
16602 [5];
16603 break;
16604 case 6:
16605 clip1lo_gaincode =
16606 clip1loG_gaincode_rev6
16607 [6];
16608 break;
16609 case 7:
16610 clip1lo_gaincode =
16611 clip1loG_gaincode_rev6
16612 [7];
16613 break;
16615 nbclip_th = nbclipG_th_rev6;
16616 w1clip_th = w1clipG_th_rev6;
16617 crsmin_th = crsminG_th_rev6;
16618 crsminl_th = crsminlG_th_rev6;
16619 crsminu_th = crsminuG_th_rev6;
16620 rssi_gain = rssi_gain_default;
16622 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16623 lna1_gain_db = lna1G_gain_db_rev5;
16624 lna2_gain_db = lna2G_gain_db_rev5;
16625 if (pi->sh->boardflags & BFL_EXTLNA) {
16627 rfseq_init_gain =
16628 rfseqG_init_gain_rev5_elna;
16629 init_gaincode =
16630 initG_gaincode_rev5_elna;
16631 } else {
16632 rfseq_init_gain = rfseqG_init_gain_rev5;
16633 init_gaincode = initG_gaincode_rev5;
16635 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16636 switch (triso) {
16637 case 0:
16638 clip1lo_gaincode =
16639 clip1loG_gaincode_rev5[0];
16640 break;
16641 case 1:
16642 clip1lo_gaincode =
16643 clip1loG_gaincode_rev5[1];
16644 break;
16645 case 2:
16646 clip1lo_gaincode =
16647 clip1loG_gaincode_rev5[2];
16648 break;
16649 case 3:
16651 clip1lo_gaincode =
16652 clip1loG_gaincode_rev5[3];
16653 break;
16654 case 4:
16655 clip1lo_gaincode =
16656 clip1loG_gaincode_rev5[4];
16657 break;
16658 case 5:
16659 clip1lo_gaincode =
16660 clip1loG_gaincode_rev5[5];
16661 break;
16662 case 6:
16663 clip1lo_gaincode =
16664 clip1loG_gaincode_rev5[6];
16665 break;
16666 case 7:
16667 clip1lo_gaincode =
16668 clip1loG_gaincode_rev5[7];
16669 break;
16670 default:
16671 clip1lo_gaincode =
16672 clip1loG_gaincode_rev5[3];
16673 break;
16675 nbclip_th = nbclipG_th_rev5;
16676 w1clip_th = w1clipG_th_rev5;
16677 crsmin_th = crsminG_th_rev5;
16678 crsminl_th = crsminlG_th_rev5;
16679 crsminu_th = crsminuG_th_rev5;
16680 rssi_gain = rssi_gain_default;
16681 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16682 lna1_gain_db = lna1G_gain_db_rev4;
16683 lna2_gain_db = lna2G_gain_db;
16684 rfseq_init_gain = rfseqG_init_gain_rev4;
16685 init_gaincode = initG_gaincode_rev4;
16686 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16687 clip1lo_gaincode = clip1loG_gaincode;
16688 nbclip_th = nbclipG_th_rev4;
16689 w1clip_th = w1clipG_th;
16690 crsmin_th = crsminG_th;
16691 crsminl_th = crsminlG_th;
16692 crsminu_th = crsminuG_th;
16693 rssi_gain = rssi_gain_default;
16694 } else {
16695 lna1_gain_db = lna1G_gain_db;
16696 lna2_gain_db = lna2G_gain_db;
16697 rfseq_init_gain = rfseqG_init_gain;
16698 init_gaincode = initG_gaincode;
16699 clip1hi_gaincode = clip1hiG_gaincode;
16700 clip1lo_gaincode = clip1loG_gaincode;
16701 nbclip_th = nbclipG_th;
16702 w1clip_th = w1clipG_th;
16703 crsmin_th = crsminG_th;
16704 crsminl_th = crsminlG_th;
16705 crsminu_th = crsminuG_th;
16706 rssi_gain = rssi_gain_default;
16708 tia_gain_db = tiaG_gain_db;
16709 tia_gainbits = tiaG_gainbits;
16710 clip1md_gaincode = clip1mdG_gaincode;
16711 } else {
16712 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16713 lna1_gain_db = lna1A_gain_db_rev6;
16714 lna2_gain_db = lna2A_gain_db_rev6;
16715 tia_gain_db = tiaA_gain_db_rev6;
16716 tia_gainbits = tiaA_gainbits_rev6;
16717 rfseq_init_gain = rfseqA_init_gain_rev6;
16718 init_gaincode = initA_gaincode_rev6;
16719 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16720 clip1md_gaincode = clip1mdA_gaincode_rev6;
16721 clip1lo_gaincode = clip1loA_gaincode_rev6;
16722 crsmin_th = crsminA_th_rev6;
16723 crsminl_th = crsminlA_th_rev6;
16724 if ((pi->pubpi.radiorev == 11) &&
16725 (CHSPEC_IS40(pi->radio_chanspec) == 0))
16726 crsminu_th = crsminuA_th_rev6_224B0;
16727 else
16728 crsminu_th = crsminuA_th_rev6;
16730 nbclip_th = nbclipA_th_rev6;
16731 rssi_gain = rssiA_gain_rev6;
16732 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16733 lna1_gain_db = lna1A_gain_db_rev5;
16734 lna2_gain_db = lna2A_gain_db_rev5;
16735 tia_gain_db = tiaA_gain_db_rev5;
16736 tia_gainbits = tiaA_gainbits_rev5;
16737 rfseq_init_gain = rfseqA_init_gain_rev5;
16738 init_gaincode = initA_gaincode_rev5;
16739 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16740 clip1md_gaincode = clip1mdA_gaincode_rev5;
16741 clip1lo_gaincode = clip1loA_gaincode_rev5;
16742 crsmin_th = crsminA_th_rev5;
16743 crsminl_th = crsminlA_th_rev5;
16744 crsminu_th = crsminuA_th_rev5;
16745 nbclip_th = nbclipA_th_rev5;
16746 rssi_gain = rssiA_gain_rev5;
16747 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16748 lna1_gain_db = lna1A_gain_db_rev4;
16749 lna2_gain_db = lna2A_gain_db_rev4;
16750 tia_gain_db = tiaA_gain_db_rev4;
16751 tia_gainbits = tiaA_gainbits_rev4;
16752 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16754 rfseq_init_gain =
16755 rfseqA_init_gain_rev4_elna;
16756 init_gaincode =
16757 initA_gaincode_rev4_elna;
16758 } else {
16759 rfseq_init_gain = rfseqA_init_gain_rev4;
16760 init_gaincode = initA_gaincode_rev4;
16762 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16763 clip1md_gaincode = clip1mdA_gaincode_rev4;
16764 clip1lo_gaincode = clip1loA_gaincode_rev4;
16765 crsmin_th = crsminA_th_rev4;
16766 crsminl_th = crsminlA_th_rev4;
16767 crsminu_th = crsminuA_th_rev4;
16768 nbclip_th = nbclipA_th_rev4;
16769 rssi_gain = rssi_gain_default;
16770 } else {
16771 lna1_gain_db = lna1A_gain_db;
16772 lna2_gain_db = lna2A_gain_db;
16773 tia_gain_db = tiaA_gain_db;
16774 tia_gainbits = tiaA_gainbits;
16775 rfseq_init_gain = rfseqA_init_gain;
16776 init_gaincode = initA_gaincode;
16777 clip1hi_gaincode = clip1hiA_gaincode;
16778 clip1md_gaincode = clip1mdA_gaincode;
16779 clip1lo_gaincode = clip1loA_gaincode;
16780 crsmin_th = crsminA_th;
16781 crsminl_th = crsminlA_th;
16782 crsminu_th = crsminuA_th;
16783 nbclip_th = nbclipA_th;
16784 rssi_gain = rssi_gain_default;
16786 w1clip_th = w1clipA_th;
16789 write_radio_reg(pi,
16790 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16791 RADIO_2056_RX0), 0x17);
16792 write_radio_reg(pi,
16793 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16794 RADIO_2056_RX1), 0x17);
16796 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16797 0xf0);
16798 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16799 0xf0);
16801 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16802 0x0);
16803 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16804 0x0);
16806 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16807 rssi_gain);
16808 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16809 rssi_gain);
16811 write_radio_reg(pi,
16812 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16813 RADIO_2056_RX0), 0x17);
16814 write_radio_reg(pi,
16815 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16816 RADIO_2056_RX1), 0x17);
16818 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16819 0xFF);
16820 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16821 0xFF);
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16824 8, lna1_gain_db);
16825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16826 8, lna1_gain_db);
16828 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16829 8, lna2_gain_db);
16830 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16831 8, lna2_gain_db);
16833 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16834 8, tia_gain_db);
16835 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16836 8, tia_gain_db);
16838 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16839 8, tia_gainbits);
16840 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16841 8, tia_gainbits);
16843 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16844 8, &lpf_gain_db);
16845 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16846 8, &lpf_gain_db);
16847 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16848 8, &lpf_gainbits);
16849 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16850 8, &lpf_gainbits);
16852 write_phy_reg(pi, 0x20, init_gaincode);
16853 write_phy_reg(pi, 0x2a7, init_gaincode);
16855 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16856 pi->pubpi.phy_corenum, 0x106, 16,
16857 rfseq_init_gain);
16859 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16860 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16862 write_phy_reg(pi, 0x24, clip1md_gaincode);
16863 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16865 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16866 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16868 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16869 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16870 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16872 write_phy_reg(pi, 0x2b, nbclip_th);
16873 write_phy_reg(pi, 0x41, nbclip_th);
16875 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16876 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16878 write_phy_reg(pi, 0x150, 0x809c);
16880 } else {
16882 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16883 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16885 write_phy_reg(pi, 0x2b, 0x84);
16886 write_phy_reg(pi, 0x41, 0x84);
16888 if (CHSPEC_IS20(pi->radio_chanspec)) {
16889 write_phy_reg(pi, 0x6b, 0x2b);
16890 write_phy_reg(pi, 0x6c, 0x2b);
16891 write_phy_reg(pi, 0x6d, 0x9);
16892 write_phy_reg(pi, 0x6e, 0x9);
16895 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16896 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16897 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16899 if (CHSPEC_IS20(pi->radio_chanspec)) {
16900 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16901 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16903 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16904 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16907 write_phy_reg(pi, 0x150, 0x809c);
16909 if (pi->nphy_gain_boost)
16910 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16911 (CHSPEC_IS40(pi->radio_chanspec)))
16912 hpf_code = 4;
16913 else
16914 hpf_code = 5;
16915 else if (CHSPEC_IS40(pi->radio_chanspec))
16916 hpf_code = 6;
16917 else
16918 hpf_code = 7;
16920 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16921 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16923 for (ctr = 0; ctr < 4; ctr++)
16924 regval[ctr] = (hpf_code << 8) | 0x7c;
16925 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16927 wlc_phy_adjust_lnagaintbl_nphy(pi);
16929 if (pi->nphy_elna_gain_config) {
16930 regval[0] = 0;
16931 regval[1] = 1;
16932 regval[2] = 1;
16933 regval[3] = 1;
16934 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16935 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16937 for (ctr = 0; ctr < 4; ctr++)
16938 regval[ctr] = (hpf_code << 8) | 0x74;
16939 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16942 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16943 for (ctr = 0; ctr < 21; ctr++)
16944 regval[ctr] = 3 * ctr;
16945 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16946 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16948 for (ctr = 0; ctr < 21; ctr++)
16949 regval[ctr] = (u16) ctr;
16950 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16951 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16954 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16955 rfseq_updategainu_events,
16956 rfseq_updategainu_dlys,
16957 sizeof(rfseq_updategainu_events) /
16958 sizeof(rfseq_updategainu_events[0]));
16960 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16962 if (CHSPEC_IS2G(pi->radio_chanspec))
16963 mod_phy_reg(pi,
16964 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16965 0x7f, 0x4);
16969 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
16971 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
16972 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
16973 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16974 s8 tia_gainbits[] = {
16975 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16977 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16978 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16980 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16982 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16983 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16985 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16986 lna1_gain_db);
16987 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16988 lna1_gain_db);
16990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16991 lna2_gain_db);
16992 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16993 lna2_gain_db);
16995 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16996 tia_gain_db);
16997 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
16998 tia_gain_db);
17000 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17001 tia_gainbits);
17002 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17003 tia_gainbits);
17005 write_phy_reg(pi, 0x37, 0x74);
17006 write_phy_reg(pi, 0x2ad, 0x74);
17007 write_phy_reg(pi, 0x38, 0x18);
17008 write_phy_reg(pi, 0x2ae, 0x18);
17010 write_phy_reg(pi, 0x2b, 0xe8);
17011 write_phy_reg(pi, 0x41, 0xe8);
17013 if (CHSPEC_IS20(pi->radio_chanspec)) {
17015 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17016 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17017 } else {
17019 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17020 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17024 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
17026 u16 currband;
17027 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17028 s8 *lna1_gain_db = NULL;
17029 s8 *lna1_gain_db_2 = NULL;
17030 s8 *lna2_gain_db = NULL;
17031 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17032 s8 *tia_gain_db;
17033 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17034 s8 *tia_gainbits;
17035 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17036 u16 *rfseq_init_gain;
17037 u16 init_gaincode;
17038 u16 clip1hi_gaincode;
17039 u16 clip1md_gaincode = 0;
17040 u16 clip1md_gaincode_B;
17041 u16 clip1lo_gaincode;
17042 u16 clip1lo_gaincode_B;
17043 u8 crsminl_th = 0;
17044 u8 crsminu_th;
17045 u16 nbclip_th = 0;
17046 u8 w1clip_th;
17047 u16 freq;
17048 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
17049 u8 chg_nbclip_th = 0;
17051 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17052 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17054 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17055 if (currband == 0) {
17057 lna1_gain_db = lna1G_gain_db_rev7;
17059 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17060 lna1_gain_db);
17061 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17062 lna1_gain_db);
17064 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17066 if (CHSPEC_IS40(pi->radio_chanspec)) {
17067 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17068 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17071 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17073 if (CHSPEC_IS20(pi->radio_chanspec)) {
17074 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17075 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17077 } else {
17079 init_gaincode = 0x9e;
17080 clip1hi_gaincode = 0x9e;
17081 clip1md_gaincode_B = 0x24;
17082 clip1lo_gaincode = 0x8a;
17083 clip1lo_gaincode_B = 8;
17084 rfseq_init_gain = rfseqA_init_gain_rev7;
17086 tia_gain_db = tiaA_gain_db_rev7;
17087 tia_gainbits = tiaA_gainbits_rev7;
17089 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17090 if (CHSPEC_IS20(pi->radio_chanspec)) {
17092 w1clip_th = 25;
17093 clip1md_gaincode = 0x82;
17095 if ((freq <= 5080) || (freq == 5825)) {
17097 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
17098 s8 lna1A_gain_db_2_rev7[] = {
17099 11, 17, 22, 25};
17100 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17102 crsminu_th = 0x3e;
17103 lna1_gain_db = lna1A_gain_db_rev7;
17104 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17105 lna2_gain_db = lna2A_gain_db_rev7;
17106 } else if ((freq >= 5500) && (freq <= 5700)) {
17108 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
17109 s8 lna1A_gain_db_2_rev7[] = {
17110 12, 18, 22, 26};
17111 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
17113 crsminu_th = 0x45;
17114 clip1md_gaincode_B = 0x14;
17115 nbclip_th = 0xff;
17116 chg_nbclip_th = 1;
17117 lna1_gain_db = lna1A_gain_db_rev7;
17118 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17119 lna2_gain_db = lna2A_gain_db_rev7;
17120 } else {
17122 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17123 s8 lna1A_gain_db_2_rev7[] = {
17124 12, 18, 22, 26};
17125 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17127 crsminu_th = 0x41;
17128 lna1_gain_db = lna1A_gain_db_rev7;
17129 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17130 lna2_gain_db = lna2A_gain_db_rev7;
17133 if (freq <= 4920) {
17134 nvar_baseline_offset0 = 5;
17135 nvar_baseline_offset1 = 5;
17136 } else if ((freq > 4920) && (freq <= 5320)) {
17137 nvar_baseline_offset0 = 3;
17138 nvar_baseline_offset1 = 5;
17139 } else if ((freq > 5320) && (freq <= 5700)) {
17140 nvar_baseline_offset0 = 3;
17141 nvar_baseline_offset1 = 2;
17142 } else {
17143 nvar_baseline_offset0 = 4;
17144 nvar_baseline_offset1 = 0;
17146 } else {
17148 crsminu_th = 0x3a;
17149 crsminl_th = 0x3a;
17150 w1clip_th = 20;
17152 if ((freq >= 4920) && (freq <= 5320)) {
17153 nvar_baseline_offset0 = 4;
17154 nvar_baseline_offset1 = 5;
17155 } else if ((freq > 5320) && (freq <= 5550)) {
17156 nvar_baseline_offset0 = 4;
17157 nvar_baseline_offset1 = 2;
17158 } else {
17159 nvar_baseline_offset0 = 5;
17160 nvar_baseline_offset1 = 3;
17164 write_phy_reg(pi, 0x20, init_gaincode);
17165 write_phy_reg(pi, 0x2a7, init_gaincode);
17167 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17168 pi->pubpi.phy_corenum, 0x106, 16,
17169 rfseq_init_gain);
17171 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17172 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17174 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17175 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17177 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17178 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17179 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17180 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17182 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17183 tia_gain_db);
17184 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17185 tia_gain_db);
17187 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17188 tia_gainbits);
17189 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17190 tia_gainbits);
17192 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17194 if (chg_nbclip_th == 1) {
17195 write_phy_reg(pi, 0x2b, nbclip_th);
17196 write_phy_reg(pi, 0x41, nbclip_th);
17199 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17200 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17202 mod_phy_reg(pi, 0x2e4,
17203 (0x3f << 0), (nvar_baseline_offset0 << 0));
17205 mod_phy_reg(pi, 0x2e4,
17206 (0x3f << 6), (nvar_baseline_offset1 << 6));
17208 if (CHSPEC_IS20(pi->radio_chanspec)) {
17210 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17211 lna1_gain_db);
17212 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17213 lna1_gain_db_2);
17215 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17216 8, lna2_gain_db);
17217 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17218 8, lna2_gain_db);
17220 write_phy_reg(pi, 0x24, clip1md_gaincode);
17221 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17222 } else {
17223 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17228 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
17230 uint core;
17231 int ctr;
17232 s16 gain_delta[2];
17233 u8 curr_channel;
17234 u16 minmax_gain[2];
17235 u16 regval[4];
17237 if (pi->phyhang_avoid)
17238 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17240 if (pi->nphy_gain_boost) {
17241 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17243 gain_delta[0] = 6;
17244 gain_delta[1] = 6;
17245 } else {
17247 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17248 gain_delta[0] =
17249 (s16)
17250 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17251 curr_channel) +
17252 nphy_lnagain_est0[1]), 13);
17253 gain_delta[1] =
17254 (s16)
17255 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17256 curr_channel) +
17257 nphy_lnagain_est1[1]), 13);
17259 } else {
17261 gain_delta[0] = 0;
17262 gain_delta[1] = 0;
17265 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17266 if (pi->nphy_elna_gain_config) {
17268 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17269 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17270 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17271 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17272 } else {
17273 for (ctr = 0; ctr < 4; ctr++)
17274 regval[ctr] =
17275 nphy_def_lnagains[ctr] +
17276 gain_delta[core];
17278 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17280 minmax_gain[core] =
17281 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
17284 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17285 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17287 if (pi->phyhang_avoid)
17288 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17291 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
17293 if (on) {
17294 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17295 if (!pi->radio_is_on) {
17296 wlc_phy_radio_preinit_205x(pi);
17297 wlc_phy_radio_init_2057(pi);
17298 wlc_phy_radio_postinit_2057(pi);
17301 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
17302 pi->radio_chanspec);
17303 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17304 wlc_phy_radio_preinit_205x(pi);
17305 wlc_phy_radio_init_2056(pi);
17306 wlc_phy_radio_postinit_2056(pi);
17308 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
17309 pi->radio_chanspec);
17310 } else {
17311 wlc_phy_radio_preinit_2055(pi);
17312 wlc_phy_radio_init_2055(pi);
17313 wlc_phy_radio_postinit_2055(pi);
17316 pi->radio_is_on = true;
17318 } else {
17320 if (NREV_GE(pi->pubpi.phy_rev, 3)
17321 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17322 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17323 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17325 write_radio_reg(pi,
17326 RADIO_2056_TX_PADA_BOOST_TUNE |
17327 RADIO_2056_TX0, 0);
17328 write_radio_reg(pi,
17329 RADIO_2056_TX_PADG_BOOST_TUNE |
17330 RADIO_2056_TX0, 0);
17331 write_radio_reg(pi,
17332 RADIO_2056_TX_PGAA_BOOST_TUNE |
17333 RADIO_2056_TX0, 0);
17334 write_radio_reg(pi,
17335 RADIO_2056_TX_PGAG_BOOST_TUNE |
17336 RADIO_2056_TX0, 0);
17337 mod_radio_reg(pi,
17338 RADIO_2056_TX_MIXA_BOOST_TUNE |
17339 RADIO_2056_TX0, 0xf0, 0);
17340 write_radio_reg(pi,
17341 RADIO_2056_TX_MIXG_BOOST_TUNE |
17342 RADIO_2056_TX0, 0);
17344 write_radio_reg(pi,
17345 RADIO_2056_TX_PADA_BOOST_TUNE |
17346 RADIO_2056_TX1, 0);
17347 write_radio_reg(pi,
17348 RADIO_2056_TX_PADG_BOOST_TUNE |
17349 RADIO_2056_TX1, 0);
17350 write_radio_reg(pi,
17351 RADIO_2056_TX_PGAA_BOOST_TUNE |
17352 RADIO_2056_TX1, 0);
17353 write_radio_reg(pi,
17354 RADIO_2056_TX_PGAG_BOOST_TUNE |
17355 RADIO_2056_TX1, 0);
17356 mod_radio_reg(pi,
17357 RADIO_2056_TX_MIXA_BOOST_TUNE |
17358 RADIO_2056_TX1, 0xf0, 0);
17359 write_radio_reg(pi,
17360 RADIO_2056_TX_MIXG_BOOST_TUNE |
17361 RADIO_2056_TX1, 0);
17363 pi->radio_is_on = false;
17366 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17367 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17368 pi->radio_is_on = false;
17374 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
17377 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17378 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17380 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17383 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
17385 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17388 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
17391 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17392 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17394 if (((pi->sh->sromrev >= 4)
17395 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17396 || ((pi->sh->sromrev < 4))) {
17397 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17398 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17401 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17402 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17404 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17405 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17407 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17409 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17411 udelay(1000);
17413 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17415 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17416 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17418 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17419 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
17420 "HW error: radio calibration1\n"))
17421 return;
17423 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17424 ~(RADIO_2055_CAL_LPO_ENABLE));
17426 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
17428 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17429 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17431 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17432 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17434 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17435 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17436 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17437 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17438 if (pi->nphy_gain_boost) {
17439 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17440 ~(RADIO_2055_GAINBST_DISABLE));
17441 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17442 ~(RADIO_2055_GAINBST_DISABLE));
17443 } else {
17444 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17445 RADIO_2055_GAINBST_DISABLE);
17446 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17447 RADIO_2055_GAINBST_DISABLE);
17450 udelay(2);
17453 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
17456 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17457 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17459 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17460 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17464 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
17466 struct radio_regs *regs_SYN_2056_ptr = NULL;
17467 struct radio_regs *regs_TX_2056_ptr = NULL;
17468 struct radio_regs *regs_RX_2056_ptr = NULL;
17470 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17471 regs_SYN_2056_ptr = regs_SYN_2056;
17472 regs_TX_2056_ptr = regs_TX_2056;
17473 regs_RX_2056_ptr = regs_RX_2056;
17474 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17475 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17476 regs_TX_2056_ptr = regs_TX_2056_A1;
17477 regs_RX_2056_ptr = regs_RX_2056_A1;
17478 } else {
17479 switch (pi->pubpi.radiorev) {
17480 case 5:
17481 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17482 regs_TX_2056_ptr = regs_TX_2056_rev5;
17483 regs_RX_2056_ptr = regs_RX_2056_rev5;
17484 break;
17486 case 6:
17487 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17488 regs_TX_2056_ptr = regs_TX_2056_rev6;
17489 regs_RX_2056_ptr = regs_RX_2056_rev6;
17490 break;
17492 case 7:
17493 case 9:
17494 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17495 regs_TX_2056_ptr = regs_TX_2056_rev7;
17496 regs_RX_2056_ptr = regs_RX_2056_rev7;
17497 break;
17499 case 8:
17500 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17501 regs_TX_2056_ptr = regs_TX_2056_rev8;
17502 regs_RX_2056_ptr = regs_RX_2056_rev8;
17503 break;
17505 case 11:
17506 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17507 regs_TX_2056_ptr = regs_TX_2056_rev11;
17508 regs_RX_2056_ptr = regs_RX_2056_rev11;
17509 break;
17511 default:
17512 break;
17516 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
17518 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
17520 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
17522 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
17524 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
17527 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
17529 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17531 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17532 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
17533 udelay(1000);
17534 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17536 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17537 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
17538 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17539 else
17540 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17542 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17544 if (pi->phy_init_por)
17545 wlc_phy_radio205x_rcal(pi);
17548 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
17550 struct radio_20xx_regs *regs_2057_ptr = NULL;
17552 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17553 regs_2057_ptr = regs_2057_rev4;
17554 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17555 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17556 switch (pi->pubpi.radiorev) {
17557 case 5:
17559 if (pi->pubpi.radiover == 0x0)
17560 regs_2057_ptr = regs_2057_rev5;
17561 else if (pi->pubpi.radiover == 0x1)
17562 regs_2057_ptr = regs_2057_rev5v1;
17563 else
17564 break;
17566 case 7:
17568 regs_2057_ptr = regs_2057_rev7;
17569 break;
17571 case 8:
17573 regs_2057_ptr = regs_2057_rev8;
17574 break;
17576 default:
17577 break;
17581 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17584 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
17587 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17589 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17590 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
17591 mdelay(2);
17592 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17593 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17595 if (pi->phy_init_por) {
17596 wlc_phy_radio205x_rcal(pi);
17597 wlc_phy_radio2057_rccal(pi);
17600 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17603 static bool
17604 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
17605 struct chan_info_nphy_radio2057 **t0,
17606 struct chan_info_nphy_radio205x **t1,
17607 struct chan_info_nphy_radio2057_rev5 **t2,
17608 struct chan_info_nphy_2055 **t3)
17610 uint i;
17611 struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
17612 struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
17613 struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
17614 u32 tbl_len = 0;
17616 int freq = 0;
17618 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17620 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17622 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
17623 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
17625 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17626 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17627 switch (pi->pubpi.radiorev) {
17629 case 5:
17631 if (pi->pubpi.radiover == 0x0) {
17633 chan_info_tbl_p_2 =
17634 chan_info_nphyrev8_2057_rev5;
17635 tbl_len = ARRAY_SIZE(
17636 chan_info_nphyrev8_2057_rev5);
17638 } else if (pi->pubpi.radiover == 0x1) {
17640 chan_info_tbl_p_2 =
17641 chan_info_nphyrev9_2057_rev5v1;
17642 tbl_len = ARRAY_SIZE(
17643 chan_info_nphyrev9_2057_rev5v1);
17646 break;
17648 case 7:
17649 chan_info_tbl_p_0 =
17650 chan_info_nphyrev8_2057_rev7;
17651 tbl_len = ARRAY_SIZE(
17652 chan_info_nphyrev8_2057_rev7);
17653 break;
17655 case 8:
17656 chan_info_tbl_p_0 =
17657 chan_info_nphyrev8_2057_rev8;
17658 tbl_len = ARRAY_SIZE(
17659 chan_info_nphyrev8_2057_rev8);
17660 break;
17662 default:
17663 if (NORADIO_ENAB(pi->pubpi))
17664 goto fail;
17666 break;
17668 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17670 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
17671 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
17672 } else {
17673 goto fail;
17676 for (i = 0; i < tbl_len; i++) {
17677 if (pi->pubpi.radiorev == 5) {
17679 if (chan_info_tbl_p_2[i].chan == channel)
17680 break;
17681 } else {
17683 if (chan_info_tbl_p_0[i].chan == channel)
17684 break;
17688 if (i >= tbl_len)
17689 goto fail;
17691 if (pi->pubpi.radiorev == 5) {
17692 *t2 = &chan_info_tbl_p_2[i];
17693 freq = chan_info_tbl_p_2[i].freq;
17694 } else {
17695 *t0 = &chan_info_tbl_p_0[i];
17696 freq = chan_info_tbl_p_0[i].freq;
17699 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17700 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17701 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
17702 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
17703 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17704 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
17705 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
17706 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17707 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17708 switch (pi->pubpi.radiorev) {
17709 case 5:
17710 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
17711 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
17712 break;
17713 case 6:
17714 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
17715 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
17716 break;
17717 case 7:
17718 case 9:
17719 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17720 tbl_len =
17721 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
17722 break;
17723 case 8:
17724 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
17725 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
17726 break;
17727 case 11:
17728 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
17729 tbl_len = ARRAY_SIZE(
17730 chan_info_nphyrev6_2056v11);
17731 break;
17732 default:
17733 if (NORADIO_ENAB(pi->pubpi))
17734 goto fail;
17736 break;
17740 for (i = 0; i < tbl_len; i++) {
17741 if (chan_info_tbl_p_1[i].chan == channel)
17742 break;
17745 if (i >= tbl_len)
17746 goto fail;
17748 *t1 = &chan_info_tbl_p_1[i];
17749 freq = chan_info_tbl_p_1[i].freq;
17751 } else {
17752 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
17753 if (chan_info_nphy_2055[i].chan == channel)
17754 break;
17756 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
17757 goto fail;
17759 *t3 = &chan_info_nphy_2055[i];
17760 freq = chan_info_nphy_2055[i].freq;
17763 *f = freq;
17764 return true;
17766 fail:
17767 *f = WL_CHAN_FREQ_RANGE_2G;
17768 return false;
17771 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
17773 int freq;
17774 struct chan_info_nphy_radio2057 *t0 = NULL;
17775 struct chan_info_nphy_radio205x *t1 = NULL;
17776 struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
17777 struct chan_info_nphy_2055 *t3 = NULL;
17779 if (NORADIO_ENAB(pi->pubpi))
17780 return WL_CHAN_FREQ_RANGE_2G;
17782 if (channel == 0)
17783 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17785 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17787 if (CHSPEC_IS2G(pi->radio_chanspec))
17788 return WL_CHAN_FREQ_RANGE_2G;
17790 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
17791 return WL_CHAN_FREQ_RANGE_5GL;
17792 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
17793 return WL_CHAN_FREQ_RANGE_5GM;
17794 else
17795 return WL_CHAN_FREQ_RANGE_5GH;
17798 static void
17799 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
17800 struct chan_info_nphy_2055 *ci)
17803 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17804 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17805 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17806 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17808 BRCMS_PHY_WAR_PR51571(pi);
17810 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17811 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17812 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17813 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17815 BRCMS_PHY_WAR_PR51571(pi);
17817 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17818 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17819 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17820 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17822 BRCMS_PHY_WAR_PR51571(pi);
17824 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17825 ci->RF_core1_lgbuf_a_tune);
17826 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17827 ci->RF_core1_lgbuf_g_tune);
17828 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17829 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17830 ci->RF_core1_tx_pga_pad_tn);
17832 BRCMS_PHY_WAR_PR51571(pi);
17834 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17835 ci->RF_core1_tx_mx_bgtrim);
17836 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17837 ci->RF_core2_lgbuf_a_tune);
17838 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17839 ci->RF_core2_lgbuf_g_tune);
17840 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17842 BRCMS_PHY_WAR_PR51571(pi);
17844 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17845 ci->RF_core2_tx_pga_pad_tn);
17846 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17847 ci->RF_core2_tx_mx_bgtrim);
17849 udelay(50);
17851 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17852 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17854 BRCMS_PHY_WAR_PR51571(pi);
17856 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17858 udelay(300);
17861 static void
17862 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
17863 const struct chan_info_nphy_radio205x *ci)
17865 struct radio_regs *regs_SYN_2056_ptr = NULL;
17867 write_radio_reg(pi,
17868 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17869 ci->RF_SYN_pll_vcocal1);
17870 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17871 ci->RF_SYN_pll_vcocal2);
17872 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17873 ci->RF_SYN_pll_refdiv);
17874 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17875 ci->RF_SYN_pll_mmd2);
17876 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17877 ci->RF_SYN_pll_mmd1);
17878 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17879 ci->RF_SYN_pll_loopfilter1);
17880 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17881 ci->RF_SYN_pll_loopfilter2);
17882 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17883 ci->RF_SYN_pll_loopfilter3);
17884 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17885 ci->RF_SYN_pll_loopfilter4);
17886 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17887 ci->RF_SYN_pll_loopfilter5);
17888 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17889 ci->RF_SYN_reserved_addr27);
17890 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17891 ci->RF_SYN_reserved_addr28);
17892 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17893 ci->RF_SYN_reserved_addr29);
17894 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17895 ci->RF_SYN_logen_VCOBUF1);
17896 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17897 ci->RF_SYN_logen_MIXER2);
17898 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17899 ci->RF_SYN_logen_BUF3);
17900 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17901 ci->RF_SYN_logen_BUF4);
17903 write_radio_reg(pi,
17904 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17905 ci->RF_RX0_lnaa_tune);
17906 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17907 ci->RF_RX0_lnag_tune);
17908 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17909 ci->RF_TX0_intpaa_boost_tune);
17910 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17911 ci->RF_TX0_intpag_boost_tune);
17912 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17913 ci->RF_TX0_pada_boost_tune);
17914 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17915 ci->RF_TX0_padg_boost_tune);
17916 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17917 ci->RF_TX0_pgaa_boost_tune);
17918 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17919 ci->RF_TX0_pgag_boost_tune);
17920 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17921 ci->RF_TX0_mixa_boost_tune);
17922 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17923 ci->RF_TX0_mixg_boost_tune);
17925 write_radio_reg(pi,
17926 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17927 ci->RF_RX1_lnaa_tune);
17928 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17929 ci->RF_RX1_lnag_tune);
17930 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17931 ci->RF_TX1_intpaa_boost_tune);
17932 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17933 ci->RF_TX1_intpag_boost_tune);
17934 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17935 ci->RF_TX1_pada_boost_tune);
17936 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17937 ci->RF_TX1_padg_boost_tune);
17938 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17939 ci->RF_TX1_pgaa_boost_tune);
17940 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17941 ci->RF_TX1_pgag_boost_tune);
17942 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17943 ci->RF_TX1_mixa_boost_tune);
17944 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17945 ci->RF_TX1_mixg_boost_tune);
17947 if (NREV_IS(pi->pubpi.phy_rev, 3))
17948 regs_SYN_2056_ptr = regs_SYN_2056;
17949 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17950 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17951 else {
17952 switch (pi->pubpi.radiorev) {
17953 case 5:
17954 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17955 break;
17956 case 6:
17957 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17958 break;
17959 case 7:
17960 case 9:
17961 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17962 break;
17963 case 8:
17964 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17965 break;
17966 case 11:
17967 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17968 break;
17971 if (CHSPEC_IS2G(pi->radio_chanspec))
17972 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17973 RADIO_2056_SYN,
17974 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
17975 else
17976 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17977 RADIO_2056_SYN,
17978 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
17980 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
17981 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17982 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
17983 RADIO_2056_SYN, 0x1f);
17984 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
17985 RADIO_2056_SYN, 0x1f);
17987 write_radio_reg(pi,
17988 RADIO_2056_SYN_PLL_LOOPFILTER4 |
17989 RADIO_2056_SYN, 0xb);
17990 write_radio_reg(pi,
17991 RADIO_2056_SYN_PLL_CP2 |
17992 RADIO_2056_SYN, 0x14);
17996 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
17997 (CHSPEC_IS2G(pi->radio_chanspec))) {
17998 write_radio_reg(pi,
17999 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
18000 0x1f);
18001 write_radio_reg(pi,
18002 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
18003 0x1f);
18004 write_radio_reg(pi,
18005 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18006 0xb);
18007 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18008 0x20);
18011 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
18012 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18013 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18014 RADIO_2056_SYN, 0x1f);
18015 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18016 RADIO_2056_SYN, 0x1f);
18017 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
18018 RADIO_2056_SYN, 0x5);
18019 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18020 RADIO_2056_SYN, 0xc);
18024 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
18025 u16 pag_boost_tune;
18026 u16 padg_boost_tune;
18027 u16 pgag_boost_tune;
18028 u16 mixg_boost_tune;
18029 u16 bias, cascbias;
18030 uint core;
18032 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18034 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18036 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18037 PADG_IDAC, 0xcc);
18039 bias = 0x25;
18040 cascbias = 0x20;
18042 if ((pi->sh->chip ==
18043 BCM43224_CHIP_ID)
18044 || (pi->sh->chip ==
18045 BCM43225_CHIP_ID)) {
18046 if (pi->sh->chippkg ==
18047 BCM43224_FAB_SMIC) {
18048 bias = 0x2a;
18049 cascbias = 0x38;
18053 pag_boost_tune = 0x4;
18054 pgag_boost_tune = 0x03;
18055 padg_boost_tune = 0x77;
18056 mixg_boost_tune = 0x65;
18058 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18059 INTPAG_IMAIN_STAT, bias);
18060 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18061 INTPAG_IAUX_STAT, bias);
18062 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18063 INTPAG_CASCBIAS, cascbias);
18065 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18066 INTPAG_BOOST_TUNE,
18067 pag_boost_tune);
18068 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18069 PGAG_BOOST_TUNE,
18070 pgag_boost_tune);
18071 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18072 PADG_BOOST_TUNE,
18073 padg_boost_tune);
18074 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18075 MIXG_BOOST_TUNE,
18076 mixg_boost_tune);
18077 } else {
18079 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18081 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18082 INTPAG_IMAIN_STAT, bias);
18083 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18084 INTPAG_IAUX_STAT, bias);
18085 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18086 INTPAG_CASCBIAS, 0x30);
18088 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18089 0xee);
18093 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18094 && CHSPEC_IS5G(pi->radio_chanspec)) {
18095 u16 paa_boost_tune;
18096 u16 pada_boost_tune;
18097 u16 pgaa_boost_tune;
18098 u16 mixa_boost_tune;
18099 u16 freq, pabias, cascbias;
18100 uint core;
18102 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18104 if (freq < 5150) {
18106 paa_boost_tune = 0xa;
18107 pada_boost_tune = 0x77;
18108 pgaa_boost_tune = 0xf;
18109 mixa_boost_tune = 0xf;
18110 } else if (freq < 5340) {
18112 paa_boost_tune = 0x8;
18113 pada_boost_tune = 0x77;
18114 pgaa_boost_tune = 0xfb;
18115 mixa_boost_tune = 0xf;
18116 } else if (freq < 5650) {
18118 paa_boost_tune = 0x0;
18119 pada_boost_tune = 0x77;
18120 pgaa_boost_tune = 0xb;
18121 mixa_boost_tune = 0xf;
18122 } else {
18124 paa_boost_tune = 0x0;
18125 pada_boost_tune = 0x77;
18126 if (freq != 5825)
18127 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18128 else
18129 pgaa_boost_tune = 6;
18131 mixa_boost_tune = 0xf;
18134 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18135 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18136 INTPAA_BOOST_TUNE, paa_boost_tune);
18137 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18138 PADA_BOOST_TUNE, pada_boost_tune);
18139 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18140 PGAA_BOOST_TUNE, pgaa_boost_tune);
18141 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18142 MIXA_BOOST_TUNE, mixa_boost_tune);
18144 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18145 TXSPARE1, 0x30);
18146 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18147 PA_SPARE2, 0xee);
18149 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18150 PADA_CASCBIAS, 0x3);
18152 cascbias = 0x30;
18154 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
18155 (pi->sh->chip == BCM43225_CHIP_ID)) {
18156 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
18157 cascbias = 0x35;
18160 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18162 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18163 INTPAA_IAUX_STAT, pabias);
18164 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18165 INTPAA_IMAIN_STAT, pabias);
18166 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18167 INTPAA_CASCBIAS, cascbias);
18171 udelay(50);
18173 wlc_phy_radio205x_vcocal_nphy(pi);
18176 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
18178 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18179 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18180 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18181 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18182 (1 << 2));
18183 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18184 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18185 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18186 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18187 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18188 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18189 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18192 udelay(300);
18195 #define MAX_205x_RCAL_WAITLOOPS 10000
18197 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
18199 u16 rcal_reg = 0;
18200 int i;
18202 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18204 if (pi->pubpi.radiorev == 5) {
18206 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18208 udelay(10);
18210 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18211 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18212 0x1);
18214 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18216 udelay(10);
18218 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18220 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18221 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18222 if (rcal_reg & 0x1)
18223 break;
18225 udelay(100);
18228 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18229 "HW error: radio calib2"))
18230 return 0;
18232 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18234 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18236 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18237 if (pi->pubpi.radiorev == 5) {
18239 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18240 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18241 0x0);
18244 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18246 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18247 rcal_reg);
18248 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18249 rcal_reg << 2);
18252 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
18253 u16 savereg;
18255 savereg =
18256 read_radio_reg(
18258 RADIO_2056_SYN_PLL_MAST2 |
18259 RADIO_2056_SYN);
18260 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18261 savereg | 0x7);
18262 udelay(10);
18264 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18265 0x1);
18266 udelay(10);
18268 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18269 0x9);
18271 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18272 rcal_reg = read_radio_reg(
18274 RADIO_2056_SYN_RCAL_CODE_OUT |
18275 RADIO_2056_SYN);
18276 if (rcal_reg & 0x80)
18277 break;
18279 udelay(100);
18282 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18283 "HW error: radio calib3"))
18284 return 0;
18286 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18287 0x1);
18289 rcal_reg =
18290 read_radio_reg(pi,
18291 RADIO_2056_SYN_RCAL_CODE_OUT |
18292 RADIO_2056_SYN);
18294 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18295 0x0);
18297 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18298 savereg);
18300 return rcal_reg & 0x1f;
18302 return rcal_reg & 0x3e;
18305 static void
18306 wlc_phy_chanspec_radio2057_setup(
18307 struct brcms_phy *pi,
18308 const struct chan_info_nphy_radio2057 *ci,
18309 const struct chan_info_nphy_radio2057_rev5 *
18310 ci2)
18312 int coreNum;
18313 u16 txmix2g_tune_boost_pu = 0;
18314 u16 pad2g_tune_pus = 0;
18316 if (pi->pubpi.radiorev == 5) {
18318 write_radio_reg(pi,
18319 RADIO_2057_VCOCAL_COUNTVAL0,
18320 ci2->RF_vcocal_countval0);
18321 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18322 ci2->RF_vcocal_countval1);
18323 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18324 ci2->RF_rfpll_refmaster_sparextalsize);
18325 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18326 ci2->RF_rfpll_loopfilter_r1);
18327 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18328 ci2->RF_rfpll_loopfilter_c2);
18329 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18330 ci2->RF_rfpll_loopfilter_c1);
18331 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18332 ci2->RF_cp_kpd_idac);
18333 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18334 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18335 write_radio_reg(pi,
18336 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18337 write_radio_reg(pi,
18338 RADIO_2057_LOGEN_MX2G_TUNE,
18339 ci2->RF_logen_mx2g_tune);
18340 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18341 ci2->RF_logen_indbuf2g_tune);
18343 write_radio_reg(pi,
18344 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18345 ci2->RF_txmix2g_tune_boost_pu_core0);
18346 write_radio_reg(pi,
18347 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18348 ci2->RF_pad2g_tune_pus_core0);
18349 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18350 ci2->RF_lna2g_tune_core0);
18352 write_radio_reg(pi,
18353 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18354 ci2->RF_txmix2g_tune_boost_pu_core1);
18355 write_radio_reg(pi,
18356 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18357 ci2->RF_pad2g_tune_pus_core1);
18358 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18359 ci2->RF_lna2g_tune_core1);
18361 } else {
18363 write_radio_reg(pi,
18364 RADIO_2057_VCOCAL_COUNTVAL0,
18365 ci->RF_vcocal_countval0);
18366 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18367 ci->RF_vcocal_countval1);
18368 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18369 ci->RF_rfpll_refmaster_sparextalsize);
18370 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18371 ci->RF_rfpll_loopfilter_r1);
18372 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18373 ci->RF_rfpll_loopfilter_c2);
18374 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18375 ci->RF_rfpll_loopfilter_c1);
18376 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18377 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18378 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18379 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18380 write_radio_reg(pi,
18381 RADIO_2057_LOGEN_MX2G_TUNE,
18382 ci->RF_logen_mx2g_tune);
18383 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18384 ci->RF_logen_mx5g_tune);
18385 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18386 ci->RF_logen_indbuf2g_tune);
18387 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18388 ci->RF_logen_indbuf5g_tune);
18390 write_radio_reg(pi,
18391 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18392 ci->RF_txmix2g_tune_boost_pu_core0);
18393 write_radio_reg(pi,
18394 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18395 ci->RF_pad2g_tune_pus_core0);
18396 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18397 ci->RF_pga_boost_tune_core0);
18398 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18399 ci->RF_txmix5g_boost_tune_core0);
18400 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18401 ci->RF_pad5g_tune_misc_pus_core0);
18402 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18403 ci->RF_lna2g_tune_core0);
18404 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18405 ci->RF_lna5g_tune_core0);
18407 write_radio_reg(pi,
18408 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18409 ci->RF_txmix2g_tune_boost_pu_core1);
18410 write_radio_reg(pi,
18411 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18412 ci->RF_pad2g_tune_pus_core1);
18413 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18414 ci->RF_pga_boost_tune_core1);
18415 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18416 ci->RF_txmix5g_boost_tune_core1);
18417 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18418 ci->RF_pad5g_tune_misc_pus_core1);
18419 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18420 ci->RF_lna2g_tune_core1);
18421 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18422 ci->RF_lna5g_tune_core1);
18425 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18427 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18428 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18429 0x3f);
18430 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18431 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18432 0x8);
18433 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18434 0x8);
18435 } else {
18436 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18437 0x1f);
18438 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18439 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18440 0x8);
18441 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18442 0x8);
18444 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18445 (pi->pubpi.radiorev == 8)) {
18447 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18448 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18449 0x1b);
18450 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18451 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18452 0xa);
18453 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18454 0xa);
18455 } else {
18456 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18457 0x1f);
18458 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18459 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18460 0x8);
18461 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18462 0x8);
18467 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18468 if (PHY_IPA(pi)) {
18469 if (pi->pubpi.radiorev == 3)
18470 txmix2g_tune_boost_pu = 0x6b;
18472 if (pi->pubpi.radiorev == 5)
18473 pad2g_tune_pus = 0x73;
18475 } else {
18476 if (pi->pubpi.radiorev != 5) {
18477 pad2g_tune_pus = 0x3;
18479 txmix2g_tune_boost_pu = 0x61;
18483 for (coreNum = 0; coreNum <= 1; coreNum++) {
18485 if (txmix2g_tune_boost_pu != 0)
18486 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18487 TXMIX2G_TUNE_BOOST_PU,
18488 txmix2g_tune_boost_pu);
18490 if (pad2g_tune_pus != 0)
18491 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18492 PAD2G_TUNE_PUS,
18493 pad2g_tune_pus);
18497 udelay(50);
18499 wlc_phy_radio205x_vcocal_nphy(pi);
18502 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
18504 u16 rccal_valid;
18505 int i;
18506 bool chip43226_6362A0;
18508 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18509 || (pi->pubpi.radiorev == 4)
18510 || (pi->pubpi.radiorev == 6));
18512 rccal_valid = 0;
18513 if (chip43226_6362A0) {
18514 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18515 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18516 } else {
18517 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18519 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18521 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18522 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18524 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18525 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18526 if (rccal_valid & 0x2)
18527 break;
18529 udelay(500);
18532 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18534 rccal_valid = 0;
18535 if (chip43226_6362A0) {
18536 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18537 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18538 } else {
18539 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18541 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18543 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18544 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18546 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18547 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18548 if (rccal_valid & 0x2)
18549 break;
18551 udelay(500);
18554 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18556 rccal_valid = 0;
18557 if (chip43226_6362A0) {
18558 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18560 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18561 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18562 } else {
18563 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18564 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18565 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18567 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18569 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18570 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18571 if (rccal_valid & 0x2)
18572 break;
18574 udelay(500);
18577 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
18578 return 0;
18580 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18582 return rccal_valid;
18585 static void
18586 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
18588 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18589 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18590 CHSPEC_IS40(pi->radio_chanspec)) {
18591 if (!pi->nphy_anarxlpf_adjusted) {
18592 write_radio_reg(pi,
18593 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18594 RADIO_2056_RX0),
18595 ((pi->nphy_rccal_value +
18596 reduction_factr) | 0x80));
18598 pi->nphy_anarxlpf_adjusted = true;
18600 } else {
18601 if (pi->nphy_anarxlpf_adjusted) {
18602 write_radio_reg(pi,
18603 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18604 RADIO_2056_RX0),
18605 (pi->nphy_rccal_value | 0x80));
18607 pi->nphy_anarxlpf_adjusted = false;
18613 static void
18614 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
18615 int *tone_id_buf, u32 *noise_var_buf)
18617 int i;
18618 u32 offset;
18619 int tone_id;
18620 int tbllen =
18621 CHSPEC_IS40(pi->radio_chanspec) ?
18622 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
18624 if (pi->nphy_noisevars_adjusted) {
18625 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18626 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18627 offset = (tone_id >= 0) ?
18628 ((tone_id *
18629 2) + 1) : (tbllen + (tone_id * 2) + 1);
18630 wlc_phy_table_write_nphy(
18631 pi, NPHY_TBL_ID_NOISEVAR, 1,
18632 offset, 32,
18633 &pi->nphy_saved_noisevars.min_noise_vars[i]);
18636 pi->nphy_saved_noisevars.bufcount = 0;
18637 pi->nphy_noisevars_adjusted = false;
18640 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18641 pi->nphy_saved_noisevars.bufcount = 0;
18643 for (i = 0; i < ntones; i++) {
18644 tone_id = tone_id_buf[i];
18645 offset = (tone_id >= 0) ?
18646 ((tone_id * 2) + 1) :
18647 (tbllen + (tone_id * 2) + 1);
18648 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18649 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18650 offset, 32,
18651 &pi->nphy_saved_noisevars.
18652 min_noise_vars[i]);
18653 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18654 offset, 32, &noise_var_buf[i]);
18655 pi->nphy_saved_noisevars.bufcount++;
18658 pi->nphy_noisevars_adjusted = true;
18662 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
18664 u16 regval;
18666 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18667 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18668 CHSPEC_IS40(pi->radio_chanspec)) {
18669 if (!pi->nphy_crsminpwr_adjusted) {
18670 regval = read_phy_reg(pi, 0x27d);
18671 pi->nphy_crsminpwr[0] = regval & 0xff;
18672 regval &= 0xff00;
18673 regval |= (u16) minpwr;
18674 write_phy_reg(pi, 0x27d, regval);
18676 regval = read_phy_reg(pi, 0x280);
18677 pi->nphy_crsminpwr[1] = regval & 0xff;
18678 regval &= 0xff00;
18679 regval |= (u16) minpwr;
18680 write_phy_reg(pi, 0x280, regval);
18682 regval = read_phy_reg(pi, 0x283);
18683 pi->nphy_crsminpwr[2] = regval & 0xff;
18684 regval &= 0xff00;
18685 regval |= (u16) minpwr;
18686 write_phy_reg(pi, 0x283, regval);
18688 pi->nphy_crsminpwr_adjusted = true;
18690 } else {
18691 if (pi->nphy_crsminpwr_adjusted) {
18692 regval = read_phy_reg(pi, 0x27d);
18693 regval &= 0xff00;
18694 regval |= pi->nphy_crsminpwr[0];
18695 write_phy_reg(pi, 0x27d, regval);
18697 regval = read_phy_reg(pi, 0x280);
18698 regval &= 0xff00;
18699 regval |= pi->nphy_crsminpwr[1];
18700 write_phy_reg(pi, 0x280, regval);
18702 regval = read_phy_reg(pi, 0x283);
18703 regval &= 0xff00;
18704 regval |= pi->nphy_crsminpwr[2];
18705 write_phy_reg(pi, 0x283, regval);
18707 pi->nphy_crsminpwr_adjusted = false;
18713 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
18715 u8 tx_lpf_bw = 0;
18717 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18718 if (CHSPEC_IS40(pi->radio_chanspec))
18719 tx_lpf_bw = 3;
18720 else
18721 tx_lpf_bw = 1;
18723 if (PHY_IPA(pi)) {
18724 if (CHSPEC_IS40(pi->radio_chanspec))
18725 tx_lpf_bw = 5;
18726 else
18727 tx_lpf_bw = 4;
18730 write_phy_reg(pi, 0xe8,
18731 (tx_lpf_bw << 0) |
18732 (tx_lpf_bw << 3) |
18733 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18735 if (PHY_IPA(pi)) {
18737 if (CHSPEC_IS40(pi->radio_chanspec))
18738 tx_lpf_bw = 4;
18739 else
18740 tx_lpf_bw = 1;
18742 write_phy_reg(pi, 0xe9,
18743 (tx_lpf_bw << 0) |
18744 (tx_lpf_bw << 3) |
18745 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18750 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
18752 u16 cur_channel = 0;
18753 int nphy_adj_tone_id_buf[] = { 57, 58 };
18754 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
18755 bool isAdjustNoiseVar = false;
18756 uint numTonesAdjust = 0;
18757 u32 tempval = 0;
18759 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18760 if (pi->phyhang_avoid)
18761 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18763 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18765 if (pi->nphy_gband_spurwar_en) {
18767 wlc_phy_adjust_rx_analpfbw_nphy(
18769 NPHY_ANARXLPFBW_REDUCTIONFACT);
18771 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18772 if ((cur_channel == 11)
18773 && CHSPEC_IS40(pi->radio_chanspec))
18774 wlc_phy_adjust_min_noisevar_nphy(
18775 pi, 2,
18776 nphy_adj_tone_id_buf,
18777 nphy_adj_noise_var_buf);
18778 else
18779 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18780 NULL,
18781 NULL);
18784 wlc_phy_adjust_crsminpwr_nphy(pi,
18785 NPHY_ADJUSTED_MINCRSPOWER);
18788 if ((pi->nphy_gband_spurwar2_en)
18789 && CHSPEC_IS2G(pi->radio_chanspec)) {
18791 if (CHSPEC_IS40(pi->radio_chanspec)) {
18792 switch (cur_channel) {
18793 case 3:
18794 nphy_adj_tone_id_buf[0] = 57;
18795 nphy_adj_tone_id_buf[1] = 58;
18796 nphy_adj_noise_var_buf[0] = 0x22f;
18797 nphy_adj_noise_var_buf[1] = 0x25f;
18798 isAdjustNoiseVar = true;
18799 break;
18800 case 4:
18801 nphy_adj_tone_id_buf[0] = 41;
18802 nphy_adj_tone_id_buf[1] = 42;
18803 nphy_adj_noise_var_buf[0] = 0x22f;
18804 nphy_adj_noise_var_buf[1] = 0x25f;
18805 isAdjustNoiseVar = true;
18806 break;
18807 case 5:
18808 nphy_adj_tone_id_buf[0] = 25;
18809 nphy_adj_tone_id_buf[1] = 26;
18810 nphy_adj_noise_var_buf[0] = 0x24f;
18811 nphy_adj_noise_var_buf[1] = 0x25f;
18812 isAdjustNoiseVar = true;
18813 break;
18814 case 6:
18815 nphy_adj_tone_id_buf[0] = 9;
18816 nphy_adj_tone_id_buf[1] = 10;
18817 nphy_adj_noise_var_buf[0] = 0x22f;
18818 nphy_adj_noise_var_buf[1] = 0x24f;
18819 isAdjustNoiseVar = true;
18820 break;
18821 case 7:
18822 nphy_adj_tone_id_buf[0] = 121;
18823 nphy_adj_tone_id_buf[1] = 122;
18824 nphy_adj_noise_var_buf[0] = 0x18f;
18825 nphy_adj_noise_var_buf[1] = 0x24f;
18826 isAdjustNoiseVar = true;
18827 break;
18828 case 8:
18829 nphy_adj_tone_id_buf[0] = 105;
18830 nphy_adj_tone_id_buf[1] = 106;
18831 nphy_adj_noise_var_buf[0] = 0x22f;
18832 nphy_adj_noise_var_buf[1] = 0x25f;
18833 isAdjustNoiseVar = true;
18834 break;
18835 case 9:
18836 nphy_adj_tone_id_buf[0] = 89;
18837 nphy_adj_tone_id_buf[1] = 90;
18838 nphy_adj_noise_var_buf[0] = 0x22f;
18839 nphy_adj_noise_var_buf[1] = 0x24f;
18840 isAdjustNoiseVar = true;
18841 break;
18842 case 10:
18843 nphy_adj_tone_id_buf[0] = 73;
18844 nphy_adj_tone_id_buf[1] = 74;
18845 nphy_adj_noise_var_buf[0] = 0x22f;
18846 nphy_adj_noise_var_buf[1] = 0x24f;
18847 isAdjustNoiseVar = true;
18848 break;
18849 default:
18850 isAdjustNoiseVar = false;
18851 break;
18855 if (isAdjustNoiseVar) {
18856 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18857 sizeof(nphy_adj_tone_id_buf[0]);
18859 wlc_phy_adjust_min_noisevar_nphy(
18861 numTonesAdjust,
18862 nphy_adj_tone_id_buf,
18863 nphy_adj_noise_var_buf);
18865 tempval = 0;
18867 } else {
18868 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18869 NULL);
18873 if ((pi->nphy_aband_spurwar_en) &&
18874 (CHSPEC_IS5G(pi->radio_chanspec))) {
18875 switch (cur_channel) {
18876 case 54:
18877 nphy_adj_tone_id_buf[0] = 32;
18878 nphy_adj_noise_var_buf[0] = 0x25f;
18879 break;
18880 case 38:
18881 case 102:
18882 case 118:
18883 nphy_adj_tone_id_buf[0] = 0;
18884 nphy_adj_noise_var_buf[0] = 0x0;
18885 break;
18886 case 134:
18887 nphy_adj_tone_id_buf[0] = 32;
18888 nphy_adj_noise_var_buf[0] = 0x21f;
18889 break;
18890 case 151:
18891 nphy_adj_tone_id_buf[0] = 16;
18892 nphy_adj_noise_var_buf[0] = 0x23f;
18893 break;
18894 case 153:
18895 case 161:
18896 nphy_adj_tone_id_buf[0] = 48;
18897 nphy_adj_noise_var_buf[0] = 0x23f;
18898 break;
18899 default:
18900 nphy_adj_tone_id_buf[0] = 0;
18901 nphy_adj_noise_var_buf[0] = 0x0;
18902 break;
18905 if (nphy_adj_tone_id_buf[0]
18906 && nphy_adj_noise_var_buf[0])
18907 wlc_phy_adjust_min_noisevar_nphy(
18908 pi, 1,
18909 nphy_adj_tone_id_buf,
18910 nphy_adj_noise_var_buf);
18911 else
18912 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18913 NULL);
18916 if (pi->phyhang_avoid)
18917 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18921 static void
18922 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
18923 const struct nphy_sfo_cfg *ci)
18925 u16 val;
18927 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18928 if (CHSPEC_IS5G(chanspec) && !val) {
18930 val = R_REG(&pi->regs->psm_phy_hdr_param);
18931 W_REG(&pi->regs->psm_phy_hdr_param,
18932 (val | MAC_PHY_FORCE_CLK));
18934 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18935 (BBCFG_RESETCCA | BBCFG_RESETRX));
18937 W_REG(&pi->regs->psm_phy_hdr_param, val);
18939 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18940 } else if (!CHSPEC_IS5G(chanspec) && val) {
18942 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
18944 val = R_REG(&pi->regs->psm_phy_hdr_param);
18945 W_REG(&pi->regs->psm_phy_hdr_param,
18946 (val | MAC_PHY_FORCE_CLK));
18948 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18949 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
18951 W_REG(&pi->regs->psm_phy_hdr_param, val);
18954 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
18955 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
18956 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
18958 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
18959 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
18960 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
18962 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
18963 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
18965 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
18966 } else {
18967 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
18968 NPHY_ClassifierCtrl_ofdm_en);
18970 if (CHSPEC_IS2G(chanspec))
18971 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
18974 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
18975 wlc_phy_txpwr_fixpower_nphy(pi);
18977 if (NREV_LT(pi->pubpi.phy_rev, 3))
18978 wlc_phy_adjust_lnagaintbl_nphy(pi);
18980 wlc_phy_txlpfbw_nphy(pi);
18982 if (NREV_GE(pi->pubpi.phy_rev, 3)
18983 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
18984 u8 spuravoid = 0;
18986 val = CHSPEC_CHANNEL(chanspec);
18987 if (!CHSPEC_IS40(pi->radio_chanspec)) {
18988 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18989 if ((val == 13) || (val == 14) || (val == 153))
18990 spuravoid = 1;
18991 } else if (((val >= 5) && (val <= 8)) || (val == 13)
18992 || (val == 14)) {
18993 spuravoid = 1;
18995 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18996 if (val == 54)
18997 spuravoid = 1;
18998 } else {
18999 if (pi->nphy_aband_spurwar_en &&
19000 ((val == 38) || (val == 102)
19001 || (val == 118)))
19002 spuravoid = 1;
19005 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19006 spuravoid = 1;
19008 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
19009 si_pmu_spuravoid(pi->sh->sih, spuravoid);
19010 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
19012 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
19013 (pi->sh->chip == BCM43225_CHIP_ID)) {
19015 if (spuravoid == 1) {
19017 W_REG(&pi->regs->tsf_clk_frac_l,
19018 0x5341);
19019 W_REG(&pi->regs->tsf_clk_frac_h,
19020 0x8);
19021 } else {
19023 W_REG(&pi->regs->tsf_clk_frac_l,
19024 0x8889);
19025 W_REG(&pi->regs->tsf_clk_frac_h,
19026 0x8);
19030 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19032 mod_phy_reg(pi, 0x01, (0x1 << 15),
19033 ((spuravoid > 0) ? (0x1 << 15) : 0));
19035 wlc_phy_resetcca_nphy(pi);
19037 pi->phy_isspuravoid = (spuravoid > 0);
19040 if (NREV_LT(pi->pubpi.phy_rev, 7))
19041 write_phy_reg(pi, 0x17e, 0x3830);
19043 wlc_phy_spurwar_nphy(pi);
19046 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
19048 int freq;
19049 struct chan_info_nphy_radio2057 *t0 = NULL;
19050 struct chan_info_nphy_radio205x *t1 = NULL;
19051 struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
19052 struct chan_info_nphy_2055 *t3 = NULL;
19054 if (NORADIO_ENAB(pi->pubpi))
19055 return;
19057 if (!wlc_phy_chan2freq_nphy
19058 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19059 return;
19061 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
19063 if (CHSPEC_BW(chanspec) != pi->bw)
19064 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19066 if (CHSPEC_IS40(chanspec)) {
19067 if (CHSPEC_SB_UPPER(chanspec)) {
19068 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19069 if (NREV_GE(pi->pubpi.phy_rev, 7))
19070 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19071 } else {
19072 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19073 if (NREV_GE(pi->pubpi.phy_rev, 7))
19074 and_phy_reg(pi, 0x310,
19075 (~PRIM_SEL_UP20 & 0xffff));
19079 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19080 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19082 if ((pi->pubpi.radiorev <= 4)
19083 || (pi->pubpi.radiorev == 6)) {
19084 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19085 0x2,
19086 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19087 : 0));
19088 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19089 0x2,
19090 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19091 : 0));
19094 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19095 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19096 (pi->pubpi.radiorev == 5) ?
19097 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
19098 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
19100 } else {
19102 mod_radio_reg(pi,
19103 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19104 0x4,
19105 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19106 wlc_phy_chanspec_radio2056_setup(pi, t1);
19108 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19109 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
19112 } else {
19114 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19115 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19116 : (0x05 << 4)));
19118 wlc_phy_chanspec_radio2055_setup(pi, t3);
19119 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19120 (const struct nphy_sfo_cfg *)
19121 &(t3->PHY_BW1a));
19126 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
19128 void *tbl_ptr;
19129 int coreNum;
19130 u16 *txcal_radio_regs = NULL;
19132 if (pi->phyhang_avoid)
19133 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19135 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19137 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19138 &pi->calibration_cache.
19139 rxcal_coeffs_2G);
19141 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19142 txcal_radio_regs =
19143 pi->calibration_cache.txcal_radio_regs_2G;
19144 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19146 pi->calibration_cache.txcal_radio_regs_2G[0] =
19147 read_radio_reg(pi,
19148 RADIO_2056_TX_LOFT_FINE_I |
19149 RADIO_2056_TX0);
19150 pi->calibration_cache.txcal_radio_regs_2G[1] =
19151 read_radio_reg(pi,
19152 RADIO_2056_TX_LOFT_FINE_Q |
19153 RADIO_2056_TX0);
19154 pi->calibration_cache.txcal_radio_regs_2G[2] =
19155 read_radio_reg(pi,
19156 RADIO_2056_TX_LOFT_FINE_I |
19157 RADIO_2056_TX1);
19158 pi->calibration_cache.txcal_radio_regs_2G[3] =
19159 read_radio_reg(pi,
19160 RADIO_2056_TX_LOFT_FINE_Q |
19161 RADIO_2056_TX1);
19163 pi->calibration_cache.txcal_radio_regs_2G[4] =
19164 read_radio_reg(pi,
19165 RADIO_2056_TX_LOFT_COARSE_I |
19166 RADIO_2056_TX0);
19167 pi->calibration_cache.txcal_radio_regs_2G[5] =
19168 read_radio_reg(pi,
19169 RADIO_2056_TX_LOFT_COARSE_Q |
19170 RADIO_2056_TX0);
19171 pi->calibration_cache.txcal_radio_regs_2G[6] =
19172 read_radio_reg(pi,
19173 RADIO_2056_TX_LOFT_COARSE_I |
19174 RADIO_2056_TX1);
19175 pi->calibration_cache.txcal_radio_regs_2G[7] =
19176 read_radio_reg(pi,
19177 RADIO_2056_TX_LOFT_COARSE_Q |
19178 RADIO_2056_TX1);
19179 } else {
19180 pi->calibration_cache.txcal_radio_regs_2G[0] =
19181 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19182 pi->calibration_cache.txcal_radio_regs_2G[1] =
19183 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19184 pi->calibration_cache.txcal_radio_regs_2G[2] =
19185 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19186 pi->calibration_cache.txcal_radio_regs_2G[3] =
19187 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19190 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19191 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19192 } else {
19194 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19195 &pi->calibration_cache.
19196 rxcal_coeffs_5G);
19198 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19199 txcal_radio_regs =
19200 pi->calibration_cache.txcal_radio_regs_5G;
19201 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19203 pi->calibration_cache.txcal_radio_regs_5G[0] =
19204 read_radio_reg(pi,
19205 RADIO_2056_TX_LOFT_FINE_I |
19206 RADIO_2056_TX0);
19207 pi->calibration_cache.txcal_radio_regs_5G[1] =
19208 read_radio_reg(pi,
19209 RADIO_2056_TX_LOFT_FINE_Q |
19210 RADIO_2056_TX0);
19211 pi->calibration_cache.txcal_radio_regs_5G[2] =
19212 read_radio_reg(pi,
19213 RADIO_2056_TX_LOFT_FINE_I |
19214 RADIO_2056_TX1);
19215 pi->calibration_cache.txcal_radio_regs_5G[3] =
19216 read_radio_reg(pi,
19217 RADIO_2056_TX_LOFT_FINE_Q |
19218 RADIO_2056_TX1);
19220 pi->calibration_cache.txcal_radio_regs_5G[4] =
19221 read_radio_reg(pi,
19222 RADIO_2056_TX_LOFT_COARSE_I |
19223 RADIO_2056_TX0);
19224 pi->calibration_cache.txcal_radio_regs_5G[5] =
19225 read_radio_reg(pi,
19226 RADIO_2056_TX_LOFT_COARSE_Q |
19227 RADIO_2056_TX0);
19228 pi->calibration_cache.txcal_radio_regs_5G[6] =
19229 read_radio_reg(pi,
19230 RADIO_2056_TX_LOFT_COARSE_I |
19231 RADIO_2056_TX1);
19232 pi->calibration_cache.txcal_radio_regs_5G[7] =
19233 read_radio_reg(pi,
19234 RADIO_2056_TX_LOFT_COARSE_Q |
19235 RADIO_2056_TX1);
19236 } else {
19237 pi->calibration_cache.txcal_radio_regs_5G[0] =
19238 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19239 pi->calibration_cache.txcal_radio_regs_5G[1] =
19240 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19241 pi->calibration_cache.txcal_radio_regs_5G[2] =
19242 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19243 pi->calibration_cache.txcal_radio_regs_5G[3] =
19244 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19247 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19248 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19250 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19251 for (coreNum = 0; coreNum <= 1; coreNum++) {
19253 txcal_radio_regs[2 * coreNum] =
19254 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19255 LOFT_FINE_I);
19256 txcal_radio_regs[2 * coreNum + 1] =
19257 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19258 LOFT_FINE_Q);
19260 txcal_radio_regs[2 * coreNum + 4] =
19261 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19262 LOFT_COARSE_I);
19263 txcal_radio_regs[2 * coreNum + 5] =
19264 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19265 LOFT_COARSE_Q);
19269 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19271 if (pi->phyhang_avoid)
19272 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19275 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
19277 u16 *loft_comp;
19278 u16 txcal_coeffs_bphy[4];
19279 u16 *tbl_ptr;
19280 int coreNum;
19281 u16 *txcal_radio_regs = NULL;
19283 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19284 if (pi->nphy_iqcal_chanspec_2G == 0)
19285 return;
19287 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19288 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19289 } else {
19290 if (pi->nphy_iqcal_chanspec_5G == 0)
19291 return;
19293 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19294 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19297 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
19299 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19300 txcal_coeffs_bphy[0] = tbl_ptr[0];
19301 txcal_coeffs_bphy[1] = tbl_ptr[1];
19302 txcal_coeffs_bphy[2] = tbl_ptr[2];
19303 txcal_coeffs_bphy[3] = tbl_ptr[3];
19304 } else {
19305 txcal_coeffs_bphy[0] = 0;
19306 txcal_coeffs_bphy[1] = 0;
19307 txcal_coeffs_bphy[2] = 0;
19308 txcal_coeffs_bphy[3] = 0;
19311 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19312 txcal_coeffs_bphy);
19314 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19316 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19318 if (NREV_LT(pi->pubpi.phy_rev, 2))
19319 wlc_phy_tx_iq_war_nphy(pi);
19321 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19322 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19323 txcal_radio_regs =
19324 pi->calibration_cache.txcal_radio_regs_2G;
19325 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19327 write_radio_reg(pi,
19328 RADIO_2056_TX_LOFT_FINE_I |
19329 RADIO_2056_TX0,
19330 pi->calibration_cache.
19331 txcal_radio_regs_2G[0]);
19332 write_radio_reg(pi,
19333 RADIO_2056_TX_LOFT_FINE_Q |
19334 RADIO_2056_TX0,
19335 pi->calibration_cache.
19336 txcal_radio_regs_2G[1]);
19337 write_radio_reg(pi,
19338 RADIO_2056_TX_LOFT_FINE_I |
19339 RADIO_2056_TX1,
19340 pi->calibration_cache.
19341 txcal_radio_regs_2G[2]);
19342 write_radio_reg(pi,
19343 RADIO_2056_TX_LOFT_FINE_Q |
19344 RADIO_2056_TX1,
19345 pi->calibration_cache.
19346 txcal_radio_regs_2G[3]);
19348 write_radio_reg(pi,
19349 RADIO_2056_TX_LOFT_COARSE_I |
19350 RADIO_2056_TX0,
19351 pi->calibration_cache.
19352 txcal_radio_regs_2G[4]);
19353 write_radio_reg(pi,
19354 RADIO_2056_TX_LOFT_COARSE_Q |
19355 RADIO_2056_TX0,
19356 pi->calibration_cache.
19357 txcal_radio_regs_2G[5]);
19358 write_radio_reg(pi,
19359 RADIO_2056_TX_LOFT_COARSE_I |
19360 RADIO_2056_TX1,
19361 pi->calibration_cache.
19362 txcal_radio_regs_2G[6]);
19363 write_radio_reg(pi,
19364 RADIO_2056_TX_LOFT_COARSE_Q |
19365 RADIO_2056_TX1,
19366 pi->calibration_cache.
19367 txcal_radio_regs_2G[7]);
19368 } else {
19369 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19370 pi->calibration_cache.
19371 txcal_radio_regs_2G[0]);
19372 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19373 pi->calibration_cache.
19374 txcal_radio_regs_2G[1]);
19375 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19376 pi->calibration_cache.
19377 txcal_radio_regs_2G[2]);
19378 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19379 pi->calibration_cache.
19380 txcal_radio_regs_2G[3]);
19383 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19384 &pi->calibration_cache.
19385 rxcal_coeffs_2G);
19386 } else {
19387 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19388 txcal_radio_regs =
19389 pi->calibration_cache.txcal_radio_regs_5G;
19390 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19392 write_radio_reg(pi,
19393 RADIO_2056_TX_LOFT_FINE_I |
19394 RADIO_2056_TX0,
19395 pi->calibration_cache.
19396 txcal_radio_regs_5G[0]);
19397 write_radio_reg(pi,
19398 RADIO_2056_TX_LOFT_FINE_Q |
19399 RADIO_2056_TX0,
19400 pi->calibration_cache.
19401 txcal_radio_regs_5G[1]);
19402 write_radio_reg(pi,
19403 RADIO_2056_TX_LOFT_FINE_I |
19404 RADIO_2056_TX1,
19405 pi->calibration_cache.
19406 txcal_radio_regs_5G[2]);
19407 write_radio_reg(pi,
19408 RADIO_2056_TX_LOFT_FINE_Q |
19409 RADIO_2056_TX1,
19410 pi->calibration_cache.
19411 txcal_radio_regs_5G[3]);
19413 write_radio_reg(pi,
19414 RADIO_2056_TX_LOFT_COARSE_I |
19415 RADIO_2056_TX0,
19416 pi->calibration_cache.
19417 txcal_radio_regs_5G[4]);
19418 write_radio_reg(pi,
19419 RADIO_2056_TX_LOFT_COARSE_Q |
19420 RADIO_2056_TX0,
19421 pi->calibration_cache.
19422 txcal_radio_regs_5G[5]);
19423 write_radio_reg(pi,
19424 RADIO_2056_TX_LOFT_COARSE_I |
19425 RADIO_2056_TX1,
19426 pi->calibration_cache.
19427 txcal_radio_regs_5G[6]);
19428 write_radio_reg(pi,
19429 RADIO_2056_TX_LOFT_COARSE_Q |
19430 RADIO_2056_TX1,
19431 pi->calibration_cache.
19432 txcal_radio_regs_5G[7]);
19433 } else {
19434 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19435 pi->calibration_cache.
19436 txcal_radio_regs_5G[0]);
19437 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19438 pi->calibration_cache.
19439 txcal_radio_regs_5G[1]);
19440 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19441 pi->calibration_cache.
19442 txcal_radio_regs_5G[2]);
19443 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19444 pi->calibration_cache.
19445 txcal_radio_regs_5G[3]);
19448 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19449 &pi->calibration_cache.
19450 rxcal_coeffs_5G);
19453 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19454 for (coreNum = 0; coreNum <= 1; coreNum++) {
19456 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19457 LOFT_FINE_I,
19458 txcal_radio_regs[2 * coreNum]);
19459 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19460 LOFT_FINE_Q,
19461 txcal_radio_regs[2 * coreNum + 1]);
19463 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19464 LOFT_COARSE_I,
19465 txcal_radio_regs[2 * coreNum + 4]);
19466 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19467 LOFT_COARSE_Q,
19468 txcal_radio_regs[2 * coreNum + 5]);
19473 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
19475 struct brcms_phy *pi = (struct brcms_phy *) ppi;
19476 u16 mask = 0xfc00;
19477 u32 mc = 0;
19479 if (NREV_GE(pi->pubpi.phy_rev, 7))
19480 return;
19482 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19483 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
19485 if (lut_init == false)
19486 return;
19488 if (pi->srom_fem2g.antswctrllut == 0) {
19489 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19490 1, 0x02, 16, &v0);
19491 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19492 1, 0x03, 16, &v1);
19493 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19494 1, 0x08, 16, &v2);
19495 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19496 1, 0x0C, 16, &v3);
19499 if (pi->srom_fem5g.antswctrllut == 0) {
19500 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19501 1, 0x12, 16, &v0);
19502 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19503 1, 0x13, 16, &v1);
19504 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19505 1, 0x18, 16, &v2);
19506 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19507 1, 0x1C, 16, &v3);
19509 } else {
19511 write_phy_reg(pi, 0xc8, 0x0);
19512 write_phy_reg(pi, 0xc9, 0x0);
19514 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
19516 mc = R_REG(&pi->regs->maccontrol);
19517 mc &= ~MCTL_GPOUT_SEL_MASK;
19518 W_REG(&pi->regs->maccontrol, mc);
19520 OR_REG(&pi->regs->psm_gpio_oe, mask);
19522 AND_REG(&pi->regs->psm_gpio_out, ~mask);
19524 if (lut_init) {
19525 write_phy_reg(pi, 0xf8, 0x02d8);
19526 write_phy_reg(pi, 0xf9, 0x0301);
19527 write_phy_reg(pi, 0xfa, 0x02d8);
19528 write_phy_reg(pi, 0xfb, 0x0301);
19533 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
19535 u16 curr_ctl, new_ctl;
19536 bool suspended = false;
19538 if (D11REV_IS(pi->sh->corerev, 16)) {
19539 suspended =
19540 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
19541 false : true;
19542 if (!suspended)
19543 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19546 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19548 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19550 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19552 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19553 wlapi_enable_mac(pi->sh->physhim);
19555 return new_ctl;
19558 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
19561 if (write == 0) {
19562 vals[0] = read_phy_reg(pi, 0x2c);
19563 vals[1] = read_phy_reg(pi, 0x42);
19564 } else {
19565 write_phy_reg(pi, 0x2c, vals[0]);
19566 write_phy_reg(pi, 0x42, vals[1]);
19570 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
19572 u16 trigger_mask, status_mask;
19573 u16 orig_RfseqCoreActv;
19575 switch (cmd) {
19576 case NPHY_RFSEQ_RX2TX:
19577 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19578 status_mask = NPHY_RfseqStatus_rx2tx;
19579 break;
19580 case NPHY_RFSEQ_TX2RX:
19581 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19582 status_mask = NPHY_RfseqStatus_tx2rx;
19583 break;
19584 case NPHY_RFSEQ_RESET2RX:
19585 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19586 status_mask = NPHY_RfseqStatus_reset2rx;
19587 break;
19588 case NPHY_RFSEQ_UPDATEGAINH:
19589 trigger_mask = NPHY_RfseqTrigger_updategainh;
19590 status_mask = NPHY_RfseqStatus_updategainh;
19591 break;
19592 case NPHY_RFSEQ_UPDATEGAINL:
19593 trigger_mask = NPHY_RfseqTrigger_updategainl;
19594 status_mask = NPHY_RfseqStatus_updategainl;
19595 break;
19596 case NPHY_RFSEQ_UPDATEGAINU:
19597 trigger_mask = NPHY_RfseqTrigger_updategainu;
19598 status_mask = NPHY_RfseqStatus_updategainu;
19599 break;
19600 default:
19601 return;
19604 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19605 or_phy_reg(pi, 0xa1,
19606 (NPHY_RfseqMode_CoreActv_override |
19607 NPHY_RfseqMode_Trigger_override));
19608 or_phy_reg(pi, 0xa3, trigger_mask);
19609 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19610 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
19611 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
19614 static void
19615 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
19616 u8 len)
19618 u32 t1_offset, t2_offset;
19619 u8 ctr;
19620 u8 end_event =
19621 NREV_GE(pi->pubpi.phy_rev,
19622 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
19623 u8 end_dly = 1;
19625 if (pi->phyhang_avoid)
19626 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19628 t1_offset = cmd << 4;
19629 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19630 events);
19631 t2_offset = t1_offset + 0x080;
19632 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19633 dlys);
19635 for (ctr = len; ctr < 16; ctr++) {
19636 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19637 t1_offset + ctr, 8, &end_event);
19638 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19639 t2_offset + ctr, 8, &end_dly);
19642 if (pi->phyhang_avoid)
19643 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19646 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
19648 u16 lpf_bw_ctl_val = 0;
19649 u16 rx2tx_lpf_rc_lut_offset = 0;
19651 if (offset == 0) {
19652 if (CHSPEC_IS40(pi->radio_chanspec))
19653 rx2tx_lpf_rc_lut_offset = 0x159;
19654 else
19655 rx2tx_lpf_rc_lut_offset = 0x154;
19656 } else {
19657 rx2tx_lpf_rc_lut_offset = offset;
19659 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19660 (u32) rx2tx_lpf_rc_lut_offset, 16,
19661 &lpf_bw_ctl_val);
19663 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19665 return lpf_bw_ctl_val;
19668 static void
19669 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
19670 u8 core_mask, u8 off, u8 override_id)
19672 u8 core_num;
19673 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
19674 u8 val_shift = 0;
19676 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19677 en_mask = field;
19678 for (core_num = 0; core_num < 2; core_num++) {
19679 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19681 switch (field) {
19682 case (0x1 << 2):
19683 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19684 val_addr = (core_num == 0) ? 0x7a :
19685 0x7d;
19686 val_mask = (0x1 << 1);
19687 val_shift = 1;
19688 break;
19689 case (0x1 << 3):
19690 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19691 val_addr = (core_num == 0) ? 0x7a :
19692 0x7d;
19693 val_mask = (0x1 << 2);
19694 val_shift = 2;
19695 break;
19696 case (0x1 << 4):
19697 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19698 val_addr = (core_num == 0) ? 0x7a :
19699 0x7d;
19700 val_mask = (0x1 << 4);
19701 val_shift = 4;
19702 break;
19703 case (0x1 << 5):
19704 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19705 val_addr = (core_num == 0) ? 0x7a :
19706 0x7d;
19707 val_mask = (0x1 << 5);
19708 val_shift = 5;
19709 break;
19710 case (0x1 << 6):
19711 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19712 val_addr = (core_num == 0) ? 0x7a :
19713 0x7d;
19714 val_mask = (0x1 << 6);
19715 val_shift = 6;
19716 break;
19717 case (0x1 << 7):
19718 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19719 val_addr = (core_num == 0) ? 0x7a :
19720 0x7d;
19721 val_mask = (0x1 << 7);
19722 val_shift = 7;
19723 break;
19724 case (0x1 << 10):
19725 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19726 val_addr = (core_num == 0) ? 0xf8 :
19727 0xfa;
19728 val_mask = (0x7 << 4);
19729 val_shift = 4;
19730 break;
19731 case (0x1 << 11):
19732 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19733 val_addr = (core_num == 0) ? 0x7b :
19734 0x7e;
19735 val_mask = (0xffff << 0);
19736 val_shift = 0;
19737 break;
19738 case (0x1 << 12):
19739 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19740 val_addr = (core_num == 0) ? 0x7c :
19741 0x7f;
19742 val_mask = (0xffff << 0);
19743 val_shift = 0;
19744 break;
19745 case (0x3 << 13):
19746 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19747 val_addr = (core_num == 0) ? 0x348 :
19748 0x349;
19749 val_mask = (0xff << 0);
19750 val_shift = 0;
19751 break;
19752 case (0x1 << 13):
19753 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19754 val_addr = (core_num == 0) ? 0x348 :
19755 0x349;
19756 val_mask = (0xf << 0);
19757 val_shift = 0;
19758 break;
19759 default:
19760 addr = 0xffff;
19761 break;
19763 } else if (override_id ==
19764 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19766 switch (field) {
19767 case (0x1 << 1):
19768 en_addr = (core_num == 0) ? 0x342 :
19769 0x343;
19770 val_addr = (core_num == 0) ? 0x340 :
19771 0x341;
19772 val_mask = (0x1 << 1);
19773 val_shift = 1;
19774 break;
19775 case (0x1 << 3):
19776 en_addr = (core_num == 0) ? 0x342 :
19777 0x343;
19778 val_addr = (core_num == 0) ? 0x340 :
19779 0x341;
19780 val_mask = (0x1 << 3);
19781 val_shift = 3;
19782 break;
19783 case (0x1 << 5):
19784 en_addr = (core_num == 0) ? 0x342 :
19785 0x343;
19786 val_addr = (core_num == 0) ? 0x340 :
19787 0x341;
19788 val_mask = (0x1 << 5);
19789 val_shift = 5;
19790 break;
19791 case (0x1 << 4):
19792 en_addr = (core_num == 0) ? 0x342 :
19793 0x343;
19794 val_addr = (core_num == 0) ? 0x340 :
19795 0x341;
19796 val_mask = (0x1 << 4);
19797 val_shift = 4;
19798 break;
19799 case (0x1 << 2):
19801 en_addr = (core_num == 0) ? 0x342 :
19802 0x343;
19803 val_addr = (core_num == 0) ? 0x340 :
19804 0x341;
19805 val_mask = (0x1 << 2);
19806 val_shift = 2;
19807 break;
19808 case (0x1 << 7):
19810 en_addr = (core_num == 0) ? 0x342 :
19811 0x343;
19812 val_addr = (core_num == 0) ? 0x340 :
19813 0x341;
19814 val_mask = (0x7 << 8);
19815 val_shift = 8;
19816 break;
19817 case (0x1 << 11):
19818 en_addr = (core_num == 0) ? 0x342 :
19819 0x343;
19820 val_addr = (core_num == 0) ? 0x340 :
19821 0x341;
19822 val_mask = (0x1 << 14);
19823 val_shift = 14;
19824 break;
19825 case (0x1 << 10):
19826 en_addr = (core_num == 0) ? 0x342 :
19827 0x343;
19828 val_addr = (core_num == 0) ? 0x340 :
19829 0x341;
19830 val_mask = (0x1 << 13);
19831 val_shift = 13;
19832 break;
19833 case (0x1 << 9):
19834 en_addr = (core_num == 0) ? 0x342 :
19835 0x343;
19836 val_addr = (core_num == 0) ? 0x340 :
19837 0x341;
19838 val_mask = (0x1 << 12);
19839 val_shift = 12;
19840 break;
19841 case (0x1 << 8):
19842 en_addr = (core_num == 0) ? 0x342 :
19843 0x343;
19844 val_addr = (core_num == 0) ? 0x340 :
19845 0x341;
19846 val_mask = (0x1 << 11);
19847 val_shift = 11;
19848 break;
19849 case (0x1 << 6):
19850 en_addr = (core_num == 0) ? 0x342 :
19851 0x343;
19852 val_addr = (core_num == 0) ? 0x340 :
19853 0x341;
19854 val_mask = (0x1 << 6);
19855 val_shift = 6;
19856 break;
19857 case (0x1 << 0):
19858 en_addr = (core_num == 0) ? 0x342 :
19859 0x343;
19860 val_addr = (core_num == 0) ? 0x340 :
19861 0x341;
19862 val_mask = (0x1 << 0);
19863 val_shift = 0;
19864 break;
19865 default:
19866 addr = 0xffff;
19867 break;
19869 } else if (override_id ==
19870 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19872 switch (field) {
19873 case (0x1 << 3):
19874 en_addr = (core_num == 0) ? 0x346 :
19875 0x347;
19876 val_addr = (core_num == 0) ? 0x344 :
19877 0x345;
19878 val_mask = (0x1 << 3);
19879 val_shift = 3;
19880 break;
19881 case (0x1 << 1):
19882 en_addr = (core_num == 0) ? 0x346 :
19883 0x347;
19884 val_addr = (core_num == 0) ? 0x344 :
19885 0x345;
19886 val_mask = (0x1 << 1);
19887 val_shift = 1;
19888 break;
19889 case (0x1 << 0):
19890 en_addr = (core_num == 0) ? 0x346 :
19891 0x347;
19892 val_addr = (core_num == 0) ? 0x344 :
19893 0x345;
19894 val_mask = (0x1 << 0);
19895 val_shift = 0;
19896 break;
19897 case (0x1 << 2):
19898 en_addr = (core_num == 0) ? 0x346 :
19899 0x347;
19900 val_addr = (core_num == 0) ? 0x344 :
19901 0x345;
19902 val_mask = (0x1 << 2);
19903 val_shift = 2;
19904 break;
19905 case (0x1 << 4):
19906 en_addr = (core_num == 0) ? 0x346 :
19907 0x347;
19908 val_addr = (core_num == 0) ? 0x344 :
19909 0x345;
19910 val_mask = (0x1 << 4);
19911 val_shift = 4;
19912 break;
19913 default:
19914 addr = 0xffff;
19915 break;
19919 if (off) {
19920 and_phy_reg(pi, en_addr, ~en_mask);
19921 and_phy_reg(pi, val_addr, ~val_mask);
19922 } else {
19924 if ((core_mask == 0)
19925 || (core_mask & (1 << core_num))) {
19926 or_phy_reg(pi, en_addr, en_mask);
19928 if (addr != 0xffff)
19929 mod_phy_reg(pi, val_addr,
19930 val_mask,
19931 (value <<
19932 val_shift));
19939 static void
19940 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
19941 u8 core_mask, u8 off)
19943 u8 core_num;
19944 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
19945 0, val_mask = 0;
19946 u8 shift = 0, val_shift = 0;
19948 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19950 en_mask = field;
19951 for (core_num = 0; core_num < 2; core_num++) {
19953 switch (field) {
19954 case (0x1 << 1):
19955 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19956 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19957 val_mask = (0x1 << 0);
19958 val_shift = 0;
19959 break;
19960 case (0x1 << 2):
19961 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19962 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19963 val_mask = (0x1 << 1);
19964 val_shift = 1;
19965 break;
19966 case (0x1 << 3):
19967 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19968 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19969 val_mask = (0x1 << 2);
19970 val_shift = 2;
19971 break;
19972 case (0x1 << 4):
19973 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19974 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19975 val_mask = (0x1 << 4);
19976 val_shift = 4;
19977 break;
19978 case (0x1 << 5):
19979 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19980 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19981 val_mask = (0x1 << 5);
19982 val_shift = 5;
19983 break;
19984 case (0x1 << 6):
19985 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19986 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19987 val_mask = (0x1 << 6);
19988 val_shift = 6;
19989 break;
19990 case (0x1 << 7):
19991 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19992 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19993 val_mask = (0x1 << 7);
19994 val_shift = 7;
19995 break;
19996 case (0x1 << 8):
19997 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19998 val_addr = (core_num == 0) ? 0x7a : 0x7d;
19999 val_mask = (0x7 << 8);
20000 val_shift = 8;
20001 break;
20002 case (0x1 << 11):
20003 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20004 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20005 val_mask = (0x7 << 13);
20006 val_shift = 13;
20007 break;
20009 case (0x1 << 9):
20010 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20011 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20012 val_mask = (0x7 << 0);
20013 val_shift = 0;
20014 break;
20016 case (0x1 << 10):
20017 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20018 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20019 val_mask = (0x7 << 4);
20020 val_shift = 4;
20021 break;
20023 case (0x1 << 12):
20024 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20025 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20026 val_mask = (0xffff << 0);
20027 val_shift = 0;
20028 break;
20029 case (0x1 << 13):
20030 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20031 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20032 val_mask = (0xffff << 0);
20033 val_shift = 0;
20034 break;
20035 case (0x1 << 14):
20036 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20037 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20038 val_mask = (0x3 << 6);
20039 val_shift = 6;
20040 break;
20041 case (0x1 << 0):
20042 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20043 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20044 val_mask = (0x1 << 15);
20045 val_shift = 15;
20046 break;
20047 default:
20048 addr = 0xffff;
20049 break;
20052 if (off) {
20053 and_phy_reg(pi, en_addr, ~en_mask);
20054 and_phy_reg(pi, val_addr, ~val_mask);
20055 } else {
20057 if ((core_mask == 0)
20058 || (core_mask & (1 << core_num))) {
20059 or_phy_reg(pi, en_addr, en_mask);
20061 if (addr != 0xffff)
20062 mod_phy_reg(pi, val_addr,
20063 val_mask,
20064 (value <<
20065 val_shift));
20069 } else {
20071 if (off) {
20072 and_phy_reg(pi, 0xec, ~field);
20073 value = 0x0;
20074 } else {
20075 or_phy_reg(pi, 0xec, field);
20078 for (core_num = 0; core_num < 2; core_num++) {
20080 switch (field) {
20081 case (0x1 << 1):
20082 case (0x1 << 9):
20083 case (0x1 << 12):
20084 case (0x1 << 13):
20085 case (0x1 << 14):
20086 addr = 0x78;
20088 core_mask = 0x1;
20089 break;
20090 case (0x1 << 2):
20091 case (0x1 << 3):
20092 case (0x1 << 4):
20093 case (0x1 << 5):
20094 case (0x1 << 6):
20095 case (0x1 << 7):
20096 case (0x1 << 8):
20097 addr = (core_num == 0) ? 0x7a : 0x7d;
20098 break;
20099 case (0x1 << 10):
20100 addr = (core_num == 0) ? 0x7b : 0x7e;
20101 break;
20102 case (0x1 << 11):
20103 addr = (core_num == 0) ? 0x7c : 0x7f;
20104 break;
20105 default:
20106 addr = 0xffff;
20109 switch (field) {
20110 case (0x1 << 1):
20111 mask = (0x7 << 3);
20112 shift = 3;
20113 break;
20114 case (0x1 << 9):
20115 mask = (0x1 << 2);
20116 shift = 2;
20117 break;
20118 case (0x1 << 12):
20119 mask = (0x1 << 8);
20120 shift = 8;
20121 break;
20122 case (0x1 << 13):
20123 mask = (0x1 << 9);
20124 shift = 9;
20125 break;
20126 case (0x1 << 14):
20127 mask = (0xf << 12);
20128 shift = 12;
20129 break;
20130 case (0x1 << 2):
20131 mask = (0x1 << 0);
20132 shift = 0;
20133 break;
20134 case (0x1 << 3):
20135 mask = (0x1 << 1);
20136 shift = 1;
20137 break;
20138 case (0x1 << 4):
20139 mask = (0x1 << 2);
20140 shift = 2;
20141 break;
20142 case (0x1 << 5):
20143 mask = (0x3 << 4);
20144 shift = 4;
20145 break;
20146 case (0x1 << 6):
20147 mask = (0x3 << 6);
20148 shift = 6;
20149 break;
20150 case (0x1 << 7):
20151 mask = (0x1 << 8);
20152 shift = 8;
20153 break;
20154 case (0x1 << 8):
20155 mask = (0x1 << 9);
20156 shift = 9;
20157 break;
20158 case (0x1 << 10):
20159 mask = 0x1fff;
20160 shift = 0x0;
20161 break;
20162 case (0x1 << 11):
20163 mask = 0x1fff;
20164 shift = 0x0;
20165 break;
20166 default:
20167 mask = 0x0;
20168 shift = 0x0;
20169 break;
20172 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
20173 mod_phy_reg(pi, addr, mask, (value << shift));
20176 or_phy_reg(pi, 0xec, (0x1 << 0));
20177 or_phy_reg(pi, 0x78, (0x1 << 0));
20178 udelay(1);
20179 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20183 static void
20184 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
20185 u8 core_mask, u8 off)
20187 u16 rfmxgain = 0, lpfgain = 0;
20188 u16 tgain = 0;
20190 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20192 switch (cmd) {
20193 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20194 wlc_phy_rfctrl_override_nphy_rev7(
20195 pi, (0x1 << 5),
20196 value, core_mask, off,
20197 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20198 wlc_phy_rfctrl_override_nphy_rev7(
20199 pi, (0x1 << 4), value,
20200 core_mask, off,
20201 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20202 wlc_phy_rfctrl_override_nphy_rev7(
20203 pi, (0x1 << 3), value,
20204 core_mask, off,
20205 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20206 break;
20207 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20208 wlc_phy_rfctrl_override_nphy_rev7(
20209 pi, (0x1 << 2),
20210 value, core_mask, off,
20211 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20212 wlc_phy_rfctrl_override_nphy_rev7(
20213 pi, (0x1 << 1), value,
20214 core_mask, off,
20215 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20216 wlc_phy_rfctrl_override_nphy_rev7(
20217 pi, (0x1 << 0), value,
20218 core_mask, off,
20219 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20220 wlc_phy_rfctrl_override_nphy_rev7(
20221 pi, (0x1 << 1), value,
20222 core_mask, off,
20223 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20224 wlc_phy_rfctrl_override_nphy_rev7(
20225 pi, (0x1 << 11), 0,
20226 core_mask, off,
20227 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20228 break;
20229 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20230 wlc_phy_rfctrl_override_nphy_rev7(
20231 pi, (0x1 << 2),
20232 value, core_mask, off,
20233 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20234 wlc_phy_rfctrl_override_nphy_rev7(
20235 pi, (0x1 << 1), value,
20236 core_mask, off,
20237 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20238 wlc_phy_rfctrl_override_nphy_rev7(
20239 pi, (0x1 << 0), value,
20240 core_mask, off,
20241 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20242 wlc_phy_rfctrl_override_nphy_rev7(
20243 pi, (0x1 << 2), value,
20244 core_mask, off,
20245 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20246 wlc_phy_rfctrl_override_nphy_rev7(
20247 pi, (0x1 << 11), 1,
20248 core_mask, off,
20249 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20250 break;
20251 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20252 rfmxgain = value & 0x000ff;
20253 lpfgain = value & 0x0ff00;
20254 lpfgain = lpfgain >> 8;
20256 wlc_phy_rfctrl_override_nphy_rev7(
20257 pi, (0x1 << 11),
20258 rfmxgain, core_mask,
20259 off,
20260 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20261 wlc_phy_rfctrl_override_nphy_rev7(
20262 pi, (0x3 << 13),
20263 lpfgain, core_mask,
20264 off,
20265 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20266 break;
20267 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20268 tgain = value & 0x7fff;
20269 lpfgain = value & 0x8000;
20270 lpfgain = lpfgain >> 14;
20272 wlc_phy_rfctrl_override_nphy_rev7(
20273 pi, (0x1 << 12),
20274 tgain, core_mask, off,
20275 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20276 wlc_phy_rfctrl_override_nphy_rev7(
20277 pi, (0x1 << 13),
20278 lpfgain, core_mask,
20279 off,
20280 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20281 break;
20286 static void
20287 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
20288 u8 coresel, u8 rail, u8 rssi_type)
20290 u16 valuetostuff;
20292 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20293 NPHY_RSSICAL_MAXREAD : offset;
20294 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20295 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20297 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20299 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20300 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20301 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
20302 write_phy_reg(pi, 0x1a6, valuetostuff);
20304 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20305 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20306 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
20307 write_phy_reg(pi, 0x1ac, valuetostuff);
20309 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20310 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20311 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
20312 write_phy_reg(pi, 0x1b2, valuetostuff);
20314 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20315 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20316 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
20317 write_phy_reg(pi, 0x1b8, valuetostuff);
20319 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20320 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20321 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
20322 write_phy_reg(pi, 0x1a4, valuetostuff);
20324 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20325 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20326 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
20327 write_phy_reg(pi, 0x1aa, valuetostuff);
20329 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20330 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20331 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
20332 write_phy_reg(pi, 0x1b0, valuetostuff);
20334 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20335 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20336 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
20337 write_phy_reg(pi, 0x1b6, valuetostuff);
20339 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20340 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20341 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
20342 write_phy_reg(pi, 0x1a5, valuetostuff);
20343 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20344 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20345 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
20346 write_phy_reg(pi, 0x1ab, valuetostuff);
20348 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20349 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20350 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
20351 write_phy_reg(pi, 0x1b1, valuetostuff);
20353 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20354 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20355 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
20356 write_phy_reg(pi, 0x1b7, valuetostuff);
20358 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20359 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20360 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
20361 write_phy_reg(pi, 0x1a7, valuetostuff);
20362 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20363 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20364 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
20365 write_phy_reg(pi, 0x1ad, valuetostuff);
20366 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20367 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20368 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
20369 write_phy_reg(pi, 0x1b3, valuetostuff);
20370 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20371 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20372 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
20373 write_phy_reg(pi, 0x1b9, valuetostuff);
20375 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20376 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20377 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
20378 write_phy_reg(pi, 0x1a8, valuetostuff);
20380 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20381 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20382 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
20383 write_phy_reg(pi, 0x1ae, valuetostuff);
20385 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20386 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20387 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
20388 write_phy_reg(pi, 0x1b4, valuetostuff);
20390 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20391 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20392 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
20393 write_phy_reg(pi, 0x1ba, valuetostuff);
20395 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20396 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20397 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
20398 write_phy_reg(pi, 0x1a9, valuetostuff);
20399 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20400 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20401 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
20402 write_phy_reg(pi, 0x1b5, valuetostuff);
20404 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20405 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20406 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
20407 write_phy_reg(pi, 0x1af, valuetostuff);
20409 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20410 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20411 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
20412 write_phy_reg(pi, 0x1bb, valuetostuff);
20415 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
20417 if (PHY_IPA(pi)) {
20418 if (NREV_GE(pi->pubpi.phy_rev, 7))
20419 write_radio_reg(pi,
20420 ((core == PHY_CORE_0) ?
20421 RADIO_2057_TX0_TX_SSI_MUX :
20422 RADIO_2057_TX1_TX_SSI_MUX),
20423 (CHSPEC_IS5G(pi->radio_chanspec) ?
20424 0xc : 0xe));
20425 else
20426 write_radio_reg(pi,
20427 RADIO_2056_TX_TX_SSI_MUX |
20428 ((core == PHY_CORE_0) ?
20429 RADIO_2056_TX0 : RADIO_2056_TX1),
20430 (CHSPEC_IS5G(pi->radio_chanspec) ?
20431 0xc : 0xe));
20432 } else {
20433 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20434 write_radio_reg(pi,
20435 ((core == PHY_CORE_0) ?
20436 RADIO_2057_TX0_TX_SSI_MUX :
20437 RADIO_2057_TX1_TX_SSI_MUX),
20438 0x11);
20440 if (pi->pubpi.radioid == BCM2057_ID)
20441 write_radio_reg(pi,
20442 RADIO_2057_IQTEST_SEL_PU, 0x1);
20444 } else {
20445 write_radio_reg(pi,
20446 RADIO_2056_TX_TX_SSI_MUX |
20447 ((core == PHY_CORE_0) ?
20448 RADIO_2056_TX0 : RADIO_2056_TX1),
20449 0x11);
20454 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
20456 u16 mask, val;
20457 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
20458 startseq;
20459 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
20460 rfctrlovr_trigger_val;
20461 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20462 u16 rfctrlcmd_val, rfctrlovr_val;
20463 u8 core;
20465 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20466 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20467 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20468 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20470 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20471 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20473 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20474 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20476 mask = (0x1 << 2) |
20477 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20478 mod_phy_reg(pi, 0xf9, mask, 0);
20479 mod_phy_reg(pi, 0xfb, mask, 0);
20481 } else {
20482 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20483 if (core_code == RADIO_MIMO_CORESEL_CORE1
20484 && core == PHY_CORE_1)
20485 continue;
20486 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20487 && core == PHY_CORE_0)
20488 continue;
20490 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20491 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20493 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20494 rssi_type == NPHY_RSSI_SEL_W2 ||
20495 rssi_type == NPHY_RSSI_SEL_NB) {
20496 mod_phy_reg(pi,
20497 (core ==
20498 PHY_CORE_0) ? 0xa6 : 0xa7,
20499 (0x3 << 8), 0);
20501 mask = (0x1 << 2) |
20502 (0x1 << 3) |
20503 (0x1 << 4) | (0x1 << 5);
20504 mod_phy_reg(pi,
20505 (core ==
20506 PHY_CORE_0) ? 0xf9 : 0xfb,
20507 mask, 0);
20509 if (rssi_type == NPHY_RSSI_SEL_W1) {
20510 if (CHSPEC_IS5G(
20511 pi->radio_chanspec)) {
20512 mask = (0x1 << 2);
20513 val = 1 << 2;
20514 } else {
20515 mask = (0x1 << 3);
20516 val = 1 << 3;
20518 } else if (rssi_type ==
20519 NPHY_RSSI_SEL_W2) {
20520 mask = (0x1 << 4);
20521 val = 1 << 4;
20522 } else {
20523 mask = (0x1 << 5);
20524 val = 1 << 5;
20526 mod_phy_reg(pi,
20527 (core ==
20528 PHY_CORE_0) ? 0xf9 : 0xfb,
20529 mask, val);
20531 mask = (0x1 << 5);
20532 val = 1 << 5;
20533 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20534 0xe5 : 0xe6, mask, val);
20535 } else {
20536 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20537 mask = (0x3 << 8);
20538 val = 1 << 8;
20539 mod_phy_reg(pi,
20540 (core ==
20541 PHY_CORE_0) ? 0xa6
20542 : 0xa7, mask, val);
20543 mask = (0x3 << 10);
20544 val = 1 << 10;
20545 mod_phy_reg(pi,
20546 (core ==
20547 PHY_CORE_0) ? 0xa6
20548 : 0xa7, mask, val);
20549 } else if (rssi_type ==
20550 NPHY_RSSI_SEL_IQ) {
20551 mask = (0x3 << 8);
20552 val = 2 << 8;
20553 mod_phy_reg(pi,
20554 (core ==
20555 PHY_CORE_0) ? 0xa6
20556 : 0xa7, mask, val);
20557 mask = (0x3 << 10);
20558 val = 2 << 10;
20559 mod_phy_reg(pi,
20560 (core ==
20561 PHY_CORE_0) ? 0xa6
20562 : 0xa7, mask, val);
20563 } else {
20564 mask = (0x3 << 8);
20565 val = 3 << 8;
20566 mod_phy_reg(pi,
20567 (core ==
20568 PHY_CORE_0) ? 0xa6
20569 : 0xa7, mask, val);
20570 mask = (0x3 << 10);
20571 val = 3 << 10;
20572 mod_phy_reg(pi,
20573 (core ==
20574 PHY_CORE_0) ? 0xa6
20575 : 0xa7, mask, val);
20576 brcms_phy_wr_tx_mux(pi, core);
20577 afectrlovr_rssi_val = 1 << 9;
20578 mod_phy_reg(pi,
20579 (core ==
20580 PHY_CORE_0) ? 0x8f
20581 : 0xa5, (0x1 << 9),
20582 afectrlovr_rssi_val);
20587 } else {
20589 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20590 (rssi_type == NPHY_RSSI_SEL_W2) ||
20591 (rssi_type == NPHY_RSSI_SEL_NB))
20592 val = 0x0;
20593 else if (rssi_type == NPHY_RSSI_SEL_TBD)
20594 val = 0x1;
20595 else if (rssi_type == NPHY_RSSI_SEL_IQ)
20596 val = 0x2;
20597 else
20598 val = 0x3;
20600 mask = ((0x3 << 12) | (0x3 << 14));
20601 val = (val << 12) | (val << 14);
20602 mod_phy_reg(pi, 0xa6, mask, val);
20603 mod_phy_reg(pi, 0xa7, mask, val);
20605 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20606 (rssi_type == NPHY_RSSI_SEL_W2) ||
20607 (rssi_type == NPHY_RSSI_SEL_NB)) {
20608 if (rssi_type == NPHY_RSSI_SEL_W1)
20609 val = 0x1;
20610 if (rssi_type == NPHY_RSSI_SEL_W2)
20611 val = 0x2;
20612 if (rssi_type == NPHY_RSSI_SEL_NB)
20613 val = 0x3;
20615 mask = (0x3 << 4);
20616 val = (val << 4);
20617 mod_phy_reg(pi, 0x7a, mask, val);
20618 mod_phy_reg(pi, 0x7d, mask, val);
20621 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20622 afectrlovr_rssi_val = 0;
20623 rfctrlcmd_rxen_val = 0;
20624 rfctrlcmd_coresel_val = 0;
20625 rfctrlovr_rssi_val = 0;
20626 rfctrlovr_rxen_val = 0;
20627 rfctrlovr_coresel_val = 0;
20628 rfctrlovr_trigger_val = 0;
20629 startseq = 0;
20630 } else {
20631 afectrlovr_rssi_val = 1;
20632 rfctrlcmd_rxen_val = 1;
20633 rfctrlcmd_coresel_val = core_code;
20634 rfctrlovr_rssi_val = 1;
20635 rfctrlovr_rxen_val = 1;
20636 rfctrlovr_coresel_val = 1;
20637 rfctrlovr_trigger_val = 1;
20638 startseq = 1;
20641 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20642 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20643 12) | (afectrlovr_rssi_val << 13);
20644 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20645 afectrlovr_rssi_val);
20647 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20648 (rssi_type == NPHY_RSSI_SEL_W2) ||
20649 (rssi_type == NPHY_RSSI_SEL_NB)) {
20650 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20651 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20652 (rfctrlcmd_coresel_val << 3);
20654 rfctrlovr_mask = ((0x1 << 5) |
20655 (0x1 << 12) |
20656 (0x1 << 1) | (0x1 << 0));
20657 rfctrlovr_val = (rfctrlovr_rssi_val <<
20658 5) |
20659 (rfctrlovr_rxen_val << 12) |
20660 (rfctrlovr_coresel_val << 1) |
20661 (rfctrlovr_trigger_val << 0);
20663 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20664 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20666 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
20667 udelay(20);
20669 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20675 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
20676 u8 nsamps)
20678 s16 rssi0, rssi1;
20679 u16 afectrlCore1_save = 0;
20680 u16 afectrlCore2_save = 0;
20681 u16 afectrlOverride1_save = 0;
20682 u16 afectrlOverride2_save = 0;
20683 u16 rfctrlOverrideAux0_save = 0;
20684 u16 rfctrlOverrideAux1_save = 0;
20685 u16 rfctrlMiscReg1_save = 0;
20686 u16 rfctrlMiscReg2_save = 0;
20687 u16 rfctrlcmd_save = 0;
20688 u16 rfctrloverride_save = 0;
20689 u16 rfctrlrssiothers1_save = 0;
20690 u16 rfctrlrssiothers2_save = 0;
20691 s8 tmp_buf[4];
20692 u8 ctr = 0, samp = 0;
20693 s32 rssi_out_val;
20694 u16 gpiosel_orig;
20696 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20697 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20698 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20699 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20700 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20701 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20702 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20703 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20704 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20705 } else {
20706 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20707 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20708 rfctrloverride_save = read_phy_reg(pi, 0xec);
20709 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20710 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20713 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20715 gpiosel_orig = read_phy_reg(pi, 0xca);
20716 if (NREV_LT(pi->pubpi.phy_rev, 2))
20717 write_phy_reg(pi, 0xca, 5);
20719 for (ctr = 0; ctr < 4; ctr++)
20720 rssi_buf[ctr] = 0;
20722 for (samp = 0; samp < nsamps; samp++) {
20723 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20724 rssi0 = read_phy_reg(pi, 0x1c9);
20725 rssi1 = read_phy_reg(pi, 0x1ca);
20726 } else {
20727 rssi0 = read_phy_reg(pi, 0x219);
20728 rssi1 = read_phy_reg(pi, 0x21a);
20731 ctr = 0;
20732 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
20733 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20734 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
20735 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
20737 for (ctr = 0; ctr < 4; ctr++)
20738 rssi_buf[ctr] += tmp_buf[ctr];
20742 rssi_out_val = rssi_buf[3] & 0xff;
20743 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20744 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20745 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20747 if (NREV_LT(pi->pubpi.phy_rev, 2))
20748 write_phy_reg(pi, 0xca, gpiosel_orig);
20750 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20751 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20752 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20753 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20754 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20755 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20756 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20757 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20758 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20759 } else {
20760 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20761 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20762 write_phy_reg(pi, 0xec, rfctrloverride_save);
20763 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20764 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20767 return rssi_out_val;
20770 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
20772 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20773 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20774 u16 pwrdet_rxtx_core1_save;
20775 u16 pwrdet_rxtx_core2_save;
20776 u16 afectrlCore1_save;
20777 u16 afectrlCore2_save;
20778 u16 afectrlOverride_save;
20779 u16 afectrlOverride2_save;
20780 u16 pd_pll_ts_save;
20781 u16 gpioSel_save;
20782 s32 radio_temp[4];
20783 s32 radio_temp2[4];
20784 u16 syn_tempprocsense_save;
20785 s16 offset = 0;
20787 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20788 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20789 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20790 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
20791 s32 auxADC_Vl;
20792 u16 RfctrlOverride5_save, RfctrlOverride6_save;
20793 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20794 u16 RSSIMultCoef0QPowerDet_save;
20795 u16 tempsense_Rcal;
20797 syn_tempprocsense_save =
20798 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20800 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20801 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20802 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20803 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20804 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20805 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20806 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20807 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20808 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20810 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20811 &auxADC_Vmid_save);
20812 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20813 &auxADC_Av_save);
20814 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20815 &auxADC_rssi_ctrlL_save);
20816 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20817 &auxADC_rssi_ctrlH_save);
20819 write_phy_reg(pi, 0x1ae, 0x0);
20821 auxADC_rssi_ctrlL = 0x0;
20822 auxADC_rssi_ctrlH = 0x20;
20823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20824 &auxADC_rssi_ctrlL);
20825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20826 &auxADC_rssi_ctrlH);
20828 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20830 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20831 tempsense_Rcal | 0x01);
20833 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20834 1, 0, 0,
20835 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20836 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20837 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20838 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20839 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20841 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20842 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20843 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20844 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
20845 udelay(5);
20846 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20847 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20848 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20849 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20850 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20851 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20852 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20853 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20854 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
20855 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
20857 auxADC_Vmid = 0xA3;
20858 auxADC_Av = 0x0;
20859 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20860 &auxADC_Vmid);
20861 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20862 &auxADC_Av);
20864 udelay(3);
20866 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20867 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20868 tempsense_Rcal | 0x03);
20870 udelay(5);
20871 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20873 auxADC_Av = 0x7;
20874 if (radio_temp[1] + radio_temp2[1] < -30) {
20875 auxADC_Vmid = 0x45;
20876 auxADC_Vl = 263;
20877 } else if (radio_temp[1] + radio_temp2[1] < -9) {
20878 auxADC_Vmid = 0x200;
20879 auxADC_Vl = 467;
20880 } else if (radio_temp[1] + radio_temp2[1] < 11) {
20881 auxADC_Vmid = 0x266;
20882 auxADC_Vl = 634;
20883 } else {
20884 auxADC_Vmid = 0x2D5;
20885 auxADC_Vl = 816;
20888 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20889 &auxADC_Vmid);
20890 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20891 &auxADC_Av);
20893 udelay(3);
20895 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20896 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20897 tempsense_Rcal | 0x01);
20899 udelay(5);
20900 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20902 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20903 syn_tempprocsense_save);
20905 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20906 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20907 write_phy_reg(pi, 0x8f, afectrlOverride_save);
20908 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20909 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
20910 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
20911 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
20912 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
20913 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
20915 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20916 &auxADC_Vmid_save);
20917 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20918 &auxADC_Av_save);
20919 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20920 &auxADC_rssi_ctrlL_save);
20921 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20922 &auxADC_rssi_ctrlH_save);
20924 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
20925 + 82 * (auxADC_Vl) - 28861 +
20926 128) / 256;
20928 offset = (s16) pi->phy_tempsense_offset;
20930 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20931 syn_tempprocsense_save =
20932 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
20934 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20935 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20936 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20937 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20938 gpioSel_save = read_phy_reg(pi, 0xca);
20940 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
20942 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20943 if (NREV_LT(pi->pubpi.phy_rev, 7))
20944 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
20946 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20947 if (NREV_GE(pi->pubpi.phy_rev, 7))
20948 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
20949 else
20950 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
20952 radio_temp[0] =
20953 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
20955 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
20956 syn_tempprocsense_save);
20958 write_phy_reg(pi, 0xca, gpioSel_save);
20959 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20960 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20961 write_phy_reg(pi, 0x8f, afectrlOverride_save);
20962 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20964 offset = (s16) pi->phy_tempsense_offset;
20965 } else {
20967 pwrdet_rxtx_core1_save =
20968 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
20969 pwrdet_rxtx_core2_save =
20970 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
20971 core1_txrf_iqcal1_save =
20972 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
20973 core1_txrf_iqcal2_save =
20974 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
20975 core2_txrf_iqcal1_save =
20976 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
20977 core2_txrf_iqcal2_save =
20978 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
20979 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
20981 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20982 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20983 afectrlOverride_save = read_phy_reg(pi, 0xa5);
20984 gpioSel_save = read_phy_reg(pi, 0xca);
20986 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
20987 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
20988 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
20989 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
20990 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
20991 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
20992 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
20994 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20995 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
20997 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20998 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21000 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21001 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21003 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
21004 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
21005 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
21006 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
21008 radio_temp[0] =
21009 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21010 radio_temp[3]);
21012 radio_temp[0] =
21013 (radio_temp[0] +
21014 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21016 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
21018 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
21019 pwrdet_rxtx_core1_save);
21020 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
21021 pwrdet_rxtx_core2_save);
21022 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
21023 core1_txrf_iqcal1_save);
21024 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21025 core2_txrf_iqcal1_save);
21026 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21027 core1_txrf_iqcal2_save);
21028 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21029 core2_txrf_iqcal2_save);
21030 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21032 write_phy_reg(pi, 0xca, gpioSel_save);
21033 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21034 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21035 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21038 return (s16) radio_temp[0] + offset;
21041 static void
21042 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
21044 u8 core;
21046 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21047 if (rssi_type == NPHY_RSSI_SEL_NB) {
21048 if (core == PHY_CORE_0) {
21049 mod_radio_reg(pi,
21050 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21051 RADIO_2055_NBRSSI_VCM_I_MASK,
21052 vcm_buf[2 *
21053 core] <<
21054 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21055 mod_radio_reg(pi,
21056 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21057 RADIO_2055_NBRSSI_VCM_Q_MASK,
21058 vcm_buf[2 * core +
21059 1] <<
21060 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21061 } else {
21062 mod_radio_reg(pi,
21063 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21064 RADIO_2055_NBRSSI_VCM_I_MASK,
21065 vcm_buf[2 *
21066 core] <<
21067 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21068 mod_radio_reg(pi,
21069 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21070 RADIO_2055_NBRSSI_VCM_Q_MASK,
21071 vcm_buf[2 * core +
21072 1] <<
21073 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21075 } else {
21076 if (core == PHY_CORE_0)
21077 mod_radio_reg(pi,
21078 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21079 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21080 vcm_buf[2 *
21081 core] <<
21082 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21083 else
21084 mod_radio_reg(pi,
21085 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21086 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21087 vcm_buf[2 *
21088 core] <<
21089 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21094 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
21096 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21097 wlc_phy_rssi_cal_nphy_rev3(pi);
21098 } else {
21099 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21100 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21101 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21105 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
21107 s32 target_code;
21108 u16 classif_state;
21109 u16 clip_state[2];
21110 u16 rssi_ctrl_state[2], pd_state[2];
21111 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21112 u16 rfctrlintc_override_val;
21113 u16 clip_off[] = { 0xffff, 0xffff };
21114 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
21115 u8 vcm, min_vcm, vcm_tmp[4];
21116 u8 vcm_final[4] = { 0, 0, 0, 0 };
21117 u8 result_idx, ctr;
21118 s32 poll_results[4][4] = {
21119 {0, 0, 0, 0},
21120 {0, 0, 0, 0},
21121 {0, 0, 0, 0},
21122 {0, 0, 0, 0}
21124 s32 poll_miniq[4][2] = {
21125 {0, 0},
21126 {0, 0},
21127 {0, 0},
21128 {0, 0}
21130 s32 min_d, curr_d;
21131 s32 fine_digital_offset[4];
21132 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21133 s32 min_poll;
21135 switch (rssi_type) {
21136 case NPHY_RSSI_SEL_NB:
21137 target_code = NPHY_RSSICAL_NB_TARGET;
21138 break;
21139 case NPHY_RSSI_SEL_W1:
21140 target_code = NPHY_RSSICAL_W1_TARGET;
21141 break;
21142 case NPHY_RSSI_SEL_W2:
21143 target_code = NPHY_RSSICAL_W2_TARGET;
21144 break;
21145 default:
21146 return;
21147 break;
21150 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21151 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21152 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21153 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21155 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21156 rfctrlintc_override_val =
21157 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21159 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21160 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21161 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21162 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21164 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21165 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21166 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21167 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21169 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21170 RADIO_2055_WBRSSI_G2_PD;
21171 pd_state[0] =
21172 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21173 pd_state[1] =
21174 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21175 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21176 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21177 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21178 RADIO_2055_WBRSSI_G2_SEL;
21179 rssi_ctrl_state[0] =
21180 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21181 rssi_ctrl_state[1] =
21182 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21183 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21185 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21186 NPHY_RAIL_I, rssi_type);
21187 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21188 NPHY_RAIL_Q, rssi_type);
21190 for (vcm = 0; vcm < 4; vcm++) {
21192 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21193 if (rssi_type != NPHY_RSSI_SEL_W2)
21194 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21196 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21197 NPHY_RSSICAL_NPOLL);
21199 if ((rssi_type == NPHY_RSSI_SEL_W1)
21200 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21201 for (ctr = 0; ctr < 2; ctr++)
21202 poll_miniq[vcm][ctr] =
21203 min(poll_results[vcm][ctr * 2 + 0],
21204 poll_results[vcm][ctr * 2 + 1]);
21208 for (result_idx = 0; result_idx < 4; result_idx++) {
21209 min_d = NPHY_RSSICAL_MAXD;
21210 min_vcm = 0;
21211 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21212 for (vcm = 0; vcm < 4; vcm++) {
21213 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21214 poll_results[vcm][result_idx] :
21215 poll_miniq[vcm][result_idx / 2]) -
21216 (target_code * NPHY_RSSICAL_NPOLL));
21217 if (curr_d < min_d) {
21218 min_d = curr_d;
21219 min_vcm = vcm;
21221 if (poll_results[vcm][result_idx] < min_poll)
21222 min_poll = poll_results[vcm][result_idx];
21224 vcm_final[result_idx] = min_vcm;
21225 poll_results_min[result_idx] = min_poll;
21228 if (rssi_type != NPHY_RSSI_SEL_W2)
21229 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21231 for (result_idx = 0; result_idx < 4; result_idx++) {
21232 fine_digital_offset[result_idx] =
21233 (target_code * NPHY_RSSICAL_NPOLL) -
21234 poll_results[vcm_final[result_idx]][result_idx];
21235 if (fine_digital_offset[result_idx] < 0) {
21236 fine_digital_offset[result_idx] =
21237 ABS(fine_digital_offset[result_idx]);
21238 fine_digital_offset[result_idx] +=
21239 (NPHY_RSSICAL_NPOLL / 2);
21240 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21241 fine_digital_offset[result_idx] =
21242 -fine_digital_offset[result_idx];
21243 } else {
21244 fine_digital_offset[result_idx] +=
21245 (NPHY_RSSICAL_NPOLL / 2);
21246 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21249 if (poll_results_min[result_idx] ==
21250 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
21251 fine_digital_offset[result_idx] =
21252 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21254 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
21255 (s8)
21256 fine_digital_offset[result_idx],
21257 (result_idx / 2 ==
21258 0) ? RADIO_MIMO_CORESEL_CORE1 :
21259 RADIO_MIMO_CORESEL_CORE2,
21260 (result_idx % 2 ==
21261 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21262 rssi_type);
21265 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21266 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21267 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
21268 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21269 NPHY_RSSI_SEL_NB);
21270 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
21271 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21272 NPHY_RSSI_SEL_W1);
21273 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
21274 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21275 NPHY_RSSI_SEL_W2);
21276 else
21277 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21278 NPHY_RSSI_SEL_W2);
21279 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
21280 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21281 NPHY_RSSI_SEL_NB);
21282 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
21283 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21284 NPHY_RSSI_SEL_W1);
21285 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
21286 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21287 NPHY_RSSI_SEL_W2);
21288 else
21289 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21290 NPHY_RSSI_SEL_W2);
21292 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21294 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21295 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21296 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21297 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21299 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21300 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21302 wlc_phy_resetcca_nphy(pi);
21306 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct brcms_d11rxhdr *wlc_rxh)
21308 struct d11rxhdr *rxh = &wlc_rxh->rxhdr;
21309 s16 rxpwr, rxpwr0, rxpwr1;
21310 s16 phyRx0_l, phyRx2_l;
21312 rxpwr = 0;
21313 rxpwr0 = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21314 rxpwr1 = (le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
21316 if (rxpwr0 > 127)
21317 rxpwr0 -= 256;
21318 if (rxpwr1 > 127)
21319 rxpwr1 -= 256;
21321 phyRx0_l = le16_to_cpu(rxh->PhyRxStatus_0) & 0x00ff;
21322 phyRx2_l = le16_to_cpu(rxh->PhyRxStatus_2) & 0x00ff;
21323 if (phyRx2_l > 127)
21324 phyRx2_l -= 256;
21326 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21327 rxpwr0 = rxpwr1;
21328 rxpwr1 = phyRx2_l;
21331 wlc_rxh->rxpwr[0] = (s8) rxpwr0;
21332 wlc_rxh->rxpwr[1] = (s8) rxpwr1;
21333 wlc_rxh->do_rssi_ma = 0;
21335 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21336 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21337 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21338 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21339 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21340 rxpwr = (rxpwr0 + rxpwr1) >> 1;
21342 return rxpwr;
21345 static void
21346 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
21347 u8 core_code)
21349 u16 mask;
21350 u16 val;
21351 u8 core;
21353 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21354 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21355 if (core_code == RADIO_MIMO_CORESEL_CORE1
21356 && core == PHY_CORE_1)
21357 continue;
21358 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21359 && core == PHY_CORE_0)
21360 continue;
21362 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21364 mask = (0x1 << 10);
21365 val = 1 << 10;
21366 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21367 0x92, mask, val);
21370 if (field == NPHY_RfctrlIntc_override_OFF) {
21372 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21373 0x92, 0);
21375 wlc_phy_force_rfseq_nphy(pi,
21376 NPHY_RFSEQ_RESET2RX);
21377 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21379 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21381 mask = (0x1 << 6) | (0x1 << 7);
21383 val = value << 6;
21384 mod_phy_reg(pi,
21385 (core ==
21386 PHY_CORE_0) ? 0x91 : 0x92,
21387 mask, val);
21389 or_phy_reg(pi,
21390 (core ==
21391 PHY_CORE_0) ? 0x91 : 0x92,
21392 (0x1 << 10));
21394 and_phy_reg(pi, 0x2ff, (u16)
21395 ~(0x3 << 14));
21396 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21397 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21398 } else {
21400 mask = (0x1 << 6) |
21401 (0x1 << 7) |
21402 (0x1 << 8) | (0x1 << 9);
21403 val = value << 6;
21404 mod_phy_reg(pi,
21405 (core ==
21406 PHY_CORE_0) ? 0x91 : 0x92,
21407 mask, val);
21409 mask = (0x1 << 0);
21410 val = 1 << 0;
21411 mod_phy_reg(pi,
21412 (core ==
21413 PHY_CORE_0) ? 0xe7 : 0xec,
21414 mask, val);
21416 mask = (core == PHY_CORE_0) ?
21417 (0x1 << 0) : (0x1 << 1);
21418 val = 1 << ((core == PHY_CORE_0) ?
21419 0 : 1);
21420 mod_phy_reg(pi, 0x78, mask, val);
21422 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21423 != 0), 10000);
21424 if (WARN(read_phy_reg(pi, 0x78) & val,
21425 "HW error: override failed"))
21426 return;
21428 mask = (0x1 << 0);
21429 val = 0 << 0;
21430 mod_phy_reg(pi,
21431 (core ==
21432 PHY_CORE_0) ? 0xe7 : 0xec,
21433 mask, val);
21435 } else if (field == NPHY_RfctrlIntc_override_PA) {
21436 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21438 mask = (0x1 << 4) | (0x1 << 5);
21440 if (CHSPEC_IS5G(pi->radio_chanspec))
21441 val = value << 5;
21442 else
21443 val = value << 4;
21445 mod_phy_reg(pi,
21446 (core ==
21447 PHY_CORE_0) ? 0x91 : 0x92,
21448 mask, val);
21450 or_phy_reg(pi,
21451 (core ==
21452 PHY_CORE_0) ? 0x91 : 0x92,
21453 (0x1 << 12));
21454 } else {
21456 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21457 mask = (0x1 << 5);
21458 val = value << 5;
21459 } else {
21460 mask = (0x1 << 4);
21461 val = value << 4;
21463 mod_phy_reg(pi,
21464 (core ==
21465 PHY_CORE_0) ? 0x91 : 0x92,
21466 mask, val);
21468 } else if (field ==
21469 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21470 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21471 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21473 mask = (0x1 << 0);
21474 val = value << 0;
21475 mod_phy_reg(pi,
21476 (core ==
21477 PHY_CORE_0) ? 0x91
21478 : 0x92, mask, val);
21480 mask = (0x1 << 2);
21481 mod_phy_reg(pi,
21482 (core ==
21483 PHY_CORE_0) ? 0x91
21484 : 0x92, mask, 0);
21485 } else {
21487 mask = (0x1 << 2);
21488 val = value << 2;
21489 mod_phy_reg(pi,
21490 (core ==
21491 PHY_CORE_0) ? 0x91
21492 : 0x92, mask, val);
21494 mask = (0x1 << 0);
21495 mod_phy_reg(pi,
21496 (core ==
21497 PHY_CORE_0) ? 0x91
21498 : 0x92, mask, 0);
21501 mask = (0x1 << 11);
21502 val = 1 << 11;
21503 mod_phy_reg(pi,
21504 (core ==
21505 PHY_CORE_0) ? 0x91 : 0x92,
21506 mask, val);
21507 } else {
21509 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21510 mask = (0x1 << 0);
21511 val = value << 0;
21512 } else {
21513 mask = (0x1 << 2);
21514 val = value << 2;
21516 mod_phy_reg(pi,
21517 (core ==
21518 PHY_CORE_0) ? 0x91 : 0x92,
21519 mask, val);
21521 } else if (field ==
21522 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21523 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21524 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21526 mask = (0x1 << 1);
21527 val = value << 1;
21528 mod_phy_reg(pi,
21529 (core ==
21530 PHY_CORE_0) ? 0x91
21531 : 0x92, mask, val);
21533 mask = (0x1 << 3);
21534 mod_phy_reg(pi,
21535 (core ==
21536 PHY_CORE_0) ? 0x91
21537 : 0x92, mask, 0);
21538 } else {
21540 mask = (0x1 << 3);
21541 val = value << 3;
21542 mod_phy_reg(pi,
21543 (core ==
21544 PHY_CORE_0) ? 0x91
21545 : 0x92, mask, val);
21547 mask = (0x1 << 1);
21548 mod_phy_reg(pi,
21549 (core ==
21550 PHY_CORE_0) ? 0x91
21551 : 0x92, mask, 0);
21554 mask = (0x1 << 11);
21555 val = 1 << 11;
21556 mod_phy_reg(pi,
21557 (core ==
21558 PHY_CORE_0) ? 0x91 : 0x92,
21559 mask, val);
21560 } else {
21562 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21563 mask = (0x1 << 1);
21564 val = value << 1;
21565 } else {
21566 mask = (0x1 << 3);
21567 val = value << 3;
21569 mod_phy_reg(pi,
21570 (core ==
21571 PHY_CORE_0) ? 0x91 : 0x92,
21572 mask, val);
21579 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
21581 u16 classif_state;
21582 u16 clip_state[2];
21583 u16 clip_off[] = { 0xffff, 0xffff };
21584 s32 target_code;
21585 u8 vcm, min_vcm;
21586 u8 vcm_final = 0;
21587 u8 result_idx;
21588 s32 poll_results[8][4] = {
21589 {0, 0, 0, 0},
21590 {0, 0, 0, 0},
21591 {0, 0, 0, 0},
21592 {0, 0, 0, 0},
21593 {0, 0, 0, 0},
21594 {0, 0, 0, 0},
21595 {0, 0, 0, 0},
21596 {0, 0, 0, 0}
21598 s32 poll_result_core[4] = { 0, 0, 0, 0 };
21599 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21600 s32 fine_digital_offset[4];
21601 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21602 s32 min_poll;
21603 u8 vcm_level_max;
21604 u8 core;
21605 u8 wb_cnt;
21606 u8 rssi_type;
21607 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21608 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21609 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21610 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21611 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21612 u16 NPHY_RfctrlCmd_save;
21613 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21614 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
21615 u8 rxcore_state;
21616 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21617 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21618 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21619 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
21621 NPHY_REV7_RfctrlOverride3_save =
21622 NPHY_REV7_RfctrlOverride4_save =
21623 NPHY_REV7_RfctrlOverride5_save =
21624 NPHY_REV7_RfctrlOverride6_save =
21625 NPHY_REV7_RfctrlMiscReg3_save =
21626 NPHY_REV7_RfctrlMiscReg4_save =
21627 NPHY_REV7_RfctrlMiscReg5_save =
21628 NPHY_REV7_RfctrlMiscReg6_save = 0;
21630 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21631 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21632 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21633 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21635 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21636 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21637 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21638 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21639 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21640 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21641 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21642 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21643 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21644 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21645 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21646 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21647 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21649 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21650 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21651 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21652 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21653 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21654 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21655 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21656 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21657 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21658 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21660 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21661 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21663 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21664 RADIO_MIMO_CORESEL_ALLRXTX);
21665 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21666 RADIO_MIMO_CORESEL_ALLRXTX);
21668 if (NREV_GE(pi->pubpi.phy_rev, 7))
21669 wlc_phy_rfctrl_override_1tomany_nphy(
21671 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21672 0, 0, 0);
21673 else
21674 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21676 if (NREV_GE(pi->pubpi.phy_rev, 7))
21677 wlc_phy_rfctrl_override_1tomany_nphy(
21679 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21680 1, 0, 0);
21681 else
21682 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21684 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21685 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21686 1, 0, 0,
21687 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21688 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21689 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21690 } else {
21691 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21692 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21695 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21696 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21697 wlc_phy_rfctrl_override_nphy_rev7(
21698 pi, (0x1 << 5),
21699 0, 0, 0,
21700 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21701 wlc_phy_rfctrl_override_nphy_rev7(
21702 pi, (0x1 << 4), 1, 0,
21704 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21705 } else {
21706 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21707 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21710 } else {
21711 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21712 wlc_phy_rfctrl_override_nphy_rev7(
21713 pi, (0x1 << 4),
21714 0, 0, 0,
21715 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21716 wlc_phy_rfctrl_override_nphy_rev7(
21717 pi, (0x1 << 5), 1, 0,
21719 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21720 } else {
21721 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21722 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21726 rxcore_state = wlc_phy_rxcore_getstate_nphy(
21727 (struct brcms_phy_pub *) pi);
21729 vcm_level_max = 8;
21731 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21733 if ((rxcore_state & (1 << core)) == 0)
21734 continue;
21736 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21737 core ==
21738 PHY_CORE_0 ?
21739 RADIO_MIMO_CORESEL_CORE1 :
21740 RADIO_MIMO_CORESEL_CORE2,
21741 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21742 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21743 core ==
21744 PHY_CORE_0 ?
21745 RADIO_MIMO_CORESEL_CORE1 :
21746 RADIO_MIMO_CORESEL_CORE2,
21747 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21749 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21750 if (NREV_GE(pi->pubpi.phy_rev, 7))
21751 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21752 RADIO_2057_NB_MASTER_CORE0 :
21753 RADIO_2057_NB_MASTER_CORE1,
21754 RADIO_2057_VCM_MASK, vcm);
21755 else
21756 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21757 ((core ==
21758 PHY_CORE_0) ? RADIO_2056_RX0 :
21759 RADIO_2056_RX1),
21760 RADIO_2056_VCM_MASK,
21761 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21763 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21764 &poll_results[vcm][0],
21765 NPHY_RSSICAL_NPOLL);
21768 for (result_idx = 0; result_idx < 4; result_idx++) {
21769 if ((core == result_idx / 2) &&
21770 (result_idx % 2 == 0)) {
21772 min_d = NPHY_RSSICAL_MAXD;
21773 min_vcm = 0;
21774 min_poll =
21775 NPHY_RSSICAL_MAXREAD *
21776 NPHY_RSSICAL_NPOLL + 1;
21777 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21778 curr_d =
21779 poll_results[vcm][result_idx] *
21780 poll_results[vcm][result_idx] +
21781 poll_results[vcm][result_idx +
21782 1] *
21783 poll_results[vcm][result_idx +
21785 if (curr_d < min_d) {
21786 min_d = curr_d;
21787 min_vcm = vcm;
21789 if (poll_results[vcm][result_idx] <
21790 min_poll)
21791 min_poll =
21792 poll_results[vcm]
21793 [result_idx];
21795 vcm_final = min_vcm;
21796 poll_results_min[result_idx] = min_poll;
21800 if (NREV_GE(pi->pubpi.phy_rev, 7))
21801 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21802 RADIO_2057_NB_MASTER_CORE0 :
21803 RADIO_2057_NB_MASTER_CORE1,
21804 RADIO_2057_VCM_MASK, vcm_final);
21805 else
21806 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21807 ((core ==
21808 PHY_CORE_0) ? RADIO_2056_RX0 :
21809 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21810 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21812 for (result_idx = 0; result_idx < 4; result_idx++) {
21813 if (core == result_idx / 2) {
21814 fine_digital_offset[result_idx] =
21815 (NPHY_RSSICAL_NB_TARGET *
21816 NPHY_RSSICAL_NPOLL) -
21817 poll_results[vcm_final][result_idx];
21818 if (fine_digital_offset[result_idx] < 0) {
21819 fine_digital_offset[result_idx] =
21820 ABS(fine_digital_offset
21821 [result_idx]);
21822 fine_digital_offset[result_idx] +=
21823 (NPHY_RSSICAL_NPOLL / 2);
21824 fine_digital_offset[result_idx] /=
21825 NPHY_RSSICAL_NPOLL;
21826 fine_digital_offset[result_idx] =
21827 -fine_digital_offset[
21828 result_idx];
21829 } else {
21830 fine_digital_offset[result_idx] +=
21831 (NPHY_RSSICAL_NPOLL / 2);
21832 fine_digital_offset[result_idx] /=
21833 NPHY_RSSICAL_NPOLL;
21836 if (poll_results_min[result_idx] ==
21837 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
21838 fine_digital_offset[result_idx] =
21839 (NPHY_RSSICAL_NB_TARGET -
21840 NPHY_RSSICAL_MAXREAD - 1);
21842 wlc_phy_scale_offset_rssi_nphy(
21843 pi, 0x0,
21844 (s8)
21845 fine_digital_offset
21846 [result_idx],
21847 (result_idx / 2 == 0) ?
21848 RADIO_MIMO_CORESEL_CORE1 :
21849 RADIO_MIMO_CORESEL_CORE2,
21850 (result_idx % 2 == 0) ?
21851 NPHY_RAIL_I : NPHY_RAIL_Q,
21852 NPHY_RSSI_SEL_NB);
21858 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21860 if ((rxcore_state & (1 << core)) == 0)
21861 continue;
21863 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
21864 if (wb_cnt == 0) {
21865 rssi_type = NPHY_RSSI_SEL_W1;
21866 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
21867 } else {
21868 rssi_type = NPHY_RSSI_SEL_W2;
21869 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
21872 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21873 core ==
21874 PHY_CORE_0 ?
21875 RADIO_MIMO_CORESEL_CORE1
21877 RADIO_MIMO_CORESEL_CORE2,
21878 NPHY_RAIL_I, rssi_type);
21879 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21880 core ==
21881 PHY_CORE_0 ?
21882 RADIO_MIMO_CORESEL_CORE1
21884 RADIO_MIMO_CORESEL_CORE2,
21885 NPHY_RAIL_Q, rssi_type);
21887 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
21888 NPHY_RSSICAL_NPOLL);
21890 for (result_idx = 0; result_idx < 4; result_idx++) {
21891 if (core == result_idx / 2) {
21892 fine_digital_offset[result_idx] =
21893 (target_code *
21894 NPHY_RSSICAL_NPOLL) -
21895 poll_result_core[result_idx];
21896 if (fine_digital_offset[result_idx] <
21897 0) {
21898 fine_digital_offset[result_idx]
21899 = ABS(
21900 fine_digital_offset
21901 [result_idx]);
21902 fine_digital_offset[result_idx]
21903 += (NPHY_RSSICAL_NPOLL
21904 / 2);
21905 fine_digital_offset[result_idx]
21906 /= NPHY_RSSICAL_NPOLL;
21907 fine_digital_offset[result_idx]
21908 = -fine_digital_offset
21909 [result_idx];
21910 } else {
21911 fine_digital_offset[result_idx]
21912 += (NPHY_RSSICAL_NPOLL
21913 / 2);
21914 fine_digital_offset[result_idx]
21915 /= NPHY_RSSICAL_NPOLL;
21918 wlc_phy_scale_offset_rssi_nphy(
21919 pi, 0x0,
21920 (s8)
21921 fine_digital_offset
21922 [core *
21924 (core == PHY_CORE_0) ?
21925 RADIO_MIMO_CORESEL_CORE1 :
21926 RADIO_MIMO_CORESEL_CORE2,
21927 (result_idx % 2 == 0) ?
21928 NPHY_RAIL_I :
21929 NPHY_RAIL_Q,
21930 rssi_type);
21937 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
21938 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
21940 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
21942 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
21943 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
21944 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
21946 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
21947 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
21948 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
21950 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
21951 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
21952 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
21953 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
21954 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
21955 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
21956 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21957 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
21958 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
21959 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
21960 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
21962 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
21963 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
21964 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
21965 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
21966 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
21967 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21968 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
21969 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
21970 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
21971 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
21973 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
21974 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
21976 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21977 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21978 pi->rssical_cache.rssical_radio_regs_2G[0] =
21979 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
21980 pi->rssical_cache.rssical_radio_regs_2G[1] =
21981 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
21982 } else {
21983 pi->rssical_cache.rssical_radio_regs_2G[0] =
21984 read_radio_reg(pi,
21985 RADIO_2056_RX_RSSI_MISC |
21986 RADIO_2056_RX0);
21987 pi->rssical_cache.rssical_radio_regs_2G[1] =
21988 read_radio_reg(pi,
21989 RADIO_2056_RX_RSSI_MISC |
21990 RADIO_2056_RX1);
21993 pi->rssical_cache.rssical_phyregs_2G[0] =
21994 read_phy_reg(pi, 0x1a6);
21995 pi->rssical_cache.rssical_phyregs_2G[1] =
21996 read_phy_reg(pi, 0x1ac);
21997 pi->rssical_cache.rssical_phyregs_2G[2] =
21998 read_phy_reg(pi, 0x1b2);
21999 pi->rssical_cache.rssical_phyregs_2G[3] =
22000 read_phy_reg(pi, 0x1b8);
22001 pi->rssical_cache.rssical_phyregs_2G[4] =
22002 read_phy_reg(pi, 0x1a4);
22003 pi->rssical_cache.rssical_phyregs_2G[5] =
22004 read_phy_reg(pi, 0x1aa);
22005 pi->rssical_cache.rssical_phyregs_2G[6] =
22006 read_phy_reg(pi, 0x1b0);
22007 pi->rssical_cache.rssical_phyregs_2G[7] =
22008 read_phy_reg(pi, 0x1b6);
22009 pi->rssical_cache.rssical_phyregs_2G[8] =
22010 read_phy_reg(pi, 0x1a5);
22011 pi->rssical_cache.rssical_phyregs_2G[9] =
22012 read_phy_reg(pi, 0x1ab);
22013 pi->rssical_cache.rssical_phyregs_2G[10] =
22014 read_phy_reg(pi, 0x1b1);
22015 pi->rssical_cache.rssical_phyregs_2G[11] =
22016 read_phy_reg(pi, 0x1b7);
22018 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22019 } else {
22020 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22021 pi->rssical_cache.rssical_radio_regs_5G[0] =
22022 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22023 pi->rssical_cache.rssical_radio_regs_5G[1] =
22024 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22025 } else {
22026 pi->rssical_cache.rssical_radio_regs_5G[0] =
22027 read_radio_reg(pi,
22028 RADIO_2056_RX_RSSI_MISC |
22029 RADIO_2056_RX0);
22030 pi->rssical_cache.rssical_radio_regs_5G[1] =
22031 read_radio_reg(pi,
22032 RADIO_2056_RX_RSSI_MISC |
22033 RADIO_2056_RX1);
22036 pi->rssical_cache.rssical_phyregs_5G[0] =
22037 read_phy_reg(pi, 0x1a6);
22038 pi->rssical_cache.rssical_phyregs_5G[1] =
22039 read_phy_reg(pi, 0x1ac);
22040 pi->rssical_cache.rssical_phyregs_5G[2] =
22041 read_phy_reg(pi, 0x1b2);
22042 pi->rssical_cache.rssical_phyregs_5G[3] =
22043 read_phy_reg(pi, 0x1b8);
22044 pi->rssical_cache.rssical_phyregs_5G[4] =
22045 read_phy_reg(pi, 0x1a4);
22046 pi->rssical_cache.rssical_phyregs_5G[5] =
22047 read_phy_reg(pi, 0x1aa);
22048 pi->rssical_cache.rssical_phyregs_5G[6] =
22049 read_phy_reg(pi, 0x1b0);
22050 pi->rssical_cache.rssical_phyregs_5G[7] =
22051 read_phy_reg(pi, 0x1b6);
22052 pi->rssical_cache.rssical_phyregs_5G[8] =
22053 read_phy_reg(pi, 0x1a5);
22054 pi->rssical_cache.rssical_phyregs_5G[9] =
22055 read_phy_reg(pi, 0x1ab);
22056 pi->rssical_cache.rssical_phyregs_5G[10] =
22057 read_phy_reg(pi, 0x1b1);
22058 pi->rssical_cache.rssical_phyregs_5G[11] =
22059 read_phy_reg(pi, 0x1b7);
22061 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22064 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22065 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22068 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
22070 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22071 if (pi->nphy_rssical_chanspec_2G == 0)
22072 return;
22074 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22075 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22076 RADIO_2057_VCM_MASK,
22077 pi->rssical_cache.
22078 rssical_radio_regs_2G[0]);
22079 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22080 RADIO_2057_VCM_MASK,
22081 pi->rssical_cache.
22082 rssical_radio_regs_2G[1]);
22083 } else {
22084 mod_radio_reg(pi,
22085 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22086 RADIO_2056_VCM_MASK,
22087 pi->rssical_cache.
22088 rssical_radio_regs_2G[0]);
22089 mod_radio_reg(pi,
22090 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22091 RADIO_2056_VCM_MASK,
22092 pi->rssical_cache.
22093 rssical_radio_regs_2G[1]);
22096 write_phy_reg(pi, 0x1a6,
22097 pi->rssical_cache.rssical_phyregs_2G[0]);
22098 write_phy_reg(pi, 0x1ac,
22099 pi->rssical_cache.rssical_phyregs_2G[1]);
22100 write_phy_reg(pi, 0x1b2,
22101 pi->rssical_cache.rssical_phyregs_2G[2]);
22102 write_phy_reg(pi, 0x1b8,
22103 pi->rssical_cache.rssical_phyregs_2G[3]);
22104 write_phy_reg(pi, 0x1a4,
22105 pi->rssical_cache.rssical_phyregs_2G[4]);
22106 write_phy_reg(pi, 0x1aa,
22107 pi->rssical_cache.rssical_phyregs_2G[5]);
22108 write_phy_reg(pi, 0x1b0,
22109 pi->rssical_cache.rssical_phyregs_2G[6]);
22110 write_phy_reg(pi, 0x1b6,
22111 pi->rssical_cache.rssical_phyregs_2G[7]);
22112 write_phy_reg(pi, 0x1a5,
22113 pi->rssical_cache.rssical_phyregs_2G[8]);
22114 write_phy_reg(pi, 0x1ab,
22115 pi->rssical_cache.rssical_phyregs_2G[9]);
22116 write_phy_reg(pi, 0x1b1,
22117 pi->rssical_cache.rssical_phyregs_2G[10]);
22118 write_phy_reg(pi, 0x1b7,
22119 pi->rssical_cache.rssical_phyregs_2G[11]);
22121 } else {
22122 if (pi->nphy_rssical_chanspec_5G == 0)
22123 return;
22125 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22126 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22127 RADIO_2057_VCM_MASK,
22128 pi->rssical_cache.
22129 rssical_radio_regs_5G[0]);
22130 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22131 RADIO_2057_VCM_MASK,
22132 pi->rssical_cache.
22133 rssical_radio_regs_5G[1]);
22134 } else {
22135 mod_radio_reg(pi,
22136 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22137 RADIO_2056_VCM_MASK,
22138 pi->rssical_cache.
22139 rssical_radio_regs_5G[0]);
22140 mod_radio_reg(pi,
22141 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22142 RADIO_2056_VCM_MASK,
22143 pi->rssical_cache.
22144 rssical_radio_regs_5G[1]);
22147 write_phy_reg(pi, 0x1a6,
22148 pi->rssical_cache.rssical_phyregs_5G[0]);
22149 write_phy_reg(pi, 0x1ac,
22150 pi->rssical_cache.rssical_phyregs_5G[1]);
22151 write_phy_reg(pi, 0x1b2,
22152 pi->rssical_cache.rssical_phyregs_5G[2]);
22153 write_phy_reg(pi, 0x1b8,
22154 pi->rssical_cache.rssical_phyregs_5G[3]);
22155 write_phy_reg(pi, 0x1a4,
22156 pi->rssical_cache.rssical_phyregs_5G[4]);
22157 write_phy_reg(pi, 0x1aa,
22158 pi->rssical_cache.rssical_phyregs_5G[5]);
22159 write_phy_reg(pi, 0x1b0,
22160 pi->rssical_cache.rssical_phyregs_5G[6]);
22161 write_phy_reg(pi, 0x1b6,
22162 pi->rssical_cache.rssical_phyregs_5G[7]);
22163 write_phy_reg(pi, 0x1a5,
22164 pi->rssical_cache.rssical_phyregs_5G[8]);
22165 write_phy_reg(pi, 0x1ab,
22166 pi->rssical_cache.rssical_phyregs_5G[9]);
22167 write_phy_reg(pi, 0x1b1,
22168 pi->rssical_cache.rssical_phyregs_5G[10]);
22169 write_phy_reg(pi, 0x1b7,
22170 pi->rssical_cache.rssical_phyregs_5G[11]);
22174 static u16
22175 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
22176 u8 dac_test_mode)
22178 u8 phy_bw, is_phybw40;
22179 u16 num_samps, t, spur;
22180 s32 theta = 0, rot = 0;
22181 u32 tbl_len;
22182 struct cs32 *tone_buf = NULL;
22184 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22185 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22186 tbl_len = (phy_bw << 3);
22188 if (dac_test_mode == 1) {
22189 spur = read_phy_reg(pi, 0x01);
22190 spur = (spur >> 15) & 1;
22191 phy_bw = (spur == 1) ? 82 : 80;
22192 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22194 tbl_len = (phy_bw << 1);
22197 tone_buf = kmalloc(sizeof(struct cs32) * tbl_len, GFP_ATOMIC);
22198 if (tone_buf == NULL)
22199 return 0;
22201 num_samps = (u16) tbl_len;
22202 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22203 theta = 0;
22205 for (t = 0; t < num_samps; t++) {
22207 wlc_phy_cordic(theta, &tone_buf[t]);
22209 theta += rot;
22211 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
22212 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
22215 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22217 kfree(tone_buf);
22219 return num_samps;
22223 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
22224 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
22226 u16 num_samps;
22227 u16 loops = 0xffff;
22228 u16 wait = 0;
22230 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
22231 dac_test_mode);
22232 if (num_samps == 0)
22233 return -EBADE;
22235 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22236 dac_test_mode, modify_bbmult);
22238 return 0;
22241 static void
22242 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cs32 *tone_buf,
22243 u16 num_samps)
22245 u16 t;
22246 u32 *data_buf = NULL;
22248 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
22249 if (data_buf == NULL)
22250 return;
22252 if (pi->phyhang_avoid)
22253 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22255 for (t = 0; t < num_samps; t++)
22256 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22257 (((unsigned int)tone_buf[t].q) & 0x3ff);
22258 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22259 data_buf);
22261 kfree(data_buf);
22263 if (pi->phyhang_avoid)
22264 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22267 static void
22268 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
22269 u16 wait, u8 iqmode, u8 dac_test_mode,
22270 bool modify_bbmult)
22272 u16 bb_mult;
22273 u8 phy_bw, sample_cmd;
22274 u16 orig_RfseqCoreActv;
22275 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
22276 lpf_bw_ctl_miscreg4;
22278 if (pi->phyhang_avoid)
22279 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22281 phy_bw = 20;
22282 if (CHSPEC_IS40(pi->radio_chanspec))
22283 phy_bw = 40;
22285 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22287 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22288 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22289 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22290 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22291 (0x7 << 8);
22292 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22293 (0x7 << 8);
22294 } else {
22295 wlc_phy_rfctrl_override_nphy_rev7(
22297 (0x1 << 7),
22298 wlc_phy_read_lpf_bw_ctl_nphy
22299 (pi,
22300 0), 0, 0,
22301 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22303 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
22305 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22306 (0x7 << 8);
22307 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22308 (0x7 << 8);
22312 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22314 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22315 &bb_mult);
22316 pi->nphy_bb_mult_save =
22317 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22320 if (modify_bbmult) {
22321 bb_mult = (phy_bw == 20) ? 100 : 71;
22322 bb_mult = (bb_mult << 8) + bb_mult;
22323 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22324 &bb_mult);
22327 if (pi->phyhang_avoid)
22328 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22330 write_phy_reg(pi, 0xc6, num_samps - 1);
22332 if (loops != 0xffff)
22333 write_phy_reg(pi, 0xc4, loops - 1);
22334 else
22335 write_phy_reg(pi, 0xc4, loops);
22337 write_phy_reg(pi, 0xc5, wait);
22339 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22340 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22341 if (iqmode) {
22343 and_phy_reg(pi, 0xc2, 0x7FFF);
22345 or_phy_reg(pi, 0xc2, 0x8000);
22346 } else {
22348 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22349 write_phy_reg(pi, 0xc3, sample_cmd);
22352 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22354 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22357 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
22359 u16 playback_status;
22360 u16 bb_mult;
22362 if (pi->phyhang_avoid)
22363 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22365 playback_status = read_phy_reg(pi, 0xc7);
22366 if (playback_status & 0x1)
22367 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22368 else if (playback_status & 0x2)
22369 and_phy_reg(pi, 0xc2,
22370 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
22372 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
22374 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22376 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22377 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22378 &bb_mult);
22380 pi->nphy_bb_mult_save = 0;
22383 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22384 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22385 wlc_phy_rfctrl_override_nphy_rev7(
22387 (0x1 << 7),
22388 0, 0, 1,
22389 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22390 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
22394 if (pi->phyhang_avoid)
22395 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22398 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
22400 u32 *tx_pwrctrl_tbl = NULL;
22401 uint phyrev = pi->pubpi.phy_rev;
22403 if (PHY_IPA(pi)) {
22404 tx_pwrctrl_tbl =
22405 wlc_phy_get_ipa_gaintbl_nphy(pi);
22406 } else {
22407 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22408 if (NREV_IS(phyrev, 3))
22409 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
22410 else if (NREV_IS(phyrev, 4))
22411 tx_pwrctrl_tbl =
22412 (pi->srom_fem5g.extpagain == 3) ?
22413 nphy_tpc_5GHz_txgain_HiPwrEPA :
22414 nphy_tpc_5GHz_txgain_rev4;
22415 else
22416 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
22417 } else {
22418 if (NREV_GE(phyrev, 7)) {
22419 if (pi->pubpi.radiorev == 3)
22420 tx_pwrctrl_tbl =
22421 nphy_tpc_txgain_epa_2057rev3;
22422 else if (pi->pubpi.radiorev == 5)
22423 tx_pwrctrl_tbl =
22424 nphy_tpc_txgain_epa_2057rev5;
22425 } else {
22426 if (NREV_GE(phyrev, 5) &&
22427 (pi->srom_fem2g.extpagain == 3))
22428 tx_pwrctrl_tbl =
22429 nphy_tpc_txgain_HiPwrEPA;
22430 else
22431 tx_pwrctrl_tbl =
22432 nphy_tpc_txgain_rev3;
22436 return tx_pwrctrl_tbl;
22439 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
22441 u16 base_idx[2], curr_gain[2];
22442 u8 core_no;
22443 struct nphy_txgains target_gain;
22444 u32 *tx_pwrctrl_tbl = NULL;
22446 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22447 if (pi->phyhang_avoid)
22448 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22450 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22451 curr_gain);
22453 if (pi->phyhang_avoid)
22454 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22456 for (core_no = 0; core_no < 2; core_no++) {
22457 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22458 target_gain.ipa[core_no] =
22459 curr_gain[core_no] & 0x0007;
22460 target_gain.pad[core_no] =
22461 ((curr_gain[core_no] & 0x00F8) >> 3);
22462 target_gain.pga[core_no] =
22463 ((curr_gain[core_no] & 0x0F00) >> 8);
22464 target_gain.txgm[core_no] =
22465 ((curr_gain[core_no] & 0x7000) >> 12);
22466 target_gain.txlpf[core_no] =
22467 ((curr_gain[core_no] & 0x8000) >> 15);
22468 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22469 target_gain.ipa[core_no] =
22470 curr_gain[core_no] & 0x000F;
22471 target_gain.pad[core_no] =
22472 ((curr_gain[core_no] & 0x00F0) >> 4);
22473 target_gain.pga[core_no] =
22474 ((curr_gain[core_no] & 0x0F00) >> 8);
22475 target_gain.txgm[core_no] =
22476 ((curr_gain[core_no] & 0x7000) >> 12);
22477 } else {
22478 target_gain.ipa[core_no] =
22479 curr_gain[core_no] & 0x0003;
22480 target_gain.pad[core_no] =
22481 ((curr_gain[core_no] & 0x000C) >> 2);
22482 target_gain.pga[core_no] =
22483 ((curr_gain[core_no] & 0x0070) >> 4);
22484 target_gain.txgm[core_no] =
22485 ((curr_gain[core_no] & 0x0380) >> 7);
22488 } else {
22489 uint phyrev = pi->pubpi.phy_rev;
22491 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22492 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22493 for (core_no = 0; core_no < 2; core_no++) {
22494 if (NREV_GE(phyrev, 3)) {
22495 tx_pwrctrl_tbl =
22496 brcms_phy_get_tx_pwrctrl_tbl(pi);
22497 if (NREV_GE(phyrev, 7)) {
22498 target_gain.ipa[core_no] =
22499 (tx_pwrctrl_tbl
22500 [base_idx[core_no]]
22501 >> 16) & 0x7;
22502 target_gain.pad[core_no] =
22503 (tx_pwrctrl_tbl
22504 [base_idx[core_no]]
22505 >> 19) & 0x1f;
22506 target_gain.pga[core_no] =
22507 (tx_pwrctrl_tbl
22508 [base_idx[core_no]]
22509 >> 24) & 0xf;
22510 target_gain.txgm[core_no] =
22511 (tx_pwrctrl_tbl
22512 [base_idx[core_no]]
22513 >> 28) & 0x7;
22514 target_gain.txlpf[core_no] =
22515 (tx_pwrctrl_tbl
22516 [base_idx[core_no]]
22517 >> 31) & 0x1;
22518 } else {
22519 target_gain.ipa[core_no] =
22520 (tx_pwrctrl_tbl
22521 [base_idx[core_no]]
22522 >> 16) & 0xf;
22523 target_gain.pad[core_no] =
22524 (tx_pwrctrl_tbl
22525 [base_idx[core_no]]
22526 >> 20) & 0xf;
22527 target_gain.pga[core_no] =
22528 (tx_pwrctrl_tbl
22529 [base_idx[core_no]]
22530 >> 24) & 0xf;
22531 target_gain.txgm[core_no] =
22532 (tx_pwrctrl_tbl
22533 [base_idx[core_no]]
22534 >> 28) & 0x7;
22536 } else {
22537 target_gain.ipa[core_no] =
22538 (nphy_tpc_txgain[base_idx[core_no]] >>
22539 16) & 0x3;
22540 target_gain.pad[core_no] =
22541 (nphy_tpc_txgain[base_idx[core_no]] >>
22542 18) & 0x3;
22543 target_gain.pga[core_no] =
22544 (nphy_tpc_txgain[base_idx[core_no]] >>
22545 20) & 0x7;
22546 target_gain.txgm[core_no] =
22547 (nphy_tpc_txgain[base_idx[core_no]] >>
22548 23) & 0x7;
22553 return target_gain;
22556 static void
22557 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
22558 struct nphy_txgains target_gain,
22559 struct nphy_iqcal_params *params)
22561 u8 k;
22562 int idx;
22563 u16 gain_index;
22564 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
22566 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22567 if (NREV_GE(pi->pubpi.phy_rev, 7))
22568 params->txlpf = target_gain.txlpf[core_no];
22570 params->txgm = target_gain.txgm[core_no];
22571 params->pga = target_gain.pga[core_no];
22572 params->pad = target_gain.pad[core_no];
22573 params->ipa = target_gain.ipa[core_no];
22574 if (NREV_GE(pi->pubpi.phy_rev, 7))
22575 params->cal_gain =
22576 ((params->txlpf << 15) | (params->txgm << 12) |
22577 (params->pga << 8) |
22578 (params->pad << 3) | (params->ipa));
22579 else
22580 params->cal_gain =
22581 ((params->txgm << 12) | (params->pga << 8) |
22582 (params->pad << 4) | (params->ipa));
22584 params->ncorr[0] = 0x79;
22585 params->ncorr[1] = 0x79;
22586 params->ncorr[2] = 0x79;
22587 params->ncorr[3] = 0x79;
22588 params->ncorr[4] = 0x79;
22589 } else {
22591 gain_index = ((target_gain.pad[core_no] << 0) |
22592 (target_gain.pga[core_no] << 4) |
22593 (target_gain.txgm[core_no] << 8));
22595 idx = -1;
22596 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22597 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22598 gain_index) {
22599 idx = k;
22600 break;
22604 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22605 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22606 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22607 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22608 (params->pad << 2));
22609 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22610 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22611 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22612 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22616 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
22618 u16 jtag_core, core;
22620 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22622 for (core = 0; core <= 1; core++) {
22624 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22625 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22626 TX_SSI_MASTER);
22628 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22629 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22630 IQCAL_VCM_HG);
22632 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22633 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22634 IQCAL_IDAC);
22636 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22637 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22638 TSSI_VCM);
22640 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22642 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22643 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22644 TX_SSI_MUX);
22646 if (pi->pubpi.radiorev != 5)
22647 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22648 READ_RADIO_REG3(pi, RADIO_2057, TX,
22649 core,
22650 TSSIA);
22652 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22653 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22655 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22656 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22657 TSSI_MISC1);
22659 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22660 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22661 TX_SSI_MASTER, 0x0a);
22662 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22663 IQCAL_VCM_HG, 0x43);
22664 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22665 IQCAL_IDAC, 0x55);
22666 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22667 TSSI_VCM, 0x00);
22668 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22669 TSSIG, 0x00);
22670 if (pi->use_int_tx_iqlo_cal_nphy) {
22671 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22672 core, TX_SSI_MUX, 0x4);
22673 if (!(pi->
22674 internal_tx_iqlo_cal_tapoff_intpa_nphy))
22675 WRITE_RADIO_REG3(pi, RADIO_2057,
22676 TX, core,
22677 TSSIA, 0x31);
22678 else
22679 WRITE_RADIO_REG3(pi, RADIO_2057,
22680 TX, core,
22681 TSSIA, 0x21);
22683 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22684 TSSI_MISC1, 0x00);
22685 } else {
22686 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22687 TX_SSI_MASTER, 0x06);
22688 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22689 IQCAL_VCM_HG, 0x43);
22690 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22691 IQCAL_IDAC, 0x55);
22692 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22693 TSSI_VCM, 0x00);
22695 if (pi->pubpi.radiorev != 5)
22696 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22697 core, TSSIA, 0x00);
22698 if (pi->use_int_tx_iqlo_cal_nphy) {
22699 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22700 core, TX_SSI_MUX,
22701 0x06);
22702 if (!(pi->
22703 internal_tx_iqlo_cal_tapoff_intpa_nphy))
22704 WRITE_RADIO_REG3(pi, RADIO_2057,
22705 TX, core,
22706 TSSIG, 0x31);
22707 else
22708 WRITE_RADIO_REG3(pi, RADIO_2057,
22709 TX, core,
22710 TSSIG, 0x21);
22712 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22713 TSSI_MISC1, 0x00);
22716 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22718 for (core = 0; core <= 1; core++) {
22719 jtag_core =
22720 (core ==
22721 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22723 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22724 read_radio_reg(pi,
22725 RADIO_2056_TX_TX_SSI_MASTER |
22726 jtag_core);
22728 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22729 read_radio_reg(pi,
22730 RADIO_2056_TX_IQCAL_VCM_HG |
22731 jtag_core);
22733 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22734 read_radio_reg(pi,
22735 RADIO_2056_TX_IQCAL_IDAC |
22736 jtag_core);
22738 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22739 read_radio_reg(
22741 RADIO_2056_TX_TSSI_VCM |
22742 jtag_core);
22744 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22745 read_radio_reg(pi,
22746 RADIO_2056_TX_TX_AMP_DET |
22747 jtag_core);
22749 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22750 read_radio_reg(pi,
22751 RADIO_2056_TX_TX_SSI_MUX |
22752 jtag_core);
22754 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22755 read_radio_reg(pi,
22756 RADIO_2056_TX_TSSIA | jtag_core);
22758 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22759 read_radio_reg(pi,
22760 RADIO_2056_TX_TSSIG | jtag_core);
22762 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22763 read_radio_reg(pi,
22764 RADIO_2056_TX_TSSI_MISC1 |
22765 jtag_core);
22767 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22768 read_radio_reg(pi,
22769 RADIO_2056_TX_TSSI_MISC2 |
22770 jtag_core);
22772 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22773 read_radio_reg(pi,
22774 RADIO_2056_TX_TSSI_MISC3 |
22775 jtag_core);
22777 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22778 write_radio_reg(pi,
22779 RADIO_2056_TX_TX_SSI_MASTER |
22780 jtag_core, 0x0a);
22781 write_radio_reg(pi,
22782 RADIO_2056_TX_IQCAL_VCM_HG |
22783 jtag_core, 0x40);
22784 write_radio_reg(pi,
22785 RADIO_2056_TX_IQCAL_IDAC |
22786 jtag_core, 0x55);
22787 write_radio_reg(pi,
22788 RADIO_2056_TX_TSSI_VCM |
22789 jtag_core, 0x00);
22790 write_radio_reg(pi,
22791 RADIO_2056_TX_TX_AMP_DET |
22792 jtag_core, 0x00);
22794 if (PHY_IPA(pi)) {
22795 write_radio_reg(
22797 RADIO_2056_TX_TX_SSI_MUX
22798 | jtag_core, 0x4);
22799 write_radio_reg(pi,
22800 RADIO_2056_TX_TSSIA |
22801 jtag_core, 0x1);
22802 } else {
22803 write_radio_reg(
22805 RADIO_2056_TX_TX_SSI_MUX
22806 | jtag_core, 0x00);
22807 write_radio_reg(pi,
22808 RADIO_2056_TX_TSSIA |
22809 jtag_core, 0x2f);
22811 write_radio_reg(pi,
22812 RADIO_2056_TX_TSSIG | jtag_core,
22813 0x00);
22814 write_radio_reg(pi,
22815 RADIO_2056_TX_TSSI_MISC1 |
22816 jtag_core, 0x00);
22818 write_radio_reg(pi,
22819 RADIO_2056_TX_TSSI_MISC2 |
22820 jtag_core, 0x00);
22821 write_radio_reg(pi,
22822 RADIO_2056_TX_TSSI_MISC3 |
22823 jtag_core, 0x00);
22824 } else {
22825 write_radio_reg(pi,
22826 RADIO_2056_TX_TX_SSI_MASTER |
22827 jtag_core, 0x06);
22828 write_radio_reg(pi,
22829 RADIO_2056_TX_IQCAL_VCM_HG |
22830 jtag_core, 0x40);
22831 write_radio_reg(pi,
22832 RADIO_2056_TX_IQCAL_IDAC |
22833 jtag_core, 0x55);
22834 write_radio_reg(pi,
22835 RADIO_2056_TX_TSSI_VCM |
22836 jtag_core, 0x00);
22837 write_radio_reg(pi,
22838 RADIO_2056_TX_TX_AMP_DET |
22839 jtag_core, 0x00);
22840 write_radio_reg(pi,
22841 RADIO_2056_TX_TSSIA | jtag_core,
22842 0x00);
22844 if (PHY_IPA(pi)) {
22846 write_radio_reg(
22848 RADIO_2056_TX_TX_SSI_MUX
22849 | jtag_core, 0x06);
22850 if (NREV_LT(pi->pubpi.phy_rev, 5))
22851 write_radio_reg(
22853 RADIO_2056_TX_TSSIG
22854 | jtag_core,
22855 0x11);
22856 else
22857 write_radio_reg(
22859 RADIO_2056_TX_TSSIG
22860 | jtag_core,
22861 0x1);
22862 } else {
22863 write_radio_reg(
22865 RADIO_2056_TX_TX_SSI_MUX
22866 | jtag_core, 0x00);
22867 write_radio_reg(pi,
22868 RADIO_2056_TX_TSSIG |
22869 jtag_core, 0x20);
22872 write_radio_reg(pi,
22873 RADIO_2056_TX_TSSI_MISC1 |
22874 jtag_core, 0x00);
22875 write_radio_reg(pi,
22876 RADIO_2056_TX_TSSI_MISC2 |
22877 jtag_core, 0x00);
22878 write_radio_reg(pi,
22879 RADIO_2056_TX_TSSI_MISC3 |
22880 jtag_core, 0x00);
22883 } else {
22885 pi->tx_rx_cal_radio_saveregs[0] =
22886 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22887 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
22888 pi->tx_rx_cal_radio_saveregs[1] =
22889 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22890 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
22892 pi->tx_rx_cal_radio_saveregs[2] =
22893 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22894 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
22895 pi->tx_rx_cal_radio_saveregs[3] =
22896 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22897 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
22899 pi->tx_rx_cal_radio_saveregs[4] =
22900 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22901 pi->tx_rx_cal_radio_saveregs[5] =
22902 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22904 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
22905 0) {
22907 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22908 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22909 } else {
22911 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
22912 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
22915 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22917 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
22918 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
22919 } else {
22921 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
22922 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
22927 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
22929 u16 jtag_core, core;
22931 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22932 for (core = 0; core <= 1; core++) {
22934 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22935 TX_SSI_MASTER,
22936 pi->
22937 tx_rx_cal_radio_saveregs[(core * 11) +
22938 0]);
22940 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
22941 pi->
22942 tx_rx_cal_radio_saveregs[(core * 11) +
22943 1]);
22945 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
22946 pi->
22947 tx_rx_cal_radio_saveregs[(core * 11) +
22948 2]);
22950 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
22951 pi->
22952 tx_rx_cal_radio_saveregs[(core * 11) +
22953 3]);
22955 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
22956 pi->
22957 tx_rx_cal_radio_saveregs[(core * 11) +
22958 5]);
22960 if (pi->pubpi.radiorev != 5)
22961 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22962 TSSIA,
22963 pi->tx_rx_cal_radio_saveregs
22964 [(core * 11) + 6]);
22966 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
22967 pi->
22968 tx_rx_cal_radio_saveregs[(core * 11) +
22969 7]);
22971 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
22972 pi->
22973 tx_rx_cal_radio_saveregs[(core * 11) +
22974 8]);
22976 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22977 for (core = 0; core <= 1; core++) {
22978 jtag_core = (core == PHY_CORE_0) ?
22979 RADIO_2056_TX0 : RADIO_2056_TX1;
22981 write_radio_reg(pi,
22982 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
22983 pi->
22984 tx_rx_cal_radio_saveregs[(core * 11) +
22985 0]);
22987 write_radio_reg(pi,
22988 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
22989 pi->
22990 tx_rx_cal_radio_saveregs[(core * 11) +
22991 1]);
22993 write_radio_reg(pi,
22994 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
22995 pi->
22996 tx_rx_cal_radio_saveregs[(core * 11) +
22997 2]);
22999 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23000 pi->
23001 tx_rx_cal_radio_saveregs[(core * 11) +
23002 3]);
23004 write_radio_reg(pi,
23005 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23006 pi->
23007 tx_rx_cal_radio_saveregs[(core * 11) +
23008 4]);
23010 write_radio_reg(pi,
23011 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23012 pi->
23013 tx_rx_cal_radio_saveregs[(core * 11) +
23014 5]);
23016 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23017 pi->
23018 tx_rx_cal_radio_saveregs[(core * 11) +
23019 6]);
23021 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23022 pi->
23023 tx_rx_cal_radio_saveregs[(core * 11) +
23024 7]);
23026 write_radio_reg(pi,
23027 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23028 pi->
23029 tx_rx_cal_radio_saveregs[(core * 11) +
23030 8]);
23032 write_radio_reg(pi,
23033 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23034 pi->
23035 tx_rx_cal_radio_saveregs[(core * 11) +
23036 9]);
23038 write_radio_reg(pi,
23039 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23040 pi->
23041 tx_rx_cal_radio_saveregs[(core * 11) +
23042 10]);
23044 } else {
23046 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23047 pi->tx_rx_cal_radio_saveregs[0]);
23048 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23049 pi->tx_rx_cal_radio_saveregs[1]);
23050 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23051 pi->tx_rx_cal_radio_saveregs[2]);
23052 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23053 pi->tx_rx_cal_radio_saveregs[3]);
23054 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23055 pi->tx_rx_cal_radio_saveregs[4]);
23056 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23057 pi->tx_rx_cal_radio_saveregs[5]);
23061 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
23063 u16 val, mask;
23065 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23066 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23067 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23069 mask = ((0x3 << 8) | (0x3 << 10));
23070 val = (0x2 << 8);
23071 val |= (0x2 << 10);
23072 mod_phy_reg(pi, 0xa6, mask, val);
23073 mod_phy_reg(pi, 0xa7, mask, val);
23075 val = read_phy_reg(pi, 0x8f);
23076 pi->tx_rx_cal_phy_saveregs[2] = val;
23077 val |= ((0x1 << 9) | (0x1 << 10));
23078 write_phy_reg(pi, 0x8f, val);
23080 val = read_phy_reg(pi, 0xa5);
23081 pi->tx_rx_cal_phy_saveregs[3] = val;
23082 val |= ((0x1 << 9) | (0x1 << 10));
23083 write_phy_reg(pi, 0xa5, val);
23085 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23086 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23088 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23089 &val);
23090 pi->tx_rx_cal_phy_saveregs[5] = val;
23091 val = 0;
23092 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23093 &val);
23095 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23096 &val);
23097 pi->tx_rx_cal_phy_saveregs[6] = val;
23098 val = 0;
23099 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23100 &val);
23102 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23103 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23105 if (!(pi->use_int_tx_iqlo_cal_nphy))
23106 wlc_phy_rfctrlintc_override_nphy(
23108 NPHY_RfctrlIntc_override_PA,
23110 RADIO_MIMO_CORESEL_CORE1
23112 RADIO_MIMO_CORESEL_CORE2);
23113 else
23114 wlc_phy_rfctrlintc_override_nphy(
23116 NPHY_RfctrlIntc_override_PA,
23118 RADIO_MIMO_CORESEL_CORE1
23120 RADIO_MIMO_CORESEL_CORE2);
23122 wlc_phy_rfctrlintc_override_nphy(pi,
23123 NPHY_RfctrlIntc_override_TRSW,
23124 0x2, RADIO_MIMO_CORESEL_CORE1);
23125 wlc_phy_rfctrlintc_override_nphy(pi,
23126 NPHY_RfctrlIntc_override_TRSW,
23127 0x8, RADIO_MIMO_CORESEL_CORE2);
23129 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23130 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23131 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23132 0x29b, (0x1 << 0), (0) << 0);
23134 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23135 0x29b, (0x1 << 0), (0) << 0);
23137 if (NREV_IS(pi->pubpi.phy_rev, 7)
23138 || NREV_GE(pi->pubpi.phy_rev, 8))
23139 wlc_phy_rfctrl_override_nphy_rev7(
23140 pi, (0x1 << 7),
23141 wlc_phy_read_lpf_bw_ctl_nphy
23142 (pi,
23143 0), 0, 0,
23144 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23146 if (pi->use_int_tx_iqlo_cal_nphy
23147 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23149 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23151 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23152 1 << 4);
23154 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23155 mod_radio_reg(
23157 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23158 1, 0);
23159 mod_radio_reg(
23161 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23162 1, 0);
23163 } else {
23164 mod_radio_reg(
23166 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23167 1, 0);
23168 mod_radio_reg(
23170 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23171 1, 0);
23173 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23174 wlc_phy_rfctrl_override_nphy_rev7(
23176 (0x1 << 3), 0,
23177 0x3, 0,
23178 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23181 } else {
23182 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23183 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23185 mask = ((0x3 << 12) | (0x3 << 14));
23186 val = (0x2 << 12);
23187 val |= (0x2 << 14);
23188 mod_phy_reg(pi, 0xa6, mask, val);
23189 mod_phy_reg(pi, 0xa7, mask, val);
23191 val = read_phy_reg(pi, 0xa5);
23192 pi->tx_rx_cal_phy_saveregs[2] = val;
23193 val |= ((0x1 << 12) | (0x1 << 13));
23194 write_phy_reg(pi, 0xa5, val);
23196 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23197 &val);
23198 pi->tx_rx_cal_phy_saveregs[3] = val;
23199 val |= 0x2000;
23200 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23201 &val);
23203 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23204 &val);
23205 pi->tx_rx_cal_phy_saveregs[4] = val;
23206 val |= 0x2000;
23207 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23208 &val);
23210 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23211 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23212 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23213 write_phy_reg(pi, 0x91, val);
23214 write_phy_reg(pi, 0x92, val);
23218 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
23220 u16 mask;
23222 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23223 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23224 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23225 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23226 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23227 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23229 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23230 &pi->tx_rx_cal_phy_saveregs[5]);
23231 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23232 &pi->tx_rx_cal_phy_saveregs[6]);
23234 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23235 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23237 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23238 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23240 if (NREV_IS(pi->pubpi.phy_rev, 7)
23241 || NREV_GE(pi->pubpi.phy_rev, 8))
23242 wlc_phy_rfctrl_override_nphy_rev7(
23243 pi, (0x1 << 7), 0, 0,
23245 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23247 wlc_phy_resetcca_nphy(pi);
23249 if (pi->use_int_tx_iqlo_cal_nphy
23250 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23252 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23253 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23254 mod_radio_reg(
23256 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23257 1, 1);
23258 mod_radio_reg(
23260 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23261 1, 1);
23262 } else {
23263 mod_radio_reg(
23265 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23266 1, 1);
23267 mod_radio_reg(
23269 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23270 1, 1);
23273 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23275 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23276 wlc_phy_rfctrl_override_nphy_rev7(
23278 (0x1 << 3), 0,
23279 0x3, 1,
23280 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23283 } else {
23284 mask = ((0x3 << 12) | (0x3 << 14));
23285 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23286 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23287 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23289 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23290 &pi->tx_rx_cal_phy_saveregs[3]);
23292 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23293 &pi->tx_rx_cal_phy_saveregs[4]);
23295 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23296 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23300 #define NPHY_CAL_TSSISAMPS 64
23301 #define NPHY_TEST_TONE_FREQ_40MHz 4000
23302 #define NPHY_TEST_TONE_FREQ_20MHz 2500
23304 void
23305 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
23307 u16 tssi_reg;
23308 s32 temp, pwrindex[2];
23309 s32 idle_tssi[2];
23310 s32 rssi_buf[4];
23311 s32 tssival[2];
23312 u8 tssi_type;
23314 tssi_reg = read_phy_reg(pi, 0x1e9);
23316 temp = (s32) (tssi_reg & 0x3f);
23317 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23319 temp = (s32) ((tssi_reg >> 8) & 0x3f);
23320 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23322 tssi_type =
23323 CHSPEC_IS5G(pi->radio_chanspec) ?
23324 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
23326 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23328 tssival[0] = rssi_buf[0] / ((s32) num_samps);
23329 tssival[1] = rssi_buf[2] / ((s32) num_samps);
23331 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23332 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23334 if (pwrindex[0] < 0)
23335 pwrindex[0] = 0;
23336 else if (pwrindex[0] > 63)
23337 pwrindex[0] = 63;
23339 if (pwrindex[1] < 0)
23340 pwrindex[1] = 0;
23341 else if (pwrindex[1] > 63)
23342 pwrindex[1] = 63;
23344 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
23345 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
23346 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
23347 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
23350 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
23352 u16 txcal_gain[2];
23354 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23355 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
23356 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23357 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
23359 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23360 txcal_gain);
23362 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23363 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23364 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23365 } else {
23366 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23367 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23370 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23371 txcal_gain);
23374 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
23376 bool save_bbmult = false;
23377 u8 txcal_index_2057_rev5n7 = 0;
23378 u8 txcal_index_2057_rev3n4n6 = 10;
23380 if (pi->use_int_tx_iqlo_cal_nphy) {
23381 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23382 if ((pi->pubpi.radiorev == 3) ||
23383 (pi->pubpi.radiorev == 4) ||
23384 (pi->pubpi.radiorev == 6)) {
23386 pi->nphy_txcal_pwr_idx[0] =
23387 txcal_index_2057_rev3n4n6;
23388 pi->nphy_txcal_pwr_idx[1] =
23389 txcal_index_2057_rev3n4n6;
23390 wlc_phy_txpwr_index_nphy(
23391 pi, 3,
23392 txcal_index_2057_rev3n4n6,
23393 false);
23394 } else {
23396 pi->nphy_txcal_pwr_idx[0] =
23397 txcal_index_2057_rev5n7;
23398 pi->nphy_txcal_pwr_idx[1] =
23399 txcal_index_2057_rev5n7;
23400 wlc_phy_txpwr_index_nphy(
23401 pi, 3,
23402 txcal_index_2057_rev5n7,
23403 false);
23405 save_bbmult = true;
23407 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23408 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
23409 if (pi->sh->hw_phytxchain != 3) {
23410 pi->nphy_txcal_pwr_idx[1] =
23411 pi->nphy_txcal_pwr_idx[0];
23412 wlc_phy_txpwr_index_nphy(pi, 3,
23413 pi->
23414 nphy_txcal_pwr_idx[0],
23415 true);
23416 save_bbmult = true;
23419 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23420 if (PHY_IPA(pi)) {
23421 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23422 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23423 false);
23424 } else {
23425 pi->nphy_txcal_pwr_idx[0] = 80;
23426 pi->nphy_txcal_pwr_idx[1] = 80;
23427 wlc_phy_txpwr_index_nphy(pi, 3, 80,
23428 false);
23429 save_bbmult = true;
23431 } else {
23432 wlc_phy_internal_cal_txgain_nphy(pi);
23433 save_bbmult = true;
23436 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23437 if (PHY_IPA(pi)) {
23438 if (CHSPEC_IS2G(pi->radio_chanspec))
23439 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23440 false);
23441 else
23442 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23443 false);
23444 } else {
23445 wlc_phy_internal_cal_txgain_nphy(pi);
23446 save_bbmult = true;
23450 } else {
23451 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
23454 if (save_bbmult)
23455 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23456 &pi->nphy_txcal_bbmult);
23459 void
23460 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
23461 bool debug)
23463 int gainctrl_loopidx;
23464 uint core;
23465 u16 m0m1, curr_m0m1;
23466 s32 delta_power;
23467 s32 txpwrindex;
23468 s32 qdBm_power[2];
23469 u16 orig_BBConfig;
23470 u16 phy_saveregs[4];
23471 u32 freq_test;
23472 u16 ampl_test = 250;
23473 uint stepsize;
23474 bool phyhang_avoid_state = false;
23476 if (NREV_GE(pi->pubpi.phy_rev, 7))
23477 stepsize = 2;
23478 else
23479 stepsize = 1;
23481 if (CHSPEC_IS40(pi->radio_chanspec))
23482 freq_test = 5000;
23483 else
23484 freq_test = 2500;
23486 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23487 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
23489 if (pi->phyhang_avoid)
23490 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23492 phyhang_avoid_state = pi->phyhang_avoid;
23493 pi->phyhang_avoid = false;
23495 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23496 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23497 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23498 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23499 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23500 RADIO_MIMO_CORESEL_CORE1 |
23501 RADIO_MIMO_CORESEL_CORE2);
23503 if (!debug) {
23504 wlc_phy_rfctrlintc_override_nphy(pi,
23505 NPHY_RfctrlIntc_override_TRSW,
23506 0x2, RADIO_MIMO_CORESEL_CORE1);
23507 wlc_phy_rfctrlintc_override_nphy(pi,
23508 NPHY_RfctrlIntc_override_TRSW,
23509 0x8, RADIO_MIMO_CORESEL_CORE2);
23510 } else {
23511 wlc_phy_rfctrlintc_override_nphy(pi,
23512 NPHY_RfctrlIntc_override_TRSW,
23513 0x1, RADIO_MIMO_CORESEL_CORE1);
23514 wlc_phy_rfctrlintc_override_nphy(pi,
23515 NPHY_RfctrlIntc_override_TRSW,
23516 0x7, RADIO_MIMO_CORESEL_CORE2);
23519 orig_BBConfig = read_phy_reg(pi, 0x01);
23520 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23522 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23524 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
23525 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
23527 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23528 gainctrl_loopidx++) {
23529 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23530 false);
23532 if (core == PHY_CORE_0)
23533 curr_m0m1 = m0m1 & 0xff00;
23534 else
23535 curr_m0m1 = m0m1 & 0x00ff;
23537 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23538 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23540 udelay(50);
23542 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23543 NPHY_CAL_TSSISAMPS);
23545 pi->nphy_bb_mult_save = 0;
23546 wlc_phy_stopplayback_nphy(pi);
23548 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23550 txpwrindex -= stepsize * delta_power;
23551 if (txpwrindex < 0)
23552 txpwrindex = 0;
23553 else if (txpwrindex > 127)
23554 txpwrindex = 127;
23556 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23557 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23558 (pi->srom_fem5g.extpagain == 3)) {
23559 if (txpwrindex < 30)
23560 txpwrindex = 30;
23562 } else {
23563 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23564 (pi->srom_fem2g.extpagain == 3)) {
23565 if (txpwrindex < 50)
23566 txpwrindex = 50;
23570 wlc_phy_txpwr_index_nphy(pi, (1 << core),
23571 (u8) txpwrindex, true);
23574 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
23576 if (debug) {
23577 u16 radio_gain;
23578 u16 dbg_m0m1;
23580 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23582 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23583 false);
23585 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23586 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23588 udelay(100);
23590 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23591 NPHY_CAL_TSSISAMPS);
23593 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23594 &radio_gain);
23596 mdelay(4000);
23597 pi->nphy_bb_mult_save = 0;
23598 wlc_phy_stopplayback_nphy(pi);
23602 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
23603 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
23605 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23607 write_phy_reg(pi, 0x01, orig_BBConfig);
23609 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23610 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23611 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23612 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23614 pi->phyhang_avoid = phyhang_avoid_state;
23616 if (pi->phyhang_avoid)
23617 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23620 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
23622 int index;
23623 u32 bbmult_scale;
23624 u16 bbmult;
23625 u16 tblentry;
23627 struct nphy_txiqcal_ladder ladder_lo[] = {
23628 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23629 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23630 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23633 struct nphy_txiqcal_ladder ladder_iq[] = {
23634 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23635 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23636 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23639 bbmult = (core == PHY_CORE_0) ?
23640 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
23641 (pi->nphy_txcal_bbmult & 0xff);
23643 for (index = 0; index < 18; index++) {
23644 bbmult_scale = ladder_lo[index].percent * bbmult;
23645 bbmult_scale /= 100;
23647 tblentry =
23648 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23649 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23650 &tblentry);
23652 bbmult_scale = ladder_iq[index].percent * bbmult;
23653 bbmult_scale /= 100;
23655 tblentry =
23656 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23657 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23658 16, &tblentry);
23662 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
23664 struct nphy_txgains target_gain;
23665 u8 tx_pwr_ctrl_state;
23666 bool fullcal = true;
23667 bool restore_tx_gain = false;
23668 bool mphase;
23670 if (NORADIO_ENAB(pi->pubpi)) {
23671 wlc_phy_cal_perical_mphase_reset(pi);
23672 return;
23675 if (PHY_MUTED(pi))
23676 return;
23678 if (caltype == PHY_PERICAL_AUTO)
23679 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23680 else if (caltype == PHY_PERICAL_PARTIAL)
23681 fullcal = false;
23683 if (pi->cal_type_override != PHY_PERICAL_AUTO)
23684 fullcal =
23685 (pi->cal_type_override ==
23686 PHY_PERICAL_FULL) ? true : false;
23688 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23689 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23690 wlc_phy_cal_perical_mphase_restart(pi);
23693 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
23694 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23696 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23698 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
23700 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23701 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23702 pi->nphy_cal_orig_pwr_idx[0] =
23703 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
23704 pi->nphy_cal_orig_pwr_idx[1] =
23705 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
23707 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23708 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23709 0x110, 16,
23710 pi->nphy_cal_orig_tx_gain);
23711 } else {
23712 pi->nphy_cal_orig_tx_gain[0] = 0;
23713 pi->nphy_cal_orig_tx_gain[1] = 0;
23716 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23717 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23718 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23720 if (pi->antsel_type == ANTSEL_2x3)
23721 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
23723 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23724 if (!mphase) {
23726 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23727 wlc_phy_precal_txgain_nphy(pi);
23728 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23729 restore_tx_gain = true;
23731 target_gain = pi->nphy_cal_target_gain;
23733 if (0 ==
23734 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
23735 mphase)) {
23736 if (PHY_IPA(pi))
23737 wlc_phy_a4(pi, true);
23739 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
23740 wlapi_enable_mac(pi->sh->physhim);
23741 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23742 10000);
23743 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23744 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
23746 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23747 (pi->first_cal_after_assoc ||
23748 (pi->cal_type_override ==
23749 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
23750 wlc_phy_savecal_nphy(pi);
23752 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23754 pi->nphy_perical_last = pi->sh->now;
23757 if (caltype != PHY_PERICAL_AUTO)
23758 wlc_phy_rssi_cal_nphy(pi);
23760 if (pi->first_cal_after_assoc
23761 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
23762 pi->first_cal_after_assoc = false;
23763 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23764 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23767 if (NREV_GE(pi->pubpi.phy_rev, 3))
23768 wlc_phy_radio205x_vcocal_nphy(pi);
23769 } else {
23770 switch (pi->mphase_cal_phase_id) {
23771 case MPHASE_CAL_STATE_INIT:
23772 pi->nphy_perical_last = pi->sh->now;
23773 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23775 if (NREV_GE(pi->pubpi.phy_rev, 3))
23776 wlc_phy_precal_txgain_nphy(pi);
23778 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23779 pi->mphase_cal_phase_id++;
23780 break;
23782 case MPHASE_CAL_STATE_TXPHASE0:
23783 case MPHASE_CAL_STATE_TXPHASE1:
23784 case MPHASE_CAL_STATE_TXPHASE2:
23785 case MPHASE_CAL_STATE_TXPHASE3:
23786 case MPHASE_CAL_STATE_TXPHASE4:
23787 case MPHASE_CAL_STATE_TXPHASE5:
23788 if ((pi->radar_percal_mask & 0x10) != 0)
23789 pi->nphy_rxcal_active = true;
23791 if (wlc_phy_cal_txiqlo_nphy
23792 (pi, pi->nphy_cal_target_gain, fullcal,
23793 true) != 0) {
23795 wlc_phy_cal_perical_mphase_reset(pi);
23796 break;
23799 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23800 (pi->mphase_cal_phase_id ==
23801 MPHASE_CAL_STATE_TXPHASE4))
23802 pi->mphase_cal_phase_id += 2;
23803 else
23804 pi->mphase_cal_phase_id++;
23805 break;
23807 case MPHASE_CAL_STATE_PAPDCAL:
23808 if ((pi->radar_percal_mask & 0x2) != 0)
23809 pi->nphy_rxcal_active = true;
23811 if (PHY_IPA(pi))
23812 wlc_phy_a4(pi, true);
23814 pi->mphase_cal_phase_id++;
23815 break;
23817 case MPHASE_CAL_STATE_RXCAL:
23818 if ((pi->radar_percal_mask & 0x1) != 0)
23819 pi->nphy_rxcal_active = true;
23820 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
23821 (pi->first_cal_after_assoc ||
23822 (pi->cal_type_override ==
23823 PHY_PERICAL_FULL)) ? 2 : 0,
23824 false) == 0)
23825 wlc_phy_savecal_nphy(pi);
23827 pi->mphase_cal_phase_id++;
23828 break;
23830 case MPHASE_CAL_STATE_RSSICAL:
23831 if ((pi->radar_percal_mask & 0x4) != 0)
23832 pi->nphy_rxcal_active = true;
23833 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23834 wlc_phy_rssi_cal_nphy(pi);
23836 if (NREV_GE(pi->pubpi.phy_rev, 3))
23837 wlc_phy_radio205x_vcocal_nphy(pi);
23839 restore_tx_gain = true;
23841 if (pi->first_cal_after_assoc)
23842 pi->mphase_cal_phase_id++;
23843 else
23844 wlc_phy_cal_perical_mphase_reset(pi);
23846 break;
23848 case MPHASE_CAL_STATE_IDLETSSI:
23849 if ((pi->radar_percal_mask & 0x8) != 0)
23850 pi->nphy_rxcal_active = true;
23852 if (pi->first_cal_after_assoc) {
23853 pi->first_cal_after_assoc = false;
23854 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23855 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23858 wlc_phy_cal_perical_mphase_reset(pi);
23859 break;
23861 default:
23862 wlc_phy_cal_perical_mphase_reset(pi);
23863 break;
23867 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23868 if (restore_tx_gain) {
23869 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
23871 wlc_phy_txpwr_index_nphy(pi, 1,
23872 pi->
23873 nphy_cal_orig_pwr_idx
23874 [0], false);
23875 wlc_phy_txpwr_index_nphy(pi, 2,
23876 pi->
23877 nphy_cal_orig_pwr_idx
23878 [1], false);
23880 pi->nphy_txpwrindex[0].index = -1;
23881 pi->nphy_txpwrindex[1].index = -1;
23882 } else {
23883 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
23884 (s8) (pi->
23885 nphy_txpwrindex
23886 [0].
23887 index_internal),
23888 false);
23889 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
23890 (s8) (pi->
23891 nphy_txpwrindex
23892 [1].
23893 index_internal),
23894 false);
23899 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
23900 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
23901 wlapi_enable_mac(pi->sh->physhim);
23905 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
23906 bool fullcal, bool mphase)
23908 u16 val;
23909 u16 tbl_buf[11];
23910 u8 cal_cnt;
23911 u16 cal_cmd;
23912 u8 num_cals, max_cal_cmds;
23913 u16 core_no, cal_type;
23914 u16 diq_start = 0;
23915 u8 phy_bw;
23916 u16 max_val;
23917 u16 tone_freq;
23918 u16 gain_save[2];
23919 u16 cal_gain[2];
23920 struct nphy_iqcal_params cal_params[2];
23921 u32 tbl_len;
23922 void *tbl_ptr;
23923 bool ladder_updated[2];
23924 u8 mphase_cal_lastphase = 0;
23925 int bcmerror = 0;
23926 bool phyhang_avoid_state = false;
23928 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
23929 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
23930 0x1902,
23931 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
23932 0x6407
23935 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
23936 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
23937 0x3200,
23938 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
23939 0x6407
23942 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
23943 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
23944 0x1202,
23945 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
23946 0x4707
23949 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
23950 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
23951 0x2300,
23952 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
23953 0x4707
23956 u16 tbl_tx_iqlo_cal_startcoefs[] = {
23957 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
23958 0x0000
23961 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
23962 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
23963 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
23966 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
23967 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
23968 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
23971 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
23972 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
23973 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
23974 0x0000
23977 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
23978 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
23979 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
23982 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
23983 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
23984 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
23987 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23989 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
23990 phyhang_avoid_state = pi->phyhang_avoid;
23991 pi->phyhang_avoid = false;
23994 if (CHSPEC_IS40(pi->radio_chanspec))
23995 phy_bw = 40;
23996 else
23997 phy_bw = 20;
23999 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24001 for (core_no = 0; core_no <= 1; core_no++) {
24002 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24003 &cal_params[core_no]);
24004 cal_gain[core_no] = cal_params[core_no].cal_gain;
24007 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24009 wlc_phy_txcal_radio_setup_nphy(pi);
24011 wlc_phy_txcal_physetup_nphy(pi);
24013 ladder_updated[0] = ladder_updated[1] = false;
24014 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24015 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24016 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24018 if (phy_bw == 40) {
24019 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
24020 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
24021 } else {
24022 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
24023 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
24025 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24026 16, tbl_ptr);
24028 if (phy_bw == 40) {
24029 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
24030 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
24031 } else {
24032 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
24033 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
24035 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24036 16, tbl_ptr);
24039 if (NREV_GE(pi->pubpi.phy_rev, 7))
24040 write_phy_reg(pi, 0xc2, 0x8ad9);
24041 else
24042 write_phy_reg(pi, 0xc2, 0x8aa9);
24044 max_val = 250;
24045 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24047 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24048 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
24049 bcmerror = 0;
24050 } else {
24051 bcmerror =
24052 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
24053 false);
24056 if (bcmerror == 0) {
24058 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24059 tbl_ptr = pi->mphase_txcal_bestcoeffs;
24060 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24061 if (NREV_LT(pi->pubpi.phy_rev, 3))
24062 tbl_len -= 2;
24063 } else {
24064 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24066 tbl_ptr = pi->nphy_txiqlocal_bestc;
24067 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24068 if (NREV_LT(pi->pubpi.phy_rev, 3))
24069 tbl_len -= 2;
24070 } else {
24072 fullcal = true;
24074 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24075 tbl_ptr =
24076 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24077 tbl_len = ARRAY_SIZE(
24078 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24079 } else {
24080 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24081 tbl_len = ARRAY_SIZE(
24082 tbl_tx_iqlo_cal_startcoefs);
24086 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24087 16, tbl_ptr);
24089 if (fullcal) {
24090 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24091 ARRAY_SIZE(
24092 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24093 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
24094 } else {
24095 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24096 ARRAY_SIZE(
24097 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24098 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
24101 if (mphase) {
24102 cal_cnt = pi->mphase_txcal_cmdidx;
24103 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
24104 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24105 else
24106 num_cals = max_cal_cmds;
24107 } else {
24108 cal_cnt = 0;
24109 num_cals = max_cal_cmds;
24112 for (; cal_cnt < num_cals; cal_cnt++) {
24114 if (fullcal) {
24115 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24116 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24117 [cal_cnt] :
24118 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24119 } else {
24120 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24121 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
24122 cal_cnt]
24123 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24126 core_no = ((cal_cmd & 0x3000) >> 12);
24127 cal_type = ((cal_cmd & 0x0F00) >> 8);
24129 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24130 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24131 PHY_IPA(pi)
24132 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24133 if (!ladder_updated[core_no]) {
24134 wlc_phy_update_txcal_ladder_nphy(
24136 core_no);
24137 ladder_updated[core_no] = true;
24141 val =
24142 (cal_params[core_no].
24143 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24144 write_phy_reg(pi, 0xc1, val);
24146 if ((cal_type == 1) || (cal_type == 3)
24147 || (cal_type == 4)) {
24149 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24150 1, 69 + core_no, 16,
24151 tbl_buf);
24153 diq_start = tbl_buf[0];
24155 tbl_buf[0] = 0;
24156 wlc_phy_table_write_nphy(pi,
24157 NPHY_TBL_ID_IQLOCAL, 1,
24158 69 + core_no, 16,
24159 tbl_buf);
24162 write_phy_reg(pi, 0xc0, cal_cmd);
24164 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24165 20000);
24166 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
24167 "HW error: txiq calib"))
24168 return -EIO;
24170 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24171 tbl_len, 96, 16, tbl_buf);
24172 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24173 tbl_len, 64, 16, tbl_buf);
24175 if ((cal_type == 1) || (cal_type == 3)
24176 || (cal_type == 4)) {
24178 tbl_buf[0] = diq_start;
24184 if (mphase) {
24185 pi->mphase_txcal_cmdidx = num_cals;
24186 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24187 pi->mphase_txcal_cmdidx = 0;
24190 mphase_cal_lastphase =
24191 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24192 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24194 if (!mphase
24195 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24197 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24198 16, tbl_buf);
24199 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24200 16, tbl_buf);
24202 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24204 tbl_buf[0] = 0;
24205 tbl_buf[1] = 0;
24206 tbl_buf[2] = 0;
24207 tbl_buf[3] = 0;
24210 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24211 16, tbl_buf);
24213 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24214 16, tbl_buf);
24215 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24216 16, tbl_buf);
24218 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24219 16, tbl_buf);
24221 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24222 if (NREV_LT(pi->pubpi.phy_rev, 3))
24223 tbl_len -= 2;
24225 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24226 tbl_len, 96, 16,
24227 pi->nphy_txiqlocal_bestc);
24229 pi->nphy_txiqlocal_coeffsvalid = true;
24230 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24231 } else {
24232 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24233 if (NREV_LT(pi->pubpi.phy_rev, 3))
24234 tbl_len -= 2;
24236 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24237 tbl_len, 96, 16,
24238 pi->mphase_txcal_bestcoeffs);
24241 wlc_phy_stopplayback_nphy(pi);
24243 write_phy_reg(pi, 0xc2, 0x0000);
24247 wlc_phy_txcal_phycleanup_nphy(pi);
24249 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24250 gain_save);
24252 wlc_phy_txcal_radio_cleanup_nphy(pi);
24254 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24255 if (!mphase
24256 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24257 wlc_phy_tx_iq_war_nphy(pi);
24260 if (NREV_GE(pi->pubpi.phy_rev, 4))
24261 pi->phyhang_avoid = phyhang_avoid_state;
24263 wlc_phy_stay_in_carriersearch_nphy(pi, false);
24265 return bcmerror;
24268 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
24270 u16 tbl_buf[7];
24272 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24273 (pi->nphy_txiqlocal_coeffsvalid)) {
24274 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24275 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
24277 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24278 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24279 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24280 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24282 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24283 16, pi->nphy_txiqlocal_bestc);
24285 tbl_buf[0] = 0;
24286 tbl_buf[1] = 0;
24287 tbl_buf[2] = 0;
24288 tbl_buf[3] = 0;
24289 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24290 16, tbl_buf);
24292 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24294 &pi->nphy_txiqlocal_bestc[5]);
24296 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24298 &pi->nphy_txiqlocal_bestc[5]);
24303 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
24305 struct nphy_iq_comp tx_comp;
24307 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
24309 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24310 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24311 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24312 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24315 void
24316 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
24317 struct nphy_iq_comp *pcomp)
24319 if (write) {
24320 write_phy_reg(pi, 0x9a, pcomp->a0);
24321 write_phy_reg(pi, 0x9b, pcomp->b0);
24322 write_phy_reg(pi, 0x9c, pcomp->a1);
24323 write_phy_reg(pi, 0x9d, pcomp->b1);
24324 } else {
24325 pcomp->a0 = read_phy_reg(pi, 0x9a);
24326 pcomp->b0 = read_phy_reg(pi, 0x9b);
24327 pcomp->a1 = read_phy_reg(pi, 0x9c);
24328 pcomp->b1 = read_phy_reg(pi, 0x9d);
24332 void
24333 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
24334 u16 num_samps, u8 wait_time, u8 wait_for_crs)
24336 u8 core;
24338 write_phy_reg(pi, 0x12b, num_samps);
24339 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24340 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24341 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24343 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24345 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24346 10000);
24347 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
24348 "HW error: rxiq est"))
24349 return;
24351 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24352 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24353 est[core].i_pwr =
24354 (read_phy_reg(pi,
24355 NPHY_IqestipwrAccHi(core)) << 16)
24356 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24357 est[core].q_pwr =
24358 (read_phy_reg(pi,
24359 NPHY_IqestqpwrAccHi(core)) << 16)
24360 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24361 est[core].iq_prod =
24362 (read_phy_reg(pi,
24363 NPHY_IqestIqAccHi(core)) << 16) |
24364 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24369 #define CAL_RETRY_CNT 2
24370 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
24372 u8 curr_core;
24373 struct phy_iq_est est[PHY_CORE_MAX];
24374 struct nphy_iq_comp old_comp, new_comp;
24375 s32 iq = 0;
24376 u32 ii = 0, qq = 0;
24377 s16 iq_nbits, qq_nbits, brsh, arsh;
24378 s32 a, b, temp;
24379 int bcmerror = 0;
24380 uint cal_retry = 0;
24382 if (core_mask == 0x0)
24383 return;
24385 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24386 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24387 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24389 cal_try:
24390 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24392 new_comp = old_comp;
24394 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24396 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24397 iq = est[curr_core].iq_prod;
24398 ii = est[curr_core].i_pwr;
24399 qq = est[curr_core].q_pwr;
24400 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24401 iq = est[curr_core].iq_prod;
24402 ii = est[curr_core].i_pwr;
24403 qq = est[curr_core].q_pwr;
24404 } else {
24405 continue;
24408 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24409 bcmerror = -EBADE;
24410 break;
24413 iq_nbits = wlc_phy_nbits(iq);
24414 qq_nbits = wlc_phy_nbits(qq);
24416 arsh = 10 - (30 - iq_nbits);
24417 if (arsh >= 0) {
24418 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
24419 temp = (s32) (ii >> arsh);
24420 if (temp == 0) {
24421 bcmerror = -EBADE;
24422 break;
24424 } else {
24425 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
24426 temp = (s32) (ii << -arsh);
24427 if (temp == 0) {
24428 bcmerror = -EBADE;
24429 break;
24433 a /= temp;
24435 brsh = qq_nbits - 31 + 20;
24436 if (brsh >= 0) {
24437 b = (qq << (31 - qq_nbits));
24438 temp = (s32) (ii >> brsh);
24439 if (temp == 0) {
24440 bcmerror = -EBADE;
24441 break;
24443 } else {
24444 b = (qq << (31 - qq_nbits));
24445 temp = (s32) (ii << -brsh);
24446 if (temp == 0) {
24447 bcmerror = -EBADE;
24448 break;
24451 b /= temp;
24452 b -= a * a;
24453 b = (s32) int_sqrt((unsigned long) b);
24454 b -= (1 << 10);
24456 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24457 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24458 new_comp.a0 = (s16) a & 0x3ff;
24459 new_comp.b0 = (s16) b & 0x3ff;
24460 } else {
24462 new_comp.a0 = (s16) b & 0x3ff;
24463 new_comp.b0 = (s16) a & 0x3ff;
24466 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24467 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24468 new_comp.a1 = (s16) a & 0x3ff;
24469 new_comp.b1 = (s16) b & 0x3ff;
24470 } else {
24472 new_comp.a1 = (s16) b & 0x3ff;
24473 new_comp.b1 = (s16) a & 0x3ff;
24478 if (bcmerror != 0) {
24479 printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
24480 cal_retry);
24482 if (cal_retry < CAL_RETRY_CNT) {
24483 cal_retry++;
24484 goto cal_try;
24487 new_comp = old_comp;
24490 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24493 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
24495 u16 offtune_val;
24496 u16 bias_g = 0;
24497 u16 bias_a = 0;
24499 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24500 if (rx_core == PHY_CORE_0) {
24501 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24502 pi->tx_rx_cal_radio_saveregs[0] =
24503 read_radio_reg(pi,
24504 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24505 pi->tx_rx_cal_radio_saveregs[1] =
24506 read_radio_reg(pi,
24507 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24509 write_radio_reg(pi,
24510 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24511 0x3);
24512 write_radio_reg(pi,
24513 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24514 0xaf);
24516 } else {
24517 pi->tx_rx_cal_radio_saveregs[0] =
24518 read_radio_reg(pi,
24519 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24520 pi->tx_rx_cal_radio_saveregs[1] =
24521 read_radio_reg(pi,
24522 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24524 write_radio_reg(
24526 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24527 0x3);
24528 write_radio_reg(
24530 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24531 0x7f);
24534 } else {
24535 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24536 pi->tx_rx_cal_radio_saveregs[0] =
24537 read_radio_reg(pi,
24538 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24539 pi->tx_rx_cal_radio_saveregs[1] =
24540 read_radio_reg(pi,
24541 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24543 write_radio_reg(
24545 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24546 0x3);
24547 write_radio_reg(
24549 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24550 0xaf);
24552 } else {
24553 pi->tx_rx_cal_radio_saveregs[0] =
24554 read_radio_reg(pi,
24555 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24556 pi->tx_rx_cal_radio_saveregs[1] =
24557 read_radio_reg(pi,
24558 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24560 write_radio_reg(pi,
24561 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24562 0x3);
24563 write_radio_reg(pi,
24564 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24565 0x7f);
24569 } else {
24570 if (rx_core == PHY_CORE_0) {
24571 pi->tx_rx_cal_radio_saveregs[0] =
24572 read_radio_reg(pi,
24573 RADIO_2056_TX_RXIQCAL_TXMUX |
24574 RADIO_2056_TX1);
24575 pi->tx_rx_cal_radio_saveregs[1] =
24576 read_radio_reg(pi,
24577 RADIO_2056_RX_RXIQCAL_RXMUX |
24578 RADIO_2056_RX0);
24580 if (pi->pubpi.radiorev >= 5) {
24581 pi->tx_rx_cal_radio_saveregs[2] =
24582 read_radio_reg(pi,
24583 RADIO_2056_RX_RXSPARE2 |
24584 RADIO_2056_RX0);
24585 pi->tx_rx_cal_radio_saveregs[3] =
24586 read_radio_reg(pi,
24587 RADIO_2056_TX_TXSPARE2 |
24588 RADIO_2056_TX1);
24591 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24593 if (pi->pubpi.radiorev >= 5) {
24594 pi->tx_rx_cal_radio_saveregs[4] =
24595 read_radio_reg(pi,
24596 RADIO_2056_RX_LNAA_MASTER
24597 | RADIO_2056_RX0);
24599 write_radio_reg(
24601 RADIO_2056_RX_LNAA_MASTER
24602 | RADIO_2056_RX0, 0x40);
24604 write_radio_reg(pi,
24605 RADIO_2056_TX_TXSPARE2 |
24606 RADIO_2056_TX1, bias_a);
24608 write_radio_reg(pi,
24609 RADIO_2056_RX_RXSPARE2 |
24610 RADIO_2056_RX0, bias_a);
24611 } else {
24612 pi->tx_rx_cal_radio_saveregs[4] =
24613 read_radio_reg(pi,
24614 RADIO_2056_RX_LNAA_TUNE
24615 | RADIO_2056_RX0);
24617 offtune_val =
24618 (pi->tx_rx_cal_radio_saveregs
24619 [2] & 0xF0) >> 8;
24620 offtune_val =
24621 (offtune_val <= 0x7) ? 0xF : 0;
24623 mod_radio_reg(pi,
24624 RADIO_2056_RX_LNAA_TUNE |
24625 RADIO_2056_RX0, 0xF0,
24626 (offtune_val << 8));
24629 write_radio_reg(pi,
24630 RADIO_2056_TX_RXIQCAL_TXMUX |
24631 RADIO_2056_TX1, 0x9);
24632 write_radio_reg(pi,
24633 RADIO_2056_RX_RXIQCAL_RXMUX |
24634 RADIO_2056_RX0, 0x9);
24635 } else {
24636 if (pi->pubpi.radiorev >= 5) {
24637 pi->tx_rx_cal_radio_saveregs[4] =
24638 read_radio_reg(
24640 RADIO_2056_RX_LNAG_MASTER
24641 | RADIO_2056_RX0);
24643 write_radio_reg(
24645 RADIO_2056_RX_LNAG_MASTER
24646 | RADIO_2056_RX0, 0x40);
24648 write_radio_reg(
24650 RADIO_2056_TX_TXSPARE2
24652 RADIO_2056_TX1, bias_g);
24654 write_radio_reg(
24656 RADIO_2056_RX_RXSPARE2
24658 RADIO_2056_RX0, bias_g);
24660 } else {
24661 pi->tx_rx_cal_radio_saveregs[4] =
24662 read_radio_reg(
24664 RADIO_2056_RX_LNAG_TUNE
24665 | RADIO_2056_RX0);
24667 offtune_val =
24668 (pi->
24669 tx_rx_cal_radio_saveregs[2] &
24670 0xF0) >> 8;
24671 offtune_val =
24672 (offtune_val <= 0x7) ? 0xF : 0;
24674 mod_radio_reg(pi,
24675 RADIO_2056_RX_LNAG_TUNE |
24676 RADIO_2056_RX0, 0xF0,
24677 (offtune_val << 8));
24680 write_radio_reg(pi,
24681 RADIO_2056_TX_RXIQCAL_TXMUX |
24682 RADIO_2056_TX1, 0x6);
24683 write_radio_reg(pi,
24684 RADIO_2056_RX_RXIQCAL_RXMUX |
24685 RADIO_2056_RX0, 0x6);
24688 } else {
24689 pi->tx_rx_cal_radio_saveregs[0] =
24690 read_radio_reg(pi,
24691 RADIO_2056_TX_RXIQCAL_TXMUX |
24692 RADIO_2056_TX0);
24693 pi->tx_rx_cal_radio_saveregs[1] =
24694 read_radio_reg(pi,
24695 RADIO_2056_RX_RXIQCAL_RXMUX |
24696 RADIO_2056_RX1);
24698 if (pi->pubpi.radiorev >= 5) {
24699 pi->tx_rx_cal_radio_saveregs[2] =
24700 read_radio_reg(pi,
24701 RADIO_2056_RX_RXSPARE2 |
24702 RADIO_2056_RX1);
24703 pi->tx_rx_cal_radio_saveregs[3] =
24704 read_radio_reg(pi,
24705 RADIO_2056_TX_TXSPARE2 |
24706 RADIO_2056_TX0);
24709 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24711 if (pi->pubpi.radiorev >= 5) {
24712 pi->tx_rx_cal_radio_saveregs[4] =
24713 read_radio_reg(
24715 RADIO_2056_RX_LNAA_MASTER
24716 | RADIO_2056_RX1);
24718 write_radio_reg(
24720 RADIO_2056_RX_LNAA_MASTER |
24721 RADIO_2056_RX1, 0x40);
24723 write_radio_reg(
24725 RADIO_2056_TX_TXSPARE2
24727 RADIO_2056_TX0, bias_a);
24729 write_radio_reg(
24731 RADIO_2056_RX_RXSPARE2
24733 RADIO_2056_RX1, bias_a);
24734 } else {
24735 pi->tx_rx_cal_radio_saveregs[4] =
24736 read_radio_reg(
24738 RADIO_2056_RX_LNAA_TUNE
24739 | RADIO_2056_RX1);
24741 offtune_val =
24742 (pi->
24743 tx_rx_cal_radio_saveregs[2] &
24744 0xF0) >> 8;
24745 offtune_val =
24746 (offtune_val <= 0x7) ? 0xF : 0;
24748 mod_radio_reg(pi,
24749 RADIO_2056_RX_LNAA_TUNE |
24750 RADIO_2056_RX1, 0xF0,
24751 (offtune_val << 8));
24754 write_radio_reg(pi,
24755 RADIO_2056_TX_RXIQCAL_TXMUX |
24756 RADIO_2056_TX0, 0x9);
24757 write_radio_reg(pi,
24758 RADIO_2056_RX_RXIQCAL_RXMUX |
24759 RADIO_2056_RX1, 0x9);
24760 } else {
24761 if (pi->pubpi.radiorev >= 5) {
24762 pi->tx_rx_cal_radio_saveregs[4] =
24763 read_radio_reg(
24765 RADIO_2056_RX_LNAG_MASTER
24766 | RADIO_2056_RX1);
24768 write_radio_reg(
24770 RADIO_2056_RX_LNAG_MASTER
24771 | RADIO_2056_RX1, 0x40);
24773 write_radio_reg(
24775 RADIO_2056_TX_TXSPARE2
24777 RADIO_2056_TX0, bias_g);
24779 write_radio_reg(
24781 RADIO_2056_RX_RXSPARE2
24783 RADIO_2056_RX1, bias_g);
24784 } else {
24785 pi->tx_rx_cal_radio_saveregs[4] =
24786 read_radio_reg(
24788 RADIO_2056_RX_LNAG_TUNE
24789 | RADIO_2056_RX1);
24791 offtune_val =
24792 (pi->
24793 tx_rx_cal_radio_saveregs[2] &
24794 0xF0) >> 8;
24795 offtune_val =
24796 (offtune_val <= 0x7) ? 0xF : 0;
24798 mod_radio_reg(pi,
24799 RADIO_2056_RX_LNAG_TUNE |
24800 RADIO_2056_RX1, 0xF0,
24801 (offtune_val << 8));
24804 write_radio_reg(pi,
24805 RADIO_2056_TX_RXIQCAL_TXMUX |
24806 RADIO_2056_TX0, 0x6);
24807 write_radio_reg(pi,
24808 RADIO_2056_RX_RXIQCAL_RXMUX |
24809 RADIO_2056_RX1, 0x6);
24815 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
24817 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24818 if (rx_core == PHY_CORE_0) {
24819 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24820 write_radio_reg(
24822 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24823 pi->
24824 tx_rx_cal_radio_saveregs[0]);
24825 write_radio_reg(
24827 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24828 pi->
24829 tx_rx_cal_radio_saveregs[1]);
24831 } else {
24832 write_radio_reg(
24834 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24835 pi->
24836 tx_rx_cal_radio_saveregs[0]);
24837 write_radio_reg(
24839 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24840 pi->
24841 tx_rx_cal_radio_saveregs[1]);
24844 } else {
24845 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24846 write_radio_reg(
24848 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24849 pi->
24850 tx_rx_cal_radio_saveregs[0]);
24851 write_radio_reg(
24853 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24854 pi->
24855 tx_rx_cal_radio_saveregs[1]);
24857 } else {
24858 write_radio_reg(
24860 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24861 pi->
24862 tx_rx_cal_radio_saveregs[0]);
24863 write_radio_reg(
24865 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24866 pi->
24867 tx_rx_cal_radio_saveregs[1]);
24871 } else {
24872 if (rx_core == PHY_CORE_0) {
24873 write_radio_reg(pi,
24874 RADIO_2056_TX_RXIQCAL_TXMUX |
24875 RADIO_2056_TX1,
24876 pi->tx_rx_cal_radio_saveregs[0]);
24878 write_radio_reg(pi,
24879 RADIO_2056_RX_RXIQCAL_RXMUX |
24880 RADIO_2056_RX0,
24881 pi->tx_rx_cal_radio_saveregs[1]);
24883 if (pi->pubpi.radiorev >= 5) {
24884 write_radio_reg(pi,
24885 RADIO_2056_RX_RXSPARE2 |
24886 RADIO_2056_RX0,
24887 pi->
24888 tx_rx_cal_radio_saveregs[2]);
24890 write_radio_reg(pi,
24891 RADIO_2056_TX_TXSPARE2 |
24892 RADIO_2056_TX1,
24893 pi->
24894 tx_rx_cal_radio_saveregs[3]);
24897 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24898 if (pi->pubpi.radiorev >= 5)
24899 write_radio_reg(
24901 RADIO_2056_RX_LNAA_MASTER
24902 | RADIO_2056_RX0,
24903 pi->
24904 tx_rx_cal_radio_saveregs
24905 [4]);
24906 else
24907 write_radio_reg(
24909 RADIO_2056_RX_LNAA_TUNE
24910 | RADIO_2056_RX0,
24911 pi->
24912 tx_rx_cal_radio_saveregs
24913 [4]);
24914 } else {
24915 if (pi->pubpi.radiorev >= 5)
24916 write_radio_reg(
24918 RADIO_2056_RX_LNAG_MASTER
24919 | RADIO_2056_RX0,
24920 pi->
24921 tx_rx_cal_radio_saveregs
24922 [4]);
24923 else
24924 write_radio_reg(
24926 RADIO_2056_RX_LNAG_TUNE
24927 | RADIO_2056_RX0,
24928 pi->
24929 tx_rx_cal_radio_saveregs
24930 [4]);
24933 } else {
24934 write_radio_reg(pi,
24935 RADIO_2056_TX_RXIQCAL_TXMUX |
24936 RADIO_2056_TX0,
24937 pi->tx_rx_cal_radio_saveregs[0]);
24939 write_radio_reg(pi,
24940 RADIO_2056_RX_RXIQCAL_RXMUX |
24941 RADIO_2056_RX1,
24942 pi->tx_rx_cal_radio_saveregs[1]);
24944 if (pi->pubpi.radiorev >= 5) {
24945 write_radio_reg(pi,
24946 RADIO_2056_RX_RXSPARE2 |
24947 RADIO_2056_RX1,
24948 pi->
24949 tx_rx_cal_radio_saveregs[2]);
24951 write_radio_reg(pi,
24952 RADIO_2056_TX_TXSPARE2 |
24953 RADIO_2056_TX0,
24954 pi->
24955 tx_rx_cal_radio_saveregs[3]);
24958 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24959 if (pi->pubpi.radiorev >= 5)
24960 write_radio_reg(
24962 RADIO_2056_RX_LNAA_MASTER
24963 | RADIO_2056_RX1,
24964 pi->
24965 tx_rx_cal_radio_saveregs
24966 [4]);
24967 else
24968 write_radio_reg(
24970 RADIO_2056_RX_LNAA_TUNE
24971 | RADIO_2056_RX1,
24972 pi->
24973 tx_rx_cal_radio_saveregs
24974 [4]);
24975 } else {
24976 if (pi->pubpi.radiorev >= 5)
24977 write_radio_reg(
24979 RADIO_2056_RX_LNAG_MASTER
24980 | RADIO_2056_RX1,
24981 pi->
24982 tx_rx_cal_radio_saveregs
24983 [4]);
24984 else
24985 write_radio_reg(
24987 RADIO_2056_RX_LNAG_TUNE
24988 | RADIO_2056_RX1,
24989 pi->
24990 tx_rx_cal_radio_saveregs
24991 [4]);
24997 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
24999 u8 tx_core;
25000 u16 rx_antval, tx_antval;
25002 if (NREV_GE(pi->pubpi.phy_rev, 7))
25003 tx_core = rx_core;
25004 else
25005 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25007 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25008 pi->tx_rx_cal_phy_saveregs[1] =
25009 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25010 pi->tx_rx_cal_phy_saveregs[2] =
25011 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25012 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25013 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25014 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25015 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25016 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25017 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25018 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25019 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25020 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25021 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25022 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25025 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25026 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25027 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25028 0x29b, (0x1 << 0), (0) << 0);
25030 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25031 0x29b, (0x1 << 0), (0) << 0);
25033 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25035 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25037 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25039 } else {
25041 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25042 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25043 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25044 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25047 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25048 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25049 (0x1 << 2), (0x1 << 2));
25050 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25051 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25052 (0x1 << 0) | (0x1 << 1), 0);
25053 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25054 0x8f : 0xa5,
25055 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25058 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25059 RADIO_MIMO_CORESEL_CORE1 |
25060 RADIO_MIMO_CORESEL_CORE2);
25062 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25063 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25064 0, 0, 0,
25065 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25066 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25067 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25068 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25069 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25070 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25071 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25072 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25073 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25074 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25075 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25076 if (CHSPEC_IS40(pi->radio_chanspec))
25077 wlc_phy_rfctrl_override_nphy_rev7(
25079 (0x1 << 7),
25080 2, 0, 0,
25081 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25082 else
25083 wlc_phy_rfctrl_override_nphy_rev7(
25085 (0x1 << 7),
25086 0, 0, 0,
25087 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25089 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25090 0, 0, 0,
25091 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25092 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25093 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25094 } else {
25095 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25098 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25100 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25102 wlc_phy_rfctrlintc_override_nphy(pi,
25103 NPHY_RfctrlIntc_override_TRSW,
25104 0x1, rx_core + 1);
25105 } else {
25107 if (rx_core == PHY_CORE_0) {
25108 rx_antval = 0x1;
25109 tx_antval = 0x8;
25110 } else {
25111 rx_antval = 0x4;
25112 tx_antval = 0x2;
25115 wlc_phy_rfctrlintc_override_nphy(pi,
25116 NPHY_RfctrlIntc_override_TRSW,
25117 rx_antval, rx_core + 1);
25118 wlc_phy_rfctrlintc_override_nphy(pi,
25119 NPHY_RfctrlIntc_override_TRSW,
25120 tx_antval, tx_core + 1);
25124 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
25127 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25128 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25129 pi->tx_rx_cal_phy_saveregs[1]);
25130 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25131 pi->tx_rx_cal_phy_saveregs[2]);
25132 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25133 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25135 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25136 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25137 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25138 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25139 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25140 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25141 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25142 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25143 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25146 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25147 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25150 static void
25151 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
25152 u16 *rxgain, u8 cal_type)
25155 u16 num_samps;
25156 struct phy_iq_est est[PHY_CORE_MAX];
25157 u8 tx_core;
25158 struct nphy_iq_comp save_comp, zero_comp;
25159 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
25160 thresh_pwr = 10000;
25161 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
25162 bool gainctrl_done = false;
25163 u8 mix_tia_gain = 3;
25164 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25165 s8 curr_gaintbl_index = 3;
25166 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
25167 struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
25168 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
25169 int fine_gain_idx;
25170 s8 txpwrindex;
25171 u16 nphy_rxcal_txgain[2];
25173 if (NREV_GE(pi->pubpi.phy_rev, 7))
25174 tx_core = rx_core;
25175 else
25176 tx_core = 1 - rx_core;
25178 num_samps = 1024;
25179 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25181 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25182 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25183 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25185 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25186 if (NREV_GE(pi->pubpi.phy_rev, 7))
25187 mix_tia_gain = 3;
25188 else if (NREV_GE(pi->pubpi.phy_rev, 4))
25189 mix_tia_gain = 4;
25190 else
25191 mix_tia_gain = 6;
25192 if (NREV_GE(pi->pubpi.phy_rev, 7))
25193 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25194 else
25195 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25196 } else {
25197 if (NREV_GE(pi->pubpi.phy_rev, 7))
25198 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25199 else
25200 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25203 do {
25205 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25206 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25207 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25208 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25209 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25210 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25211 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25213 if (NREV_GE(pi->pubpi.phy_rev, 7))
25214 wlc_phy_rfctrl_override_1tomany_nphy(
25216 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25217 ((lpf_biq1 << 12) |
25218 (lpf_biq0 << 8) |
25219 (mix_tia_gain << 4) | (lna2 << 2)
25220 | lna1), 0x3, 0);
25221 else
25222 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25223 ((hpvga << 12) |
25224 (lpf_biq1 << 10) |
25225 (lpf_biq0 << 8) |
25226 (mix_tia_gain << 4) |
25227 (lna2 << 2) | lna1), 0x3,
25230 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25232 if (txpwrindex == -1) {
25233 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25234 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25235 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25236 2, 0x110, 16,
25237 nphy_rxcal_txgain);
25238 } else {
25239 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25240 false);
25243 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25244 NPHY_RXCAL_TONEFREQ_40MHz :
25245 NPHY_RXCAL_TONEFREQ_20MHz,
25246 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
25248 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25249 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25250 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25251 curr_pwr = i_pwr + q_pwr;
25253 switch (gainctrl_dirn) {
25254 case NPHY_RXCAL_GAIN_INIT:
25255 if (curr_pwr > thresh_pwr) {
25256 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25257 prev_gaintbl_index = curr_gaintbl_index;
25258 curr_gaintbl_index--;
25259 } else {
25260 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25261 prev_gaintbl_index = curr_gaintbl_index;
25262 curr_gaintbl_index++;
25264 break;
25266 case NPHY_RXCAL_GAIN_UP:
25267 if (curr_pwr > thresh_pwr) {
25268 gainctrl_done = true;
25269 optim_pwr = prev_pwr;
25270 optim_gaintbl_index = prev_gaintbl_index;
25271 } else {
25272 prev_gaintbl_index = curr_gaintbl_index;
25273 curr_gaintbl_index++;
25275 break;
25277 case NPHY_RXCAL_GAIN_DOWN:
25278 if (curr_pwr > thresh_pwr) {
25279 prev_gaintbl_index = curr_gaintbl_index;
25280 curr_gaintbl_index--;
25281 } else {
25282 gainctrl_done = true;
25283 optim_pwr = curr_pwr;
25284 optim_gaintbl_index = curr_gaintbl_index;
25286 break;
25288 default:
25289 break;
25292 if ((curr_gaintbl_index < 0) ||
25293 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
25294 gainctrl_done = true;
25295 optim_pwr = curr_pwr;
25296 optim_gaintbl_index = prev_gaintbl_index;
25297 } else {
25298 prev_pwr = curr_pwr;
25301 wlc_phy_stopplayback_nphy(pi);
25302 } while (!gainctrl_done);
25304 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25305 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25306 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25307 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25308 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25309 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25311 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25312 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25314 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25315 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25317 if (fine_gain_idx + (int)lpf_biq0 > 10)
25318 lpf_biq1 = 10 - lpf_biq0;
25319 else
25320 lpf_biq1 = (u16) max(fine_gain_idx, 0);
25322 wlc_phy_rfctrl_override_1tomany_nphy(
25324 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25325 ((lpf_biq1 << 12) |
25326 (lpf_biq0 << 8) |
25327 (mix_tia_gain << 4) |
25328 (lna2 << 2) | lna1), 0x3,
25330 } else {
25331 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
25332 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25333 ((hpvga << 12) |
25334 (lpf_biq1 << 10) |
25335 (lpf_biq0 << 8) |
25336 (mix_tia_gain << 4) |
25337 (lna2 << 2) |
25338 lna1), 0x3, 0);
25341 if (rxgain != NULL) {
25342 *rxgain++ = lna1;
25343 *rxgain++ = lna2;
25344 *rxgain++ = mix_tia_gain;
25345 *rxgain++ = lpf_biq0;
25346 *rxgain++ = lpf_biq1;
25347 *rxgain = hpvga;
25350 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25353 static void
25354 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
25355 u8 cal_type)
25357 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25360 static u8
25361 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
25363 u32 target_bws[2] = { 9500, 21000 };
25364 u32 ref_tones[2] = { 3000, 6000 };
25365 u32 target_bw, ref_tone;
25367 u32 target_pwr_ratios[2] = { 28606, 18468 };
25368 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
25370 u16 start_rccal_ovr_val = 128;
25371 u16 txlpf_rccal_lpc_ovr_val = 128;
25372 u16 rxlpf_rccal_hpc_ovr_val = 159;
25374 u16 orig_txlpf_rccal_lpc_ovr_val;
25375 u16 orig_rxlpf_rccal_hpc_ovr_val;
25376 u16 radio_addr_offset_rx;
25377 u16 radio_addr_offset_tx;
25378 u16 orig_dcBypass;
25379 u16 orig_RxStrnFilt40Num[6];
25380 u16 orig_RxStrnFilt40Den[4];
25381 u16 orig_rfctrloverride[2];
25382 u16 orig_rfctrlauxreg[2];
25383 u16 orig_rfctrlrssiothers;
25384 u16 tx_lpf_bw = 4;
25386 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25387 u16 lpf_hpc = 7, hpvga_hpc = 7;
25389 s8 rccal_stepsize;
25390 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
25391 u32 ref_iq_vals = 0, target_iq_vals = 0;
25392 u16 num_samps, log_num_samps = 10;
25393 struct phy_iq_est est[PHY_CORE_MAX];
25395 if (NREV_GE(pi->pubpi.phy_rev, 7))
25396 return 0;
25398 num_samps = (1 << log_num_samps);
25400 if (CHSPEC_IS40(pi->radio_chanspec)) {
25401 target_bw = target_bws[1];
25402 target_pwr_ratio = target_pwr_ratios[1];
25403 ref_tone = ref_tones[1];
25404 rx_lpf_bw = rx_lpf_bws[1];
25405 } else {
25406 target_bw = target_bws[0];
25407 target_pwr_ratio = target_pwr_ratios[0];
25408 ref_tone = ref_tones[0];
25409 rx_lpf_bw = rx_lpf_bws[0];
25412 if (core_idx == 0) {
25413 radio_addr_offset_rx = RADIO_2056_RX0;
25414 radio_addr_offset_tx =
25415 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25416 } else {
25417 radio_addr_offset_rx = RADIO_2056_RX1;
25418 radio_addr_offset_tx =
25419 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25422 orig_txlpf_rccal_lpc_ovr_val =
25423 read_radio_reg(pi,
25424 (RADIO_2056_TX_TXLPF_RCCAL |
25425 radio_addr_offset_tx));
25426 orig_rxlpf_rccal_hpc_ovr_val =
25427 read_radio_reg(pi,
25428 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25429 radio_addr_offset_rx));
25431 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25433 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25434 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25435 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25436 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25437 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25438 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25439 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25440 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25441 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25442 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25444 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25445 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25446 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25447 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25448 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25450 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25451 txlpf_rccal_lpc_ovr_val);
25453 write_radio_reg(pi,
25454 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25455 rxlpf_rccal_hpc_ovr_val);
25457 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25459 write_phy_reg(pi, 0x267, 0x02d4);
25460 write_phy_reg(pi, 0x268, 0x0000);
25461 write_phy_reg(pi, 0x269, 0x0000);
25462 write_phy_reg(pi, 0x26a, 0x0000);
25463 write_phy_reg(pi, 0x26b, 0x0000);
25464 write_phy_reg(pi, 0x26c, 0x02d4);
25465 write_phy_reg(pi, 0x26d, 0x0000);
25466 write_phy_reg(pi, 0x26e, 0x0000);
25467 write_phy_reg(pi, 0x26f, 0x0000);
25468 write_phy_reg(pi, 0x270, 0x0000);
25470 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25471 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25472 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25473 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25475 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25476 (0x7 << 10), (tx_lpf_bw << 10));
25477 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25478 (0x7 << 0), (hpvga_hpc << 0));
25479 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25480 (0x7 << 4), (lpf_hpc << 4));
25481 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25482 (0x7 << 8), (rx_lpf_bw << 8));
25484 rccal_stepsize = 16;
25485 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25487 while (rccal_stepsize >= 0) {
25488 write_radio_reg(pi,
25489 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25490 radio_addr_offset_rx), rccal_val);
25492 if (rccal_stepsize == 16) {
25494 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
25495 0, 1, false);
25496 udelay(2);
25498 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25500 if (core_idx == 0)
25501 ref_iq_vals =
25502 max_t(u32, (est[0].i_pwr +
25503 est[0].q_pwr) >>
25504 (log_num_samps + 1),
25506 else
25507 ref_iq_vals =
25508 max_t(u32, (est[1].i_pwr +
25509 est[1].q_pwr) >>
25510 (log_num_samps + 1),
25513 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
25514 0, 1, false);
25515 udelay(2);
25518 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25520 if (core_idx == 0)
25521 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
25522 (log_num_samps + 1);
25523 else
25524 target_iq_vals =
25525 (est[1].i_pwr +
25526 est[1].q_pwr) >> (log_num_samps + 1);
25528 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25530 if (rccal_stepsize == 0)
25531 rccal_stepsize--;
25532 else if (rccal_stepsize == 1) {
25533 last_rccal_val = rccal_val;
25534 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25535 last_pwr_ratio = pwr_ratio;
25536 rccal_stepsize--;
25537 } else {
25538 rccal_stepsize = (rccal_stepsize >> 1);
25539 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25540 rccal_stepsize : (-rccal_stepsize));
25543 if (rccal_stepsize == -1) {
25544 best_rccal_val =
25545 (ABS((int)last_pwr_ratio -
25546 (int)target_pwr_ratio) <
25547 ABS((int)pwr_ratio -
25548 (int)target_pwr_ratio)) ? last_rccal_val :
25549 rccal_val;
25551 if (CHSPEC_IS40(pi->radio_chanspec)) {
25552 if ((best_rccal_val > 140)
25553 || (best_rccal_val < 135))
25554 best_rccal_val = 138;
25555 } else {
25556 if ((best_rccal_val > 142)
25557 || (best_rccal_val < 137))
25558 best_rccal_val = 140;
25561 write_radio_reg(pi,
25562 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25563 radio_addr_offset_rx), best_rccal_val);
25567 wlc_phy_stopplayback_nphy(pi);
25569 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25570 orig_txlpf_rccal_lpc_ovr_val);
25571 write_radio_reg(pi,
25572 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25573 orig_rxlpf_rccal_hpc_ovr_val);
25575 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25577 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25578 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25579 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25580 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25581 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25582 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25583 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25584 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25585 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25586 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25588 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25589 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25590 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25591 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25592 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25594 pi->nphy_anarxlpf_adjusted = false;
25596 return best_rccal_val - 0x80;
25599 #define WAIT_FOR_SCOPE 4000
25600 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
25601 struct nphy_txgains target_gain,
25602 u8 cal_type, bool debug)
25604 u16 orig_BBConfig;
25605 u8 core_no, rx_core;
25606 u8 best_rccal[2];
25607 u16 gain_save[2];
25608 u16 cal_gain[2];
25609 struct nphy_iqcal_params cal_params[2];
25610 u8 rxcore_state;
25611 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25612 s8 txlpf_idac;
25613 bool phyhang_avoid_state = false;
25614 bool skip_rxiqcal = false;
25616 orig_BBConfig = read_phy_reg(pi, 0x01);
25617 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25619 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25621 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25622 phyhang_avoid_state = pi->phyhang_avoid;
25623 pi->phyhang_avoid = false;
25626 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25628 for (core_no = 0; core_no <= 1; core_no++) {
25629 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25630 &cal_params[core_no]);
25631 cal_gain[core_no] = cal_params[core_no].cal_gain;
25634 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25636 rxcore_state = wlc_phy_rxcore_getstate_nphy(
25637 (struct brcms_phy_pub *) pi);
25639 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25641 skip_rxiqcal =
25642 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
25644 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25646 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25648 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25650 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25652 wlc_phy_tx_tone_nphy(pi,
25653 (CHSPEC_IS40(
25654 pi->radio_chanspec)) ?
25655 NPHY_RXCAL_TONEFREQ_40MHz :
25656 NPHY_RXCAL_TONEFREQ_20MHz,
25657 NPHY_RXCAL_TONEAMP, 0, cal_type,
25658 false);
25660 if (debug)
25661 mdelay(WAIT_FOR_SCOPE);
25663 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25664 wlc_phy_stopplayback_nphy(pi);
25667 if (((cal_type == 1) || (cal_type == 2))
25668 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25670 if (rx_core == PHY_CORE_1) {
25672 if (rxcore_state == 1)
25673 wlc_phy_rxcore_setstate_nphy(
25674 (struct brcms_phy_pub *) pi, 3);
25676 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25679 best_rccal[rx_core] =
25680 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25681 pi->nphy_rccal_value = best_rccal[rx_core];
25683 if (rxcore_state == 1)
25684 wlc_phy_rxcore_setstate_nphy(
25685 (struct brcms_phy_pub *) pi,
25686 rxcore_state);
25690 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25692 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25693 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25696 if ((cal_type == 1) || (cal_type == 2)) {
25698 best_rccal[0] = best_rccal[1];
25699 write_radio_reg(pi,
25700 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25701 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25703 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25704 rxlpf_rccal_hpc =
25705 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25706 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25708 if (PHY_IPA(pi)) {
25709 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25710 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25711 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25712 TXLPF_IDAC_4, txlpf_idac);
25715 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
25717 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
25720 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25721 ((rx_core ==
25722 PHY_CORE_0) ? RADIO_2056_RX0 :
25723 RADIO_2056_RX1)),
25724 (rxlpf_rccal_hpc | 0x80));
25726 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25727 ((rx_core ==
25728 PHY_CORE_0) ? RADIO_2056_TX0 :
25729 RADIO_2056_TX1)),
25730 (txlpf_rccal_lpc | 0x80));
25734 write_phy_reg(pi, 0x01, orig_BBConfig);
25736 wlc_phy_resetcca_nphy(pi);
25738 if (NREV_GE(pi->pubpi.phy_rev, 7))
25739 wlc_phy_rfctrl_override_1tomany_nphy(
25741 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25742 0, 0x3, 1);
25743 else
25744 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25746 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25748 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25749 gain_save);
25751 if (NREV_GE(pi->pubpi.phy_rev, 4))
25752 pi->phyhang_avoid = phyhang_avoid_state;
25754 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25756 return 0;
25759 static int
25760 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
25761 struct nphy_txgains target_gain, bool debug)
25763 struct phy_iq_est est[PHY_CORE_MAX];
25764 u8 core_num, rx_core, tx_core;
25765 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
25766 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25767 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
25768 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25769 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
25770 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25771 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25772 u16 num_samps;
25773 u32 i_pwr, q_pwr, tot_pwr[3];
25774 u8 gain_pass, use_hpf_num;
25775 u16 mask, val1, val2;
25776 u16 core_no;
25777 u16 gain_save[2];
25778 u16 cal_gain[2];
25779 struct nphy_iqcal_params cal_params[2];
25780 u8 phy_bw;
25781 int bcmerror = 0;
25782 bool first_playtone = true;
25784 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25786 if (NREV_LT(pi->pubpi.phy_rev, 2))
25787 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25789 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25791 for (core_no = 0; core_no <= 1; core_no++) {
25792 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25793 &cal_params[core_no]);
25794 cal_gain[core_no] = cal_params[core_no].cal_gain;
25797 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25799 num_samps = 1024;
25800 desired_log2_pwr = 13;
25802 for (core_num = 0; core_num < 2; core_num++) {
25804 rx_core = core_num;
25805 tx_core = 1 - core_num;
25807 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25808 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25809 0xa6 : 0xa7);
25810 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25811 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25812 0x91 : 0x92);
25813 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25814 0x91 : 0x92);
25816 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25817 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25819 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25820 ((0x1 << 1) | (0x1 << 2)));
25821 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25823 if (((pi->nphy_rxcalparams) & 0xff000000))
25824 write_phy_reg(pi,
25825 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25826 (CHSPEC_IS5G(pi->radio_chanspec) ?
25827 0x140 : 0x110));
25828 else
25829 write_phy_reg(pi,
25830 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25831 (CHSPEC_IS5G(pi->radio_chanspec) ?
25832 0x180 : 0x120));
25834 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
25835 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
25836 0x114));
25838 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
25839 if (rx_core == PHY_CORE_0) {
25840 val1 = RADIO_2055_COUPLE_RX_MASK;
25841 val2 = RADIO_2055_COUPLE_TX_MASK;
25842 } else {
25843 val1 = RADIO_2055_COUPLE_TX_MASK;
25844 val2 = RADIO_2055_COUPLE_RX_MASK;
25847 if ((pi->nphy_rxcalparams & 0x10000)) {
25848 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
25849 val1);
25850 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
25851 val2);
25854 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
25856 if (debug)
25857 mdelay(WAIT_FOR_SCOPE);
25859 if (gain_pass < 3) {
25860 curr_lna = lna_vals[gain_pass];
25861 curr_hpf1 = hpf1_vals[gain_pass];
25862 curr_hpf2 = hpf2_vals[gain_pass];
25863 } else {
25865 if (tot_pwr[1] > 10000) {
25866 curr_lna = lna_vals[2];
25867 curr_hpf1 = hpf1_vals[2];
25868 curr_hpf2 = hpf2_vals[2];
25869 use_hpf_num = 1;
25870 curr_hpf = curr_hpf1;
25871 actual_log2_pwr =
25872 wlc_phy_nbits(tot_pwr[2]);
25873 } else {
25874 if (tot_pwr[0] > 10000) {
25875 curr_lna = lna_vals[1];
25876 curr_hpf1 = hpf1_vals[1];
25877 curr_hpf2 = hpf2_vals[1];
25878 use_hpf_num = 1;
25879 curr_hpf = curr_hpf1;
25880 actual_log2_pwr =
25881 wlc_phy_nbits(
25882 tot_pwr[1]);
25883 } else {
25884 curr_lna = lna_vals[0];
25885 curr_hpf1 = hpf1_vals[0];
25886 curr_hpf2 = hpf2_vals[0];
25887 use_hpf_num = 2;
25888 curr_hpf = curr_hpf2;
25889 actual_log2_pwr =
25890 wlc_phy_nbits(
25891 tot_pwr[0]);
25895 hpf_change = desired_log2_pwr - actual_log2_pwr;
25896 curr_hpf += hpf_change;
25897 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
25898 if (use_hpf_num == 1)
25899 curr_hpf1 = curr_hpf;
25900 else
25901 curr_hpf2 = curr_hpf;
25904 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
25905 ((curr_hpf2 << 8) |
25906 (curr_hpf1 << 4) |
25907 (curr_lna << 2)), 0x3, 0);
25908 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25910 wlc_phy_stopplayback_nphy(pi);
25912 if (first_playtone) {
25913 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
25914 (u16) (pi->nphy_rxcalparams &
25915 0xffff), 0, 0, true);
25916 first_playtone = false;
25917 } else {
25918 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
25919 40 : 20;
25920 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
25921 0, 0, 0, true);
25924 if (bcmerror == 0) {
25925 if (gain_pass < 3) {
25927 wlc_phy_rx_iq_est_nphy(pi, est,
25928 num_samps, 32,
25930 i_pwr = (est[rx_core].i_pwr +
25931 num_samps / 2) / num_samps;
25932 q_pwr = (est[rx_core].q_pwr +
25933 num_samps / 2) / num_samps;
25934 tot_pwr[gain_pass] = i_pwr + q_pwr;
25935 } else {
25937 wlc_phy_calc_rx_iq_comp_nphy(pi,
25938 (1 <<
25939 rx_core));
25942 wlc_phy_stopplayback_nphy(pi);
25945 if (bcmerror != 0)
25946 break;
25949 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
25950 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
25952 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
25953 0x92, orig_RfctrlIntcTx);
25954 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
25955 0x92, orig_RfctrlIntcRx);
25956 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
25957 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
25958 0xa7, orig_AfectrlCore);
25959 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
25961 if (bcmerror != 0)
25962 break;
25965 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
25966 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25968 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25969 gain_save);
25971 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25973 return bcmerror;
25977 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25978 u8 cal_type, bool debug)
25980 if (NREV_GE(pi->pubpi.phy_rev, 7))
25981 cal_type = 0;
25983 if (NREV_GE(pi->pubpi.phy_rev, 3))
25984 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
25985 debug);
25986 else
25987 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
25990 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
25992 int j, type = 2;
25993 u16 addr_offset = 0x2c5;
25995 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
25996 write_phy_reg(pi, addr_offset + j,
25997 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26000 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
26002 int j, type;
26003 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
26005 for (type = 0; type < 3; type++) {
26006 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26007 write_phy_reg(pi, addr_offset[type] + j,
26008 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26011 if (IS40MHZ(pi)) {
26012 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26013 write_phy_reg(pi, 0x186 + j,
26014 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26015 } else {
26016 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26017 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26018 write_phy_reg(pi, 0x186 + j,
26019 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
26022 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26023 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26024 write_phy_reg(pi, 0x2c5 + j,
26025 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
26030 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
26032 int j;
26034 if (IS40MHZ(pi)) {
26035 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26036 write_phy_reg(pi, 0x195 + j,
26037 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26038 } else {
26039 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
26040 write_phy_reg(pi, 0x186 + j,
26041 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26045 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
26047 u16 m0m1;
26049 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26051 return m0m1;
26054 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
26056 u16 m0m1 = (u16) ((m0 << 8) | m1);
26058 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26059 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26062 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
26064 u32 *tx_pwrctrl_tbl = NULL;
26066 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26067 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26068 if ((pi->pubpi.radiorev == 4)
26069 || (pi->pubpi.radiorev == 6))
26070 tx_pwrctrl_tbl =
26071 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26072 else if (pi->pubpi.radiorev == 3)
26073 tx_pwrctrl_tbl =
26074 nphy_tpc_txgain_ipa_2g_2057rev3;
26075 else if (pi->pubpi.radiorev == 5)
26076 tx_pwrctrl_tbl =
26077 nphy_tpc_txgain_ipa_2g_2057rev5;
26078 else if ((pi->pubpi.radiorev == 7)
26079 || (pi->pubpi.radiorev == 8))
26080 tx_pwrctrl_tbl =
26081 nphy_tpc_txgain_ipa_2g_2057rev7;
26082 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26083 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26084 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26085 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26086 } else {
26087 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26089 } else {
26091 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26092 if ((pi->pubpi.radiorev == 3) ||
26093 (pi->pubpi.radiorev == 4) ||
26094 (pi->pubpi.radiorev == 6))
26095 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26096 else if ((pi->pubpi.radiorev == 7)
26097 || (pi->pubpi.radiorev == 8))
26098 tx_pwrctrl_tbl =
26099 nphy_tpc_txgain_ipa_5g_2057rev7;
26100 } else {
26101 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26105 return tx_pwrctrl_tbl;
26108 static void
26109 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
26110 struct nphy_papd_restore_state *state, u8 core)
26112 s32 tone_freq;
26113 u8 off_core;
26114 u16 mixgain = 0;
26116 off_core = core ^ 0x1;
26117 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26119 if (NREV_IS(pi->pubpi.phy_rev, 7)
26120 || NREV_GE(pi->pubpi.phy_rev, 8))
26121 wlc_phy_rfctrl_override_nphy_rev7(
26122 pi, (0x1 << 7),
26123 wlc_phy_read_lpf_bw_ctl_nphy
26124 (pi,
26125 0), 0, 0,
26126 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26128 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26129 if (pi->pubpi.radiorev == 5)
26130 mixgain = (core == 0) ? 0x20 : 0x00;
26131 else if ((pi->pubpi.radiorev == 7)
26132 || (pi->pubpi.radiorev == 8))
26133 mixgain = 0x00;
26134 else if ((pi->pubpi.radiorev <= 4)
26135 || (pi->pubpi.radiorev == 6))
26136 mixgain = 0x00;
26137 } else {
26138 if ((pi->pubpi.radiorev == 4) ||
26139 (pi->pubpi.radiorev == 6))
26140 mixgain = 0x50;
26141 else if ((pi->pubpi.radiorev == 3)
26142 || (pi->pubpi.radiorev == 7)
26143 || (pi->pubpi.radiorev == 8))
26144 mixgain = 0x0;
26147 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26148 mixgain, (1 << core), 0,
26149 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26151 wlc_phy_rfctrl_override_1tomany_nphy(
26153 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26154 1, (1 << core), 0);
26155 wlc_phy_rfctrl_override_1tomany_nphy(
26157 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26158 0, (1 << off_core), 0);
26160 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26161 0, 0x3, 0,
26162 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26163 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26164 (1 << core), 0,
26165 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26166 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26167 (1 << core), 0,
26168 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26169 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26170 (1 << core), 0,
26171 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26172 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26173 (1 << core), 0,
26174 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26175 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26176 (1 << core), 0,
26177 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26178 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26179 (1 << core), 0,
26180 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26181 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26182 (1 << core), 0,
26183 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26185 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26186 0, (1 << core), 0,
26187 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26188 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26189 (1 << core), 0,
26190 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26192 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26193 0xa6 : 0xa7);
26194 state->afeoverride[core] =
26195 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26196 state->afectrl[off_core] =
26197 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26198 state->afeoverride[off_core] =
26199 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26201 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26202 (0x1 << 2), 0);
26203 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26204 0xa5), (0x1 << 2), (0x1 << 2));
26206 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26207 (0x1 << 2), (0x1 << 2));
26208 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26209 0x8f), (0x1 << 2), (0x1 << 2));
26211 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26212 state->pwrup[core] =
26213 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26214 TXRXCOUPLE_2G_PWRUP);
26215 state->atten[core] =
26216 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26217 TXRXCOUPLE_2G_ATTEN);
26218 state->pwrup[off_core] =
26219 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26220 TXRXCOUPLE_2G_PWRUP);
26221 state->atten[off_core] =
26222 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26223 TXRXCOUPLE_2G_ATTEN);
26225 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26226 TXRXCOUPLE_2G_PWRUP, 0xc);
26228 if ((pi->pubpi.radiorev == 3) ||
26229 (pi->pubpi.radiorev == 4) ||
26230 (pi->pubpi.radiorev == 6))
26231 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26232 TXRXCOUPLE_2G_ATTEN, 0xf0);
26233 else if (pi->pubpi.radiorev == 5)
26234 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26235 TXRXCOUPLE_2G_ATTEN,
26236 (core == 0) ? 0xf7 : 0xf2);
26237 else if ((pi->pubpi.radiorev == 7)
26238 || (pi->pubpi.radiorev == 8))
26239 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26240 TXRXCOUPLE_2G_ATTEN, 0xf0);
26242 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26243 TXRXCOUPLE_2G_PWRUP, 0x0);
26244 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26245 TXRXCOUPLE_2G_ATTEN, 0xff);
26246 } else {
26247 state->pwrup[core] =
26248 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26249 TXRXCOUPLE_5G_PWRUP);
26250 state->atten[core] =
26251 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26252 TXRXCOUPLE_5G_ATTEN);
26253 state->pwrup[off_core] =
26254 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26255 TXRXCOUPLE_5G_PWRUP);
26256 state->atten[off_core] =
26257 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26258 TXRXCOUPLE_5G_ATTEN);
26260 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26261 TXRXCOUPLE_5G_PWRUP, 0xc);
26263 if ((pi->pubpi.radiorev == 7)
26264 || (pi->pubpi.radiorev == 8))
26265 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26266 TXRXCOUPLE_5G_ATTEN, 0xf4);
26268 else
26269 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26270 TXRXCOUPLE_5G_ATTEN, 0xf0);
26272 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26273 TXRXCOUPLE_5G_PWRUP, 0x0);
26274 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26275 TXRXCOUPLE_5G_ATTEN, 0xff);
26278 tone_freq = 4000;
26280 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
26282 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26283 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26285 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26286 0x2a4, (0x1 << 13), (1) << 13);
26288 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26289 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26291 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26292 0x2a4, (0x1 << 13), (0) << 13);
26294 } else {
26296 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26298 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26300 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26302 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26303 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26305 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26306 0xa6 : 0xa7);
26307 state->afeoverride[core] =
26308 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26310 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26311 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26312 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26313 0xa5),
26314 (0x1 << 0) |
26315 (0x1 << 1) |
26316 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26318 state->vga_master[core] =
26319 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26320 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26321 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26322 state->fbmix[core] =
26323 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26324 TXFBMIX_G);
26325 state->intpa_master[core] =
26326 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26327 INTPAG_MASTER);
26329 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26330 0x03);
26331 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26332 INTPAG_MASTER, 0x04);
26333 } else {
26334 state->fbmix[core] =
26335 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26336 TXFBMIX_A);
26337 state->intpa_master[core] =
26338 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26339 INTPAA_MASTER);
26341 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26342 0x03);
26343 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26344 INTPAA_MASTER, 0x04);
26348 tone_freq = 4000;
26350 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
26352 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26353 0x29b, (0x1 << 0), (1) << 0);
26355 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26356 0x29b, (0x1 << 0), (0) << 0);
26358 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26362 static void
26363 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
26364 struct nphy_papd_restore_state *state)
26366 u8 core;
26368 wlc_phy_stopplayback_nphy(pi);
26370 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26372 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26374 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26375 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26376 TXRXCOUPLE_2G_PWRUP, 0);
26377 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26378 TXRXCOUPLE_2G_ATTEN,
26379 state->atten[core]);
26380 } else {
26381 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26382 TXRXCOUPLE_5G_PWRUP, 0);
26383 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26384 TXRXCOUPLE_5G_ATTEN,
26385 state->atten[core]);
26389 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
26390 wlc_phy_rfctrl_override_nphy_rev7(
26391 pi, (0x1 << 2),
26392 1, 0x3, 0,
26393 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26394 else
26395 wlc_phy_rfctrl_override_nphy_rev7(
26396 pi, (0x1 << 2),
26397 0, 0x3, 1,
26398 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26400 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26401 0, 0x3, 1,
26402 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26403 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26404 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26405 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26406 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26407 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26408 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26409 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26410 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26411 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26412 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26413 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26414 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26415 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26416 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26417 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26418 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26419 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26420 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26421 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26422 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26423 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26424 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26425 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26426 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26427 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26428 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26429 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26430 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26431 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26432 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26434 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26436 write_phy_reg(pi, (core == PHY_CORE_0) ?
26437 0xa6 : 0xa7, state->afectrl[core]);
26438 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26439 0xa5, state->afeoverride[core]);
26442 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26443 (state->mm & 0xff));
26445 if (NREV_IS(pi->pubpi.phy_rev, 7)
26446 || NREV_GE(pi->pubpi.phy_rev, 8))
26447 wlc_phy_rfctrl_override_nphy_rev7(
26448 pi, (0x1 << 7), 0, 0,
26450 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26451 } else {
26452 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26453 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26454 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26456 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26457 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26459 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26461 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26462 state->vga_master[core]);
26463 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26464 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26465 TXFBMIX_G, state->fbmix[core]);
26466 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26467 INTPAG_MASTER,
26468 state->intpa_master[core]);
26469 } else {
26470 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26471 TXFBMIX_A, state->fbmix[core]);
26472 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26473 INTPAA_MASTER,
26474 state->intpa_master[core]);
26477 write_phy_reg(pi, (core == PHY_CORE_0) ?
26478 0xa6 : 0xa7, state->afectrl[core]);
26479 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26480 0xa5, state->afeoverride[core]);
26483 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26484 (state->mm & 0xff));
26486 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26490 static void
26491 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
26492 u32 end)
26494 u32 *buf, *src, *dst, sz;
26496 sz = end - start + 1;
26498 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
26499 if (NULL == buf)
26500 return;
26502 src = buf;
26503 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26505 wlc_phy_table_read_nphy(pi,
26506 (core ==
26507 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26508 NPHY_TBL_ID_EPSILONTBL1),
26509 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26511 do {
26512 u32 phy_a1, phy_a2;
26513 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
26515 phy_a1 = end - min(end, (winsz >> 1));
26516 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
26517 end + (winsz >> 1));
26518 phy_a3 = phy_a2 - phy_a1 + 1;
26519 phy_a6 = 0;
26520 phy_a7 = 0;
26522 do {
26523 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26524 &phy_a5);
26525 phy_a6 += phy_a4;
26526 phy_a7 += phy_a5;
26527 } while (phy_a2-- != phy_a1);
26529 phy_a6 /= phy_a3;
26530 phy_a7 /= phy_a3;
26531 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
26532 } while (end-- != start);
26534 wlc_phy_table_write_nphy(pi,
26535 (core ==
26536 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26537 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26539 kfree(buf);
26542 static void
26543 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
26544 enum phy_cal_mode cal_mode, u8 core)
26546 u16 phy_a1, phy_a2, phy_a3;
26547 u16 phy_a4, phy_a5;
26548 bool phy_a6;
26549 u8 phy_a7, m[2];
26550 u32 phy_a8 = 0;
26551 struct nphy_txgains phy_a9;
26553 if (NREV_LT(pi->pubpi.phy_rev, 3))
26554 return;
26556 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26558 phy_a6 = ((cal_mode == CAL_GCTRL)
26559 || (cal_mode == CAL_SOFT)) ? true : false;
26561 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26563 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26565 if (CHSPEC_IS2G(pi->radio_chanspec))
26566 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26567 (phy_a9.txgm[core] << 12) |
26568 (phy_a9.pga[core] << 8) |
26569 (txgains->gains.pad[core] << 3) |
26570 (phy_a9.ipa[core]));
26571 else
26572 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26573 (phy_a9.txgm[core] << 12) |
26574 (txgains->gains.pga[core] << 8) |
26575 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26577 wlc_phy_rfctrl_override_1tomany_nphy(
26579 NPHY_REV7_RfctrlOverride_cmd_txgain,
26580 phy_a5, (1 << core), 0);
26582 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26583 if ((pi->pubpi.radiorev <= 4)
26584 || (pi->pubpi.radiorev == 6))
26585 m[core] = IS40MHZ(pi) ? 60 : 79;
26586 else
26587 m[core] = IS40MHZ(pi) ? 45 : 64;
26588 } else {
26589 m[core] = IS40MHZ(pi) ? 75 : 107;
26592 m[phy_a7] = 0;
26593 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26595 phy_a2 = 63;
26597 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26598 if ((pi->pubpi.radiorev == 4)
26599 || (pi->pubpi.radiorev == 6)) {
26600 phy_a1 = 30;
26601 phy_a3 = 30;
26602 } else {
26603 phy_a1 = 25;
26604 phy_a3 = 25;
26606 } else {
26607 if ((pi->pubpi.radiorev == 5)
26608 || (pi->pubpi.radiorev == 7)
26609 || (pi->pubpi.radiorev == 8)) {
26610 phy_a1 = 25;
26611 phy_a3 = 25;
26612 } else {
26613 phy_a1 = 35;
26614 phy_a3 = 35;
26618 if (cal_mode == CAL_GCTRL) {
26619 if ((pi->pubpi.radiorev == 5)
26620 && (CHSPEC_IS2G(pi->radio_chanspec)))
26621 phy_a1 = 55;
26622 else if (((pi->pubpi.radiorev == 7) &&
26623 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26624 ((pi->pubpi.radiorev == 8) &&
26625 (CHSPEC_IS2G(pi->radio_chanspec))))
26626 phy_a1 = 60;
26627 else
26628 phy_a1 = 63;
26630 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26632 phy_a1 = 35;
26633 phy_a3 = 35;
26636 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26637 0x29b, (0x1 << 0), (1) << 0);
26639 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26640 0x29b, (0x1 << 0), (0) << 0);
26642 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26643 0x2a4, (0x1 << 13), (1) << 13);
26645 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26646 0x2a4, (0x1 << 13), (0) << 13);
26648 write_phy_reg(pi, 0x2a1, 0x80);
26649 write_phy_reg(pi, 0x2a2, 0x100);
26651 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26652 0x2a4, (0x7 << 4), (11) << 4);
26654 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26655 0x2a4, (0x7 << 8), (11) << 8);
26657 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26658 0x2a4, (0x7 << 0), (0x3) << 0);
26660 write_phy_reg(pi, 0x2e5, 0x20);
26662 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26664 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26666 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26668 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26669 1, ((core == 0) ? 1 : 2), 0,
26670 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26671 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26672 0, ((core == 0) ? 2 : 1), 0,
26673 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26675 write_phy_reg(pi, 0x2be, 1);
26676 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26678 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26679 0, 0x3, 0,
26680 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26682 wlc_phy_table_write_nphy(pi,
26683 (core ==
26684 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26685 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26686 32, &phy_a8);
26688 if (cal_mode != CAL_GCTRL) {
26689 if (CHSPEC_IS5G(pi->radio_chanspec))
26690 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26693 wlc_phy_rfctrl_override_1tomany_nphy(
26695 NPHY_REV7_RfctrlOverride_cmd_txgain,
26696 phy_a5, (1 << core), 1);
26698 } else {
26700 if (txgains) {
26701 if (txgains->useindex) {
26702 phy_a4 = 15 - ((txgains->index) >> 3);
26703 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26704 if (NREV_GE(pi->pubpi.phy_rev, 6))
26705 phy_a5 = 0x00f7 | (phy_a4 << 8);
26707 else
26708 if (NREV_IS(pi->pubpi.phy_rev, 5))
26709 phy_a5 = 0x10f7 | (phy_a4 << 8);
26710 else
26711 phy_a5 = 0x50f7 | (phy_a4 << 8);
26712 } else {
26713 phy_a5 = 0x70f7 | (phy_a4 << 8);
26715 wlc_phy_rfctrl_override_nphy(pi,
26716 (0x1 << 13),
26717 phy_a5,
26718 (1 << core), 0);
26719 } else {
26720 wlc_phy_rfctrl_override_nphy(pi,
26721 (0x1 << 13),
26722 0x5bf7,
26723 (1 << core), 0);
26727 if (CHSPEC_IS2G(pi->radio_chanspec))
26728 m[core] = IS40MHZ(pi) ? 45 : 64;
26729 else
26730 m[core] = IS40MHZ(pi) ? 75 : 107;
26732 m[phy_a7] = 0;
26733 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26735 phy_a2 = 63;
26737 if (cal_mode == CAL_FULL) {
26738 phy_a1 = 25;
26739 phy_a3 = 25;
26740 } else if (cal_mode == CAL_SOFT) {
26741 phy_a1 = 25;
26742 phy_a3 = 25;
26743 } else if (cal_mode == CAL_GCTRL) {
26744 phy_a1 = 63;
26745 phy_a3 = 25;
26746 } else {
26748 phy_a1 = 25;
26749 phy_a3 = 25;
26752 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26753 0x29b, (0x1 << 0), (1) << 0);
26755 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26756 0x29b, (0x1 << 0), (0) << 0);
26758 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26759 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26760 0x2a4, (0x1 << 13), (1) << 13);
26762 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26763 0x2a4, (0x1 << 13), (0) << 13);
26765 write_phy_reg(pi, 0x2a1, 0x20);
26766 write_phy_reg(pi, 0x2a2, 0x60);
26768 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26769 0x2a4, (0xf << 4), (9) << 4);
26771 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26772 0x2a4, (0xf << 8), (9) << 8);
26774 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26775 0x2a4, (0xf << 0), (0x2) << 0);
26777 write_phy_reg(pi, 0x2e5, 0x20);
26778 } else {
26779 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26780 0x2a4, (0x1 << 11), (1) << 11);
26782 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26783 0x2a4, (0x1 << 11), (0) << 11);
26785 write_phy_reg(pi, 0x2a1, 0x80);
26786 write_phy_reg(pi, 0x2a2, 0x600);
26788 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26789 0x2a4, (0x7 << 4), (0) << 4);
26791 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26792 0x2a4, (0x7 << 8), (0) << 8);
26794 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26795 0x2a4, (0x7 << 0), (0x3) << 0);
26797 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
26801 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26803 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26805 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26807 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
26809 write_phy_reg(pi, 0x2be, 1);
26810 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26812 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26814 wlc_phy_table_write_nphy(pi,
26815 (core ==
26816 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26817 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26818 32, &phy_a8);
26820 if (cal_mode != CAL_GCTRL)
26821 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
26825 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
26827 int phy_a1;
26828 int phy_a2;
26829 bool phy_a3;
26830 struct nphy_ipa_txcalgains phy_a4;
26831 bool phy_a5 = false;
26832 bool phy_a6 = true;
26833 s32 phy_a7, phy_a8;
26834 u32 phy_a9;
26835 int phy_a10;
26836 bool phy_a11 = false;
26837 int phy_a12;
26838 u8 phy_a13 = 0;
26839 u8 phy_a14;
26840 u8 *phy_a15 = NULL;
26842 phy_a4.useindex = true;
26843 phy_a12 = start_gain;
26845 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26847 phy_a2 = 20;
26848 phy_a1 = 1;
26850 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26851 if (pi->pubpi.radiorev == 5) {
26853 phy_a15 = pad_gain_codes_used_2057rev5;
26854 phy_a13 =
26855 sizeof(pad_gain_codes_used_2057rev5) /
26856 sizeof(pad_gain_codes_used_2057rev5
26857 [0]) - 1;
26859 } else if ((pi->pubpi.radiorev == 7)
26860 || (pi->pubpi.radiorev == 8)) {
26862 phy_a15 = pad_gain_codes_used_2057rev7;
26863 phy_a13 =
26864 sizeof(pad_gain_codes_used_2057rev7) /
26865 sizeof(pad_gain_codes_used_2057rev7
26866 [0]) - 1;
26868 } else {
26870 phy_a15 = pad_all_gain_codes_2057;
26871 phy_a13 = sizeof(pad_all_gain_codes_2057) /
26872 sizeof(pad_all_gain_codes_2057[0]) -
26876 } else {
26878 phy_a15 = pga_all_gain_codes_2057;
26879 phy_a13 = sizeof(pga_all_gain_codes_2057) /
26880 sizeof(pga_all_gain_codes_2057[0]) - 1;
26883 phy_a14 = 0;
26885 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
26886 if (CHSPEC_IS2G(pi->radio_chanspec))
26887 phy_a4.gains.pad[core] =
26888 (u16) phy_a15[phy_a12];
26889 else
26890 phy_a4.gains.pga[core] =
26891 (u16) phy_a15[phy_a12];
26893 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
26895 wlc_phy_table_read_nphy(pi,
26896 (core ==
26897 PHY_CORE_0 ?
26898 NPHY_TBL_ID_EPSILONTBL0 :
26899 NPHY_TBL_ID_EPSILONTBL1), 1,
26900 63, 32, &phy_a9);
26902 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
26904 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
26905 (phy_a8 == 4095) || (phy_a8 == -4096));
26907 if (!phy_a6 && (phy_a3 != phy_a5)) {
26908 if (!phy_a3)
26909 phy_a12 -= (u8) phy_a1;
26911 phy_a11 = true;
26912 break;
26915 if (phy_a3)
26916 phy_a12 += (u8) phy_a1;
26917 else
26918 phy_a12 -= (u8) phy_a1;
26920 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
26921 if (phy_a12 < phy_a14)
26922 phy_a12 = phy_a14;
26923 else
26924 phy_a12 = phy_a13;
26926 phy_a11 = true;
26927 break;
26930 phy_a6 = false;
26931 phy_a5 = phy_a3;
26934 } else {
26935 phy_a2 = 10;
26936 phy_a1 = 8;
26937 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
26938 phy_a4.index = (u8) phy_a12;
26939 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
26941 wlc_phy_table_read_nphy(pi,
26942 (core ==
26943 PHY_CORE_0 ?
26944 NPHY_TBL_ID_EPSILONTBL0 :
26945 NPHY_TBL_ID_EPSILONTBL1), 1,
26946 63, 32, &phy_a9);
26948 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
26950 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
26951 (phy_a8 == 4095) || (phy_a8 == -4096));
26953 if (!phy_a6 && (phy_a3 != phy_a5)) {
26954 if (!phy_a3)
26955 phy_a12 -= (u8) phy_a1;
26957 phy_a11 = true;
26958 break;
26961 if (phy_a3)
26962 phy_a12 += (u8) phy_a1;
26963 else
26964 phy_a12 -= (u8) phy_a1;
26966 if ((phy_a12 < 0) || (phy_a12 > 127)) {
26967 if (phy_a12 < 0)
26968 phy_a12 = 0;
26969 else
26970 phy_a12 = 127;
26972 phy_a11 = true;
26973 break;
26976 phy_a6 = false;
26977 phy_a5 = phy_a3;
26982 if (NREV_GE(pi->pubpi.phy_rev, 7))
26983 return (u8) phy_a15[phy_a12];
26984 else
26985 return (u8) phy_a12;
26989 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
26991 struct nphy_ipa_txcalgains phy_b1[2];
26992 struct nphy_papd_restore_state phy_b2;
26993 bool phy_b3;
26994 u8 phy_b4;
26995 u8 phy_b5;
26996 s16 phy_b6, phy_b7, phy_b8;
26997 u16 phy_b9;
26998 s16 phy_b10, phy_b11, phy_b12;
27000 phy_b11 = 0;
27001 phy_b12 = 0;
27002 phy_b7 = 0;
27003 phy_b8 = 0;
27004 phy_b6 = 0;
27006 if (pi->nphy_papd_skip == 1)
27007 return;
27009 phy_b3 = (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
27010 if (!phy_b3)
27011 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27013 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27015 pi->nphy_force_papd_cal = false;
27017 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27018 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27019 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27021 pi->nphy_papd_last_cal = pi->sh->now;
27022 pi->nphy_papd_recal_counter++;
27024 if (NORADIO_ENAB(pi->pubpi))
27025 return;
27027 phy_b4 = pi->nphy_txpwrctrl;
27028 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27030 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27031 nphy_papd_scaltbl);
27032 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27033 nphy_papd_scaltbl);
27035 phy_b9 = read_phy_reg(pi, 0x01);
27036 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27038 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27039 s32 i, val = 0;
27040 for (i = 0; i < 64; i++)
27041 wlc_phy_table_write_nphy(pi,
27042 ((phy_b5 ==
27043 PHY_CORE_0) ?
27044 NPHY_TBL_ID_EPSILONTBL0 :
27045 NPHY_TBL_ID_EPSILONTBL1), 1,
27046 i, 32, &val);
27049 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27051 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27052 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27053 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27055 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27056 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27057 if ((pi->pubpi.radiorev == 3)
27058 || (pi->pubpi.radiorev == 4)
27059 || (pi->pubpi.radiorev == 6)) {
27060 pi->nphy_papd_cal_gain_index[phy_b5] =
27062 } else if (pi->pubpi.radiorev == 5) {
27063 pi->nphy_papd_cal_gain_index[phy_b5] =
27065 pi->nphy_papd_cal_gain_index[phy_b5] =
27066 wlc_phy_a3_nphy(
27068 pi->
27069 nphy_papd_cal_gain_index
27070 [phy_b5],
27071 phy_b5);
27073 } else if ((pi->pubpi.radiorev == 7)
27074 || (pi->pubpi.radiorev == 8)) {
27076 pi->nphy_papd_cal_gain_index[phy_b5] =
27078 pi->nphy_papd_cal_gain_index[phy_b5] =
27079 wlc_phy_a3_nphy(
27081 pi->
27082 nphy_papd_cal_gain_index
27083 [phy_b5],
27084 phy_b5);
27088 phy_b1[phy_b5].gains.pad[phy_b5] =
27089 pi->nphy_papd_cal_gain_index[phy_b5];
27091 } else {
27092 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27093 pi->nphy_papd_cal_gain_index[phy_b5] =
27094 wlc_phy_a3_nphy(
27096 pi->
27097 nphy_papd_cal_gain_index
27098 [phy_b5], phy_b5);
27099 phy_b1[phy_b5].gains.pga[phy_b5] =
27100 pi->nphy_papd_cal_gain_index[phy_b5];
27102 } else {
27103 phy_b1[phy_b5].useindex = true;
27104 phy_b1[phy_b5].index = 16;
27105 phy_b1[phy_b5].index =
27106 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
27107 phy_b5);
27109 pi->nphy_papd_cal_gain_index[phy_b5] =
27110 15 - ((phy_b1[phy_b5].index) >> 3);
27113 switch (pi->nphy_papd_cal_type) {
27114 case 0:
27115 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27116 break;
27117 case 1:
27118 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27119 break;
27122 if (NREV_GE(pi->pubpi.phy_rev, 7))
27123 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27126 if (NREV_LT(pi->pubpi.phy_rev, 7))
27127 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27129 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27130 int eps_offset = 0;
27132 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27133 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27134 if (pi->pubpi.radiorev == 3)
27135 eps_offset = -2;
27136 else if (pi->pubpi.radiorev == 5)
27137 eps_offset = 3;
27138 else
27139 eps_offset = -1;
27140 } else {
27141 eps_offset = 2;
27144 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27145 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27146 phy_b10 = 0;
27147 if ((pi->pubpi.radiorev == 3) ||
27148 (pi->pubpi.radiorev == 4) ||
27149 (pi->pubpi.radiorev == 6)) {
27150 phy_b12 = -(
27151 nphy_papd_padgain_dlt_2g_2057rev3n4
27152 [phy_b8] + 1) / 2;
27153 phy_b10 = -1;
27154 } else if (pi->pubpi.radiorev == 5) {
27155 phy_b12 = -(
27156 nphy_papd_padgain_dlt_2g_2057rev5
27157 [phy_b8] + 1) / 2;
27158 } else if ((pi->pubpi.radiorev == 7) ||
27159 (pi->pubpi.radiorev == 8)) {
27160 phy_b12 = -(
27161 nphy_papd_padgain_dlt_2g_2057rev7
27162 [phy_b8] + 1) / 2;
27164 } else {
27165 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27166 if ((pi->pubpi.radiorev == 3) ||
27167 (pi->pubpi.radiorev == 4) ||
27168 (pi->pubpi.radiorev == 6))
27169 phy_b11 =
27170 -(nphy_papd_pgagain_dlt_5g_2057
27171 [phy_b7]
27172 + 1) / 2;
27173 else if ((pi->pubpi.radiorev == 7)
27174 || (pi->pubpi.radiorev == 8))
27175 phy_b11 = -(
27176 nphy_papd_pgagain_dlt_5g_2057rev7
27177 [phy_b7] + 1) / 2;
27179 phy_b10 = -9;
27182 if (CHSPEC_IS2G(pi->radio_chanspec))
27183 phy_b6 =
27184 -60 + 27 + eps_offset + phy_b12 +
27185 phy_b10;
27186 else
27187 phy_b6 =
27188 -60 + 27 + eps_offset + phy_b11 +
27189 phy_b10;
27191 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27192 0x29c, (0x1ff << 7), (phy_b6) << 7);
27194 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27195 } else {
27196 if (NREV_LT(pi->pubpi.phy_rev, 5))
27197 eps_offset = 4;
27198 else
27199 eps_offset = 2;
27201 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27203 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27204 phy_b11 =
27205 -(nphy_papd_pga_gain_delta_ipa_2g[
27206 phy_b7] +
27207 1) / 2;
27208 phy_b10 = 0;
27209 } else {
27210 phy_b11 =
27211 -(nphy_papd_pga_gain_delta_ipa_5g[
27212 phy_b7] +
27213 1) / 2;
27214 phy_b10 = -9;
27217 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27219 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27220 0x29c, (0x1ff << 7), (phy_b6) << 7);
27222 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27226 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27227 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27229 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27230 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27232 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27233 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27234 0x2a4, (0x1 << 13), (0) << 13);
27236 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27237 0x2a4, (0x1 << 13), (0) << 13);
27239 } else {
27240 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27241 0x2a4, (0x1 << 11), (0) << 11);
27243 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27244 0x2a4, (0x1 << 11), (0) << 11);
27247 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27249 write_phy_reg(pi, 0x01, phy_b9);
27251 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27253 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27254 if (phy_b4 == PHY_TPC_HW_OFF) {
27255 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
27256 (s8) (pi->nphy_txpwrindex[0].
27257 index_internal), false);
27258 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
27259 (s8) (pi->nphy_txpwrindex[1].
27260 index_internal), false);
27263 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27265 if (!phy_b3)
27266 wlapi_enable_mac(pi->sh->physhim);
27269 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27271 uint core;
27272 u32 txgain;
27273 u16 rad_gain, dac_gain, bbmult, m1m2;
27274 u8 txpi[2], chan_freq_range;
27275 s32 rfpwr_offset;
27277 if (pi->phyhang_avoid)
27278 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27280 if (pi->sh->sromrev < 4) {
27281 txpi[0] = txpi[1] = 72;
27282 } else {
27284 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27285 switch (chan_freq_range) {
27286 case WL_CHAN_FREQ_RANGE_2G:
27287 txpi[0] = pi->nphy_txpid2g[0];
27288 txpi[1] = pi->nphy_txpid2g[1];
27289 break;
27290 case WL_CHAN_FREQ_RANGE_5GL:
27291 txpi[0] = pi->nphy_txpid5gl[0];
27292 txpi[1] = pi->nphy_txpid5gl[1];
27293 break;
27294 case WL_CHAN_FREQ_RANGE_5GM:
27295 txpi[0] = pi->nphy_txpid5g[0];
27296 txpi[1] = pi->nphy_txpid5g[1];
27297 break;
27298 case WL_CHAN_FREQ_RANGE_5GH:
27299 txpi[0] = pi->nphy_txpid5gh[0];
27300 txpi[1] = pi->nphy_txpid5gh[1];
27301 break;
27302 default:
27303 txpi[0] = txpi[1] = 91;
27304 break;
27308 if (NREV_GE(pi->pubpi.phy_rev, 7))
27309 txpi[0] = txpi[1] = 30;
27310 else if (NREV_GE(pi->pubpi.phy_rev, 3))
27311 txpi[0] = txpi[1] = 40;
27313 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27315 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27316 (txpi[1] < 40) || (txpi[1] > 100))
27317 txpi[0] = txpi[1] = 91;
27320 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27321 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27322 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27323 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27325 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27326 uint phyrev = pi->pubpi.phy_rev;
27328 if (NREV_GE(phyrev, 3)) {
27329 if (PHY_IPA(pi)) {
27330 u32 *tx_gaintbl =
27331 wlc_phy_get_ipa_gaintbl_nphy(pi);
27332 txgain = tx_gaintbl[txpi[core]];
27333 } else {
27334 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27335 if (NREV_IS(phyrev, 3)) {
27336 txgain =
27337 nphy_tpc_5GHz_txgain_rev3
27338 [txpi[core]];
27339 } else if (NREV_IS(phyrev, 4)) {
27340 txgain = (
27341 pi->srom_fem5g.extpagain ==
27342 3) ?
27343 nphy_tpc_5GHz_txgain_HiPwrEPA
27344 [txpi[core]] :
27345 nphy_tpc_5GHz_txgain_rev4
27346 [txpi[core]];
27347 } else {
27348 txgain =
27349 nphy_tpc_5GHz_txgain_rev5
27350 [txpi[core]];
27352 } else {
27353 if (NREV_GE(phyrev, 5) &&
27354 (pi->srom_fem2g.extpagain == 3)) {
27355 txgain =
27356 nphy_tpc_txgain_HiPwrEPA
27357 [txpi[core]];
27358 } else {
27359 txgain = nphy_tpc_txgain_rev3
27360 [txpi[core]];
27364 } else {
27365 txgain = nphy_tpc_txgain[txpi[core]];
27368 if (NREV_GE(phyrev, 3))
27369 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27370 else
27371 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27373 if (NREV_GE(phyrev, 7))
27374 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27375 else
27376 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27378 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27380 if (NREV_GE(phyrev, 3))
27381 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27382 0xa5), (0x1 << 8), (0x1 << 8));
27383 else
27384 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27386 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27388 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27389 &rad_gain);
27391 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27392 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27393 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27394 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27396 if (PHY_IPA(pi)) {
27397 wlc_phy_table_read_nphy(pi,
27398 (core ==
27399 PHY_CORE_0 ?
27400 NPHY_TBL_ID_CORE1TXPWRCTL :
27401 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27402 576 + txpi[core], 32,
27403 &rfpwr_offset);
27405 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27406 0x29b, (0x1ff << 4),
27407 ((s16) rfpwr_offset) << 4);
27409 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27410 0x29b, (0x1 << 2), (1) << 2);
27415 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
27417 if (pi->phyhang_avoid)
27418 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27421 static void
27422 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27423 u8 tmp_max_pwr, u8 rate_start,
27424 u8 rate_end)
27426 u8 rate;
27427 u8 word_num, nibble_num;
27428 u8 tmp_nibble;
27430 for (rate = rate_start; rate <= rate_end; rate++) {
27431 word_num = (rate - rate_start) >> 2;
27432 nibble_num = (rate - rate_start) & 0x3;
27433 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27435 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27439 static void
27440 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27441 u8 rate_start, u8 rate_end)
27443 u8 rate;
27445 for (rate = rate_start; rate <= rate_end; rate++)
27446 srom_max[rate] -= 2 * pwr_offset;
27449 void
27450 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27451 u8 rate_mcs_end, u8 rate_ofdm_start)
27453 u8 rate1, rate2;
27455 rate2 = rate_ofdm_start;
27456 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27457 power[rate1] = power[rate2];
27458 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27460 power[rate_mcs_end] = power[rate_mcs_end - 1];
27463 void
27464 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27465 u8 rate_ofdm_end, u8 rate_mcs_start)
27467 u8 rate1, rate2;
27469 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27470 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27471 power[rate1] = power[rate2];
27472 if (rate1 == rate_ofdm_start)
27473 power[++rate1] = power[rate2];
27477 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
27479 uint rate1, rate2, band_num;
27480 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27481 u8 tmp_max_pwr = 0;
27482 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
27483 u8 *tx_srom_max_rate = NULL;
27485 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
27486 band_num++) {
27487 switch (band_num) {
27488 case 0:
27490 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
27491 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27493 pwr_offsets1[0] = pi->cck2gpo;
27494 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27495 pwr_offsets1,
27496 tmp_max_pwr,
27497 TXP_FIRST_CCK,
27498 TXP_LAST_CCK);
27500 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
27501 pwr_offsets1[1] =
27502 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
27504 pwr_offsets2 = pi->mcs2gpo;
27506 tmp_cddpo = pi->cdd2gpo;
27507 tmp_stbcpo = pi->stbc2gpo;
27508 tmp_bw40po = pi->bw402gpo;
27510 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27511 break;
27512 case 1:
27514 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
27515 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27517 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
27518 pwr_offsets1[1] =
27519 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
27521 pwr_offsets2 = pi->mcs5gpo;
27523 tmp_cddpo = pi->cdd5gpo;
27524 tmp_stbcpo = pi->stbc5gpo;
27525 tmp_bw40po = pi->bw405gpo;
27527 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27528 break;
27529 case 2:
27531 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
27532 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27534 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
27535 pwr_offsets1[1] =
27536 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
27538 pwr_offsets2 = pi->mcs5glpo;
27540 tmp_cddpo = pi->cdd5glpo;
27541 tmp_stbcpo = pi->stbc5glpo;
27542 tmp_bw40po = pi->bw405glpo;
27544 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27545 break;
27546 case 3:
27548 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
27549 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27551 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
27552 pwr_offsets1[1] =
27553 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
27555 pwr_offsets2 = pi->mcs5ghpo;
27557 tmp_cddpo = pi->cdd5ghpo;
27558 tmp_stbcpo = pi->stbc5ghpo;
27559 tmp_bw40po = pi->bw405ghpo;
27561 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27562 break;
27565 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27566 tmp_max_pwr, TXP_FIRST_OFDM,
27567 TXP_LAST_OFDM);
27569 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27570 TXP_FIRST_MCS_20_SISO,
27571 TXP_LAST_MCS_20_SISO,
27572 TXP_FIRST_OFDM);
27574 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27575 tmp_max_pwr,
27576 TXP_FIRST_MCS_20_CDD,
27577 TXP_LAST_MCS_20_CDD);
27579 if (NREV_GE(pi->pubpi.phy_rev, 3))
27580 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27581 TXP_FIRST_MCS_20_CDD,
27582 TXP_LAST_MCS_20_CDD);
27584 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27585 TXP_FIRST_OFDM_20_CDD,
27586 TXP_LAST_OFDM_20_CDD,
27587 TXP_FIRST_MCS_20_CDD);
27589 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27590 tmp_max_pwr,
27591 TXP_FIRST_MCS_20_STBC,
27592 TXP_LAST_MCS_20_STBC);
27594 if (NREV_GE(pi->pubpi.phy_rev, 3))
27595 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27596 tmp_stbcpo,
27597 TXP_FIRST_MCS_20_STBC,
27598 TXP_LAST_MCS_20_STBC);
27600 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27601 &pwr_offsets2[2], tmp_max_pwr,
27602 TXP_FIRST_MCS_20_SDM,
27603 TXP_LAST_MCS_20_SDM);
27605 if (NPHY_IS_SROM_REINTERPRET) {
27607 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27608 &pwr_offsets2[4],
27609 tmp_max_pwr,
27610 TXP_FIRST_MCS_40_SISO,
27611 TXP_LAST_MCS_40_SISO);
27613 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27614 TXP_FIRST_OFDM_40_SISO,
27615 TXP_LAST_OFDM_40_SISO,
27616 TXP_FIRST_MCS_40_SISO);
27618 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27619 &pwr_offsets2[4],
27620 tmp_max_pwr,
27621 TXP_FIRST_MCS_40_CDD,
27622 TXP_LAST_MCS_40_CDD);
27624 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27625 TXP_FIRST_MCS_40_CDD,
27626 TXP_LAST_MCS_40_CDD);
27628 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27629 TXP_FIRST_OFDM_40_CDD,
27630 TXP_LAST_OFDM_40_CDD,
27631 TXP_FIRST_MCS_40_CDD);
27633 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27634 &pwr_offsets2[4],
27635 tmp_max_pwr,
27636 TXP_FIRST_MCS_40_STBC,
27637 TXP_LAST_MCS_40_STBC);
27639 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27640 tmp_stbcpo,
27641 TXP_FIRST_MCS_40_STBC,
27642 TXP_LAST_MCS_40_STBC);
27644 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27645 &pwr_offsets2[6],
27646 tmp_max_pwr,
27647 TXP_FIRST_MCS_40_SDM,
27648 TXP_LAST_MCS_40_SDM);
27649 } else {
27651 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27652 TXP_FIRST_OFDM;
27653 rate1 <= TXP_LAST_MCS_40_SDM;
27654 rate1++, rate2++)
27655 tx_srom_max_rate[rate1] =
27656 tx_srom_max_rate[rate2];
27659 if (NREV_GE(pi->pubpi.phy_rev, 3))
27660 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27661 tmp_bw40po,
27662 TXP_FIRST_OFDM_40_SISO,
27663 TXP_LAST_MCS_40_SDM);
27665 tx_srom_max_rate[TXP_MCS_32] =
27666 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27669 return;
27672 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
27674 u16 bw40po, cddpo, stbcpo, bwduppo;
27675 uint band_num;
27677 if (pi->sh->sromrev >= 9)
27678 return;
27680 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
27681 pi->bw402gpo = bw40po & 0xf;
27682 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27683 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27684 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27686 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
27687 pi->cdd2gpo = cddpo & 0xf;
27688 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27689 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27690 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27692 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
27693 pi->stbc2gpo = stbcpo & 0xf;
27694 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27695 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27696 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27698 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
27699 pi->bwdup2gpo = bwduppo & 0xf;
27700 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27701 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27702 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27704 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
27705 band_num++) {
27706 switch (band_num) {
27707 case 0:
27709 pi->nphy_txpid2g[PHY_CORE_0] =
27710 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
27711 pi->nphy_txpid2g[PHY_CORE_1] =
27712 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
27713 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
27714 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
27715 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
27716 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
27717 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
27718 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
27719 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
27720 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
27721 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
27722 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
27723 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
27724 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
27725 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
27726 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
27727 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
27728 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
27729 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
27730 (s8) PHY_GETINTVAR(pi, "itt2ga0");
27731 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
27732 (s8) PHY_GETINTVAR(pi, "itt2ga1");
27734 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
27736 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
27738 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
27739 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
27740 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
27741 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
27742 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
27743 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
27744 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
27745 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
27746 break;
27747 case 1:
27749 pi->nphy_txpid5g[PHY_CORE_0] =
27750 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
27751 pi->nphy_txpid5g[PHY_CORE_1] =
27752 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
27753 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
27754 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
27755 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
27756 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
27757 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
27758 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
27759 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
27760 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
27761 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
27762 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
27763 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
27764 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
27765 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
27766 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
27767 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
27768 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
27769 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
27770 (s8) PHY_GETINTVAR(pi, "itt5ga0");
27771 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
27772 (s8) PHY_GETINTVAR(pi, "itt5ga1");
27774 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
27776 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
27777 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
27778 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
27779 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
27780 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
27781 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
27782 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
27783 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
27784 break;
27785 case 2:
27787 pi->nphy_txpid5gl[0] =
27788 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
27789 pi->nphy_txpid5gl[1] =
27790 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
27791 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
27792 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
27793 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
27794 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
27795 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
27796 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
27797 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
27798 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
27799 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
27800 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
27801 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
27802 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
27803 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
27804 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
27805 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
27806 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
27807 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
27808 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
27810 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
27812 pi->mcs5glpo[0] =
27813 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
27814 pi->mcs5glpo[1] =
27815 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
27816 pi->mcs5glpo[2] =
27817 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
27818 pi->mcs5glpo[3] =
27819 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
27820 pi->mcs5glpo[4] =
27821 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
27822 pi->mcs5glpo[5] =
27823 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
27824 pi->mcs5glpo[6] =
27825 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
27826 pi->mcs5glpo[7] =
27827 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
27828 break;
27829 case 3:
27831 pi->nphy_txpid5gh[0] =
27832 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
27833 pi->nphy_txpid5gh[1] =
27834 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
27835 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
27836 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
27837 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
27838 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
27839 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
27840 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
27841 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
27842 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
27843 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
27844 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
27845 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
27846 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
27847 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
27848 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
27849 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
27850 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
27851 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
27852 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
27854 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
27856 pi->mcs5ghpo[0] =
27857 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
27858 pi->mcs5ghpo[1] =
27859 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
27860 pi->mcs5ghpo[2] =
27861 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
27862 pi->mcs5ghpo[3] =
27863 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
27864 pi->mcs5ghpo[4] =
27865 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
27866 pi->mcs5ghpo[5] =
27867 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
27868 pi->mcs5ghpo[6] =
27869 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
27870 pi->mcs5ghpo[7] =
27871 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
27872 break;
27876 wlc_phy_txpwr_apply_nphy(pi);
27879 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
27882 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
27883 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
27884 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
27886 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
27887 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
27888 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
27889 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
27890 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
27892 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
27893 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
27894 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
27895 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
27896 if (PHY_GETVAR(pi, "antswctl5g"))
27897 pi->srom_fem5g.antswctrllut =
27898 (u8) PHY_GETINTVAR(pi, "antswctl5g");
27899 else
27900 pi->srom_fem5g.antswctrllut =
27901 (u8) PHY_GETINTVAR(pi, "antswctl2g");
27903 wlc_phy_txpower_ipa_upd(pi);
27905 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
27906 if (pi->phy_txcore_disable_temp == 0)
27907 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
27909 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
27910 if (pi->phy_tempsense_offset != 0) {
27911 if (pi->phy_tempsense_offset >
27912 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
27913 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
27914 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
27915 NPHY_SROM_MINTEMPOFFSET))
27916 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
27917 else
27918 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
27921 pi->phy_txcore_enable_temp =
27922 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
27924 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
27925 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
27926 pi->phycal_tempdelta = 0;
27928 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
27930 return true;
27933 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
27935 u8 tx_pwr_ctrl_state;
27936 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
27937 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
27939 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
27941 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
27942 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
27943 (void)R_REG(&pi->regs->maccontrol);
27944 udelay(1);
27947 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
27949 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
27950 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
27953 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
27955 u32 idx;
27956 u16 iqloCalbuf[7];
27957 u32 iqcomp, locomp, curr_locomp;
27958 s8 locomp_i, locomp_q;
27959 s8 curr_locomp_i, curr_locomp_q;
27960 u32 tbl_id, tbl_len, tbl_offset;
27961 u32 regval[128];
27963 if (pi->phyhang_avoid)
27964 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27966 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
27968 tbl_len = 128;
27969 tbl_offset = 320;
27970 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
27971 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
27972 iqcomp =
27973 (tbl_id ==
27974 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
27975 (iqloCalbuf[1] & 0x3ff)
27976 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
27977 (iqloCalbuf[3] & 0x3ff);
27979 for (idx = 0; idx < tbl_len; idx++)
27980 regval[idx] = iqcomp;
27981 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
27982 regval);
27985 tbl_offset = 448;
27986 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
27987 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
27989 locomp =
27990 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
27991 locomp_i = (s8) ((locomp >> 8) & 0xff);
27992 locomp_q = (s8) ((locomp) & 0xff);
27993 for (idx = 0; idx < tbl_len; idx++) {
27994 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27995 curr_locomp_i = locomp_i;
27996 curr_locomp_q = locomp_q;
27997 } else {
27998 curr_locomp_i = (s8) ((locomp_i *
27999 nphy_tpc_loscale[idx] +
28000 128) >> 8);
28001 curr_locomp_q =
28002 (s8) ((locomp_q *
28003 nphy_tpc_loscale[idx] +
28004 128) >> 8);
28006 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
28007 curr_locomp |= (u32) (curr_locomp_q & 0xff);
28008 regval[idx] = curr_locomp;
28010 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28011 regval);
28014 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28016 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28017 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28020 if (pi->phyhang_avoid)
28021 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28024 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
28026 u8 core;
28028 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28029 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28030 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28031 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28032 TX_SSI_MASTER, 0x5);
28033 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28034 TX_SSI_MUX, 0xe);
28036 if (pi->pubpi.radiorev != 5)
28037 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28038 core, TSSIA, 0);
28040 if (!NREV_IS(pi->pubpi.phy_rev, 7))
28041 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28042 core, TSSIG, 0x1);
28043 else
28044 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28045 core, TSSIG, 0x31);
28046 } else {
28047 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28048 TX_SSI_MASTER, 0x9);
28049 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28050 TX_SSI_MUX, 0xc);
28051 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28052 TSSIG, 0);
28054 if (pi->pubpi.radiorev != 5) {
28055 if (!NREV_IS(pi->pubpi.phy_rev, 7))
28056 WRITE_RADIO_REG3(pi, RADIO_2057,
28057 TX, core,
28058 TSSIA, 0x1);
28059 else
28060 WRITE_RADIO_REG3(pi, RADIO_2057,
28061 TX, core,
28062 TSSIA, 0x31);
28065 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28067 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28069 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28070 0x3);
28071 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28072 0x0);
28074 } else {
28075 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28076 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28077 0x80);
28078 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28079 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28081 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28082 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28083 0x0);
28084 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28085 0x0);
28086 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28087 0x3);
28088 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28089 0x0);
28090 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28091 0x8);
28092 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28093 0x0);
28094 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28095 0x0);
28097 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28098 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28099 TX_SSI_MASTER, 0x5);
28101 if (pi->pubpi.radiorev != 5)
28102 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28103 core, TSSIA, 0x0);
28104 if (NREV_GE(pi->pubpi.phy_rev, 5))
28105 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28106 core, TSSIG, 0x31);
28107 else
28108 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28109 core, TSSIG, 0x11);
28110 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28111 TX_SSI_MUX, 0xe);
28112 } else {
28113 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28114 TX_SSI_MASTER, 0x9);
28115 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28116 TSSIA, 0x31);
28117 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28118 TSSIG, 0x0);
28119 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28120 TX_SSI_MUX, 0xc);
28126 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
28128 s32 rssi_buf[4];
28129 s32 int_val;
28131 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28133 return;
28135 if (PHY_IPA(pi))
28136 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28138 if (NREV_GE(pi->pubpi.phy_rev, 7))
28139 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28140 0, 0x3, 0,
28141 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28142 else if (NREV_GE(pi->pubpi.phy_rev, 3))
28143 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28145 wlc_phy_stopplayback_nphy(pi);
28147 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
28149 udelay(20);
28150 int_val =
28151 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
28153 wlc_phy_stopplayback_nphy(pi);
28154 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28156 if (NREV_GE(pi->pubpi.phy_rev, 7))
28157 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28158 0, 0x3, 1,
28159 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28160 else if (NREV_GE(pi->pubpi.phy_rev, 3))
28161 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28163 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28165 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28166 (u8) ((int_val >> 24) & 0xff);
28167 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28168 (u8) ((int_val >> 24) & 0xff);
28170 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28171 (u8) ((int_val >> 8) & 0xff);
28172 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28173 (u8) ((int_val >> 8) & 0xff);
28174 } else {
28175 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28176 (u8) ((int_val >> 24) & 0xff);
28178 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28179 (u8) ((int_val >> 8) & 0xff);
28181 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28182 (u8) ((int_val >> 16) & 0xff);
28183 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28184 (u8) ((int_val) & 0xff);
28189 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
28191 u32 idx;
28192 s16 a1[2], b0[2], b1[2];
28193 s8 target_pwr_qtrdbm[2];
28194 s32 num, den, pwr_est;
28195 u8 chan_freq_range;
28196 u8 idle_tssi[2];
28197 u32 tbl_id, tbl_len, tbl_offset;
28198 u32 regval[64];
28199 u8 core;
28201 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28202 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28203 (void)R_REG(&pi->regs->maccontrol);
28204 udelay(1);
28207 if (pi->phyhang_avoid)
28208 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28210 or_phy_reg(pi, 0x122, (0x1 << 0));
28212 if (NREV_GE(pi->pubpi.phy_rev, 3))
28213 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
28214 else
28215 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28217 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28218 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28220 if (pi->sh->sromrev < 4) {
28221 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28222 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28223 target_pwr_qtrdbm[0] = 13 * 4;
28224 target_pwr_qtrdbm[1] = 13 * 4;
28225 a1[0] = -424;
28226 a1[1] = -424;
28227 b0[0] = 5612;
28228 b0[1] = 5612;
28229 b1[1] = -1393;
28230 b1[0] = -1393;
28231 } else {
28233 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28234 switch (chan_freq_range) {
28235 case WL_CHAN_FREQ_RANGE_2G:
28236 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28237 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28238 target_pwr_qtrdbm[0] =
28239 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28240 target_pwr_qtrdbm[1] =
28241 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28242 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28243 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28244 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28245 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28246 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28247 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28248 break;
28249 case WL_CHAN_FREQ_RANGE_5GL:
28250 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28251 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28252 target_pwr_qtrdbm[0] =
28253 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28254 target_pwr_qtrdbm[1] =
28255 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28256 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28257 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28258 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28259 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28260 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28261 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28262 break;
28263 case WL_CHAN_FREQ_RANGE_5GM:
28264 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28265 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28266 target_pwr_qtrdbm[0] =
28267 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28268 target_pwr_qtrdbm[1] =
28269 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28270 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28271 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28272 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28273 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28274 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28275 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28276 break;
28277 case WL_CHAN_FREQ_RANGE_5GH:
28278 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28279 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28280 target_pwr_qtrdbm[0] =
28281 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28282 target_pwr_qtrdbm[1] =
28283 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28284 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28285 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28286 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28287 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28288 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28289 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28290 break;
28291 default:
28292 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28293 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28294 target_pwr_qtrdbm[0] = 13 * 4;
28295 target_pwr_qtrdbm[1] = 13 * 4;
28296 a1[0] = -424;
28297 a1[1] = -424;
28298 b0[0] = 5612;
28299 b0[1] = 5612;
28300 b1[1] = -1393;
28301 b1[0] = -1393;
28302 break;
28306 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
28307 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
28309 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28310 if (pi->srom_fem2g.tssipos)
28311 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28313 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28314 for (core = 0; core <= 1; core++) {
28315 if (PHY_IPA(pi)) {
28316 if (CHSPEC_IS2G(pi->radio_chanspec))
28317 WRITE_RADIO_REG3(pi, RADIO_2057,
28318 TX, core,
28319 TX_SSI_MUX,
28320 0xe);
28321 else
28322 WRITE_RADIO_REG3(pi, RADIO_2057,
28323 TX, core,
28324 TX_SSI_MUX,
28325 0xc);
28328 } else {
28329 if (PHY_IPA(pi)) {
28331 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28332 RADIO_2056_TX0,
28333 (CHSPEC_IS5G
28334 (pi->radio_chanspec)) ?
28335 0xc : 0xe);
28336 write_radio_reg(pi,
28337 RADIO_2056_TX_TX_SSI_MUX |
28338 RADIO_2056_TX1,
28339 (CHSPEC_IS5G
28340 (pi->radio_chanspec)) ?
28341 0xc : 0xe);
28342 } else {
28344 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28345 RADIO_2056_TX0, 0x11);
28346 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28347 RADIO_2056_TX1, 0x11);
28352 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28353 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28354 (void)R_REG(&pi->regs->maccontrol);
28355 udelay(1);
28358 if (NREV_GE(pi->pubpi.phy_rev, 7))
28359 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28360 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28361 else
28362 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28363 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28365 if (NREV_GE(pi->pubpi.phy_rev, 7))
28366 mod_phy_reg(pi, 0x222, (0xff << 0),
28367 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28368 else if (NREV_GT(pi->pubpi.phy_rev, 1))
28369 mod_phy_reg(pi, 0x222, (0xff << 0),
28370 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28372 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28373 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28375 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28377 write_phy_reg(pi, 0x1e9,
28378 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28380 write_phy_reg(pi, 0x1ea,
28381 (target_pwr_qtrdbm[0] << 0) |
28382 (target_pwr_qtrdbm[1] << 8));
28384 tbl_len = 64;
28385 tbl_offset = 0;
28386 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28387 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28389 for (idx = 0; idx < tbl_len; idx++) {
28390 num = 8 *
28391 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28392 den = 32768 + a1[tbl_id - 26] * idx;
28393 pwr_est = max(((4 * num + den / 2) / den), -8);
28394 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28395 if (idx <=
28396 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28397 pwr_est =
28398 max(pwr_est,
28399 target_pwr_qtrdbm
28400 [tbl_id - 26] + 1);
28402 regval[idx] = (u32) pwr_est;
28404 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28405 regval);
28408 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28409 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28410 pi->adj_pwr_tbl_nphy);
28411 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28412 pi->adj_pwr_tbl_nphy);
28414 if (pi->phyhang_avoid)
28415 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28418 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28420 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28421 (0x1 << 14) | (0x1 << 13));
28424 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
28426 u16 tmp;
28427 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28429 tmp = (tmp & (0x7f << 8)) >> 8;
28430 return (u8) tmp;
28433 static void
28434 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
28436 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28438 if (NREV_GT(pi->pubpi.phy_rev, 1))
28439 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28442 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28444 u16 tmp;
28445 u16 pwr_idx[2];
28447 if (wlc_phy_txpwr_ison_nphy(pi)) {
28448 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28449 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28451 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28452 } else {
28453 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28454 << 8) |
28455 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28458 return tmp;
28461 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28463 if (PHY_IPA(pi)
28464 && (pi->nphy_force_papd_cal
28465 || (wlc_phy_txpwr_ison_nphy(pi)
28467 (((u32)
28468 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28469 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28470 || ((u32)
28471 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28472 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28473 wlc_phy_a4(pi, true);
28476 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28478 u16 mask = 0, val = 0, ishw = 0;
28479 u8 ctr;
28480 uint core;
28481 u32 tbl_offset;
28482 u32 tbl_len;
28483 u16 regval[84];
28485 if (pi->phyhang_avoid)
28486 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28488 switch (ctrl_type) {
28489 case PHY_TPC_HW_OFF:
28490 case PHY_TPC_HW_ON:
28491 pi->nphy_txpwrctrl = ctrl_type;
28492 break;
28493 default:
28494 break;
28497 if (ctrl_type == PHY_TPC_HW_OFF) {
28498 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28500 if (wlc_phy_txpwr_ison_nphy(pi)) {
28501 for (core = 0; core < pi->pubpi.phy_corenum;
28502 core++)
28503 pi->nphy_txpwr_idx[core] =
28504 wlc_phy_txpwr_idx_cur_get_nphy(
28506 (u8) core);
28511 tbl_len = 84;
28512 tbl_offset = 64;
28513 for (ctr = 0; ctr < tbl_len; ctr++)
28514 regval[ctr] = 0;
28515 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28516 regval);
28517 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28518 regval);
28520 if (NREV_GE(pi->pubpi.phy_rev, 3))
28521 and_phy_reg(pi, 0x1e7,
28522 (u16) (~((0x1 << 15) |
28523 (0x1 << 14) | (0x1 << 13))));
28524 else
28525 and_phy_reg(pi, 0x1e7,
28526 (u16) (~((0x1 << 14) | (0x1 << 13))));
28528 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28529 or_phy_reg(pi, 0x8f, (0x1 << 8));
28530 or_phy_reg(pi, 0xa5, (0x1 << 8));
28531 } else {
28532 or_phy_reg(pi, 0xa5, (0x1 << 14));
28535 if (NREV_IS(pi->pubpi.phy_rev, 2))
28536 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28537 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28538 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28540 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28541 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28542 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28544 } else {
28546 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28547 8, pi->adj_pwr_tbl_nphy);
28548 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28549 8, pi->adj_pwr_tbl_nphy);
28551 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28552 mask = (0x1 << 14) | (0x1 << 13);
28553 val = (ishw << 14) | (ishw << 13);
28555 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28556 mask |= (0x1 << 15);
28557 val |= (ishw << 15);
28560 mod_phy_reg(pi, 0x1e7, mask, val);
28562 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28563 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28564 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28565 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28566 } else {
28567 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28568 if (NREV_GT(pi->pubpi.phy_rev, 1))
28569 mod_phy_reg(pi, 0x222,
28570 (0xff << 0), 0x64);
28574 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28575 if ((pi->nphy_txpwr_idx[0] != 128)
28576 && (pi->nphy_txpwr_idx[1] != 128))
28577 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28578 pi->
28579 nphy_txpwr_idx
28580 [0],
28581 pi->
28582 nphy_txpwr_idx
28583 [1]);
28586 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28587 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28588 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28589 } else {
28590 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28593 if (NREV_IS(pi->pubpi.phy_rev, 2))
28594 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28595 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28596 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28598 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28599 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28600 0x0, BRCM_BAND_ALL);
28602 if (PHY_IPA(pi)) {
28603 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28604 0x29b, (0x1 << 2), (0) << 2);
28606 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28607 0x29b, (0x1 << 2), (0) << 2);
28613 if (pi->phyhang_avoid)
28614 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28617 void
28618 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28619 bool restore_cals)
28621 u8 core, txpwrctl_tbl;
28622 u16 tx_ind0, iq_ind0, lo_ind0;
28623 u16 m1m2;
28624 u32 txgain;
28625 u16 rad_gain, dac_gain;
28626 u8 bbmult;
28627 u32 iqcomp;
28628 u16 iqcomp_a, iqcomp_b;
28629 u32 locomp;
28630 u16 tmpval;
28631 u8 tx_pwr_ctrl_state;
28632 s32 rfpwr_offset;
28633 u16 regval[2];
28635 if (pi->phyhang_avoid)
28636 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28638 tx_ind0 = 192;
28639 iq_ind0 = 320;
28640 lo_ind0 = 448;
28642 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28644 if ((core_mask & (1 << core)) == 0)
28645 continue;
28647 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28649 if (txpwrindex < 0) {
28650 if (pi->nphy_txpwrindex[core].index < 0)
28651 continue;
28653 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28654 mod_phy_reg(pi, 0x8f,
28655 (0x1 << 8),
28656 pi->nphy_txpwrindex[core].
28657 AfectrlOverride);
28658 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28659 pi->nphy_txpwrindex[core].
28660 AfectrlOverride);
28661 } else {
28662 mod_phy_reg(pi, 0xa5,
28663 (0x1 << 14),
28664 pi->nphy_txpwrindex[core].
28665 AfectrlOverride);
28668 write_phy_reg(pi, (core == PHY_CORE_0) ?
28669 0xaa : 0xab,
28670 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28672 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28673 &pi->nphy_txpwrindex[core].
28674 rad_gain);
28676 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28677 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28678 m1m2 |= ((core == PHY_CORE_0) ?
28679 (pi->nphy_txpwrindex[core].bbmult << 8) :
28680 (pi->nphy_txpwrindex[core].bbmult << 0));
28681 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28683 if (restore_cals) {
28684 wlc_phy_table_write_nphy(
28685 pi, 15, 2, (80 + 2 * core), 16,
28686 &pi->nphy_txpwrindex[core].iqcomp_a);
28687 wlc_phy_table_write_nphy(
28688 pi, 15, 1, (85 + core), 16,
28689 &pi->nphy_txpwrindex[core].locomp);
28690 wlc_phy_table_write_nphy(
28691 pi, 15, 1, (93 + core), 16,
28692 &pi->nphy_txpwrindex[core].locomp);
28695 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28697 pi->nphy_txpwrindex[core].index_internal =
28698 pi->nphy_txpwrindex[core].index_internal_save;
28699 } else {
28701 if (pi->nphy_txpwrindex[core].index < 0) {
28703 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28704 mod_phy_reg(pi, 0x8f,
28705 (0x1 << 8),
28706 pi->nphy_txpwrindex[core].
28707 AfectrlOverride);
28708 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28709 pi->nphy_txpwrindex[core].
28710 AfectrlOverride);
28711 } else {
28712 pi->nphy_txpwrindex[core].
28713 AfectrlOverride =
28714 read_phy_reg(pi, 0xa5);
28717 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28718 read_phy_reg(pi, (core == PHY_CORE_0) ?
28719 0xaa : 0xab);
28721 wlc_phy_table_read_nphy(pi, 7, 1,
28722 (0x110 + core), 16,
28723 &pi->
28724 nphy_txpwrindex[core].
28725 rad_gain);
28727 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28728 &tmpval);
28729 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28730 tmpval &= 0xff;
28731 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28733 wlc_phy_table_read_nphy(pi, 15, 2,
28734 (80 + 2 * core), 16,
28735 &pi->
28736 nphy_txpwrindex[core].
28737 iqcomp_a);
28739 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28741 &pi->
28742 nphy_txpwrindex[core].
28743 locomp);
28745 pi->nphy_txpwrindex[core].index_internal_save =
28746 pi->nphy_txpwrindex[core].
28747 index_internal;
28750 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28751 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28753 if (NREV_IS(pi->pubpi.phy_rev, 1))
28754 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28756 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28757 (tx_ind0 + txpwrindex), 32,
28758 &txgain);
28760 if (NREV_GE(pi->pubpi.phy_rev, 3))
28761 rad_gain = (txgain >> 16) &
28762 ((1 << (32 - 16 + 1)) - 1);
28763 else
28764 rad_gain = (txgain >> 16) &
28765 ((1 << (28 - 16 + 1)) - 1);
28767 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28768 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28770 if (NREV_GE(pi->pubpi.phy_rev, 3))
28771 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28772 0xa5), (0x1 << 8), (0x1 << 8));
28773 else
28774 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28776 write_phy_reg(pi, (core == PHY_CORE_0) ?
28777 0xaa : 0xab, dac_gain);
28779 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28780 &rad_gain);
28782 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28783 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28784 m1m2 |= ((core == PHY_CORE_0) ?
28785 (bbmult << 8) : (bbmult << 0));
28787 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28789 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28790 (iq_ind0 + txpwrindex), 32,
28791 &iqcomp);
28792 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28793 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28795 if (restore_cals) {
28796 regval[0] = (u16) iqcomp_a;
28797 regval[1] = (u16) iqcomp_b;
28798 wlc_phy_table_write_nphy(pi, 15, 2,
28799 (80 + 2 * core), 16,
28800 regval);
28803 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28804 (lo_ind0 + txpwrindex), 32,
28805 &locomp);
28806 if (restore_cals)
28807 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28808 16, &locomp);
28810 if (NREV_IS(pi->pubpi.phy_rev, 1))
28811 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28813 if (PHY_IPA(pi)) {
28814 wlc_phy_table_read_nphy(pi,
28815 (core == PHY_CORE_0 ?
28816 NPHY_TBL_ID_CORE1TXPWRCTL :
28817 NPHY_TBL_ID_CORE2TXPWRCTL),
28818 1, 576 + txpwrindex, 32,
28819 &rfpwr_offset);
28821 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28822 0x29b, (0x1ff << 4),
28823 ((s16) rfpwr_offset) << 4);
28825 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28826 0x29b, (0x1 << 2), (1) << 2);
28830 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28833 pi->nphy_txpwrindex[core].index = txpwrindex;
28836 if (pi->phyhang_avoid)
28837 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28840 void
28841 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28842 u8 txp_rate_idx)
28844 u8 chan_freq_range;
28846 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28847 switch (chan_freq_range) {
28848 case WL_CHAN_FREQ_RANGE_2G:
28849 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28850 break;
28851 case WL_CHAN_FREQ_RANGE_5GM:
28852 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28853 break;
28854 case WL_CHAN_FREQ_RANGE_5GL:
28855 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28856 break;
28857 case WL_CHAN_FREQ_RANGE_5GH:
28858 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28859 break;
28860 default:
28861 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28862 break;
28865 return;
28868 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28870 u16 clip_off[] = { 0xffff, 0xffff };
28872 if (enable) {
28873 if (pi->nphy_deaf_count == 0) {
28874 pi->classifier_state =
28875 wlc_phy_classifier_nphy(pi, 0, 0);
28876 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28877 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28878 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28881 pi->nphy_deaf_count++;
28883 wlc_phy_resetcca_nphy(pi);
28885 } else {
28886 pi->nphy_deaf_count--;
28888 if (pi->nphy_deaf_count == 0) {
28889 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28890 pi->classifier_state);
28891 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28896 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28898 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28900 if (mode) {
28901 if (pi->nphy_deaf_count == 0)
28902 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28903 } else if (pi->nphy_deaf_count > 0) {
28904 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28907 wlapi_enable_mac(pi->sh->physhim);