brcm80211: Use pr_fmt and pr_<level>
[linux-2.6/btrfs-unstable.git] / drivers / net / wireless / brcm80211 / brcmsmac / phy / phy_n.c
blobec7450d2fbd6230d11181aceb0c582c7fd5c9cb0
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 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
19 #include <linux/kernel.h>
20 #include <linux/delay.h>
21 #include <linux/cordic.h>
23 #include <brcm_hw_ids.h>
24 #include <aiutils.h>
25 #include <chipcommon.h>
26 #include <pmu.h>
27 #include <d11.h>
28 #include <phy_shim.h>
29 #include "phy_int.h"
30 #include "phy_hal.h"
31 #include "phy_radio.h"
32 #include "phyreg_n.h"
33 #include "phytbl_n.h"
34 #include "soc.h"
36 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
37 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
38 ((core == PHY_CORE_0) ? \
39 radio_type##_##jspace##0 : \
40 radio_type##_##jspace##1))
42 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
43 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
44 ((core == PHY_CORE_0) ? \
45 radio_type##_##jspace##0 : \
46 radio_type##_##jspace##1), value)
48 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
49 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
51 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
52 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
53 radio_type##_##jspace##0##_##reg_name : \
54 radio_type##_##jspace##1##_##reg_name))
56 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
57 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
58 radio_type##_##jspace##0##_##reg_name : \
59 radio_type##_##jspace##1##_##reg_name), \
60 value)
62 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
63 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
64 radio_type##_##reg_name##_##jspace##0 : \
65 radio_type##_##reg_name##_##jspace##1))
67 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
68 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
69 radio_type##_##reg_name##_##jspace##0 : \
70 radio_type##_##reg_name##_##jspace##1), \
71 value)
73 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
74 #define NPHY_ACI_CHANNEL_DELTA 5
75 #define NPHY_ACI_CHANNEL_SKIP 4
76 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
77 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
78 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
79 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
80 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
81 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
83 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
85 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
87 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
89 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
91 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
93 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
95 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
97 #define NPHY_NOISE_ASSOC_ENTER_TH 400
99 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
101 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
102 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
104 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
106 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
108 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
110 #define NPHY_RSSICAL_MAXREAD 31
112 #define NPHY_RSSICAL_NPOLL 8
113 #define NPHY_RSSICAL_MAXD (1<<20)
114 #define NPHY_MIN_RXIQ_PWR 2
116 #define NPHY_RSSICAL_W1_TARGET 25
117 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
118 #define NPHY_RSSICAL_NB_TARGET 0
120 #define NPHY_RSSICAL_W1_TARGET_REV3 29
121 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
123 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
124 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
125 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
126 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
127 NPHY_RSSICAL_MAXREAD)
128 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
129 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
130 NPHY_RSSICAL_MAXREAD)
131 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
132 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
133 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
134 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
135 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
136 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
137 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
139 #define NPHY_IQCAL_NUMGAINS 9
140 #define NPHY_N_GCTL 0x66
142 #define NPHY_PAPD_EPS_TBL_SIZE 64
143 #define NPHY_PAPD_SCL_TBL_SIZE 64
144 #define NPHY_NUM_DIG_FILT_COEFFS 15
146 #define NPHY_PAPD_COMP_OFF 0
147 #define NPHY_PAPD_COMP_ON 1
149 #define NPHY_SROM_TEMPSHIFT 32
150 #define NPHY_SROM_MAXTEMPOFFSET 16
151 #define NPHY_SROM_MINTEMPOFFSET -16
153 #define NPHY_CAL_MAXTEMPDELTA 64
155 #define NPHY_NOISEVAR_TBLLEN40 256
156 #define NPHY_NOISEVAR_TBLLEN20 128
158 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
160 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
162 /* 5357 Chip specific ChipControl register bits */
163 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
164 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
166 #define NPHY_CAL_TSSISAMPS 64
167 #define NPHY_TEST_TONE_FREQ_40MHz 4000
168 #define NPHY_TEST_TONE_FREQ_20MHz 2500
170 #define MAX_205x_RCAL_WAITLOOPS 10000
172 #define NPHY_RXCAL_TONEAMP 181
173 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
174 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
176 #define TXFILT_SHAPING_OFDM20 0
177 #define TXFILT_SHAPING_OFDM40 1
178 #define TXFILT_SHAPING_CCK 2
179 #define TXFILT_DEFAULT_OFDM20 3
180 #define TXFILT_DEFAULT_OFDM40 4
182 struct nphy_iqcal_params {
183 u16 txlpf;
184 u16 txgm;
185 u16 pga;
186 u16 pad;
187 u16 ipa;
188 u16 cal_gain;
189 u16 ncorr[5];
192 struct nphy_txiqcal_ladder {
193 u8 percent;
194 u8 g_env;
197 struct nphy_ipa_txcalgains {
198 struct nphy_txgains gains;
199 bool useindex;
200 u8 index;
203 struct nphy_papd_restore_state {
204 u16 fbmix[2];
205 u16 vga_master[2];
206 u16 intpa_master[2];
207 u16 afectrl[2];
208 u16 afeoverride[2];
209 u16 pwrup[2];
210 u16 atten[2];
211 u16 mm;
214 struct nphy_ipa_txrxgain {
215 u16 hpvga;
216 u16 lpf_biq1;
217 u16 lpf_biq0;
218 u16 lna2;
219 u16 lna1;
220 s8 txpwrindex;
223 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
225 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
226 {0, 0, 0, 0, 0, 100},
227 {0, 0, 0, 0, 0, 50},
228 {0, 0, 0, 0, 0, -1},
229 {0, 0, 0, 3, 0, -1},
230 {0, 0, 3, 3, 0, -1},
231 {0, 2, 3, 3, 0, -1}
234 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
235 {0, 0, 0, 0, 0, 128},
236 {0, 0, 0, 0, 0, 70},
237 {0, 0, 0, 0, 0, 20},
238 {0, 0, 0, 3, 0, 20},
239 {0, 0, 3, 3, 0, 20},
240 {0, 2, 3, 3, 0, 20}
243 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
244 {0, 0, 0, 0, 0, 100},
245 {0, 0, 0, 0, 0, 50},
246 {0, 0, 0, 0, 0, -1},
247 {0, 0, 0, 3, 0, -1},
248 {0, 0, 3, 3, 0, -1},
249 {0, 0, 5, 3, 0, -1}
252 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
253 {0, 0, 0, 0, 0, 10},
254 {0, 0, 0, 1, 0, 10},
255 {0, 0, 1, 2, 0, 10},
256 {0, 0, 1, 3, 0, 10},
257 {0, 0, 4, 3, 0, 10},
258 {0, 0, 6, 3, 0, 10}
261 enum {
262 NPHY_RXCAL_GAIN_INIT = 0,
263 NPHY_RXCAL_GAIN_UP,
264 NPHY_RXCAL_GAIN_DOWN
267 #define wlc_phy_get_papd_nphy(pi) \
268 (read_phy_reg((pi), 0x1e7) & \
269 ((0x1 << 15) | \
270 (0x1 << 14) | \
271 (0x1 << 13)))
273 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
274 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
275 230, -44, 230, 201, -191, 201},
276 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
277 26, 34, -32, 34},
278 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
279 121, -73, 121, 91, 124, 91},
280 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
281 151, 301, 151, 602, -752, 602},
282 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
283 12, 25, 12, 13, 27, 13},
284 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
285 230, -44, 230, 201, -191, 201},
286 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
287 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
290 struct chan_info_nphy_2055 {
291 u16 chan;
292 u16 freq;
293 uint unknown;
294 u8 RF_pll_ref;
295 u8 RF_rf_pll_mod1;
296 u8 RF_rf_pll_mod0;
297 u8 RF_vco_cap_tail;
298 u8 RF_vco_cal1;
299 u8 RF_vco_cal2;
300 u8 RF_pll_lf_c1;
301 u8 RF_pll_lf_r1;
302 u8 RF_pll_lf_c2;
303 u8 RF_lgbuf_cen_buf;
304 u8 RF_lgen_tune1;
305 u8 RF_lgen_tune2;
306 u8 RF_core1_lgbuf_a_tune;
307 u8 RF_core1_lgbuf_g_tune;
308 u8 RF_core1_rxrf_reg1;
309 u8 RF_core1_tx_pga_pad_tn;
310 u8 RF_core1_tx_mx_bgtrim;
311 u8 RF_core2_lgbuf_a_tune;
312 u8 RF_core2_lgbuf_g_tune;
313 u8 RF_core2_rxrf_reg1;
314 u8 RF_core2_tx_pga_pad_tn;
315 u8 RF_core2_tx_mx_bgtrim;
316 u16 PHY_BW1a;
317 u16 PHY_BW2;
318 u16 PHY_BW3;
319 u16 PHY_BW4;
320 u16 PHY_BW5;
321 u16 PHY_BW6;
324 struct chan_info_nphy_radio205x {
325 u16 chan;
326 u16 freq;
327 u8 RF_SYN_pll_vcocal1;
328 u8 RF_SYN_pll_vcocal2;
329 u8 RF_SYN_pll_refdiv;
330 u8 RF_SYN_pll_mmd2;
331 u8 RF_SYN_pll_mmd1;
332 u8 RF_SYN_pll_loopfilter1;
333 u8 RF_SYN_pll_loopfilter2;
334 u8 RF_SYN_pll_loopfilter3;
335 u8 RF_SYN_pll_loopfilter4;
336 u8 RF_SYN_pll_loopfilter5;
337 u8 RF_SYN_reserved_addr27;
338 u8 RF_SYN_reserved_addr28;
339 u8 RF_SYN_reserved_addr29;
340 u8 RF_SYN_logen_VCOBUF1;
341 u8 RF_SYN_logen_MIXER2;
342 u8 RF_SYN_logen_BUF3;
343 u8 RF_SYN_logen_BUF4;
344 u8 RF_RX0_lnaa_tune;
345 u8 RF_RX0_lnag_tune;
346 u8 RF_TX0_intpaa_boost_tune;
347 u8 RF_TX0_intpag_boost_tune;
348 u8 RF_TX0_pada_boost_tune;
349 u8 RF_TX0_padg_boost_tune;
350 u8 RF_TX0_pgaa_boost_tune;
351 u8 RF_TX0_pgag_boost_tune;
352 u8 RF_TX0_mixa_boost_tune;
353 u8 RF_TX0_mixg_boost_tune;
354 u8 RF_RX1_lnaa_tune;
355 u8 RF_RX1_lnag_tune;
356 u8 RF_TX1_intpaa_boost_tune;
357 u8 RF_TX1_intpag_boost_tune;
358 u8 RF_TX1_pada_boost_tune;
359 u8 RF_TX1_padg_boost_tune;
360 u8 RF_TX1_pgaa_boost_tune;
361 u8 RF_TX1_pgag_boost_tune;
362 u8 RF_TX1_mixa_boost_tune;
363 u8 RF_TX1_mixg_boost_tune;
364 u16 PHY_BW1a;
365 u16 PHY_BW2;
366 u16 PHY_BW3;
367 u16 PHY_BW4;
368 u16 PHY_BW5;
369 u16 PHY_BW6;
372 struct chan_info_nphy_radio2057 {
373 u16 chan;
374 u16 freq;
375 u8 RF_vcocal_countval0;
376 u8 RF_vcocal_countval1;
377 u8 RF_rfpll_refmaster_sparextalsize;
378 u8 RF_rfpll_loopfilter_r1;
379 u8 RF_rfpll_loopfilter_c2;
380 u8 RF_rfpll_loopfilter_c1;
381 u8 RF_cp_kpd_idac;
382 u8 RF_rfpll_mmd0;
383 u8 RF_rfpll_mmd1;
384 u8 RF_vcobuf_tune;
385 u8 RF_logen_mx2g_tune;
386 u8 RF_logen_mx5g_tune;
387 u8 RF_logen_indbuf2g_tune;
388 u8 RF_logen_indbuf5g_tune;
389 u8 RF_txmix2g_tune_boost_pu_core0;
390 u8 RF_pad2g_tune_pus_core0;
391 u8 RF_pga_boost_tune_core0;
392 u8 RF_txmix5g_boost_tune_core0;
393 u8 RF_pad5g_tune_misc_pus_core0;
394 u8 RF_lna2g_tune_core0;
395 u8 RF_lna5g_tune_core0;
396 u8 RF_txmix2g_tune_boost_pu_core1;
397 u8 RF_pad2g_tune_pus_core1;
398 u8 RF_pga_boost_tune_core1;
399 u8 RF_txmix5g_boost_tune_core1;
400 u8 RF_pad5g_tune_misc_pus_core1;
401 u8 RF_lna2g_tune_core1;
402 u8 RF_lna5g_tune_core1;
403 u16 PHY_BW1a;
404 u16 PHY_BW2;
405 u16 PHY_BW3;
406 u16 PHY_BW4;
407 u16 PHY_BW5;
408 u16 PHY_BW6;
411 struct chan_info_nphy_radio2057_rev5 {
412 u16 chan;
413 u16 freq;
414 u8 RF_vcocal_countval0;
415 u8 RF_vcocal_countval1;
416 u8 RF_rfpll_refmaster_sparextalsize;
417 u8 RF_rfpll_loopfilter_r1;
418 u8 RF_rfpll_loopfilter_c2;
419 u8 RF_rfpll_loopfilter_c1;
420 u8 RF_cp_kpd_idac;
421 u8 RF_rfpll_mmd0;
422 u8 RF_rfpll_mmd1;
423 u8 RF_vcobuf_tune;
424 u8 RF_logen_mx2g_tune;
425 u8 RF_logen_indbuf2g_tune;
426 u8 RF_txmix2g_tune_boost_pu_core0;
427 u8 RF_pad2g_tune_pus_core0;
428 u8 RF_lna2g_tune_core0;
429 u8 RF_txmix2g_tune_boost_pu_core1;
430 u8 RF_pad2g_tune_pus_core1;
431 u8 RF_lna2g_tune_core1;
432 u16 PHY_BW1a;
433 u16 PHY_BW2;
434 u16 PHY_BW3;
435 u16 PHY_BW4;
436 u16 PHY_BW5;
437 u16 PHY_BW6;
440 struct nphy_sfo_cfg {
441 u16 PHY_BW1a;
442 u16 PHY_BW2;
443 u16 PHY_BW3;
444 u16 PHY_BW4;
445 u16 PHY_BW5;
446 u16 PHY_BW6;
449 static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
451 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
452 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
453 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
455 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
456 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
457 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
459 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
460 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
461 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
463 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
464 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
465 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
467 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
468 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
469 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
471 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
472 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
473 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
475 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
476 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
477 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
479 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
480 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
481 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
483 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
484 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
485 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
487 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
488 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
489 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
491 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
492 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
493 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
495 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
496 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
497 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
499 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
500 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
501 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
503 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
504 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
505 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
507 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
508 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
509 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
511 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
512 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
513 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
515 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
516 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
517 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
519 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
520 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
521 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
523 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
524 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
525 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
527 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
528 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
529 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
531 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
532 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
533 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
535 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
536 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
537 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
539 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
540 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
541 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
543 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
544 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
545 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
547 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
548 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
549 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
551 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
552 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
553 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
555 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
556 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
557 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
559 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
560 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
561 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
563 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
564 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
565 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
567 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
568 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
569 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
571 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
572 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
573 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
575 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
576 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
577 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
579 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
580 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
581 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
583 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
584 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
585 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
587 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
588 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
589 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
591 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
592 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
593 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
595 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
596 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
597 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
599 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
600 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
601 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
603 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
604 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
605 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
607 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
608 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
609 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
611 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
612 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
613 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
615 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
616 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
617 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
619 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
620 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
621 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
623 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
624 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
625 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
627 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
628 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
629 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
631 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
632 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
633 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
635 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
636 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
637 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
639 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
640 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
641 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
643 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
644 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
645 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
647 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
648 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
649 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
651 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
652 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
653 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
655 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
656 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
657 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
659 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
660 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
661 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
663 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
664 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
665 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
667 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
668 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
669 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
671 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
672 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
673 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
675 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
676 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
677 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
679 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
680 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
681 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
683 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
684 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
685 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
687 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
688 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
689 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
691 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
692 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
693 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
695 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
696 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
697 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
699 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
700 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
701 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
703 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
704 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
705 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
707 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
708 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
709 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
711 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
712 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
713 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
715 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
716 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
717 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
719 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
720 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
721 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
723 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
724 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
725 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
727 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
728 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
729 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
731 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
732 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
733 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
735 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
736 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
737 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
739 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
740 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
741 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
743 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
744 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
745 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
747 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
748 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
749 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
751 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
752 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
753 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
755 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
756 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
757 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
759 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
760 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
761 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
763 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
764 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
765 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
767 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
768 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
769 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
771 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
772 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
773 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
775 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
776 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
777 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
779 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
780 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
781 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
783 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
784 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
785 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
787 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
788 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
789 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
791 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
792 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
793 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
795 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
796 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
797 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
799 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
800 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
801 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
803 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
804 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
805 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
807 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
808 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
809 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
811 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
812 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
813 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
815 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
816 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
817 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
819 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
820 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
821 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
823 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
824 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
825 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
827 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
828 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
829 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
831 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
832 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
833 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
835 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
836 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
837 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
839 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
840 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
841 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
843 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
844 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
845 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
847 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
848 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
849 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
851 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
852 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
853 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
855 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
856 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
857 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
859 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
860 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
861 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
863 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
864 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
865 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
867 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
868 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
869 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
871 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
872 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
873 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
875 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
876 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
877 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
879 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
880 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
881 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
883 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
884 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
885 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
887 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
888 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
889 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
891 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
892 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
893 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
895 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
896 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
897 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
899 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
900 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
901 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
903 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
904 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
905 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
907 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
908 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
909 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
911 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
912 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
913 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
915 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
916 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
917 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
919 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
920 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
921 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
923 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
924 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
925 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
927 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
928 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
929 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
931 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
932 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
933 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
935 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
936 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
937 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
939 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
940 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
941 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
943 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
944 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
945 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
948 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
950 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
951 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
952 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
953 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
955 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
956 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
957 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
958 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
960 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
961 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
962 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
963 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
965 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
966 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
967 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
968 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
970 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
971 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
972 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
973 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
975 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
976 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
977 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
978 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
980 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
981 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
982 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
983 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
985 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
986 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
987 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
988 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
990 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
991 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
992 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
993 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
995 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
996 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
997 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
998 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1000 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1001 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1002 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1003 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1005 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1006 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1007 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1008 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1010 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1011 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1012 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1013 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1015 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1016 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1017 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1018 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1020 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1021 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1022 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1023 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1025 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1026 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1027 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1028 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1030 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1032 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1033 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1035 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1040 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1045 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1046 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1047 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1048 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1050 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1051 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1052 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1053 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1055 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1056 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1057 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1058 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1060 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1061 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1062 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1063 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1065 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1067 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1068 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1070 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1072 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1073 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1075 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1077 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1078 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1080 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1082 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1083 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1085 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1087 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1090 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1091 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1092 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1093 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1095 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1097 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1100 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1102 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1105 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1106 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1107 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1108 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1110 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1112 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1113 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1115 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1117 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1118 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1120 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1122 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1123 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1125 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1127 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1128 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1130 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1132 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1133 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1135 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1137 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1140 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1142 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1145 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1147 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1150 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1152 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1155 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1157 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1158 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1160 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1161 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1162 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1163 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1165 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1166 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1167 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1168 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1170 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1172 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1173 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1175 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1177 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1178 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1180 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1182 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1183 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1185 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1187 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1190 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1192 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1195 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1197 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1200 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1202 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1205 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1207 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1208 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1210 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1212 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1213 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1215 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1217 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1218 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1220 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1222 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1223 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1225 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1227 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1228 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1230 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1232 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1233 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1235 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1237 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1240 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1242 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1245 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1247 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1250 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1251 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1252 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1253 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1255 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1257 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1260 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1262 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1265 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1267 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1270 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1272 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1275 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1277 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1280 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1282 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1285 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1287 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1290 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1292 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1295 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1297 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1300 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1302 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1305 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1307 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1308 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1310 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1312 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1313 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1315 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1316 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1317 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1318 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1320 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1321 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1322 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1323 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1325 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1327 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1328 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1330 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1331 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1332 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1333 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1335 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1337 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1340 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1341 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1342 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1345 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1347 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1350 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1351 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1352 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1353 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1355 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1356 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1357 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1358 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1360 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1361 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1362 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1363 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1365 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1366 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1367 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1368 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1370 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1371 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1372 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1375 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1377 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1380 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1381 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1382 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1383 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1385 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1386 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1387 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1388 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1390 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1391 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1392 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1393 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1395 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1396 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1397 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1398 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1400 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1401 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1402 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1403 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1405 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1407 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1408 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1410 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1411 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1412 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1413 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1415 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1417 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1418 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1420 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1421 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1422 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1423 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1425 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1426 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1427 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1428 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1430 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1431 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1432 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1433 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1435 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1437 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1440 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1441 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1442 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1445 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1446 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1447 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1448 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1450 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1451 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1452 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1453 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1455 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1456 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1457 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1458 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1460 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1462 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1463 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1465 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1467 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1468 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1470 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1471 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1472 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1473 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1475 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1476 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1477 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1478 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1480 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1481 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1482 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1483 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1485 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1486 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1487 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1488 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1490 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1491 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1492 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1493 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1495 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1496 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1497 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1498 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1500 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1501 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1502 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1503 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1505 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1506 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1507 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1508 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1510 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1511 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1512 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1513 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1515 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1516 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1517 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1518 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1520 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1521 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1522 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1523 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1525 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1526 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1527 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1528 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1530 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1531 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1532 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1533 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1535 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1536 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1537 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1538 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1540 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1541 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1542 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1543 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1545 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1546 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1547 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1548 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1550 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1551 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1552 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1553 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1555 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1556 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1557 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1558 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1560 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1561 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1562 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1563 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1565 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1566 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1567 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1568 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1571 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1573 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1574 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1575 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1576 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1578 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1579 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1580 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1581 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1583 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1585 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1586 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1588 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1590 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1591 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1593 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1594 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1595 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1596 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1598 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1599 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1600 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1601 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1603 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1605 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1606 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1608 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1610 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1611 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1613 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1614 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1615 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1616 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1618 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1619 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1620 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1621 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1623 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1624 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1625 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1626 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1628 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1629 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1630 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1631 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1633 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1634 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1635 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1636 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1638 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1639 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1640 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1641 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1643 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1644 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1645 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1646 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1648 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1649 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1650 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1651 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1653 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1655 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1656 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1658 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1660 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1661 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1663 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1664 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1665 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1666 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1668 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1669 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1670 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1671 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1673 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1674 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1675 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1676 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1678 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1679 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1680 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1681 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1683 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1684 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1685 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1686 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1688 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1690 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1691 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1693 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1695 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1696 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1698 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1700 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1701 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1703 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1705 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1706 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1708 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1710 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1713 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1714 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1715 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1716 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1718 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1720 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1723 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1725 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1728 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1729 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1730 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1731 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1733 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1735 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1736 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1738 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1740 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1741 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1743 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1745 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1746 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1748 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1750 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1751 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1753 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1755 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1756 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1758 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1759 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1760 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1761 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1763 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1765 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1768 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1770 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1773 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1775 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1778 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1780 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1781 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1783 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1784 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1785 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1786 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1788 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1789 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1790 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1791 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1793 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1795 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1796 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1798 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1800 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1801 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1803 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1805 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1806 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1808 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1810 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1813 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1815 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1818 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1820 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1823 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1825 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1828 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1830 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1831 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1833 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1835 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1836 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1838 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1840 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1841 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1843 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1845 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1846 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1848 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1850 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1851 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1853 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1855 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1856 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1858 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1860 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1863 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1865 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1868 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1870 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1873 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1874 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1875 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1876 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1878 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1880 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1881 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1883 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1885 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1886 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1888 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1890 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1891 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1893 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1895 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1896 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1898 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1900 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1901 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1903 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1905 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1906 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1908 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1910 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1913 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1915 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1918 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1920 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1923 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1925 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1928 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1930 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1931 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1933 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1934 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1935 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1936 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1938 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1939 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1940 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1941 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1943 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1944 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1945 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1946 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1948 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1950 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1951 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1953 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1954 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1955 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1956 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1958 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1959 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1960 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1961 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1963 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1964 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1965 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1968 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1970 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1973 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1974 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1975 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1976 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1978 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1979 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1980 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1981 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1983 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1984 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1985 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1986 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1988 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1989 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1990 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1991 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1993 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1994 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1995 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1998 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
2000 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2003 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2004 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2005 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2006 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2008 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2009 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2010 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2011 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2013 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2014 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2015 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2016 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2018 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2019 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2020 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2021 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2023 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2024 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2025 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2026 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2028 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2030 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2031 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2033 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2034 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2035 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2036 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2038 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2040 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2041 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2043 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2044 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2045 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2046 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2048 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2049 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2050 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2051 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2053 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2054 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2055 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2056 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2058 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2060 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2063 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2064 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2065 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2068 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2069 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2070 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2071 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2073 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2074 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2075 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2076 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2078 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2079 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2080 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2081 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2083 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2084 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2085 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2086 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2088 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2090 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2091 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2093 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2094 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2095 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2096 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2098 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2099 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2100 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2101 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2103 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2104 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2105 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2106 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2108 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2109 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2110 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2111 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2113 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2114 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2115 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2116 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2118 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2119 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2120 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2121 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2123 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2124 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2125 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2126 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2128 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2129 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2130 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2131 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2133 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2134 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2135 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2136 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2138 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2139 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2140 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2141 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2143 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2144 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2145 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2146 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2148 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2149 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2150 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2151 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2153 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2154 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2155 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2156 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2158 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2159 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2160 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2161 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2163 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2164 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2165 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2166 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2168 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2169 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2170 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2171 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2173 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2174 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2175 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2176 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2178 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2179 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2180 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2181 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2183 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2184 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2185 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2186 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2188 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2189 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2190 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2191 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2194 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2196 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2198 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2199 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2201 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2202 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2203 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2204 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2206 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2208 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2209 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2211 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2213 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2214 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2216 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2218 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2219 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2221 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2222 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2223 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2224 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2226 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2227 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2228 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2229 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2231 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2232 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2233 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2234 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2236 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2238 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2239 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2241 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2243 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2244 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2246 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2248 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2249 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2251 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2253 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2254 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2256 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2258 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2259 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2261 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2263 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2264 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2266 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2268 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2269 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2271 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2273 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2274 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2276 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2278 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2279 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2281 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2283 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2284 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2286 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2287 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2288 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2289 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2291 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2293 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2294 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2296 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2298 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2299 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2301 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2303 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2304 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2306 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2308 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2309 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2311 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2313 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2314 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2316 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2318 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2319 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2321 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2322 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2323 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2324 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2326 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2327 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2328 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2329 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2331 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2332 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2333 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2334 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2336 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2338 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2339 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2341 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2343 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2344 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2346 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2348 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2349 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2351 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2353 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2354 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2356 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2358 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2359 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2361 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2363 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2364 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2366 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2368 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2371 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2373 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2374 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2376 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2378 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2379 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2381 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2383 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2384 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2386 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2388 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2389 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2391 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2393 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2394 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2396 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2398 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2399 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2401 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2403 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2404 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2406 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2408 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2409 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2411 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2413 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2414 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2416 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2418 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2419 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2421 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2423 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2424 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2426 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2428 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2429 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2431 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2433 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2434 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2436 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2438 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2439 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2441 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2443 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2444 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2446 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2448 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2449 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2451 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2453 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2454 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2456 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2458 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2459 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2461 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2463 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2464 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2466 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2468 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2469 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2471 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2473 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2474 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2476 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2478 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2479 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2481 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2482 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2483 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2484 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2486 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2488 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2489 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2491 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2493 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2494 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2496 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2498 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2499 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2501 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2502 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2503 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2504 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2506 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2508 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2509 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2511 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2513 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2514 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2516 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2518 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2521 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2523 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2526 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2528 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2529 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2531 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2532 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2533 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2534 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2536 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2537 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2538 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2539 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2541 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2543 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2544 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2546 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2548 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2549 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2551 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2553 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2554 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2556 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2558 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2561 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2563 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2566 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2567 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2568 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2569 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2571 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2573 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2576 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2577 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2578 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2579 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2581 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2582 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2583 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2584 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2586 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2587 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2588 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2589 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2591 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2593 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2594 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2596 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2597 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2598 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2599 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2601 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2603 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2604 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2606 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2607 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2608 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2609 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2611 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2612 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2613 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2614 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2616 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2617 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2618 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2619 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2621 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2623 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2626 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2627 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2628 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2631 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2633 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2636 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2637 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2638 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2639 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2641 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2643 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2646 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2647 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2648 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2651 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2653 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2654 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2656 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2657 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2658 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2659 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2661 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2663 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2666 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2667 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2668 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2671 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2672 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2673 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2674 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2676 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2677 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2678 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2679 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2681 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2682 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2683 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2684 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2686 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2687 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2688 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2689 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2691 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2692 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2693 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2694 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2696 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2697 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2698 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2699 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2701 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2703 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2706 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2708 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2711 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2713 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2716 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2717 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2718 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2719 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2721 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2722 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2723 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2724 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2726 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2727 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2728 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2729 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2731 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2732 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2733 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2734 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2736 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2737 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2738 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2739 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2741 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2742 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2743 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2744 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2746 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2747 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2748 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2749 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2751 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2752 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2753 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2754 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2756 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2757 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2758 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2759 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2761 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2762 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2763 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2764 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2766 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2767 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2768 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2769 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2771 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2772 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2773 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2774 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2776 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2777 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2778 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2779 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2781 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2782 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2783 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2784 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2786 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2787 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2788 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2789 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2791 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2792 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2793 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2794 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2796 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2797 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2798 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2799 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2801 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2802 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2803 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2804 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2806 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2807 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2808 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2809 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2811 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2812 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2813 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2814 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2817 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2819 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2820 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2821 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2822 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2824 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2825 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2826 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2827 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2829 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2831 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2832 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2834 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2836 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2837 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2839 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2840 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2841 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2842 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2844 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2845 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2846 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2847 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2849 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2850 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2851 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2852 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2854 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2855 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2856 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2857 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2859 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2860 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2861 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2862 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2864 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2865 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2866 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2867 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2869 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2870 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2871 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2872 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2874 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2875 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2876 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2877 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2879 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2880 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2881 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2882 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2884 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2886 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2887 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2889 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2891 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2892 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2894 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2895 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2896 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2897 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2899 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2901 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2902 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2904 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2906 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2907 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2909 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2911 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2912 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2914 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2915 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2916 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2917 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2919 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2921 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2922 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2924 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2926 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2927 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2929 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2931 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2932 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2934 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2936 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2937 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2939 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2941 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2942 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2944 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2946 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2947 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2949 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2951 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2952 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2954 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2956 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2957 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2959 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2961 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2962 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2964 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2966 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2967 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2969 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2971 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2972 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2974 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2976 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2977 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2979 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2981 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2982 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2984 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2986 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2987 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2989 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2991 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2992 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2994 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2995 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2996 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2997 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2999 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3000 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3001 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3002 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3004 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3006 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3007 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3009 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3011 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3012 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3014 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3016 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3017 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3019 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3021 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3022 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3024 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3026 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3027 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3029 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3031 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3032 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3034 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3036 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3037 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3039 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3041 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3042 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3044 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3046 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3047 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3049 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3051 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3052 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3054 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3056 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3057 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3059 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3061 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3062 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3064 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3066 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3067 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3069 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3071 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3072 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3074 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3076 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3077 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3079 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3081 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3082 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3084 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3086 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3087 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3089 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3091 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3092 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3094 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3096 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3099 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3101 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3104 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3106 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3109 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3111 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3114 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3116 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3117 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3119 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3121 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3122 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3124 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3126 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3127 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3129 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3131 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3132 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3134 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3136 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3137 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3139 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3141 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3142 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3144 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3146 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3147 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3149 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3151 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3152 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3154 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3156 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3157 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3159 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3161 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3162 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3164 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3166 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3167 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3169 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3171 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3172 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3174 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3176 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3177 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3179 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3181 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3182 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3184 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3186 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3189 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3190 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3191 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3194 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3196 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3199 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3200 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3201 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3204 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3205 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3206 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3207 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3209 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3210 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3211 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3212 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3214 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3216 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3217 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3219 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3220 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3221 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3222 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3224 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3226 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3227 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3229 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3230 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3231 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3232 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3234 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3236 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3237 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3239 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3240 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3241 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3242 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3244 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3246 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3249 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3250 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3251 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3254 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3256 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3259 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3260 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3261 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3264 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3265 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3266 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3267 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3269 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3270 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3271 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3274 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3276 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3279 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3280 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3281 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3284 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3286 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3289 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3290 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3294 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3299 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3300 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3301 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3302 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3304 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3305 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3306 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3307 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3309 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3310 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3312 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3314 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3317 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3319 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3320 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3322 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3324 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3327 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3329 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3334 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3339 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3340 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3341 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3342 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3344 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3345 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3346 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3347 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3349 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3350 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3351 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3352 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3354 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3355 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3356 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3357 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3359 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3360 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3361 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3362 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3364 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3365 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3366 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3367 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3369 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3370 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3371 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3372 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3374 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3375 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3376 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3377 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3379 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3380 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3381 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3382 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3384 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3385 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3386 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3387 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3389 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3390 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3391 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3392 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3394 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3395 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3396 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3397 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3399 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3400 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3401 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3402 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3404 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3405 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3406 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3407 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3409 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3410 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3411 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3412 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3414 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3415 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3416 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3417 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3419 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3420 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3421 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3422 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3424 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3425 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3426 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3427 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3429 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3430 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3431 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3432 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3434 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3435 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3436 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3437 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3440 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3442 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3444 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3445 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3447 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3448 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3449 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3450 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3452 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3454 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3455 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3457 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3459 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3460 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3462 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3464 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3465 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3467 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3468 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3469 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3470 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3472 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3473 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3474 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3475 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3477 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3478 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3479 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3480 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3482 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3484 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3485 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3487 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3489 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3490 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3492 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3494 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3495 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3497 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3499 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3500 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3502 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3504 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3505 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3507 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3509 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3510 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3512 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3514 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3515 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3517 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3519 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3520 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3522 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3524 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3525 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3527 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3529 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3530 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3532 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3533 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3534 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3535 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3537 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3539 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3540 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3542 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3544 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3545 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3547 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3549 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3550 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3552 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3554 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3555 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3557 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3559 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3560 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3562 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3564 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3565 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3567 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3568 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3569 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3570 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3572 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3573 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3574 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3575 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3577 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3579 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3580 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3582 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3584 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3585 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3587 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3589 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3590 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3592 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3594 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3595 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3597 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3599 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3600 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3602 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3604 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3605 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3607 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3609 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3610 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3612 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3614 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3617 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3618 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3619 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3620 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3622 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3623 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3624 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3625 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3627 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3629 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3630 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3632 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3634 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3635 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3637 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3639 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3640 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3642 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3644 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3645 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3647 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3649 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3650 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3652 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3654 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3655 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3657 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3659 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3660 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3662 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3664 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3665 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3667 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3669 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3670 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3672 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3674 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3675 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3677 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3679 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3680 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3682 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3684 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3685 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3687 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3689 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3690 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3692 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3694 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3695 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3697 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3699 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3700 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3702 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3704 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3705 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3707 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3709 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3710 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3712 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3714 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3715 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3717 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3719 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3720 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3722 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3724 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3725 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3727 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3729 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3730 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3732 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3734 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3735 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3737 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3739 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3740 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3742 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3744 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3745 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3747 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3749 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3750 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3752 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3754 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3755 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3757 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3759 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3760 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3762 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3764 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3767 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3769 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3772 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3774 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3775 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3777 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3778 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3779 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3780 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3782 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3784 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3785 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3787 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3789 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3790 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3792 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3794 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3795 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3797 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3799 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3800 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3802 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3804 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3807 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3809 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3812 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3813 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3814 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3817 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3818 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3819 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3820 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3822 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3823 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3824 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3825 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3827 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3828 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3829 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3830 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3832 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3833 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3834 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3835 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3837 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3839 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3840 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3842 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3843 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3844 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3845 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3847 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3849 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3850 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3852 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3853 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3854 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3855 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3857 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3858 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3859 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3860 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3862 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3863 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3864 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3867 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3869 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3872 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3873 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3874 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3877 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3879 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3882 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3883 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3884 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3887 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3889 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3892 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3893 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3894 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3897 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3899 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3902 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3903 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3904 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3905 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3907 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3908 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3909 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3910 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3912 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3913 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3914 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3915 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3917 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3918 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3919 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3920 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3922 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3923 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3924 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3925 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3927 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3928 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3929 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3930 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3932 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3933 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3934 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3935 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3937 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3938 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3939 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3940 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3942 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3943 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3944 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3945 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3947 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3949 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3952 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3954 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3957 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3962 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3963 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3964 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3965 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3967 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3968 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3969 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3970 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3972 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3973 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3974 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3975 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3977 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3978 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3979 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3980 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3982 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3983 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3984 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3985 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3987 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3988 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3989 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3990 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3992 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3993 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3994 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3995 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3997 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3998 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3999 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4000 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4002 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4003 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4004 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4005 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4007 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4008 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4009 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4010 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4012 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4013 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4014 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4015 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4017 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4018 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4019 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4020 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4022 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4023 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4024 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4025 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4027 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4028 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4029 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4030 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4032 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4033 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4034 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4035 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4037 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4038 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4039 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4040 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4042 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4043 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4044 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4045 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4047 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4048 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4049 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4050 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4052 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4053 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4054 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4055 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4057 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4058 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4059 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4060 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4063 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4065 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4066 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4067 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4068 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4070 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4071 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4072 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4073 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4075 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4077 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4078 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4080 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4082 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4083 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4085 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4086 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4087 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4088 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4090 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4091 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4092 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4093 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4095 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4096 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4097 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4098 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4100 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4101 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4102 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4103 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4105 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4106 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4107 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4108 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4110 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4111 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4112 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4113 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4115 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4116 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4117 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4118 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4120 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4121 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4122 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4123 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4125 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4126 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4127 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4128 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4130 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4132 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4133 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4135 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4137 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4138 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4140 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4141 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4142 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4143 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4145 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4147 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4148 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4150 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4152 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4153 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4155 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4157 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4158 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4160 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4161 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4162 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4163 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4165 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4167 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4168 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4170 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4172 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4173 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4175 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4177 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4178 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4180 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4182 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4183 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4185 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4187 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4188 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4190 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4192 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4193 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4195 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4197 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4198 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4200 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4202 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4203 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4205 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4207 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4208 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4210 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4212 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4213 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4215 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4217 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4218 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4220 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4222 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4223 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4225 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4227 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4228 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4230 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4232 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4233 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4235 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4237 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4238 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4240 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4241 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4242 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4243 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4245 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4246 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4247 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4248 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4250 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4252 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4253 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4255 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4257 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4258 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4260 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4262 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4263 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4265 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4267 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4268 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4270 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4272 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4273 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4275 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4277 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4278 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4280 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4282 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4283 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4285 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4287 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4288 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4290 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4292 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4293 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4295 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4297 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4298 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4300 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4302 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4303 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4305 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4307 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4308 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4310 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4312 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4313 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4315 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4317 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4318 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4320 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4322 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4323 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4325 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4327 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4328 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4330 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4332 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4333 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4335 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4337 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4338 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4340 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4342 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4345 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4347 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4350 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4352 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4355 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4357 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4360 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4362 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4363 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4365 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4367 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4368 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4370 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4372 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4373 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4375 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4377 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4378 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4380 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4382 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4383 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4385 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4387 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4388 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4390 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4392 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4393 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4395 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4397 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4398 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4400 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4402 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4403 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4405 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4407 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4408 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4410 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4412 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4413 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4415 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4417 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4418 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4420 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4422 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4423 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4425 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4427 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4428 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4430 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4432 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4435 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4436 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4437 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4440 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4442 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4445 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4446 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4447 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4450 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4451 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4452 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4453 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4455 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4456 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4457 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4458 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4460 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4462 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4463 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4465 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4466 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4467 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4468 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4470 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4472 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4473 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4475 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4476 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4477 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4478 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4480 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4482 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4483 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4485 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4486 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4487 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4488 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4490 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4492 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4495 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4496 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4497 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4500 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4502 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4505 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4506 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4507 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4510 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4511 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4512 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4513 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4515 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4516 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4517 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4520 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4522 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4525 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4526 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4527 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4530 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4532 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4535 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4536 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4540 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4545 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4546 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4547 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4548 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4550 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4551 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4552 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4553 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4555 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4556 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4558 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4560 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4563 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4565 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4566 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4568 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4570 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4573 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4575 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4580 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4585 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4586 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4587 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4588 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4590 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4591 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4592 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4593 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4595 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4596 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4597 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4598 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4600 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4601 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4602 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4603 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4605 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4606 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4607 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4608 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4610 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4611 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4612 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4613 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4615 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4616 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4617 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4618 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4620 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4621 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4622 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4623 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4625 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4626 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4627 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4628 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4630 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4631 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4632 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4633 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4635 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4636 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4637 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4638 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4640 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4641 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4642 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4643 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4645 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4646 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4647 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4648 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4650 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4651 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4652 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4653 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4655 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4656 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4657 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4658 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4660 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4661 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4662 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4663 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4665 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4666 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4667 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4668 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4670 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4671 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4672 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4673 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4675 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4676 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4677 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4678 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4680 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4681 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4682 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4683 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4686 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4688 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4689 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4690 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4691 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4693 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4694 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4695 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4696 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4698 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4700 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4701 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4703 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4705 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4706 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4708 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4709 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4710 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4711 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4713 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4714 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4715 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4716 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4718 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4719 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4720 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4721 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4723 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4724 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4725 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4726 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4728 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4729 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4730 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4731 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4733 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4734 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4735 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4736 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4738 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4739 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4740 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4741 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4743 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4744 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4745 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4746 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4748 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4749 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4750 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4751 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4753 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4755 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4756 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4758 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4760 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4761 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4763 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4764 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4765 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4766 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4768 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4770 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4771 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4773 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4775 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4776 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4778 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4780 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4781 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4783 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4784 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4785 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4786 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4788 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4790 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4791 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4793 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4795 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4796 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4798 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4800 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4801 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4803 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4805 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4806 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4808 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4810 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4811 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4813 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4815 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4816 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4818 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4820 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4821 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4823 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4825 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4826 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4828 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4830 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4831 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4833 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4835 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4836 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4838 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4840 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4841 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4843 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4845 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4846 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4848 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4850 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4851 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4853 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4855 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4856 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4858 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4860 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4861 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4863 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4864 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4865 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4866 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4868 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4869 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4870 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4871 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4873 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4875 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4876 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4878 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4880 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4881 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4883 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4885 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4886 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4888 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4890 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4891 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4893 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4895 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4896 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4898 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4900 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4901 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4903 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4905 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4906 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4908 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4910 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4911 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4913 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4915 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4916 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4918 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4920 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4921 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4923 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4925 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4926 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4928 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4930 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4931 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4933 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4935 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4936 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4938 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4940 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4941 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4943 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4945 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4946 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4948 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4950 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4951 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4953 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4955 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4956 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4958 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4960 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4961 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4963 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4965 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4968 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4970 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4973 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4975 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4978 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4980 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4983 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4985 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4986 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4988 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4990 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4991 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4993 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4995 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4996 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4998 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5000 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5001 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5003 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5005 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5006 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5008 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5010 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5011 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5013 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5015 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5016 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5018 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5020 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5021 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5023 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5025 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5026 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5028 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5030 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5031 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5033 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5035 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5036 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5038 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5040 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5041 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5043 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5045 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5046 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5048 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5050 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5051 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5053 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5055 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5058 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5059 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5060 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5063 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5065 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5068 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5069 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5070 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5073 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5074 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5075 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5076 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5078 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5079 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5080 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5081 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5083 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5085 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5086 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5088 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5089 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5090 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5091 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5093 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5095 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5096 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5098 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5099 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5100 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5101 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5103 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5105 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5106 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5108 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5109 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5110 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5111 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5113 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5115 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5118 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5119 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5120 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5123 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5125 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5128 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5129 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5130 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5133 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5134 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5135 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5136 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5138 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5139 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5140 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5143 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5145 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5148 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5149 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5150 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5153 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5155 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5158 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5159 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5163 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5168 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5169 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5170 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5171 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5173 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5174 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5175 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5176 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5178 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5179 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5181 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5183 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5186 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5188 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5189 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5191 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5193 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5196 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5198 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5203 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5208 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5209 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5210 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5211 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5213 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5214 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5215 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5216 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5218 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5219 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5220 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5221 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5223 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5224 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5225 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5226 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5228 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5229 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5230 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5231 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5233 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5234 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5235 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5236 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5238 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5240 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5241 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5243 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5245 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5246 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5248 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5250 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5251 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5253 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5255 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5256 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5258 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5260 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5261 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5263 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5265 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5266 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5268 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5270 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5271 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5273 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5275 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5276 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5278 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5279 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5280 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5281 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5283 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5284 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5285 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5286 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5288 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5289 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5290 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5291 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5293 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5294 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5295 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5296 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5298 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5299 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5300 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5301 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5303 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5304 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5305 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5306 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5309 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5311 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5312 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5313 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5314 0x0215,
5315 0x0216,
5318 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5319 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5320 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5321 0x0214,
5322 0x0215,
5325 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5326 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5327 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5328 0x0213,
5329 0x0214,
5332 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5333 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5334 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5335 0x0212,
5336 0x0213,
5339 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5340 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5341 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5342 0x0211,
5343 0x0212,
5346 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5347 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5348 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5349 0x020f,
5350 0x0211,
5353 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5354 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5355 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5356 0x020e,
5357 0x020f,
5360 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5361 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5362 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5363 0x020d,
5364 0x020e,
5367 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5368 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5369 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5370 0x020c,
5371 0x020d,
5374 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5375 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5376 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5377 0x020b,
5378 0x020c,
5381 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5382 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5383 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5384 0x020a,
5385 0x020b,
5388 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5389 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5390 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5391 0x0209,
5392 0x020a,
5395 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5396 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5397 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5398 0x0208,
5399 0x0209,
5402 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5403 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5404 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5405 0x0207,
5406 0x0208,
5409 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5410 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5411 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5412 0x0206,
5413 0x0207,
5416 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5417 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5418 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5419 0x0205,
5420 0x0206,
5423 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5424 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5425 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5426 0x0204,
5427 0x0205,
5430 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5431 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5432 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5433 0x0203,
5434 0x0204,
5437 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5438 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5439 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5440 0x0202,
5441 0x0203,
5444 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5445 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5446 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5447 0x0201,
5448 0x0202,
5451 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5452 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5453 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5454 0x0200,
5455 0x0201,
5458 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5459 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5460 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5461 0x01ff,
5462 0x0200,
5465 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5466 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5467 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5468 0x01fe,
5469 0x01ff,
5472 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5473 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5474 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5475 0x01fc,
5476 0x01fd,
5479 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5480 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5481 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5482 0x01fb,
5483 0x01fc,
5486 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5487 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5488 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5489 0x01fa,
5490 0x01fb,
5493 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5494 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5495 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5496 0x01f9,
5497 0x01fa,
5500 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5501 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5502 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5503 0x01f8,
5504 0x01f9,
5507 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5508 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5509 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5510 0x01f7,
5511 0x01f8,
5514 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5515 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5516 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5517 0x01f6,
5518 0x01f7,
5521 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5522 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5523 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5524 0x01f5,
5525 0x01f6,
5528 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5529 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5530 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5531 0x01f4,
5532 0x01f5,
5535 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5536 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5537 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5538 0x01f3,
5539 0x01f4,
5542 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5543 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5544 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5545 0x01f2,
5546 0x01f3,
5549 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5550 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5551 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5552 0x01f1,
5553 0x01f2,
5556 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5557 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5558 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5559 0x01f0,
5560 0x01f1,
5563 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5564 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5565 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5566 0x01f0,
5567 0x01f0,
5570 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5571 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5572 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5573 0x01ef,
5574 0x01f0,
5577 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5578 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5579 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5580 0x01ee,
5581 0x01ef,
5584 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5585 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5586 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5587 0x01ed,
5588 0x01ee,
5591 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5592 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5593 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5594 0x01ec,
5595 0x01ed,
5598 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5599 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5600 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5601 0x01eb,
5602 0x01ec,
5605 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5606 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5607 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5608 0x01ea,
5609 0x01eb,
5612 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5613 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5614 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5615 0x01e9,
5616 0x01ea,
5619 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5620 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5621 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5622 0x01e8,
5623 0x01e9,
5626 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5627 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5628 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5629 0x01e7,
5630 0x01e8,
5633 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5634 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5635 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5636 0x01e6,
5637 0x01e7,
5640 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5641 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5642 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5643 0x01e5,
5644 0x01e6,
5647 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5648 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5649 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5650 0x01e5,
5651 0x01e5,
5654 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5655 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5656 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5657 0x01e4,
5658 0x01e5,
5661 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5662 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5663 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5664 0x01e3,
5665 0x01e4,
5668 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5669 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5670 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5671 0x01e2,
5672 0x01e3,
5675 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5676 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5677 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5678 0x01e1,
5679 0x01e2,
5682 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5683 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5684 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5685 0x01e0,
5686 0x01e1,
5689 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5690 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5691 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5692 0x01df,
5693 0x01e0,
5696 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5697 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5698 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5699 0x01de,
5700 0x01df,
5703 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5704 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5705 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5706 0x01dd,
5707 0x01de,
5710 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5711 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5712 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5713 0x01dd,
5714 0x01dd,
5717 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5718 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5719 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5720 0x01dc,
5721 0x01dd,
5724 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5725 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5726 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5727 0x01db,
5728 0x01dc,
5731 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5732 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5733 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5734 0x01da,
5735 0x01db,
5738 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5739 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5740 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5741 0x01d9,
5742 0x01da,
5745 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5746 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5747 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5748 0x01d8,
5749 0x01d9,
5752 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5753 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5754 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5755 0x01d7,
5756 0x01d8,
5759 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5760 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5761 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5762 0x01d7,
5763 0x01d7,
5766 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5767 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5768 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5769 0x01d6,
5770 0x01d7,
5773 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5774 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5775 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5776 0x01d5,
5777 0x01d6,
5780 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5781 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5782 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5783 0x01d4,
5784 0x01d5,
5787 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5788 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5789 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5790 0x01d3,
5791 0x01d4,
5794 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5795 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5796 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5797 0x01d2,
5798 0x01d3,
5801 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5802 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5803 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5804 0x01d2,
5805 0x01d2,
5808 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5809 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5810 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5811 0x01d1,
5812 0x01d2,
5815 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5816 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5817 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5818 0x01d0,
5819 0x01d1,
5822 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5823 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5824 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5825 0x01cf,
5826 0x01d0,
5829 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5830 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5831 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5832 0x01ce,
5833 0x01cf,
5836 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5837 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5838 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5839 0x01ce,
5840 0x01ce,
5843 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5844 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5845 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5846 0x01cd,
5847 0x01ce,
5850 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5851 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5852 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5853 0x01cc,
5854 0x01cd,
5857 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5858 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5859 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5860 0x01cb,
5861 0x01cc,
5864 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5865 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5866 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5867 0x01ca,
5868 0x01cb,
5871 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5872 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5873 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5874 0x01ca,
5875 0x01cb,
5878 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5879 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5880 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5881 0x01c9,
5882 0x01ca,
5885 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5886 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5887 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5888 0x01c9,
5889 0x01ca,
5892 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5893 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5894 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5895 0x01c9,
5896 0x01c9,
5899 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5900 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5901 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5902 0x01c8,
5903 0x01c9,
5906 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5907 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5908 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5909 0x01c8,
5910 0x01c9,
5913 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5914 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5915 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5916 0x01c8,
5917 0x01c8,
5920 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5921 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5922 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5923 0x01c7,
5924 0x01c8,
5927 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5928 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5929 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5930 0x01c7,
5931 0x01c8,
5934 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5935 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5936 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5937 0x01c6,
5938 0x01c7,
5941 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5942 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5943 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5944 0x01c6,
5945 0x01c7,
5948 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5949 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5950 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5951 0x01c6,
5952 0x01c6,
5955 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5956 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5957 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5958 0x01c5,
5959 0x01c6,
5962 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5963 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5964 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5965 0x01c5,
5966 0x01c6,
5969 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5970 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5971 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5972 0x01c4,
5973 0x01c5,
5976 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5977 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5978 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5979 0x01c4,
5980 0x01c5,
5983 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5984 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5985 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5986 0x01c4,
5987 0x01c4,
5990 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5991 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5992 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5993 0x01c3,
5994 0x01c4,
5997 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5998 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5999 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6000 0x01c3,
6001 0x01c4,
6004 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6005 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6006 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6007 0x01c2,
6008 0x01c3,
6011 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6012 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6013 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6014 0x01c2,
6015 0x01c3,
6018 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6019 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6020 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6021 0x01c2,
6022 0x01c2,
6025 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6026 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6027 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6028 0x01c1,
6029 0x01c2,
6032 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6033 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6034 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6035 0x01c0,
6036 0x01c1,
6039 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6040 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6041 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6042 0x01bf,
6043 0x01c0,
6046 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6047 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6048 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6049 0x01bf,
6050 0x01bf,
6053 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6054 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6055 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6056 0x01be,
6057 0x01bf,
6060 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6061 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6062 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6063 0x01bd,
6064 0x01be,
6067 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6068 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6069 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6070 0x01bc,
6071 0x01bd,
6074 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6075 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6076 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6077 0x043f,
6078 0x0443,
6081 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6082 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6083 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6084 0x043d,
6085 0x0441,
6088 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6089 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6090 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6091 0x043a,
6092 0x043f,
6095 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6096 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6097 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6098 0x0438,
6099 0x043d,
6102 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6103 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6104 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6105 0x0436,
6106 0x043a,
6109 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6110 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6111 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6112 0x0434,
6113 0x0438,
6116 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6117 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6118 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6119 0x0431,
6120 0x0436,
6123 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6124 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6125 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6126 0x042f,
6127 0x0434,
6130 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6131 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6132 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6133 0x042d,
6134 0x0431,
6137 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6138 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6139 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6140 0x042b,
6141 0x042f,
6144 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6145 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6146 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6147 0x0429,
6148 0x042d,
6151 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6152 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6153 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6154 0x0427,
6155 0x042b,
6158 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6159 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6160 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6161 0x0424,
6162 0x0429,
6165 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6166 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6167 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6168 0x041f,
6169 0x0424}
6172 static const struct chan_info_nphy_radio2057_rev5
6173 chan_info_nphyrev8_2057_rev5[] = {
6175 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6176 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6177 0x043a, 0x043f, 0x0443},
6179 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6180 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6181 0x0438, 0x043d, 0x0441},
6183 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6184 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6185 0x0436, 0x043a, 0x043f},
6187 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6188 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6189 0x0434, 0x0438, 0x043d},
6191 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6192 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6193 0x0431, 0x0436, 0x043a},
6195 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6196 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6197 0x042f, 0x0434, 0x0438},
6199 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6200 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6201 0x042d, 0x0431, 0x0436},
6203 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6204 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6205 0x042b, 0x042f, 0x0434},
6207 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6208 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6209 0x0429, 0x042d, 0x0431},
6211 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6212 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6213 0x0427, 0x042b, 0x042f},
6215 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6216 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6217 0x0424, 0x0429, 0x042d},
6219 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6220 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6221 0x0422, 0x0427, 0x042b},
6223 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6224 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6225 0x0420, 0x0424, 0x0429},
6227 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6228 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6229 0x041b, 0x041f, 0x0424}
6232 static const struct chan_info_nphy_radio2057_rev5
6233 chan_info_nphyrev9_2057_rev5v1[] = {
6235 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6236 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6237 0x043a, 0x043f, 0x0443},
6239 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6240 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6241 0x0438, 0x043d, 0x0441},
6243 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6244 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6245 0x0436, 0x043a, 0x043f},
6247 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6248 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6249 0x0434, 0x0438, 0x043d},
6251 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6252 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6253 0x0431, 0x0436, 0x043a},
6255 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6256 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6257 0x042f, 0x0434, 0x0438},
6259 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6260 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6261 0x042d, 0x0431, 0x0436},
6263 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6264 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6265 0x042b, 0x042f, 0x0434},
6267 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6268 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6269 0x0429, 0x042d, 0x0431},
6271 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6272 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6273 0x0427, 0x042b, 0x042f},
6275 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6276 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6277 0x0424, 0x0429, 0x042d},
6279 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6280 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6281 0x0422, 0x0427, 0x042b},
6283 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6284 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6285 0x0420, 0x0424, 0x0429},
6287 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6288 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6289 0x041b, 0x041f, 0x0424}
6292 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6294 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6295 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6296 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6297 0x0215,
6298 0x0216},
6300 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6301 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6302 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6303 0x0214,
6304 0x0215},
6306 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6307 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6308 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6309 0x0213,
6310 0x0214},
6312 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6313 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6314 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6315 0x0212,
6316 0x0213},
6318 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6319 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6320 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6321 0x0211,
6322 0x0212},
6324 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6325 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6326 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6327 0x020f,
6328 0x0211},
6330 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6332 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6333 0x020e,
6334 0x020f},
6336 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6337 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6338 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6339 0x020d,
6340 0x020e},
6342 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6343 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6344 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6345 0x020c,
6346 0x020d},
6348 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6349 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6350 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6351 0x020b,
6352 0x020c},
6354 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6355 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6356 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6357 0x020a,
6358 0x020b},
6360 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6361 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6362 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6363 0x0209,
6364 0x020a},
6366 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6367 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6368 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6369 0x0208,
6370 0x0209},
6372 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6373 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6374 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6375 0x0207,
6376 0x0208},
6378 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6379 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6380 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6381 0x0206,
6382 0x0207},
6384 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6385 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6386 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6387 0x0205,
6388 0x0206},
6390 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6391 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6392 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6393 0x0204,
6394 0x0205},
6396 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6397 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6398 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6399 0x0203,
6400 0x0204},
6402 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6403 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6404 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6405 0x0202,
6406 0x0203},
6408 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6409 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6410 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6411 0x0201,
6412 0x0202},
6414 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6415 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6416 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6417 0x0200,
6418 0x0201},
6420 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6421 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6422 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6423 0x01ff,
6424 0x0200},
6426 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6427 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6428 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6429 0x01fe,
6430 0x01ff},
6432 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6433 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6434 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6435 0x01fc,
6436 0x01fd},
6438 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6439 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6440 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6441 0x01fb,
6442 0x01fc},
6444 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6445 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6446 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6447 0x01fa,
6448 0x01fb},
6450 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6451 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6452 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6453 0x01f9,
6454 0x01fa},
6456 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6457 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6458 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6459 0x01f8,
6460 0x01f9},
6462 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6463 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6464 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6465 0x01f7,
6466 0x01f8},
6468 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6469 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6470 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6471 0x01f6,
6472 0x01f7},
6474 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6475 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6476 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6477 0x01f5,
6478 0x01f6},
6480 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6481 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6482 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6483 0x01f4,
6484 0x01f5},
6486 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6487 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6488 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6489 0x01f3,
6490 0x01f4},
6492 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6493 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6494 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6495 0x01f2,
6496 0x01f3},
6498 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6499 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6500 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6501 0x01f1,
6502 0x01f2},
6504 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6505 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6506 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6507 0x01f0,
6508 0x01f1},
6510 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6511 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6512 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6513 0x01f0,
6514 0x01f0},
6516 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6517 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6518 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6519 0x01ef,
6520 0x01f0},
6522 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6523 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6524 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6525 0x01ee,
6526 0x01ef},
6528 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6529 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6530 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6531 0x01ed,
6532 0x01ee},
6534 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6535 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6536 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6537 0x01ec,
6538 0x01ed},
6540 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6541 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6542 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6543 0x01eb,
6544 0x01ec},
6546 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6547 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6548 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6549 0x01ea,
6550 0x01eb},
6552 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6553 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6554 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6555 0x01e9,
6556 0x01ea},
6558 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6559 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6560 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6561 0x01e8,
6562 0x01e9},
6564 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6565 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6566 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6567 0x01e7,
6568 0x01e8},
6570 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6571 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6572 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6573 0x01e6,
6574 0x01e7},
6576 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6577 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6578 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6579 0x01e5,
6580 0x01e6},
6582 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6583 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6584 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6585 0x01e5,
6586 0x01e5},
6588 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6589 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6590 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6591 0x01e4,
6592 0x01e5},
6594 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6595 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6596 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6597 0x01e3,
6598 0x01e4},
6600 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6601 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6602 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6603 0x01e2,
6604 0x01e3},
6606 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6607 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6608 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6609 0x01e1,
6610 0x01e2},
6612 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6613 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6614 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6615 0x01e0,
6616 0x01e1},
6618 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6619 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6620 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6621 0x01df,
6622 0x01e0},
6624 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6625 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6626 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6627 0x01de,
6628 0x01df},
6630 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6631 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6632 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6633 0x01dd,
6634 0x01de},
6636 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6637 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6638 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6639 0x01dd,
6640 0x01dd},
6642 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6643 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6644 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6645 0x01dc,
6646 0x01dd},
6648 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6649 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6650 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6651 0x01db,
6652 0x01dc},
6654 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6655 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6656 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6657 0x01da,
6658 0x01db},
6660 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6661 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6662 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6663 0x01d9,
6664 0x01da},
6666 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6667 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6668 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6669 0x01d8,
6670 0x01d9},
6672 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6673 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6674 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6675 0x01d7,
6676 0x01d8},
6678 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6679 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6680 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6681 0x01d7,
6682 0x01d7},
6684 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6685 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6686 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6687 0x01d6,
6688 0x01d7},
6690 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6691 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6692 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6693 0x01d5,
6694 0x01d6},
6696 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6697 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6698 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6699 0x01d4,
6700 0x01d5},
6702 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6703 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6704 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6705 0x01d3,
6706 0x01d4},
6708 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6709 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6710 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6711 0x01d2,
6712 0x01d3},
6714 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6715 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6716 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6717 0x01d2,
6718 0x01d2},
6720 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6721 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6722 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6723 0x01d1,
6724 0x01d2},
6726 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6727 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6728 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6729 0x01d0,
6730 0x01d1},
6732 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6733 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6734 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6735 0x01cf,
6736 0x01d0},
6738 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6739 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6740 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6741 0x01ce,
6742 0x01cf},
6744 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6745 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6746 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6747 0x01ce,
6748 0x01ce},
6750 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6751 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6752 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6753 0x01cd,
6754 0x01ce},
6756 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6757 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6758 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6759 0x01cc,
6760 0x01cd},
6762 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6763 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6764 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6765 0x01cb,
6766 0x01cc},
6768 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6769 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6770 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6771 0x01ca,
6772 0x01cb},
6774 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6775 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6776 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6777 0x01ca,
6778 0x01cb},
6780 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6781 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6782 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6783 0x01c9,
6784 0x01ca},
6786 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6787 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6788 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6789 0x01c9,
6790 0x01ca},
6792 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6793 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6794 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6795 0x01c9,
6796 0x01c9},
6798 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6799 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6800 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6801 0x01c8,
6802 0x01c9},
6804 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6805 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6806 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6807 0x01c8,
6808 0x01c9},
6810 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6811 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6812 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6813 0x01c8,
6814 0x01c8},
6816 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6817 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6818 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6819 0x01c7,
6820 0x01c8},
6822 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6823 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6824 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6825 0x01c7,
6826 0x01c8},
6828 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6829 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6830 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6831 0x01c6,
6832 0x01c7},
6834 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6835 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6836 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6837 0x01c6,
6838 0x01c7},
6840 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6841 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6842 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6843 0x01c6,
6844 0x01c6},
6846 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6847 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6848 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6849 0x01c5,
6850 0x01c6},
6852 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6853 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6854 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6855 0x01c5,
6856 0x01c6},
6858 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6859 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6860 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6861 0x01c4,
6862 0x01c5},
6864 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6865 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6866 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6867 0x01c4,
6868 0x01c5},
6870 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6871 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6872 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6873 0x01c4,
6874 0x01c4},
6876 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6877 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6878 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6879 0x01c3,
6880 0x01c4},
6882 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6883 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6884 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6885 0x01c3,
6886 0x01c4},
6888 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6889 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6890 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6891 0x01c2,
6892 0x01c3},
6894 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6895 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6896 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6897 0x01c2,
6898 0x01c3},
6900 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6901 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6902 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6903 0x01c2,
6904 0x01c2},
6906 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6907 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6908 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6909 0x01c1,
6910 0x01c2},
6912 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6913 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6914 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6915 0x01c0,
6916 0x01c1},
6918 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6919 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6920 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6921 0x01bf,
6922 0x01c0},
6924 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6925 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6926 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6927 0x01bf,
6928 0x01bf},
6930 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6931 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6932 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6933 0x01be,
6934 0x01bf},
6936 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6937 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6938 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6939 0x01bd,
6940 0x01be},
6942 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6943 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6944 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6945 0x01bc,
6946 0x01bd},
6948 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6949 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6950 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6951 0x043f,
6952 0x0443},
6954 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6955 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6956 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6957 0x043d,
6958 0x0441},
6960 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6961 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6962 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6963 0x043a,
6964 0x043f},
6966 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6967 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6968 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6969 0x0438,
6970 0x043d},
6972 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6973 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6974 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6975 0x0436,
6976 0x043a},
6978 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6979 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6980 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6981 0x0434,
6982 0x0438},
6984 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6985 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6986 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6987 0x0431,
6988 0x0436},
6990 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6991 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6992 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6993 0x042f,
6994 0x0434},
6996 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6997 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6998 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6999 0x042d,
7000 0x0431},
7002 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7003 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7004 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7005 0x042b,
7006 0x042f},
7008 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7009 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7010 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7011 0x0429,
7012 0x042d},
7014 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7015 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7016 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7017 0x0427,
7018 0x042b},
7020 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7021 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7022 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7023 0x0424,
7024 0x0429},
7026 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7027 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7028 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7029 0x041f,
7030 0x0424}
7033 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7035 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7036 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7037 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7038 0x0214,
7039 0x0215},
7041 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7042 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7043 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7044 0x0213,
7045 0x0214},
7047 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7048 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7049 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7050 0x0212,
7051 0x0213},
7053 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7054 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7055 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7056 0x0211,
7057 0x0212},
7059 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7060 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7061 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7062 0x020f,
7063 0x0211},
7065 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7066 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7067 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7068 0x020e,
7069 0x020f},
7071 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7072 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7073 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7074 0x020d,
7075 0x020e},
7077 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7078 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7079 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7080 0x020c,
7081 0x020d},
7083 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7084 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7085 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7086 0x020b,
7087 0x020c},
7089 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7090 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7091 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7092 0x020a,
7093 0x020b},
7095 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7096 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7097 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7098 0x0209,
7099 0x020a},
7101 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7102 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7103 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7104 0x0208,
7105 0x0209},
7107 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7108 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7109 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7110 0x0207,
7111 0x0208},
7113 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7114 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7115 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7116 0x0206,
7117 0x0207},
7119 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7120 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7121 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7122 0x0205,
7123 0x0206},
7125 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7126 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7127 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7128 0x0204,
7129 0x0205},
7131 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7132 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7133 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7134 0x0203,
7135 0x0204},
7137 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7138 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7139 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7140 0x0202,
7141 0x0203},
7143 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7144 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7145 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7146 0x0201,
7147 0x0202},
7149 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7150 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7151 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7152 0x0200,
7153 0x0201},
7155 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7156 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7157 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7158 0x01ff,
7159 0x0200},
7161 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7162 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7163 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7164 0x01fe,
7165 0x01ff},
7167 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7168 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7169 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7170 0x01fc,
7171 0x01fd},
7173 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7174 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7175 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7176 0x01fb,
7177 0x01fc},
7179 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7180 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7181 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7182 0x01fa,
7183 0x01fb},
7185 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7186 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7187 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7188 0x01f9,
7189 0x01fa},
7191 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7192 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7193 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7194 0x01f8,
7195 0x01f9},
7197 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7198 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7199 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7200 0x01f7,
7201 0x01f8},
7203 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7204 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7205 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7206 0x01f6,
7207 0x01f7},
7209 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7210 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7211 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7212 0x01f5,
7213 0x01f6},
7215 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7216 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7217 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7218 0x01f4,
7219 0x01f5},
7221 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7222 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7223 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7224 0x01f3,
7225 0x01f4},
7227 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7228 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7229 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7230 0x01f2,
7231 0x01f3},
7233 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7234 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7235 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7236 0x01f1,
7237 0x01f2},
7239 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7240 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7241 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7242 0x01f0,
7243 0x01f1},
7245 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7246 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7247 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7248 0x01f0,
7249 0x01f0},
7251 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7252 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7253 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7254 0x01ef,
7255 0x01f0},
7257 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7258 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7259 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7260 0x01ee,
7261 0x01ef},
7263 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7264 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7265 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7266 0x01ed,
7267 0x01ee},
7269 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7270 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7271 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7272 0x01ec,
7273 0x01ed},
7275 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7276 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7277 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7278 0x01eb,
7279 0x01ec},
7281 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7282 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7283 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7284 0x01ea,
7285 0x01eb},
7287 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7288 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7289 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7290 0x01e9,
7291 0x01ea},
7293 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7294 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7295 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7296 0x01e8,
7297 0x01e9},
7299 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7300 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7301 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7302 0x01e7,
7303 0x01e8},
7305 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7306 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7307 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7308 0x01e6,
7309 0x01e7},
7311 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7312 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7313 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7314 0x01e5,
7315 0x01e6},
7317 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7318 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7319 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7320 0x01e5,
7321 0x01e5},
7323 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7324 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7325 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7326 0x01e4,
7327 0x01e5},
7329 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7330 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7331 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7332 0x01e3,
7333 0x01e4},
7335 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7336 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7337 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7338 0x01e2,
7339 0x01e3},
7341 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7342 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7343 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7344 0x01e1,
7345 0x01e2},
7347 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7348 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7349 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7350 0x01e0,
7351 0x01e1},
7353 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7354 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7355 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7356 0x01df,
7357 0x01e0},
7359 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7360 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7361 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7362 0x01de,
7363 0x01df},
7365 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7366 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7367 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7368 0x01dd,
7369 0x01de},
7371 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7372 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7373 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7374 0x01dd,
7375 0x01dd},
7377 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7378 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7379 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7380 0x01dc,
7381 0x01dd},
7383 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7384 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7385 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7386 0x01db,
7387 0x01dc},
7389 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7390 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7391 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7392 0x01da,
7393 0x01db},
7395 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7396 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7397 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7398 0x01d9,
7399 0x01da},
7401 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7402 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7403 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7404 0x01d8,
7405 0x01d9},
7407 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7408 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7409 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7410 0x01d7,
7411 0x01d8},
7413 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7414 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7415 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7416 0x01d7,
7417 0x01d7},
7419 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7420 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7421 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7422 0x01d6,
7423 0x01d7},
7425 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7426 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7427 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7428 0x01d5,
7429 0x01d6},
7431 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7432 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7433 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7434 0x01d4,
7435 0x01d5},
7437 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7438 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7439 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7440 0x01d3,
7441 0x01d4},
7443 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7444 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7445 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7446 0x01d2,
7447 0x01d3},
7449 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7450 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7451 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7452 0x01d2,
7453 0x01d2},
7455 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7456 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7457 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7458 0x01d1,
7459 0x01d2},
7461 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7462 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7463 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7464 0x01d0,
7465 0x01d1},
7467 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7468 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7469 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7470 0x01cf,
7471 0x01d0},
7473 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7474 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7475 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7476 0x01ce,
7477 0x01cf},
7479 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7480 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7481 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7482 0x01ce,
7483 0x01ce},
7485 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7486 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7487 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7488 0x01cd,
7489 0x01ce},
7491 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7492 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7493 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7494 0x01cc,
7495 0x01cd},
7497 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7498 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7499 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7500 0x01cb,
7501 0x01cc},
7503 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7504 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7505 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7506 0x01ca,
7507 0x01cb},
7509 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7510 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7511 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7512 0x01ca,
7513 0x01cb},
7515 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7516 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7517 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7518 0x01c9,
7519 0x01ca},
7521 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7522 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7523 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7524 0x01c9,
7525 0x01ca},
7527 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7528 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7529 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7530 0x01c9,
7531 0x01c9},
7533 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7534 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7535 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7536 0x01c8,
7537 0x01c9},
7539 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7540 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7541 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7542 0x01c8,
7543 0x01c9},
7545 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7546 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7547 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7548 0x01c8,
7549 0x01c8},
7551 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7552 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7553 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7554 0x01c7,
7555 0x01c8},
7557 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7558 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7559 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7560 0x01c7,
7561 0x01c8},
7563 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7564 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7565 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7566 0x01c6,
7567 0x01c7},
7569 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7570 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7571 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7572 0x01c6,
7573 0x01c7},
7575 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7576 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7577 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7578 0x01c6,
7579 0x01c6},
7581 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7582 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7583 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7584 0x01c5,
7585 0x01c6},
7587 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7588 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7589 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7590 0x01c5,
7591 0x01c6},
7593 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7594 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7595 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7596 0x01c4,
7597 0x01c5},
7599 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7600 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7601 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7602 0x01c4,
7603 0x01c5},
7605 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7606 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7607 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7608 0x01c4,
7609 0x01c4},
7611 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7612 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7613 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7614 0x01c3,
7615 0x01c4},
7617 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7618 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7619 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7620 0x01c3,
7621 0x01c4},
7623 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7624 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7625 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7626 0x01c2,
7627 0x01c3},
7629 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7630 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7631 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7632 0x01c2,
7633 0x01c3},
7635 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7636 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7637 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7638 0x01c2,
7639 0x01c2},
7641 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7642 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7643 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7644 0x01c1,
7645 0x01c2},
7647 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7648 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7649 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7650 0x01c0,
7651 0x01c1},
7653 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7654 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7655 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7656 0x01bf,
7657 0x01c0},
7659 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7660 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7661 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7662 0x01bf,
7663 0x01bf},
7665 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7666 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7667 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7668 0x01be,
7669 0x01bf},
7671 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7672 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7673 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7674 0x01bd,
7675 0x01be},
7677 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7678 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7679 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7680 0x01bc,
7681 0x01bd},
7683 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7684 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7685 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7686 0x043f,
7687 0x0443},
7689 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7690 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7691 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7692 0x043d,
7693 0x0441},
7695 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7696 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7697 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7698 0x043a,
7699 0x043f},
7701 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7702 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7703 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7704 0x0438,
7705 0x043d},
7707 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7708 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7709 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7710 0x0436,
7711 0x043a},
7713 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7714 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7715 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7716 0x0434,
7717 0x0438},
7719 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7720 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7721 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7722 0x0431,
7723 0x0436},
7725 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7726 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7727 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7728 0x042f,
7729 0x0434},
7731 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7732 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7733 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7734 0x042d,
7735 0x0431},
7737 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7738 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7739 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7740 0x042b,
7741 0x042f},
7743 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7744 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7745 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7746 0x0429,
7747 0x042d},
7749 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7750 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7751 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7752 0x0427,
7753 0x042b},
7755 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7756 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7757 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7758 0x0424,
7759 0x0429},
7761 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7762 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7763 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7764 0x041f,
7765 0x0424}
7768 static struct radio_regs regs_2055[] = {
7769 {0x02, 0x80, 0x80, 0, 0},
7770 {0x03, 0, 0, 0, 0},
7771 {0x04, 0x27, 0x27, 0, 0},
7772 {0x05, 0, 0, 0, 0},
7773 {0x06, 0x27, 0x27, 0, 0},
7774 {0x07, 0x7f, 0x7f, 1, 1},
7775 {0x08, 0x7, 0x7, 1, 1},
7776 {0x09, 0x7f, 0x7f, 1, 1},
7777 {0x0A, 0x7, 0x7, 1, 1},
7778 {0x0B, 0x15, 0x15, 0, 0},
7779 {0x0C, 0x15, 0x15, 0, 0},
7780 {0x0D, 0x4f, 0x4f, 1, 1},
7781 {0x0E, 0x5, 0x5, 1, 1},
7782 {0x0F, 0x4f, 0x4f, 1, 1},
7783 {0x10, 0x5, 0x5, 1, 1},
7784 {0x11, 0xd0, 0xd0, 0, 0},
7785 {0x12, 0x2, 0x2, 0, 0},
7786 {0x13, 0, 0, 0, 0},
7787 {0x14, 0x40, 0x40, 0, 0},
7788 {0x15, 0, 0, 0, 0},
7789 {0x16, 0, 0, 0, 0},
7790 {0x17, 0, 0, 0, 0},
7791 {0x18, 0, 0, 0, 0},
7792 {0x19, 0, 0, 0, 0},
7793 {0x1A, 0, 0, 0, 0},
7794 {0x1B, 0, 0, 0, 0},
7795 {0x1C, 0, 0, 0, 0},
7796 {0x1D, 0xc0, 0xc0, 0, 0},
7797 {0x1E, 0xff, 0xff, 0, 0},
7798 {0x1F, 0xc0, 0xc0, 0, 0},
7799 {0x20, 0xff, 0xff, 0, 0},
7800 {0x21, 0xc0, 0xc0, 0, 0},
7801 {0x22, 0, 0, 0, 0},
7802 {0x23, 0x2c, 0x2c, 0, 0},
7803 {0x24, 0, 0, 0, 0},
7804 {0x25, 0, 0, 0, 0},
7805 {0x26, 0, 0, 0, 0},
7806 {0x27, 0, 0, 0, 0},
7807 {0x28, 0, 0, 0, 0},
7808 {0x29, 0, 0, 0, 0},
7809 {0x2A, 0, 0, 0, 0},
7810 {0x2B, 0, 0, 0, 0},
7811 {0x2C, 0, 0, 0, 0},
7812 {0x2D, 0xa4, 0xa4, 0, 0},
7813 {0x2E, 0x38, 0x38, 0, 0},
7814 {0x2F, 0, 0, 0, 0},
7815 {0x30, 0x4, 0x4, 1, 1},
7816 {0x31, 0, 0, 0, 0},
7817 {0x32, 0xa, 0xa, 0, 0},
7818 {0x33, 0x87, 0x87, 0, 0},
7819 {0x34, 0x9, 0x9, 0, 0},
7820 {0x35, 0x70, 0x70, 0, 0},
7821 {0x36, 0x11, 0x11, 0, 0},
7822 {0x37, 0x18, 0x18, 1, 1},
7823 {0x38, 0x6, 0x6, 0, 0},
7824 {0x39, 0x4, 0x4, 1, 1},
7825 {0x3A, 0x6, 0x6, 0, 0},
7826 {0x3B, 0x9e, 0x9e, 0, 0},
7827 {0x3C, 0x9, 0x9, 0, 0},
7828 {0x3D, 0xc8, 0xc8, 1, 1},
7829 {0x3E, 0x88, 0x88, 0, 0},
7830 {0x3F, 0, 0, 0, 0},
7831 {0x40, 0, 0, 0, 0},
7832 {0x41, 0, 0, 0, 0},
7833 {0x42, 0x1, 0x1, 0, 0},
7834 {0x43, 0x2, 0x2, 0, 0},
7835 {0x44, 0x96, 0x96, 0, 0},
7836 {0x45, 0x3e, 0x3e, 0, 0},
7837 {0x46, 0x3e, 0x3e, 0, 0},
7838 {0x47, 0x13, 0x13, 0, 0},
7839 {0x48, 0x2, 0x2, 0, 0},
7840 {0x49, 0x15, 0x15, 0, 0},
7841 {0x4A, 0x7, 0x7, 0, 0},
7842 {0x4B, 0, 0, 0, 0},
7843 {0x4C, 0, 0, 0, 0},
7844 {0x4D, 0, 0, 0, 0},
7845 {0x4E, 0, 0, 0, 0},
7846 {0x4F, 0, 0, 0, 0},
7847 {0x50, 0x8, 0x8, 0, 0},
7848 {0x51, 0x8, 0x8, 0, 0},
7849 {0x52, 0x6, 0x6, 0, 0},
7850 {0x53, 0x84, 0x84, 1, 1},
7851 {0x54, 0xc3, 0xc3, 0, 0},
7852 {0x55, 0x8f, 0x8f, 0, 0},
7853 {0x56, 0xff, 0xff, 0, 0},
7854 {0x57, 0xff, 0xff, 0, 0},
7855 {0x58, 0x88, 0x88, 0, 0},
7856 {0x59, 0x88, 0x88, 0, 0},
7857 {0x5A, 0, 0, 0, 0},
7858 {0x5B, 0xcc, 0xcc, 0, 0},
7859 {0x5C, 0x6, 0x6, 0, 0},
7860 {0x5D, 0x80, 0x80, 0, 0},
7861 {0x5E, 0x80, 0x80, 0, 0},
7862 {0x5F, 0xf8, 0xf8, 0, 0},
7863 {0x60, 0x88, 0x88, 0, 0},
7864 {0x61, 0x88, 0x88, 0, 0},
7865 {0x62, 0x88, 0x8, 1, 1},
7866 {0x63, 0x88, 0x88, 0, 0},
7867 {0x64, 0, 0, 0, 0},
7868 {0x65, 0x1, 0x1, 1, 1},
7869 {0x66, 0x8a, 0x8a, 0, 0},
7870 {0x67, 0x8, 0x8, 0, 0},
7871 {0x68, 0x83, 0x83, 0, 0},
7872 {0x69, 0x6, 0x6, 0, 0},
7873 {0x6A, 0xa0, 0xa0, 0, 0},
7874 {0x6B, 0xa, 0xa, 0, 0},
7875 {0x6C, 0x87, 0x87, 1, 1},
7876 {0x6D, 0x2a, 0x2a, 0, 0},
7877 {0x6E, 0x2a, 0x2a, 0, 0},
7878 {0x6F, 0x2a, 0x2a, 0, 0},
7879 {0x70, 0x2a, 0x2a, 0, 0},
7880 {0x71, 0x18, 0x18, 0, 0},
7881 {0x72, 0x6a, 0x6a, 1, 1},
7882 {0x73, 0xab, 0xab, 1, 1},
7883 {0x74, 0x13, 0x13, 1, 1},
7884 {0x75, 0xc1, 0xc1, 1, 1},
7885 {0x76, 0xaa, 0xaa, 1, 1},
7886 {0x77, 0x87, 0x87, 1, 1},
7887 {0x78, 0, 0, 0, 0},
7888 {0x79, 0x6, 0x6, 0, 0},
7889 {0x7A, 0x7, 0x7, 0, 0},
7890 {0x7B, 0x7, 0x7, 0, 0},
7891 {0x7C, 0x15, 0x15, 0, 0},
7892 {0x7D, 0x55, 0x55, 0, 0},
7893 {0x7E, 0x97, 0x97, 1, 1},
7894 {0x7F, 0x8, 0x8, 0, 0},
7895 {0x80, 0x14, 0x14, 1, 1},
7896 {0x81, 0x33, 0x33, 0, 0},
7897 {0x82, 0x88, 0x88, 0, 0},
7898 {0x83, 0x6, 0x6, 0, 0},
7899 {0x84, 0x3, 0x3, 1, 1},
7900 {0x85, 0xa, 0xa, 0, 0},
7901 {0x86, 0x3, 0x3, 1, 1},
7902 {0x87, 0x2a, 0x2a, 0, 0},
7903 {0x88, 0xa4, 0xa4, 0, 0},
7904 {0x89, 0x18, 0x18, 0, 0},
7905 {0x8A, 0x28, 0x28, 0, 0},
7906 {0x8B, 0, 0, 0, 0},
7907 {0x8C, 0x4a, 0x4a, 0, 0},
7908 {0x8D, 0, 0, 0, 0},
7909 {0x8E, 0xf8, 0xf8, 0, 0},
7910 {0x8F, 0x88, 0x88, 0, 0},
7911 {0x90, 0x88, 0x88, 0, 0},
7912 {0x91, 0x88, 0x8, 1, 1},
7913 {0x92, 0x88, 0x88, 0, 0},
7914 {0x93, 0, 0, 0, 0},
7915 {0x94, 0x1, 0x1, 1, 1},
7916 {0x95, 0x8a, 0x8a, 0, 0},
7917 {0x96, 0x8, 0x8, 0, 0},
7918 {0x97, 0x83, 0x83, 0, 0},
7919 {0x98, 0x6, 0x6, 0, 0},
7920 {0x99, 0xa0, 0xa0, 0, 0},
7921 {0x9A, 0xa, 0xa, 0, 0},
7922 {0x9B, 0x87, 0x87, 1, 1},
7923 {0x9C, 0x2a, 0x2a, 0, 0},
7924 {0x9D, 0x2a, 0x2a, 0, 0},
7925 {0x9E, 0x2a, 0x2a, 0, 0},
7926 {0x9F, 0x2a, 0x2a, 0, 0},
7927 {0xA0, 0x18, 0x18, 0, 0},
7928 {0xA1, 0x6a, 0x6a, 1, 1},
7929 {0xA2, 0xab, 0xab, 1, 1},
7930 {0xA3, 0x13, 0x13, 1, 1},
7931 {0xA4, 0xc1, 0xc1, 1, 1},
7932 {0xA5, 0xaa, 0xaa, 1, 1},
7933 {0xA6, 0x87, 0x87, 1, 1},
7934 {0xA7, 0, 0, 0, 0},
7935 {0xA8, 0x6, 0x6, 0, 0},
7936 {0xA9, 0x7, 0x7, 0, 0},
7937 {0xAA, 0x7, 0x7, 0, 0},
7938 {0xAB, 0x15, 0x15, 0, 0},
7939 {0xAC, 0x55, 0x55, 0, 0},
7940 {0xAD, 0x97, 0x97, 1, 1},
7941 {0xAE, 0x8, 0x8, 0, 0},
7942 {0xAF, 0x14, 0x14, 1, 1},
7943 {0xB0, 0x33, 0x33, 0, 0},
7944 {0xB1, 0x88, 0x88, 0, 0},
7945 {0xB2, 0x6, 0x6, 0, 0},
7946 {0xB3, 0x3, 0x3, 1, 1},
7947 {0xB4, 0xa, 0xa, 0, 0},
7948 {0xB5, 0x3, 0x3, 1, 1},
7949 {0xB6, 0x2a, 0x2a, 0, 0},
7950 {0xB7, 0xa4, 0xa4, 0, 0},
7951 {0xB8, 0x18, 0x18, 0, 0},
7952 {0xB9, 0x28, 0x28, 0, 0},
7953 {0xBA, 0, 0, 0, 0},
7954 {0xBB, 0x4a, 0x4a, 0, 0},
7955 {0xBC, 0, 0, 0, 0},
7956 {0xBD, 0x71, 0x71, 0, 0},
7957 {0xBE, 0x72, 0x72, 0, 0},
7958 {0xBF, 0x73, 0x73, 0, 0},
7959 {0xC0, 0x74, 0x74, 0, 0},
7960 {0xC1, 0x75, 0x75, 0, 0},
7961 {0xC2, 0x76, 0x76, 0, 0},
7962 {0xC3, 0x77, 0x77, 0, 0},
7963 {0xC4, 0x78, 0x78, 0, 0},
7964 {0xC5, 0x79, 0x79, 0, 0},
7965 {0xC6, 0x7a, 0x7a, 0, 0},
7966 {0xC7, 0, 0, 0, 0},
7967 {0xC8, 0, 0, 0, 0},
7968 {0xC9, 0, 0, 0, 0},
7969 {0xCA, 0, 0, 0, 0},
7970 {0xCB, 0, 0, 0, 0},
7971 {0xCC, 0, 0, 0, 0},
7972 {0xCD, 0, 0, 0, 0},
7973 {0xCE, 0x6, 0x6, 0, 0},
7974 {0xCF, 0, 0, 0, 0},
7975 {0xD0, 0, 0, 0, 0},
7976 {0xD1, 0x18, 0x18, 0, 0},
7977 {0xD2, 0x88, 0x88, 0, 0},
7978 {0xD3, 0, 0, 0, 0},
7979 {0xD4, 0, 0, 0, 0},
7980 {0xD5, 0, 0, 0, 0},
7981 {0xD6, 0, 0, 0, 0},
7982 {0xD7, 0, 0, 0, 0},
7983 {0xD8, 0, 0, 0, 0},
7984 {0xD9, 0, 0, 0, 0},
7985 {0xDA, 0x6, 0x6, 0, 0},
7986 {0xDB, 0, 0, 0, 0},
7987 {0xDC, 0, 0, 0, 0},
7988 {0xDD, 0x18, 0x18, 0, 0},
7989 {0xDE, 0x88, 0x88, 0, 0},
7990 {0xDF, 0, 0, 0, 0},
7991 {0xE0, 0, 0, 0, 0},
7992 {0xE1, 0, 0, 0, 0},
7993 {0xE2, 0, 0, 0, 0},
7994 {0xFFFF, 0, 0, 0, 0},
7997 static struct radio_regs regs_SYN_2056[] = {
7998 {0x02, 0, 0, 0, 0},
7999 {0x03, 0, 0, 0, 0},
8000 {0x04, 0, 0, 0, 0},
8001 {0x05, 0, 0, 0, 0},
8002 {0x06, 0, 0, 0, 0},
8003 {0x07, 0, 0, 0, 0},
8004 {0x08, 0, 0, 0, 0},
8005 {0x09, 0x1, 0x1, 0, 0},
8006 {0x0A, 0, 0, 0, 0},
8007 {0x0B, 0, 0, 0, 0},
8008 {0x0C, 0, 0, 0, 0},
8009 {0x0D, 0, 0, 0, 0},
8010 {0x0E, 0, 0, 0, 0},
8011 {0x0F, 0, 0, 0, 0},
8012 {0x10, 0, 0, 0, 0},
8013 {0x11, 0, 0, 0, 0},
8014 {0x12, 0, 0, 0, 0},
8015 {0x13, 0, 0, 0, 0},
8016 {0x14, 0, 0, 0, 0},
8017 {0x15, 0, 0, 0, 0},
8018 {0x16, 0, 0, 0, 0},
8019 {0x17, 0, 0, 0, 0},
8020 {0x18, 0, 0, 0, 0},
8021 {0x19, 0, 0, 0, 0},
8022 {0x1A, 0, 0, 0, 0},
8023 {0x1B, 0, 0, 0, 0},
8024 {0x1C, 0, 0, 0, 0},
8025 {0x1D, 0, 0, 0, 0},
8026 {0x1E, 0, 0, 0, 0},
8027 {0x1F, 0, 0, 0, 0},
8028 {0x20, 0, 0, 0, 0},
8029 {0x21, 0, 0, 0, 0},
8030 {0x22, 0x60, 0x60, 0, 0},
8031 {0x23, 0x6, 0x6, 0, 0},
8032 {0x24, 0xc, 0xc, 0, 0},
8033 {0x25, 0, 0, 0, 0},
8034 {0x26, 0, 0, 0, 0},
8035 {0x27, 0, 0, 0, 0},
8036 {0x28, 0x1, 0x1, 0, 0},
8037 {0x29, 0, 0, 0, 0},
8038 {0x2A, 0, 0, 0, 0},
8039 {0x2B, 0, 0, 0, 0},
8040 {0x2C, 0, 0, 0, 0},
8041 {0x2D, 0, 0, 0, 0},
8042 {0x2E, 0xd, 0xd, 0, 0},
8043 {0x2F, 0x1f, 0x1f, 0, 0},
8044 {0x30, 0x15, 0x15, 0, 0},
8045 {0x31, 0xf, 0xf, 0, 0},
8046 {0x32, 0, 0, 0, 0},
8047 {0x33, 0, 0, 0, 0},
8048 {0x34, 0, 0, 0, 0},
8049 {0x35, 0, 0, 0, 0},
8050 {0x36, 0, 0, 0, 0},
8051 {0x37, 0, 0, 0, 0},
8052 {0x38, 0, 0, 0, 0},
8053 {0x39, 0, 0, 0, 0},
8054 {0x3A, 0, 0, 0, 0},
8055 {0x3B, 0, 0, 0, 0},
8056 {0x3C, 0x13, 0x13, 0, 0},
8057 {0x3D, 0xf, 0xf, 0, 0},
8058 {0x3E, 0x18, 0x18, 0, 0},
8059 {0x3F, 0, 0, 0, 0},
8060 {0x40, 0, 0, 0, 0},
8061 {0x41, 0x20, 0x20, 0, 0},
8062 {0x42, 0x20, 0x20, 0, 0},
8063 {0x43, 0, 0, 0, 0},
8064 {0x44, 0x77, 0x77, 0, 0},
8065 {0x45, 0x7, 0x7, 0, 0},
8066 {0x46, 0x1, 0x1, 0, 0},
8067 {0x47, 0x4, 0x4, 0, 0},
8068 {0x48, 0xf, 0xf, 0, 0},
8069 {0x49, 0x30, 0x30, 0, 0},
8070 {0x4A, 0x32, 0x32, 0, 0},
8071 {0x4B, 0xd, 0xd, 0, 0},
8072 {0x4C, 0xd, 0xd, 0, 0},
8073 {0x4D, 0x4, 0x4, 0, 0},
8074 {0x4E, 0x6, 0x6, 0, 0},
8075 {0x4F, 0x1, 0x1, 0, 0},
8076 {0x50, 0x1c, 0x1c, 0, 0},
8077 {0x51, 0x2, 0x2, 0, 0},
8078 {0x52, 0x2, 0x2, 0, 0},
8079 {0x53, 0xf7, 0xf7, 1, 1},
8080 {0x54, 0xb4, 0xb4, 0, 0},
8081 {0x55, 0xd2, 0xd2, 0, 0},
8082 {0x56, 0, 0, 0, 0},
8083 {0x57, 0, 0, 0, 0},
8084 {0x58, 0x4, 0x4, 0, 0},
8085 {0x59, 0x96, 0x96, 0, 0},
8086 {0x5A, 0x3e, 0x3e, 0, 0},
8087 {0x5B, 0x3e, 0x3e, 0, 0},
8088 {0x5C, 0x13, 0x13, 0, 0},
8089 {0x5D, 0x2, 0x2, 0, 0},
8090 {0x5E, 0, 0, 0, 0},
8091 {0x5F, 0x7, 0x7, 0, 0},
8092 {0x60, 0x7, 0x7, 1, 1},
8093 {0x61, 0x8, 0x8, 0, 0},
8094 {0x62, 0x3, 0x3, 0, 0},
8095 {0x63, 0, 0, 0, 0},
8096 {0x64, 0, 0, 0, 0},
8097 {0x65, 0, 0, 0, 0},
8098 {0x66, 0, 0, 0, 0},
8099 {0x67, 0, 0, 0, 0},
8100 {0x68, 0x40, 0x40, 0, 0},
8101 {0x69, 0, 0, 0, 0},
8102 {0x6A, 0, 0, 0, 0},
8103 {0x6B, 0, 0, 0, 0},
8104 {0x6C, 0, 0, 0, 0},
8105 {0x6D, 0x1, 0x1, 0, 0},
8106 {0x6E, 0, 0, 0, 0},
8107 {0x6F, 0, 0, 0, 0},
8108 {0x70, 0x60, 0x60, 0, 0},
8109 {0x71, 0x66, 0x66, 0, 0},
8110 {0x72, 0xc, 0xc, 0, 0},
8111 {0x73, 0x66, 0x66, 0, 0},
8112 {0x74, 0x8f, 0x8f, 1, 1},
8113 {0x75, 0, 0, 0, 0},
8114 {0x76, 0xcc, 0xcc, 0, 0},
8115 {0x77, 0x1, 0x1, 0, 0},
8116 {0x78, 0x66, 0x66, 0, 0},
8117 {0x79, 0x66, 0x66, 0, 0},
8118 {0x7A, 0, 0, 0, 0},
8119 {0x7B, 0, 0, 0, 0},
8120 {0x7C, 0, 0, 0, 0},
8121 {0x7D, 0, 0, 0, 0},
8122 {0x7E, 0, 0, 0, 0},
8123 {0x7F, 0, 0, 0, 0},
8124 {0x80, 0, 0, 0, 0},
8125 {0x81, 0, 0, 0, 0},
8126 {0x82, 0, 0, 0, 0},
8127 {0x83, 0, 0, 0, 0},
8128 {0x84, 0, 0, 0, 0},
8129 {0x85, 0xff, 0xff, 0, 0},
8130 {0x86, 0, 0, 0, 0},
8131 {0x87, 0, 0, 0, 0},
8132 {0x88, 0, 0, 0, 0},
8133 {0x89, 0, 0, 0, 0},
8134 {0x8A, 0, 0, 0, 0},
8135 {0x8B, 0, 0, 0, 0},
8136 {0x8C, 0, 0, 0, 0},
8137 {0x8D, 0, 0, 0, 0},
8138 {0x8E, 0, 0, 0, 0},
8139 {0x8F, 0, 0, 0, 0},
8140 {0x90, 0, 0, 0, 0},
8141 {0x91, 0, 0, 0, 0},
8142 {0x92, 0, 0, 0, 0},
8143 {0x93, 0, 0, 0, 0},
8144 {0x94, 0, 0, 0, 0},
8145 {0x95, 0, 0, 0, 0},
8146 {0x96, 0, 0, 0, 0},
8147 {0x97, 0, 0, 0, 0},
8148 {0x98, 0, 0, 0, 0},
8149 {0x99, 0, 0, 0, 0},
8150 {0x9A, 0, 0, 0, 0},
8151 {0x9B, 0, 0, 0, 0},
8152 {0x9C, 0, 0, 0, 0},
8153 {0x9D, 0, 0, 0, 0},
8154 {0x9E, 0, 0, 0, 0},
8155 {0x9F, 0x6, 0x6, 0, 0},
8156 {0xA0, 0x66, 0x66, 0, 0},
8157 {0xA1, 0x66, 0x66, 0, 0},
8158 {0xA2, 0x66, 0x66, 0, 0},
8159 {0xA3, 0x66, 0x66, 0, 0},
8160 {0xA4, 0x66, 0x66, 0, 0},
8161 {0xA5, 0x66, 0x66, 0, 0},
8162 {0xA6, 0x66, 0x66, 0, 0},
8163 {0xA7, 0x66, 0x66, 0, 0},
8164 {0xA8, 0x66, 0x66, 0, 0},
8165 {0xA9, 0x66, 0x66, 0, 0},
8166 {0xAA, 0x66, 0x66, 0, 0},
8167 {0xAB, 0x66, 0x66, 0, 0},
8168 {0xAC, 0x66, 0x66, 0, 0},
8169 {0xAD, 0x66, 0x66, 0, 0},
8170 {0xAE, 0x66, 0x66, 0, 0},
8171 {0xAF, 0x66, 0x66, 0, 0},
8172 {0xB0, 0x66, 0x66, 0, 0},
8173 {0xB1, 0x66, 0x66, 0, 0},
8174 {0xB2, 0x66, 0x66, 0, 0},
8175 {0xB3, 0xa, 0xa, 0, 0},
8176 {0xB4, 0, 0, 0, 0},
8177 {0xB5, 0, 0, 0, 0},
8178 {0xB6, 0, 0, 0, 0},
8179 {0xFFFF, 0, 0, 0, 0}
8182 static struct radio_regs regs_TX_2056[] = {
8183 {0x02, 0, 0, 0, 0},
8184 {0x03, 0, 0, 0, 0},
8185 {0x04, 0, 0, 0, 0},
8186 {0x05, 0, 0, 0, 0},
8187 {0x06, 0, 0, 0, 0},
8188 {0x07, 0, 0, 0, 0},
8189 {0x08, 0, 0, 0, 0},
8190 {0x09, 0, 0, 0, 0},
8191 {0x0A, 0, 0, 0, 0},
8192 {0x0B, 0, 0, 0, 0},
8193 {0x0C, 0, 0, 0, 0},
8194 {0x0D, 0, 0, 0, 0},
8195 {0x0E, 0, 0, 0, 0},
8196 {0x0F, 0, 0, 0, 0},
8197 {0x10, 0, 0, 0, 0},
8198 {0x11, 0, 0, 0, 0},
8199 {0x12, 0, 0, 0, 0},
8200 {0x13, 0, 0, 0, 0},
8201 {0x14, 0, 0, 0, 0},
8202 {0x15, 0, 0, 0, 0},
8203 {0x16, 0, 0, 0, 0},
8204 {0x17, 0, 0, 0, 0},
8205 {0x18, 0, 0, 0, 0},
8206 {0x19, 0, 0, 0, 0},
8207 {0x1A, 0, 0, 0, 0},
8208 {0x1B, 0, 0, 0, 0},
8209 {0x1C, 0, 0, 0, 0},
8210 {0x1D, 0, 0, 0, 0},
8211 {0x1E, 0, 0, 0, 0},
8212 {0x1F, 0, 0, 0, 0},
8213 {0x20, 0, 0, 0, 0},
8214 {0x21, 0x88, 0x88, 0, 0},
8215 {0x22, 0x88, 0x88, 0, 0},
8216 {0x23, 0x88, 0x88, 0, 0},
8217 {0x24, 0x88, 0x88, 0, 0},
8218 {0x25, 0xc, 0xc, 0, 0},
8219 {0x26, 0, 0, 0, 0},
8220 {0x27, 0x3, 0x3, 0, 0},
8221 {0x28, 0, 0, 0, 0},
8222 {0x29, 0x3, 0x3, 0, 0},
8223 {0x2A, 0x37, 0x37, 0, 0},
8224 {0x2B, 0x3, 0x3, 0, 0},
8225 {0x2C, 0, 0, 0, 0},
8226 {0x2D, 0, 0, 0, 0},
8227 {0x2E, 0x1, 0x1, 0, 0},
8228 {0x2F, 0x1, 0x1, 0, 0},
8229 {0x30, 0, 0, 0, 0},
8230 {0x31, 0, 0, 0, 0},
8231 {0x32, 0, 0, 0, 0},
8232 {0x33, 0x11, 0x11, 0, 0},
8233 {0x34, 0x11, 0x11, 0, 0},
8234 {0x35, 0, 0, 0, 0},
8235 {0x36, 0, 0, 0, 0},
8236 {0x37, 0x3, 0x3, 0, 0},
8237 {0x38, 0xf, 0xf, 0, 0},
8238 {0x39, 0, 0, 0, 0},
8239 {0x3A, 0x2d, 0x2d, 0, 0},
8240 {0x3B, 0, 0, 0, 0},
8241 {0x3C, 0x6e, 0x6e, 0, 0},
8242 {0x3D, 0xf0, 0xf0, 1, 1},
8243 {0x3E, 0, 0, 0, 0},
8244 {0x3F, 0, 0, 0, 0},
8245 {0x40, 0, 0, 0, 0},
8246 {0x41, 0x3, 0x3, 0, 0},
8247 {0x42, 0x3, 0x3, 0, 0},
8248 {0x43, 0, 0, 0, 0},
8249 {0x44, 0x1e, 0x1e, 0, 0},
8250 {0x45, 0, 0, 0, 0},
8251 {0x46, 0x6e, 0x6e, 0, 0},
8252 {0x47, 0xf0, 0xf0, 1, 1},
8253 {0x48, 0, 0, 0, 0},
8254 {0x49, 0x2, 0x2, 0, 0},
8255 {0x4A, 0xff, 0xff, 1, 1},
8256 {0x4B, 0xc, 0xc, 0, 0},
8257 {0x4C, 0, 0, 0, 0},
8258 {0x4D, 0x38, 0x38, 0, 0},
8259 {0x4E, 0x70, 0x70, 1, 1},
8260 {0x4F, 0x2, 0x2, 0, 0},
8261 {0x50, 0x88, 0x88, 0, 0},
8262 {0x51, 0xc, 0xc, 0, 0},
8263 {0x52, 0, 0, 0, 0},
8264 {0x53, 0x8, 0x8, 0, 0},
8265 {0x54, 0x70, 0x70, 1, 1},
8266 {0x55, 0x2, 0x2, 0, 0},
8267 {0x56, 0xff, 0xff, 1, 1},
8268 {0x57, 0, 0, 0, 0},
8269 {0x58, 0x83, 0x83, 0, 0},
8270 {0x59, 0x77, 0x77, 1, 1},
8271 {0x5A, 0, 0, 0, 0},
8272 {0x5B, 0x2, 0x2, 0, 0},
8273 {0x5C, 0x88, 0x88, 0, 0},
8274 {0x5D, 0, 0, 0, 0},
8275 {0x5E, 0x8, 0x8, 0, 0},
8276 {0x5F, 0x77, 0x77, 1, 1},
8277 {0x60, 0x1, 0x1, 0, 0},
8278 {0x61, 0, 0, 0, 0},
8279 {0x62, 0x7, 0x7, 0, 0},
8280 {0x63, 0, 0, 0, 0},
8281 {0x64, 0x7, 0x7, 0, 0},
8282 {0x65, 0, 0, 0, 0},
8283 {0x66, 0, 0, 0, 0},
8284 {0x67, 0x74, 0x74, 1, 1},
8285 {0x68, 0, 0, 0, 0},
8286 {0x69, 0xa, 0xa, 0, 0},
8287 {0x6A, 0, 0, 0, 0},
8288 {0x6B, 0, 0, 0, 0},
8289 {0x6C, 0, 0, 0, 0},
8290 {0x6D, 0, 0, 0, 0},
8291 {0x6E, 0, 0, 0, 0},
8292 {0x6F, 0, 0, 0, 0},
8293 {0x70, 0, 0, 0, 0},
8294 {0x71, 0x2, 0x2, 0, 0},
8295 {0x72, 0, 0, 0, 0},
8296 {0x73, 0, 0, 0, 0},
8297 {0x74, 0xe, 0xe, 0, 0},
8298 {0x75, 0xe, 0xe, 0, 0},
8299 {0x76, 0xe, 0xe, 0, 0},
8300 {0x77, 0x13, 0x13, 0, 0},
8301 {0x78, 0x13, 0x13, 0, 0},
8302 {0x79, 0x1b, 0x1b, 0, 0},
8303 {0x7A, 0x1b, 0x1b, 0, 0},
8304 {0x7B, 0x55, 0x55, 0, 0},
8305 {0x7C, 0x5b, 0x5b, 0, 0},
8306 {0x7D, 0, 0, 0, 0},
8307 {0x7E, 0, 0, 0, 0},
8308 {0x7F, 0, 0, 0, 0},
8309 {0x80, 0, 0, 0, 0},
8310 {0x81, 0, 0, 0, 0},
8311 {0x82, 0, 0, 0, 0},
8312 {0x83, 0, 0, 0, 0},
8313 {0x84, 0, 0, 0, 0},
8314 {0x85, 0, 0, 0, 0},
8315 {0x86, 0, 0, 0, 0},
8316 {0x87, 0, 0, 0, 0},
8317 {0x88, 0, 0, 0, 0},
8318 {0x89, 0, 0, 0, 0},
8319 {0x8A, 0, 0, 0, 0},
8320 {0x8B, 0, 0, 0, 0},
8321 {0x8C, 0, 0, 0, 0},
8322 {0x8D, 0, 0, 0, 0},
8323 {0x8E, 0, 0, 0, 0},
8324 {0x8F, 0, 0, 0, 0},
8325 {0x90, 0, 0, 0, 0},
8326 {0x91, 0, 0, 0, 0},
8327 {0x92, 0, 0, 0, 0},
8328 {0xFFFF, 0, 0, 0, 0}
8331 static struct radio_regs regs_RX_2056[] = {
8332 {0x02, 0, 0, 0, 0},
8333 {0x03, 0, 0, 0, 0},
8334 {0x04, 0, 0, 0, 0},
8335 {0x05, 0, 0, 0, 0},
8336 {0x06, 0, 0, 0, 0},
8337 {0x07, 0, 0, 0, 0},
8338 {0x08, 0, 0, 0, 0},
8339 {0x09, 0, 0, 0, 0},
8340 {0x0A, 0, 0, 0, 0},
8341 {0x0B, 0, 0, 0, 0},
8342 {0x0C, 0, 0, 0, 0},
8343 {0x0D, 0, 0, 0, 0},
8344 {0x0E, 0, 0, 0, 0},
8345 {0x0F, 0, 0, 0, 0},
8346 {0x10, 0, 0, 0, 0},
8347 {0x11, 0, 0, 0, 0},
8348 {0x12, 0, 0, 0, 0},
8349 {0x13, 0, 0, 0, 0},
8350 {0x14, 0, 0, 0, 0},
8351 {0x15, 0, 0, 0, 0},
8352 {0x16, 0, 0, 0, 0},
8353 {0x17, 0, 0, 0, 0},
8354 {0x18, 0, 0, 0, 0},
8355 {0x19, 0, 0, 0, 0},
8356 {0x1A, 0, 0, 0, 0},
8357 {0x1B, 0, 0, 0, 0},
8358 {0x1C, 0, 0, 0, 0},
8359 {0x1D, 0, 0, 0, 0},
8360 {0x1E, 0, 0, 0, 0},
8361 {0x1F, 0, 0, 0, 0},
8362 {0x20, 0x3, 0x3, 0, 0},
8363 {0x21, 0, 0, 0, 0},
8364 {0x22, 0, 0, 0, 0},
8365 {0x23, 0x90, 0x90, 0, 0},
8366 {0x24, 0x55, 0x55, 0, 0},
8367 {0x25, 0x15, 0x15, 0, 0},
8368 {0x26, 0x5, 0x5, 0, 0},
8369 {0x27, 0x15, 0x15, 0, 0},
8370 {0x28, 0x5, 0x5, 0, 0},
8371 {0x29, 0x20, 0x20, 0, 0},
8372 {0x2A, 0x11, 0x11, 0, 0},
8373 {0x2B, 0x90, 0x90, 0, 0},
8374 {0x2C, 0, 0, 0, 0},
8375 {0x2D, 0x88, 0x88, 0, 0},
8376 {0x2E, 0x32, 0x32, 0, 0},
8377 {0x2F, 0x77, 0x77, 0, 0},
8378 {0x30, 0x17, 0x17, 1, 1},
8379 {0x31, 0xff, 0xff, 1, 1},
8380 {0x32, 0x20, 0x20, 0, 0},
8381 {0x33, 0, 0, 0, 0},
8382 {0x34, 0x88, 0x88, 0, 0},
8383 {0x35, 0x32, 0x32, 0, 0},
8384 {0x36, 0x77, 0x77, 0, 0},
8385 {0x37, 0x17, 0x17, 1, 1},
8386 {0x38, 0xf0, 0xf0, 1, 1},
8387 {0x39, 0x20, 0x20, 0, 0},
8388 {0x3A, 0x8, 0x8, 0, 0},
8389 {0x3B, 0x99, 0x99, 0, 0},
8390 {0x3C, 0, 0, 0, 0},
8391 {0x3D, 0x44, 0x44, 1, 1},
8392 {0x3E, 0, 0, 0, 0},
8393 {0x3F, 0x44, 0x44, 0, 0},
8394 {0x40, 0xf, 0xf, 1, 1},
8395 {0x41, 0x6, 0x6, 0, 0},
8396 {0x42, 0x4, 0x4, 0, 0},
8397 {0x43, 0x50, 0x50, 1, 1},
8398 {0x44, 0x8, 0x8, 0, 0},
8399 {0x45, 0x99, 0x99, 0, 0},
8400 {0x46, 0, 0, 0, 0},
8401 {0x47, 0x11, 0x11, 0, 0},
8402 {0x48, 0, 0, 0, 0},
8403 {0x49, 0x44, 0x44, 0, 0},
8404 {0x4A, 0x7, 0x7, 0, 0},
8405 {0x4B, 0x6, 0x6, 0, 0},
8406 {0x4C, 0x4, 0x4, 0, 0},
8407 {0x4D, 0, 0, 0, 0},
8408 {0x4E, 0, 0, 0, 0},
8409 {0x4F, 0x66, 0x66, 0, 0},
8410 {0x50, 0x66, 0x66, 0, 0},
8411 {0x51, 0x57, 0x57, 0, 0},
8412 {0x52, 0x57, 0x57, 0, 0},
8413 {0x53, 0x44, 0x44, 0, 0},
8414 {0x54, 0, 0, 0, 0},
8415 {0x55, 0, 0, 0, 0},
8416 {0x56, 0x8, 0x8, 0, 0},
8417 {0x57, 0x8, 0x8, 0, 0},
8418 {0x58, 0x7, 0x7, 0, 0},
8419 {0x59, 0x22, 0x22, 0, 0},
8420 {0x5A, 0x22, 0x22, 0, 0},
8421 {0x5B, 0x2, 0x2, 0, 0},
8422 {0x5C, 0x23, 0x23, 0, 0},
8423 {0x5D, 0x7, 0x7, 0, 0},
8424 {0x5E, 0x55, 0x55, 0, 0},
8425 {0x5F, 0x23, 0x23, 0, 0},
8426 {0x60, 0x41, 0x41, 0, 0},
8427 {0x61, 0x1, 0x1, 0, 0},
8428 {0x62, 0xa, 0xa, 0, 0},
8429 {0x63, 0, 0, 0, 0},
8430 {0x64, 0, 0, 0, 0},
8431 {0x65, 0, 0, 0, 0},
8432 {0x66, 0, 0, 0, 0},
8433 {0x67, 0, 0, 0, 0},
8434 {0x68, 0, 0, 0, 0},
8435 {0x69, 0, 0, 0, 0},
8436 {0x6A, 0, 0, 0, 0},
8437 {0x6B, 0xc, 0xc, 0, 0},
8438 {0x6C, 0, 0, 0, 0},
8439 {0x6D, 0, 0, 0, 0},
8440 {0x6E, 0, 0, 0, 0},
8441 {0x6F, 0, 0, 0, 0},
8442 {0x70, 0, 0, 0, 0},
8443 {0x71, 0, 0, 0, 0},
8444 {0x72, 0x22, 0x22, 0, 0},
8445 {0x73, 0x22, 0x22, 0, 0},
8446 {0x74, 0x2, 0x2, 0, 0},
8447 {0x75, 0xa, 0xa, 0, 0},
8448 {0x76, 0x1, 0x1, 0, 0},
8449 {0x77, 0x22, 0x22, 0, 0},
8450 {0x78, 0x30, 0x30, 0, 0},
8451 {0x79, 0, 0, 0, 0},
8452 {0x7A, 0, 0, 0, 0},
8453 {0x7B, 0, 0, 0, 0},
8454 {0x7C, 0, 0, 0, 0},
8455 {0x7D, 0, 0, 0, 0},
8456 {0x7E, 0, 0, 0, 0},
8457 {0x7F, 0, 0, 0, 0},
8458 {0x80, 0, 0, 0, 0},
8459 {0x81, 0, 0, 0, 0},
8460 {0x82, 0, 0, 0, 0},
8461 {0x83, 0, 0, 0, 0},
8462 {0x84, 0, 0, 0, 0},
8463 {0x85, 0, 0, 0, 0},
8464 {0x86, 0, 0, 0, 0},
8465 {0x87, 0, 0, 0, 0},
8466 {0x88, 0, 0, 0, 0},
8467 {0x89, 0, 0, 0, 0},
8468 {0x8A, 0, 0, 0, 0},
8469 {0x8B, 0, 0, 0, 0},
8470 {0x8C, 0, 0, 0, 0},
8471 {0x8D, 0, 0, 0, 0},
8472 {0x8E, 0, 0, 0, 0},
8473 {0x8F, 0, 0, 0, 0},
8474 {0x90, 0, 0, 0, 0},
8475 {0x91, 0, 0, 0, 0},
8476 {0x92, 0, 0, 0, 0},
8477 {0x93, 0, 0, 0, 0},
8478 {0x94, 0, 0, 0, 0},
8479 {0xFFFF, 0, 0, 0, 0}
8482 static struct radio_regs regs_SYN_2056_A1[] = {
8483 {0x02, 0, 0, 0, 0},
8484 {0x03, 0, 0, 0, 0},
8485 {0x04, 0, 0, 0, 0},
8486 {0x05, 0, 0, 0, 0},
8487 {0x06, 0, 0, 0, 0},
8488 {0x07, 0, 0, 0, 0},
8489 {0x08, 0, 0, 0, 0},
8490 {0x09, 0x1, 0x1, 0, 0},
8491 {0x0A, 0, 0, 0, 0},
8492 {0x0B, 0, 0, 0, 0},
8493 {0x0C, 0, 0, 0, 0},
8494 {0x0D, 0, 0, 0, 0},
8495 {0x0E, 0, 0, 0, 0},
8496 {0x0F, 0, 0, 0, 0},
8497 {0x10, 0, 0, 0, 0},
8498 {0x11, 0, 0, 0, 0},
8499 {0x12, 0, 0, 0, 0},
8500 {0x13, 0, 0, 0, 0},
8501 {0x14, 0, 0, 0, 0},
8502 {0x15, 0, 0, 0, 0},
8503 {0x16, 0, 0, 0, 0},
8504 {0x17, 0, 0, 0, 0},
8505 {0x18, 0, 0, 0, 0},
8506 {0x19, 0, 0, 0, 0},
8507 {0x1A, 0, 0, 0, 0},
8508 {0x1B, 0, 0, 0, 0},
8509 {0x1C, 0, 0, 0, 0},
8510 {0x1D, 0, 0, 0, 0},
8511 {0x1E, 0, 0, 0, 0},
8512 {0x1F, 0, 0, 0, 0},
8513 {0x20, 0, 0, 0, 0},
8514 {0x21, 0, 0, 0, 0},
8515 {0x22, 0x60, 0x60, 0, 0},
8516 {0x23, 0x6, 0x6, 0, 0},
8517 {0x24, 0xc, 0xc, 0, 0},
8518 {0x25, 0, 0, 0, 0},
8519 {0x26, 0, 0, 0, 0},
8520 {0x27, 0, 0, 0, 0},
8521 {0x28, 0x1, 0x1, 0, 0},
8522 {0x29, 0, 0, 0, 0},
8523 {0x2A, 0, 0, 0, 0},
8524 {0x2B, 0, 0, 0, 0},
8525 {0x2C, 0, 0, 0, 0},
8526 {0x2D, 0, 0, 0, 0},
8527 {0x2E, 0xd, 0xd, 0, 0},
8528 {0x2F, 0x1f, 0x1f, 0, 0},
8529 {0x30, 0x15, 0x15, 0, 0},
8530 {0x31, 0xf, 0xf, 0, 0},
8531 {0x32, 0, 0, 0, 0},
8532 {0x33, 0, 0, 0, 0},
8533 {0x34, 0, 0, 0, 0},
8534 {0x35, 0, 0, 0, 0},
8535 {0x36, 0, 0, 0, 0},
8536 {0x37, 0, 0, 0, 0},
8537 {0x38, 0, 0, 0, 0},
8538 {0x39, 0, 0, 0, 0},
8539 {0x3A, 0, 0, 0, 0},
8540 {0x3B, 0, 0, 0, 0},
8541 {0x3C, 0x13, 0x13, 0, 0},
8542 {0x3D, 0xf, 0xf, 0, 0},
8543 {0x3E, 0x18, 0x18, 0, 0},
8544 {0x3F, 0, 0, 0, 0},
8545 {0x40, 0, 0, 0, 0},
8546 {0x41, 0x20, 0x20, 0, 0},
8547 {0x42, 0x20, 0x20, 0, 0},
8548 {0x43, 0, 0, 0, 0},
8549 {0x44, 0x77, 0x77, 0, 0},
8550 {0x45, 0x7, 0x7, 0, 0},
8551 {0x46, 0x1, 0x1, 0, 0},
8552 {0x47, 0x4, 0x4, 0, 0},
8553 {0x48, 0xf, 0xf, 0, 0},
8554 {0x49, 0x30, 0x30, 0, 0},
8555 {0x4A, 0x32, 0x32, 0, 0},
8556 {0x4B, 0xd, 0xd, 0, 0},
8557 {0x4C, 0xd, 0xd, 0, 0},
8558 {0x4D, 0x4, 0x4, 0, 0},
8559 {0x4E, 0x6, 0x6, 0, 0},
8560 {0x4F, 0x1, 0x1, 0, 0},
8561 {0x50, 0x1c, 0x1c, 0, 0},
8562 {0x51, 0x2, 0x2, 0, 0},
8563 {0x52, 0x2, 0x2, 0, 0},
8564 {0x53, 0xf7, 0xf7, 1, 1},
8565 {0x54, 0xb4, 0xb4, 0, 0},
8566 {0x55, 0xd2, 0xd2, 0, 0},
8567 {0x56, 0, 0, 0, 0},
8568 {0x57, 0, 0, 0, 0},
8569 {0x58, 0x4, 0x4, 0, 0},
8570 {0x59, 0x96, 0x96, 0, 0},
8571 {0x5A, 0x3e, 0x3e, 0, 0},
8572 {0x5B, 0x3e, 0x3e, 0, 0},
8573 {0x5C, 0x13, 0x13, 0, 0},
8574 {0x5D, 0x2, 0x2, 0, 0},
8575 {0x5E, 0, 0, 0, 0},
8576 {0x5F, 0x7, 0x7, 0, 0},
8577 {0x60, 0x7, 0x7, 1, 1},
8578 {0x61, 0x8, 0x8, 0, 0},
8579 {0x62, 0x3, 0x3, 0, 0},
8580 {0x63, 0, 0, 0, 0},
8581 {0x64, 0, 0, 0, 0},
8582 {0x65, 0, 0, 0, 0},
8583 {0x66, 0, 0, 0, 0},
8584 {0x67, 0, 0, 0, 0},
8585 {0x68, 0x40, 0x40, 0, 0},
8586 {0x69, 0, 0, 0, 0},
8587 {0x6A, 0, 0, 0, 0},
8588 {0x6B, 0, 0, 0, 0},
8589 {0x6C, 0, 0, 0, 0},
8590 {0x6D, 0x1, 0x1, 0, 0},
8591 {0x6E, 0, 0, 0, 0},
8592 {0x6F, 0, 0, 0, 0},
8593 {0x70, 0x60, 0x60, 0, 0},
8594 {0x71, 0x66, 0x66, 0, 0},
8595 {0x72, 0xc, 0xc, 0, 0},
8596 {0x73, 0x66, 0x66, 0, 0},
8597 {0x74, 0x8f, 0x8f, 1, 1},
8598 {0x75, 0, 0, 0, 0},
8599 {0x76, 0xcc, 0xcc, 0, 0},
8600 {0x77, 0x1, 0x1, 0, 0},
8601 {0x78, 0x66, 0x66, 0, 0},
8602 {0x79, 0x66, 0x66, 0, 0},
8603 {0x7A, 0, 0, 0, 0},
8604 {0x7B, 0, 0, 0, 0},
8605 {0x7C, 0, 0, 0, 0},
8606 {0x7D, 0, 0, 0, 0},
8607 {0x7E, 0, 0, 0, 0},
8608 {0x7F, 0, 0, 0, 0},
8609 {0x80, 0, 0, 0, 0},
8610 {0x81, 0, 0, 0, 0},
8611 {0x82, 0, 0, 0, 0},
8612 {0x83, 0, 0, 0, 0},
8613 {0x84, 0, 0, 0, 0},
8614 {0x85, 0xff, 0xff, 0, 0},
8615 {0x86, 0, 0, 0, 0},
8616 {0x87, 0, 0, 0, 0},
8617 {0x88, 0, 0, 0, 0},
8618 {0x89, 0, 0, 0, 0},
8619 {0x8A, 0, 0, 0, 0},
8620 {0x8B, 0, 0, 0, 0},
8621 {0x8C, 0, 0, 0, 0},
8622 {0x8D, 0, 0, 0, 0},
8623 {0x8E, 0, 0, 0, 0},
8624 {0x8F, 0, 0, 0, 0},
8625 {0x90, 0, 0, 0, 0},
8626 {0x91, 0, 0, 0, 0},
8627 {0x92, 0, 0, 0, 0},
8628 {0x93, 0, 0, 0, 0},
8629 {0x94, 0, 0, 0, 0},
8630 {0x95, 0, 0, 0, 0},
8631 {0x96, 0, 0, 0, 0},
8632 {0x97, 0, 0, 0, 0},
8633 {0x98, 0, 0, 0, 0},
8634 {0x99, 0, 0, 0, 0},
8635 {0x9A, 0, 0, 0, 0},
8636 {0x9B, 0, 0, 0, 0},
8637 {0x9C, 0, 0, 0, 0},
8638 {0x9D, 0, 0, 0, 0},
8639 {0x9E, 0, 0, 0, 0},
8640 {0x9F, 0x6, 0x6, 0, 0},
8641 {0xA0, 0x66, 0x66, 0, 0},
8642 {0xA1, 0x66, 0x66, 0, 0},
8643 {0xA2, 0x66, 0x66, 0, 0},
8644 {0xA3, 0x66, 0x66, 0, 0},
8645 {0xA4, 0x66, 0x66, 0, 0},
8646 {0xA5, 0x66, 0x66, 0, 0},
8647 {0xA6, 0x66, 0x66, 0, 0},
8648 {0xA7, 0x66, 0x66, 0, 0},
8649 {0xA8, 0x66, 0x66, 0, 0},
8650 {0xA9, 0x66, 0x66, 0, 0},
8651 {0xAA, 0x66, 0x66, 0, 0},
8652 {0xAB, 0x66, 0x66, 0, 0},
8653 {0xAC, 0x66, 0x66, 0, 0},
8654 {0xAD, 0x66, 0x66, 0, 0},
8655 {0xAE, 0x66, 0x66, 0, 0},
8656 {0xAF, 0x66, 0x66, 0, 0},
8657 {0xB0, 0x66, 0x66, 0, 0},
8658 {0xB1, 0x66, 0x66, 0, 0},
8659 {0xB2, 0x66, 0x66, 0, 0},
8660 {0xB3, 0xa, 0xa, 0, 0},
8661 {0xB4, 0, 0, 0, 0},
8662 {0xB5, 0, 0, 0, 0},
8663 {0xB6, 0, 0, 0, 0},
8664 {0xFFFF, 0, 0, 0, 0}
8667 static struct radio_regs regs_TX_2056_A1[] = {
8668 {0x02, 0, 0, 0, 0},
8669 {0x03, 0, 0, 0, 0},
8670 {0x04, 0, 0, 0, 0},
8671 {0x05, 0, 0, 0, 0},
8672 {0x06, 0, 0, 0, 0},
8673 {0x07, 0, 0, 0, 0},
8674 {0x08, 0, 0, 0, 0},
8675 {0x09, 0, 0, 0, 0},
8676 {0x0A, 0, 0, 0, 0},
8677 {0x0B, 0, 0, 0, 0},
8678 {0x0C, 0, 0, 0, 0},
8679 {0x0D, 0, 0, 0, 0},
8680 {0x0E, 0, 0, 0, 0},
8681 {0x0F, 0, 0, 0, 0},
8682 {0x10, 0, 0, 0, 0},
8683 {0x11, 0, 0, 0, 0},
8684 {0x12, 0, 0, 0, 0},
8685 {0x13, 0, 0, 0, 0},
8686 {0x14, 0, 0, 0, 0},
8687 {0x15, 0, 0, 0, 0},
8688 {0x16, 0, 0, 0, 0},
8689 {0x17, 0, 0, 0, 0},
8690 {0x18, 0, 0, 0, 0},
8691 {0x19, 0, 0, 0, 0},
8692 {0x1A, 0, 0, 0, 0},
8693 {0x1B, 0, 0, 0, 0},
8694 {0x1C, 0, 0, 0, 0},
8695 {0x1D, 0, 0, 0, 0},
8696 {0x1E, 0, 0, 0, 0},
8697 {0x1F, 0, 0, 0, 0},
8698 {0x20, 0, 0, 0, 0},
8699 {0x21, 0x88, 0x88, 0, 0},
8700 {0x22, 0x88, 0x88, 0, 0},
8701 {0x23, 0x88, 0x88, 0, 0},
8702 {0x24, 0x88, 0x88, 0, 0},
8703 {0x25, 0xc, 0xc, 0, 0},
8704 {0x26, 0, 0, 0, 0},
8705 {0x27, 0x3, 0x3, 0, 0},
8706 {0x28, 0, 0, 0, 0},
8707 {0x29, 0x3, 0x3, 0, 0},
8708 {0x2A, 0x37, 0x37, 0, 0},
8709 {0x2B, 0x3, 0x3, 0, 0},
8710 {0x2C, 0, 0, 0, 0},
8711 {0x2D, 0, 0, 0, 0},
8712 {0x2E, 0x1, 0x1, 0, 0},
8713 {0x2F, 0x1, 0x1, 0, 0},
8714 {0x30, 0, 0, 0, 0},
8715 {0x31, 0, 0, 0, 0},
8716 {0x32, 0, 0, 0, 0},
8717 {0x33, 0x11, 0x11, 0, 0},
8718 {0x34, 0x11, 0x11, 0, 0},
8719 {0x35, 0, 0, 0, 0},
8720 {0x36, 0, 0, 0, 0},
8721 {0x37, 0x3, 0x3, 0, 0},
8722 {0x38, 0xf, 0xf, 0, 0},
8723 {0x39, 0, 0, 0, 0},
8724 {0x3A, 0x2d, 0x2d, 0, 0},
8725 {0x3B, 0, 0, 0, 0},
8726 {0x3C, 0x6e, 0x6e, 0, 0},
8727 {0x3D, 0xf0, 0xf0, 1, 1},
8728 {0x3E, 0, 0, 0, 0},
8729 {0x3F, 0, 0, 0, 0},
8730 {0x40, 0, 0, 0, 0},
8731 {0x41, 0x3, 0x3, 0, 0},
8732 {0x42, 0x3, 0x3, 0, 0},
8733 {0x43, 0, 0, 0, 0},
8734 {0x44, 0x1e, 0x1e, 0, 0},
8735 {0x45, 0, 0, 0, 0},
8736 {0x46, 0x6e, 0x6e, 0, 0},
8737 {0x47, 0xf0, 0xf0, 1, 1},
8738 {0x48, 0, 0, 0, 0},
8739 {0x49, 0x2, 0x2, 0, 0},
8740 {0x4A, 0xff, 0xff, 1, 1},
8741 {0x4B, 0xc, 0xc, 0, 0},
8742 {0x4C, 0, 0, 0, 0},
8743 {0x4D, 0x38, 0x38, 0, 0},
8744 {0x4E, 0x70, 0x70, 1, 1},
8745 {0x4F, 0x2, 0x2, 0, 0},
8746 {0x50, 0x88, 0x88, 0, 0},
8747 {0x51, 0xc, 0xc, 0, 0},
8748 {0x52, 0, 0, 0, 0},
8749 {0x53, 0x8, 0x8, 0, 0},
8750 {0x54, 0x70, 0x70, 1, 1},
8751 {0x55, 0x2, 0x2, 0, 0},
8752 {0x56, 0xff, 0xff, 1, 1},
8753 {0x57, 0, 0, 0, 0},
8754 {0x58, 0x83, 0x83, 0, 0},
8755 {0x59, 0x77, 0x77, 1, 1},
8756 {0x5A, 0, 0, 0, 0},
8757 {0x5B, 0x2, 0x2, 0, 0},
8758 {0x5C, 0x88, 0x88, 0, 0},
8759 {0x5D, 0, 0, 0, 0},
8760 {0x5E, 0x8, 0x8, 0, 0},
8761 {0x5F, 0x77, 0x77, 1, 1},
8762 {0x60, 0x1, 0x1, 0, 0},
8763 {0x61, 0, 0, 0, 0},
8764 {0x62, 0x7, 0x7, 0, 0},
8765 {0x63, 0, 0, 0, 0},
8766 {0x64, 0x7, 0x7, 0, 0},
8767 {0x65, 0, 0, 0, 0},
8768 {0x66, 0, 0, 0, 0},
8769 {0x67, 0x72, 0x72, 1, 1},
8770 {0x68, 0, 0, 0, 0},
8771 {0x69, 0xa, 0xa, 0, 0},
8772 {0x6A, 0, 0, 0, 0},
8773 {0x6B, 0, 0, 0, 0},
8774 {0x6C, 0, 0, 0, 0},
8775 {0x6D, 0, 0, 0, 0},
8776 {0x6E, 0, 0, 0, 0},
8777 {0x6F, 0, 0, 0, 0},
8778 {0x70, 0, 0, 0, 0},
8779 {0x71, 0x2, 0x2, 0, 0},
8780 {0x72, 0, 0, 0, 0},
8781 {0x73, 0, 0, 0, 0},
8782 {0x74, 0xe, 0xe, 0, 0},
8783 {0x75, 0xe, 0xe, 0, 0},
8784 {0x76, 0xe, 0xe, 0, 0},
8785 {0x77, 0x13, 0x13, 0, 0},
8786 {0x78, 0x13, 0x13, 0, 0},
8787 {0x79, 0x1b, 0x1b, 0, 0},
8788 {0x7A, 0x1b, 0x1b, 0, 0},
8789 {0x7B, 0x55, 0x55, 0, 0},
8790 {0x7C, 0x5b, 0x5b, 0, 0},
8791 {0x7D, 0, 0, 0, 0},
8792 {0x7E, 0, 0, 0, 0},
8793 {0x7F, 0, 0, 0, 0},
8794 {0x80, 0, 0, 0, 0},
8795 {0x81, 0, 0, 0, 0},
8796 {0x82, 0, 0, 0, 0},
8797 {0x83, 0, 0, 0, 0},
8798 {0x84, 0, 0, 0, 0},
8799 {0x85, 0, 0, 0, 0},
8800 {0x86, 0, 0, 0, 0},
8801 {0x87, 0, 0, 0, 0},
8802 {0x88, 0, 0, 0, 0},
8803 {0x89, 0, 0, 0, 0},
8804 {0x8A, 0, 0, 0, 0},
8805 {0x8B, 0, 0, 0, 0},
8806 {0x8C, 0, 0, 0, 0},
8807 {0x8D, 0, 0, 0, 0},
8808 {0x8E, 0, 0, 0, 0},
8809 {0x8F, 0, 0, 0, 0},
8810 {0x90, 0, 0, 0, 0},
8811 {0x91, 0, 0, 0, 0},
8812 {0x92, 0, 0, 0, 0},
8813 {0xFFFF, 0, 0, 0, 0}
8816 static struct radio_regs regs_RX_2056_A1[] = {
8817 {0x02, 0, 0, 0, 0},
8818 {0x03, 0, 0, 0, 0},
8819 {0x04, 0, 0, 0, 0},
8820 {0x05, 0, 0, 0, 0},
8821 {0x06, 0, 0, 0, 0},
8822 {0x07, 0, 0, 0, 0},
8823 {0x08, 0, 0, 0, 0},
8824 {0x09, 0, 0, 0, 0},
8825 {0x0A, 0, 0, 0, 0},
8826 {0x0B, 0, 0, 0, 0},
8827 {0x0C, 0, 0, 0, 0},
8828 {0x0D, 0, 0, 0, 0},
8829 {0x0E, 0, 0, 0, 0},
8830 {0x0F, 0, 0, 0, 0},
8831 {0x10, 0, 0, 0, 0},
8832 {0x11, 0, 0, 0, 0},
8833 {0x12, 0, 0, 0, 0},
8834 {0x13, 0, 0, 0, 0},
8835 {0x14, 0, 0, 0, 0},
8836 {0x15, 0, 0, 0, 0},
8837 {0x16, 0, 0, 0, 0},
8838 {0x17, 0, 0, 0, 0},
8839 {0x18, 0, 0, 0, 0},
8840 {0x19, 0, 0, 0, 0},
8841 {0x1A, 0, 0, 0, 0},
8842 {0x1B, 0, 0, 0, 0},
8843 {0x1C, 0, 0, 0, 0},
8844 {0x1D, 0, 0, 0, 0},
8845 {0x1E, 0, 0, 0, 0},
8846 {0x1F, 0, 0, 0, 0},
8847 {0x20, 0x3, 0x3, 0, 0},
8848 {0x21, 0, 0, 0, 0},
8849 {0x22, 0, 0, 0, 0},
8850 {0x23, 0x90, 0x90, 0, 0},
8851 {0x24, 0x55, 0x55, 0, 0},
8852 {0x25, 0x15, 0x15, 0, 0},
8853 {0x26, 0x5, 0x5, 0, 0},
8854 {0x27, 0x15, 0x15, 0, 0},
8855 {0x28, 0x5, 0x5, 0, 0},
8856 {0x29, 0x20, 0x20, 0, 0},
8857 {0x2A, 0x11, 0x11, 0, 0},
8858 {0x2B, 0x90, 0x90, 0, 0},
8859 {0x2C, 0, 0, 0, 0},
8860 {0x2D, 0x88, 0x88, 0, 0},
8861 {0x2E, 0x32, 0x32, 0, 0},
8862 {0x2F, 0x77, 0x77, 0, 0},
8863 {0x30, 0x17, 0x17, 1, 1},
8864 {0x31, 0xff, 0xff, 1, 1},
8865 {0x32, 0x20, 0x20, 0, 0},
8866 {0x33, 0, 0, 0, 0},
8867 {0x34, 0x88, 0x88, 0, 0},
8868 {0x35, 0x32, 0x32, 0, 0},
8869 {0x36, 0x77, 0x77, 0, 0},
8870 {0x37, 0x17, 0x17, 1, 1},
8871 {0x38, 0xf0, 0xf0, 1, 1},
8872 {0x39, 0x20, 0x20, 0, 0},
8873 {0x3A, 0x8, 0x8, 0, 0},
8874 {0x3B, 0x55, 0x55, 1, 1},
8875 {0x3C, 0, 0, 0, 0},
8876 {0x3D, 0x44, 0x44, 1, 1},
8877 {0x3E, 0, 0, 0, 0},
8878 {0x3F, 0x44, 0x44, 0, 0},
8879 {0x40, 0xf, 0xf, 1, 1},
8880 {0x41, 0x6, 0x6, 0, 0},
8881 {0x42, 0x4, 0x4, 0, 0},
8882 {0x43, 0x50, 0x50, 1, 1},
8883 {0x44, 0x8, 0x8, 0, 0},
8884 {0x45, 0x55, 0x55, 1, 1},
8885 {0x46, 0, 0, 0, 0},
8886 {0x47, 0x11, 0x11, 0, 0},
8887 {0x48, 0, 0, 0, 0},
8888 {0x49, 0x44, 0x44, 0, 0},
8889 {0x4A, 0x7, 0x7, 0, 0},
8890 {0x4B, 0x6, 0x6, 0, 0},
8891 {0x4C, 0x4, 0x4, 0, 0},
8892 {0x4D, 0, 0, 0, 0},
8893 {0x4E, 0, 0, 0, 0},
8894 {0x4F, 0x26, 0x26, 1, 1},
8895 {0x50, 0x26, 0x26, 1, 1},
8896 {0x51, 0xf, 0xf, 1, 1},
8897 {0x52, 0xf, 0xf, 1, 1},
8898 {0x53, 0x44, 0x44, 0, 0},
8899 {0x54, 0, 0, 0, 0},
8900 {0x55, 0, 0, 0, 0},
8901 {0x56, 0x8, 0x8, 0, 0},
8902 {0x57, 0x8, 0x8, 0, 0},
8903 {0x58, 0x7, 0x7, 0, 0},
8904 {0x59, 0x22, 0x22, 0, 0},
8905 {0x5A, 0x22, 0x22, 0, 0},
8906 {0x5B, 0x2, 0x2, 0, 0},
8907 {0x5C, 0x2f, 0x2f, 1, 1},
8908 {0x5D, 0x7, 0x7, 0, 0},
8909 {0x5E, 0x55, 0x55, 0, 0},
8910 {0x5F, 0x23, 0x23, 0, 0},
8911 {0x60, 0x41, 0x41, 0, 0},
8912 {0x61, 0x1, 0x1, 0, 0},
8913 {0x62, 0xa, 0xa, 0, 0},
8914 {0x63, 0, 0, 0, 0},
8915 {0x64, 0, 0, 0, 0},
8916 {0x65, 0, 0, 0, 0},
8917 {0x66, 0, 0, 0, 0},
8918 {0x67, 0, 0, 0, 0},
8919 {0x68, 0, 0, 0, 0},
8920 {0x69, 0, 0, 0, 0},
8921 {0x6A, 0, 0, 0, 0},
8922 {0x6B, 0xc, 0xc, 0, 0},
8923 {0x6C, 0, 0, 0, 0},
8924 {0x6D, 0, 0, 0, 0},
8925 {0x6E, 0, 0, 0, 0},
8926 {0x6F, 0, 0, 0, 0},
8927 {0x70, 0, 0, 0, 0},
8928 {0x71, 0, 0, 0, 0},
8929 {0x72, 0x22, 0x22, 0, 0},
8930 {0x73, 0x22, 0x22, 0, 0},
8931 {0x74, 0, 0, 1, 1},
8932 {0x75, 0xa, 0xa, 0, 0},
8933 {0x76, 0x1, 0x1, 0, 0},
8934 {0x77, 0x22, 0x22, 0, 0},
8935 {0x78, 0x30, 0x30, 0, 0},
8936 {0x79, 0, 0, 0, 0},
8937 {0x7A, 0, 0, 0, 0},
8938 {0x7B, 0, 0, 0, 0},
8939 {0x7C, 0, 0, 0, 0},
8940 {0x7D, 0, 0, 0, 0},
8941 {0x7E, 0, 0, 0, 0},
8942 {0x7F, 0, 0, 0, 0},
8943 {0x80, 0, 0, 0, 0},
8944 {0x81, 0, 0, 0, 0},
8945 {0x82, 0, 0, 0, 0},
8946 {0x83, 0, 0, 0, 0},
8947 {0x84, 0, 0, 0, 0},
8948 {0x85, 0, 0, 0, 0},
8949 {0x86, 0, 0, 0, 0},
8950 {0x87, 0, 0, 0, 0},
8951 {0x88, 0, 0, 0, 0},
8952 {0x89, 0, 0, 0, 0},
8953 {0x8A, 0, 0, 0, 0},
8954 {0x8B, 0, 0, 0, 0},
8955 {0x8C, 0, 0, 0, 0},
8956 {0x8D, 0, 0, 0, 0},
8957 {0x8E, 0, 0, 0, 0},
8958 {0x8F, 0, 0, 0, 0},
8959 {0x90, 0, 0, 0, 0},
8960 {0x91, 0, 0, 0, 0},
8961 {0x92, 0, 0, 0, 0},
8962 {0x93, 0, 0, 0, 0},
8963 {0x94, 0, 0, 0, 0},
8964 {0xFFFF, 0, 0, 0, 0}
8967 static struct radio_regs regs_SYN_2056_rev5[] = {
8968 {0x02, 0, 0, 0, 0},
8969 {0x03, 0, 0, 0, 0},
8970 {0x04, 0, 0, 0, 0},
8971 {0x05, 0, 0, 0, 0},
8972 {0x06, 0, 0, 0, 0},
8973 {0x07, 0, 0, 0, 0},
8974 {0x08, 0, 0, 0, 0},
8975 {0x09, 0x1, 0x1, 0, 0},
8976 {0x0A, 0, 0, 0, 0},
8977 {0x0B, 0, 0, 0, 0},
8978 {0x0C, 0, 0, 0, 0},
8979 {0x0D, 0, 0, 0, 0},
8980 {0x0E, 0, 0, 0, 0},
8981 {0x0F, 0, 0, 0, 0},
8982 {0x10, 0, 0, 0, 0},
8983 {0x11, 0, 0, 0, 0},
8984 {0x12, 0, 0, 0, 0},
8985 {0x13, 0, 0, 0, 0},
8986 {0x14, 0, 0, 0, 0},
8987 {0x15, 0, 0, 0, 0},
8988 {0x16, 0, 0, 0, 0},
8989 {0x17, 0, 0, 0, 0},
8990 {0x18, 0, 0, 0, 0},
8991 {0x19, 0, 0, 0, 0},
8992 {0x1A, 0, 0, 0, 0},
8993 {0x1B, 0, 0, 0, 0},
8994 {0x1C, 0, 0, 0, 0},
8995 {0x1D, 0, 0, 0, 0},
8996 {0x1E, 0, 0, 0, 0},
8997 {0x1F, 0, 0, 0, 0},
8998 {0x20, 0, 0, 0, 0},
8999 {0x21, 0, 0, 0, 0},
9000 {0x22, 0x60, 0x60, 0, 0},
9001 {0x23, 0x6, 0x6, 0, 0},
9002 {0x24, 0xc, 0xc, 0, 0},
9003 {0x25, 0, 0, 0, 0},
9004 {0x26, 0, 0, 0, 0},
9005 {0x27, 0, 0, 0, 0},
9006 {0x28, 0x1, 0x1, 0, 0},
9007 {0x29, 0, 0, 0, 0},
9008 {0x2A, 0, 0, 0, 0},
9009 {0x2B, 0, 0, 0, 0},
9010 {0x2C, 0, 0, 0, 0},
9011 {0x2D, 0, 0, 0, 0},
9012 {0x2E, 0, 0, 0, 0},
9013 {0x2F, 0x1f, 0x1f, 0, 0},
9014 {0x30, 0x15, 0x15, 0, 0},
9015 {0x31, 0xf, 0xf, 0, 0},
9016 {0x32, 0, 0, 0, 0},
9017 {0x33, 0, 0, 0, 0},
9018 {0x34, 0, 0, 0, 0},
9019 {0x35, 0, 0, 0, 0},
9020 {0x36, 0, 0, 0, 0},
9021 {0x37, 0, 0, 0, 0},
9022 {0x38, 0, 0, 0, 0},
9023 {0x39, 0, 0, 0, 0},
9024 {0x3A, 0, 0, 0, 0},
9025 {0x3B, 0, 0, 0, 0},
9026 {0x3C, 0x13, 0x13, 0, 0},
9027 {0x3D, 0xf, 0xf, 0, 0},
9028 {0x3E, 0x18, 0x18, 0, 0},
9029 {0x3F, 0, 0, 0, 0},
9030 {0x40, 0, 0, 0, 0},
9031 {0x41, 0x20, 0x20, 0, 0},
9032 {0x42, 0x20, 0x20, 0, 0},
9033 {0x43, 0, 0, 0, 0},
9034 {0x44, 0x77, 0x77, 0, 0},
9035 {0x45, 0x7, 0x7, 0, 0},
9036 {0x46, 0x1, 0x1, 0, 0},
9037 {0x47, 0x4, 0x4, 0, 0},
9038 {0x48, 0xf, 0xf, 0, 0},
9039 {0x49, 0x30, 0x30, 0, 0},
9040 {0x4A, 0x32, 0x32, 0, 0},
9041 {0x4B, 0xd, 0xd, 0, 0},
9042 {0x4C, 0xd, 0xd, 0, 0},
9043 {0x4D, 0x4, 0x4, 0, 0},
9044 {0x4E, 0x6, 0x6, 0, 0},
9045 {0x4F, 0x1, 0x1, 0, 0},
9046 {0x50, 0x1c, 0x1c, 0, 0},
9047 {0x51, 0x2, 0x2, 0, 0},
9048 {0x52, 0x2, 0x2, 0, 0},
9049 {0x53, 0xf7, 0xf7, 1, 1},
9050 {0x54, 0xb4, 0xb4, 0, 0},
9051 {0x55, 0xd2, 0xd2, 0, 0},
9052 {0x56, 0, 0, 0, 0},
9053 {0x57, 0, 0, 0, 0},
9054 {0x58, 0x4, 0x4, 0, 0},
9055 {0x59, 0x96, 0x96, 0, 0},
9056 {0x5A, 0x3e, 0x3e, 0, 0},
9057 {0x5B, 0x3e, 0x3e, 0, 0},
9058 {0x5C, 0x13, 0x13, 0, 0},
9059 {0x5D, 0x2, 0x2, 0, 0},
9060 {0x5E, 0, 0, 0, 0},
9061 {0x5F, 0x7, 0x7, 0, 0},
9062 {0x60, 0x7, 0x7, 1, 1},
9063 {0x61, 0x8, 0x8, 0, 0},
9064 {0x62, 0x3, 0x3, 0, 0},
9065 {0x63, 0, 0, 0, 0},
9066 {0x64, 0, 0, 0, 0},
9067 {0x65, 0, 0, 0, 0},
9068 {0x66, 0, 0, 0, 0},
9069 {0x67, 0, 0, 0, 0},
9070 {0x68, 0x40, 0x40, 0, 0},
9071 {0x69, 0, 0, 0, 0},
9072 {0x6A, 0, 0, 0, 0},
9073 {0x6B, 0, 0, 0, 0},
9074 {0x6C, 0, 0, 0, 0},
9075 {0x6D, 0x1, 0x1, 0, 0},
9076 {0x6E, 0, 0, 0, 0},
9077 {0x6F, 0, 0, 0, 0},
9078 {0x70, 0x60, 0x60, 0, 0},
9079 {0x71, 0x66, 0x66, 0, 0},
9080 {0x72, 0xc, 0xc, 0, 0},
9081 {0x73, 0x66, 0x66, 0, 0},
9082 {0x74, 0x8f, 0x8f, 1, 1},
9083 {0x75, 0, 0, 0, 0},
9084 {0x76, 0xcc, 0xcc, 0, 0},
9085 {0x77, 0x1, 0x1, 0, 0},
9086 {0x78, 0x66, 0x66, 0, 0},
9087 {0x79, 0x66, 0x66, 0, 0},
9088 {0x7A, 0, 0, 0, 0},
9089 {0x7B, 0, 0, 0, 0},
9090 {0x7C, 0, 0, 0, 0},
9091 {0x7D, 0, 0, 0, 0},
9092 {0x7E, 0, 0, 0, 0},
9093 {0x7F, 0, 0, 0, 0},
9094 {0x80, 0, 0, 0, 0},
9095 {0x81, 0, 0, 0, 0},
9096 {0x82, 0, 0, 0, 0},
9097 {0x83, 0, 0, 0, 0},
9098 {0x84, 0, 0, 0, 0},
9099 {0x85, 0xff, 0xff, 0, 0},
9100 {0x86, 0, 0, 0, 0},
9101 {0x87, 0, 0, 0, 0},
9102 {0x88, 0, 0, 0, 0},
9103 {0x89, 0, 0, 0, 0},
9104 {0x8A, 0, 0, 0, 0},
9105 {0x8B, 0, 0, 0, 0},
9106 {0x8C, 0, 0, 0, 0},
9107 {0x8D, 0, 0, 0, 0},
9108 {0x8E, 0, 0, 0, 0},
9109 {0x8F, 0, 0, 0, 0},
9110 {0x90, 0, 0, 0, 0},
9111 {0x91, 0, 0, 0, 0},
9112 {0x92, 0, 0, 0, 0},
9113 {0x93, 0, 0, 0, 0},
9114 {0x94, 0, 0, 0, 0},
9115 {0x95, 0, 0, 0, 0},
9116 {0x96, 0, 0, 0, 0},
9117 {0x97, 0, 0, 0, 0},
9118 {0x98, 0, 0, 0, 0},
9119 {0x99, 0, 0, 0, 0},
9120 {0x9A, 0, 0, 0, 0},
9121 {0x9B, 0, 0, 0, 0},
9122 {0x9C, 0, 0, 0, 0},
9123 {0x9D, 0, 0, 0, 0},
9124 {0x9E, 0, 0, 0, 0},
9125 {0x9F, 0x6, 0x6, 0, 0},
9126 {0xA0, 0x66, 0x66, 0, 0},
9127 {0xA1, 0x66, 0x66, 0, 0},
9128 {0xA2, 0x66, 0x66, 0, 0},
9129 {0xA3, 0x66, 0x66, 0, 0},
9130 {0xA4, 0x66, 0x66, 0, 0},
9131 {0xA5, 0x66, 0x66, 0, 0},
9132 {0xA6, 0x66, 0x66, 0, 0},
9133 {0xA7, 0x66, 0x66, 0, 0},
9134 {0xA8, 0x66, 0x66, 0, 0},
9135 {0xA9, 0x66, 0x66, 0, 0},
9136 {0xAA, 0x66, 0x66, 0, 0},
9137 {0xAB, 0x66, 0x66, 0, 0},
9138 {0xAC, 0x66, 0x66, 0, 0},
9139 {0xAD, 0x66, 0x66, 0, 0},
9140 {0xAE, 0x66, 0x66, 0, 0},
9141 {0xAF, 0x66, 0x66, 0, 0},
9142 {0xB0, 0x66, 0x66, 0, 0},
9143 {0xB1, 0x66, 0x66, 0, 0},
9144 {0xB2, 0x66, 0x66, 0, 0},
9145 {0xB3, 0xa, 0xa, 0, 0},
9146 {0xB4, 0, 0, 0, 0},
9147 {0xB5, 0, 0, 0, 0},
9148 {0xB6, 0, 0, 0, 0},
9149 {0xFFFF, 0, 0, 0, 0}
9152 static struct radio_regs regs_TX_2056_rev5[] = {
9153 {0x02, 0, 0, 0, 0},
9154 {0x03, 0, 0, 0, 0},
9155 {0x04, 0, 0, 0, 0},
9156 {0x05, 0, 0, 0, 0},
9157 {0x06, 0, 0, 0, 0},
9158 {0x07, 0, 0, 0, 0},
9159 {0x08, 0, 0, 0, 0},
9160 {0x09, 0, 0, 0, 0},
9161 {0x0A, 0, 0, 0, 0},
9162 {0x0B, 0, 0, 0, 0},
9163 {0x0C, 0, 0, 0, 0},
9164 {0x0D, 0, 0, 0, 0},
9165 {0x0E, 0, 0, 0, 0},
9166 {0x0F, 0, 0, 0, 0},
9167 {0x10, 0, 0, 0, 0},
9168 {0x11, 0, 0, 0, 0},
9169 {0x12, 0, 0, 0, 0},
9170 {0x13, 0, 0, 0, 0},
9171 {0x14, 0, 0, 0, 0},
9172 {0x15, 0, 0, 0, 0},
9173 {0x16, 0, 0, 0, 0},
9174 {0x17, 0, 0, 0, 0},
9175 {0x18, 0, 0, 0, 0},
9176 {0x19, 0, 0, 0, 0},
9177 {0x1A, 0, 0, 0, 0},
9178 {0x1B, 0, 0, 0, 0},
9179 {0x1C, 0, 0, 0, 0},
9180 {0x1D, 0, 0, 0, 0},
9181 {0x1E, 0, 0, 0, 0},
9182 {0x1F, 0, 0, 0, 0},
9183 {0x20, 0, 0, 0, 0},
9184 {0x21, 0x88, 0x88, 0, 0},
9185 {0x22, 0x88, 0x88, 0, 0},
9186 {0x23, 0x88, 0x88, 0, 0},
9187 {0x24, 0x88, 0x88, 0, 0},
9188 {0x25, 0xc, 0xc, 0, 0},
9189 {0x26, 0, 0, 0, 0},
9190 {0x27, 0x3, 0x3, 0, 0},
9191 {0x28, 0, 0, 0, 0},
9192 {0x29, 0x3, 0x3, 0, 0},
9193 {0x2A, 0x37, 0x37, 0, 0},
9194 {0x2B, 0x3, 0x3, 0, 0},
9195 {0x2C, 0, 0, 0, 0},
9196 {0x2D, 0, 0, 0, 0},
9197 {0x2E, 0x1, 0x1, 0, 0},
9198 {0x2F, 0x1, 0x1, 0, 0},
9199 {0x30, 0, 0, 0, 0},
9200 {0x31, 0, 0, 0, 0},
9201 {0x32, 0, 0, 0, 0},
9202 {0x33, 0x11, 0x11, 0, 0},
9203 {0x34, 0x11, 0x11, 0, 0},
9204 {0x35, 0, 0, 0, 0},
9205 {0x36, 0, 0, 0, 0},
9206 {0x37, 0x3, 0x3, 0, 0},
9207 {0x38, 0xf, 0xf, 0, 0},
9208 {0x39, 0, 0, 0, 0},
9209 {0x3A, 0x2d, 0x2d, 0, 0},
9210 {0x3B, 0, 0, 0, 0},
9211 {0x3C, 0x6e, 0x6e, 0, 0},
9212 {0x3D, 0xf0, 0xf0, 1, 1},
9213 {0x3E, 0, 0, 0, 0},
9214 {0x3F, 0, 0, 0, 0},
9215 {0x40, 0, 0, 0, 0},
9216 {0x41, 0x3, 0x3, 0, 0},
9217 {0x42, 0x3, 0x3, 0, 0},
9218 {0x43, 0, 0, 0, 0},
9219 {0x44, 0x1e, 0x1e, 0, 0},
9220 {0x45, 0, 0, 0, 0},
9221 {0x46, 0x6e, 0x6e, 0, 0},
9222 {0x47, 0xf0, 0xf0, 1, 1},
9223 {0x48, 0, 0, 0, 0},
9224 {0x49, 0x2, 0x2, 0, 0},
9225 {0x4A, 0xff, 0xff, 1, 1},
9226 {0x4B, 0xc, 0xc, 0, 0},
9227 {0x4C, 0, 0, 0, 0},
9228 {0x4D, 0x38, 0x38, 0, 0},
9229 {0x4E, 0x70, 0x70, 1, 1},
9230 {0x4F, 0x2, 0x2, 0, 0},
9231 {0x50, 0x88, 0x88, 0, 0},
9232 {0x51, 0xc, 0xc, 0, 0},
9233 {0x52, 0, 0, 0, 0},
9234 {0x53, 0x8, 0x8, 0, 0},
9235 {0x54, 0x70, 0x70, 1, 1},
9236 {0x55, 0x2, 0x2, 0, 0},
9237 {0x56, 0xff, 0xff, 1, 1},
9238 {0x57, 0, 0, 0, 0},
9239 {0x58, 0x83, 0x83, 0, 0},
9240 {0x59, 0x77, 0x77, 1, 1},
9241 {0x5A, 0, 0, 0, 0},
9242 {0x5B, 0x2, 0x2, 0, 0},
9243 {0x5C, 0x88, 0x88, 0, 0},
9244 {0x5D, 0, 0, 0, 0},
9245 {0x5E, 0x8, 0x8, 0, 0},
9246 {0x5F, 0x77, 0x77, 1, 1},
9247 {0x60, 0x1, 0x1, 0, 0},
9248 {0x61, 0, 0, 0, 0},
9249 {0x62, 0x7, 0x7, 0, 0},
9250 {0x63, 0, 0, 0, 0},
9251 {0x64, 0x7, 0x7, 0, 0},
9252 {0x65, 0, 0, 0, 0},
9253 {0x66, 0, 0, 0, 0},
9254 {0x67, 0, 0, 1, 1},
9255 {0x68, 0, 0, 0, 0},
9256 {0x69, 0xa, 0xa, 0, 0},
9257 {0x6A, 0, 0, 0, 0},
9258 {0x6B, 0, 0, 0, 0},
9259 {0x6C, 0, 0, 0, 0},
9260 {0x6D, 0, 0, 0, 0},
9261 {0x6E, 0, 0, 0, 0},
9262 {0x6F, 0, 0, 0, 0},
9263 {0x70, 0, 0, 0, 0},
9264 {0x71, 0x2, 0x2, 0, 0},
9265 {0x72, 0, 0, 0, 0},
9266 {0x73, 0, 0, 0, 0},
9267 {0x74, 0xe, 0xe, 0, 0},
9268 {0x75, 0xe, 0xe, 0, 0},
9269 {0x76, 0xe, 0xe, 0, 0},
9270 {0x77, 0x13, 0x13, 0, 0},
9271 {0x78, 0x13, 0x13, 0, 0},
9272 {0x79, 0x1b, 0x1b, 0, 0},
9273 {0x7A, 0x1b, 0x1b, 0, 0},
9274 {0x7B, 0x55, 0x55, 0, 0},
9275 {0x7C, 0x5b, 0x5b, 0, 0},
9276 {0x7D, 0, 0, 0, 0},
9277 {0x7E, 0, 0, 0, 0},
9278 {0x7F, 0, 0, 0, 0},
9279 {0x80, 0, 0, 0, 0},
9280 {0x81, 0, 0, 0, 0},
9281 {0x82, 0, 0, 0, 0},
9282 {0x83, 0, 0, 0, 0},
9283 {0x84, 0, 0, 0, 0},
9284 {0x85, 0, 0, 0, 0},
9285 {0x86, 0, 0, 0, 0},
9286 {0x87, 0, 0, 0, 0},
9287 {0x88, 0, 0, 0, 0},
9288 {0x89, 0, 0, 0, 0},
9289 {0x8A, 0, 0, 0, 0},
9290 {0x8B, 0, 0, 0, 0},
9291 {0x8C, 0, 0, 0, 0},
9292 {0x8D, 0, 0, 0, 0},
9293 {0x8E, 0, 0, 0, 0},
9294 {0x8F, 0, 0, 0, 0},
9295 {0x90, 0, 0, 0, 0},
9296 {0x91, 0, 0, 0, 0},
9297 {0x92, 0, 0, 0, 0},
9298 {0x93, 0x70, 0x70, 0, 0},
9299 {0x94, 0x70, 0x70, 0, 0},
9300 {0x95, 0x71, 0x71, 1, 1},
9301 {0x96, 0x71, 0x71, 1, 1},
9302 {0x97, 0x72, 0x72, 1, 1},
9303 {0x98, 0x73, 0x73, 1, 1},
9304 {0x99, 0x74, 0x74, 1, 1},
9305 {0x9A, 0x75, 0x75, 1, 1},
9306 {0xFFFF, 0, 0, 0, 0}
9309 static struct radio_regs regs_RX_2056_rev5[] = {
9310 {0x02, 0, 0, 0, 0},
9311 {0x03, 0, 0, 0, 0},
9312 {0x04, 0, 0, 0, 0},
9313 {0x05, 0, 0, 0, 0},
9314 {0x06, 0, 0, 0, 0},
9315 {0x07, 0, 0, 0, 0},
9316 {0x08, 0, 0, 0, 0},
9317 {0x09, 0, 0, 0, 0},
9318 {0x0A, 0, 0, 0, 0},
9319 {0x0B, 0, 0, 0, 0},
9320 {0x0C, 0, 0, 0, 0},
9321 {0x0D, 0, 0, 0, 0},
9322 {0x0E, 0, 0, 0, 0},
9323 {0x0F, 0, 0, 0, 0},
9324 {0x10, 0, 0, 0, 0},
9325 {0x11, 0, 0, 0, 0},
9326 {0x12, 0, 0, 0, 0},
9327 {0x13, 0, 0, 0, 0},
9328 {0x14, 0, 0, 0, 0},
9329 {0x15, 0, 0, 0, 0},
9330 {0x16, 0, 0, 0, 0},
9331 {0x17, 0, 0, 0, 0},
9332 {0x18, 0, 0, 0, 0},
9333 {0x19, 0, 0, 0, 0},
9334 {0x1A, 0, 0, 0, 0},
9335 {0x1B, 0, 0, 0, 0},
9336 {0x1C, 0, 0, 0, 0},
9337 {0x1D, 0, 0, 0, 0},
9338 {0x1E, 0, 0, 0, 0},
9339 {0x1F, 0, 0, 0, 0},
9340 {0x20, 0x3, 0x3, 0, 0},
9341 {0x21, 0, 0, 0, 0},
9342 {0x22, 0, 0, 0, 0},
9343 {0x23, 0x90, 0x90, 0, 0},
9344 {0x24, 0x55, 0x55, 0, 0},
9345 {0x25, 0x15, 0x15, 0, 0},
9346 {0x26, 0x5, 0x5, 0, 0},
9347 {0x27, 0x15, 0x15, 0, 0},
9348 {0x28, 0x5, 0x5, 0, 0},
9349 {0x29, 0x20, 0x20, 0, 0},
9350 {0x2A, 0x11, 0x11, 0, 0},
9351 {0x2B, 0x90, 0x90, 0, 0},
9352 {0x2C, 0, 0, 0, 0},
9353 {0x2D, 0x88, 0x88, 0, 0},
9354 {0x2E, 0x32, 0x32, 0, 0},
9355 {0x2F, 0x77, 0x77, 0, 0},
9356 {0x30, 0x17, 0x17, 1, 1},
9357 {0x31, 0xff, 0xff, 1, 1},
9358 {0x32, 0x20, 0x20, 0, 0},
9359 {0x33, 0, 0, 0, 0},
9360 {0x34, 0x88, 0x88, 0, 0},
9361 {0x35, 0x32, 0x32, 0, 0},
9362 {0x36, 0x77, 0x77, 0, 0},
9363 {0x37, 0x17, 0x17, 1, 1},
9364 {0x38, 0xf0, 0xf0, 1, 1},
9365 {0x39, 0x20, 0x20, 0, 0},
9366 {0x3A, 0x8, 0x8, 0, 0},
9367 {0x3B, 0x55, 0x55, 1, 1},
9368 {0x3C, 0, 0, 0, 0},
9369 {0x3D, 0x88, 0x88, 1, 1},
9370 {0x3E, 0, 0, 0, 0},
9371 {0x3F, 0, 0, 1, 1},
9372 {0x40, 0x7, 0x7, 1, 1},
9373 {0x41, 0x6, 0x6, 0, 0},
9374 {0x42, 0x4, 0x4, 0, 0},
9375 {0x43, 0, 0, 0, 0},
9376 {0x44, 0x8, 0x8, 0, 0},
9377 {0x45, 0x55, 0x55, 1, 1},
9378 {0x46, 0, 0, 0, 0},
9379 {0x47, 0x11, 0x11, 0, 0},
9380 {0x48, 0, 0, 0, 0},
9381 {0x49, 0, 0, 1, 1},
9382 {0x4A, 0x7, 0x7, 0, 0},
9383 {0x4B, 0x6, 0x6, 0, 0},
9384 {0x4C, 0x4, 0x4, 0, 0},
9385 {0x4D, 0, 0, 0, 0},
9386 {0x4E, 0, 0, 0, 0},
9387 {0x4F, 0x26, 0x26, 1, 1},
9388 {0x50, 0x26, 0x26, 1, 1},
9389 {0x51, 0xf, 0xf, 1, 1},
9390 {0x52, 0xf, 0xf, 1, 1},
9391 {0x53, 0x44, 0x44, 0, 0},
9392 {0x54, 0, 0, 0, 0},
9393 {0x55, 0, 0, 0, 0},
9394 {0x56, 0x8, 0x8, 0, 0},
9395 {0x57, 0x8, 0x8, 0, 0},
9396 {0x58, 0x7, 0x7, 0, 0},
9397 {0x59, 0x22, 0x22, 0, 0},
9398 {0x5A, 0x22, 0x22, 0, 0},
9399 {0x5B, 0x2, 0x2, 0, 0},
9400 {0x5C, 0x4, 0x4, 1, 1},
9401 {0x5D, 0x7, 0x7, 0, 0},
9402 {0x5E, 0x55, 0x55, 0, 0},
9403 {0x5F, 0x23, 0x23, 0, 0},
9404 {0x60, 0x41, 0x41, 0, 0},
9405 {0x61, 0x1, 0x1, 0, 0},
9406 {0x62, 0xa, 0xa, 0, 0},
9407 {0x63, 0, 0, 0, 0},
9408 {0x64, 0, 0, 0, 0},
9409 {0x65, 0, 0, 0, 0},
9410 {0x66, 0, 0, 0, 0},
9411 {0x67, 0, 0, 0, 0},
9412 {0x68, 0, 0, 0, 0},
9413 {0x69, 0, 0, 0, 0},
9414 {0x6A, 0, 0, 0, 0},
9415 {0x6B, 0xc, 0xc, 0, 0},
9416 {0x6C, 0, 0, 0, 0},
9417 {0x6D, 0, 0, 0, 0},
9418 {0x6E, 0, 0, 0, 0},
9419 {0x6F, 0, 0, 0, 0},
9420 {0x70, 0, 0, 0, 0},
9421 {0x71, 0, 0, 0, 0},
9422 {0x72, 0x22, 0x22, 0, 0},
9423 {0x73, 0x22, 0x22, 0, 0},
9424 {0x74, 0, 0, 1, 1},
9425 {0x75, 0xa, 0xa, 0, 0},
9426 {0x76, 0x1, 0x1, 0, 0},
9427 {0x77, 0x22, 0x22, 0, 0},
9428 {0x78, 0x30, 0x30, 0, 0},
9429 {0x79, 0, 0, 0, 0},
9430 {0x7A, 0, 0, 0, 0},
9431 {0x7B, 0, 0, 0, 0},
9432 {0x7C, 0, 0, 0, 0},
9433 {0x7D, 0, 0, 0, 0},
9434 {0x7E, 0, 0, 0, 0},
9435 {0x7F, 0, 0, 0, 0},
9436 {0x80, 0, 0, 0, 0},
9437 {0x81, 0, 0, 0, 0},
9438 {0x82, 0, 0, 0, 0},
9439 {0x83, 0, 0, 0, 0},
9440 {0x84, 0, 0, 0, 0},
9441 {0x85, 0, 0, 0, 0},
9442 {0x86, 0, 0, 0, 0},
9443 {0x87, 0, 0, 0, 0},
9444 {0x88, 0, 0, 0, 0},
9445 {0x89, 0, 0, 0, 0},
9446 {0x8A, 0, 0, 0, 0},
9447 {0x8B, 0, 0, 0, 0},
9448 {0x8C, 0, 0, 0, 0},
9449 {0x8D, 0, 0, 0, 0},
9450 {0x8E, 0, 0, 0, 0},
9451 {0x8F, 0, 0, 0, 0},
9452 {0x90, 0, 0, 0, 0},
9453 {0x91, 0, 0, 0, 0},
9454 {0x92, 0, 0, 0, 0},
9455 {0x93, 0, 0, 0, 0},
9456 {0x94, 0, 0, 0, 0},
9457 {0xFFFF, 0, 0, 0, 0}
9460 static struct radio_regs regs_SYN_2056_rev6[] = {
9461 {0x02, 0, 0, 0, 0},
9462 {0x03, 0, 0, 0, 0},
9463 {0x04, 0, 0, 0, 0},
9464 {0x05, 0, 0, 0, 0},
9465 {0x06, 0, 0, 0, 0},
9466 {0x07, 0, 0, 0, 0},
9467 {0x08, 0, 0, 0, 0},
9468 {0x09, 0x1, 0x1, 0, 0},
9469 {0x0A, 0, 0, 0, 0},
9470 {0x0B, 0, 0, 0, 0},
9471 {0x0C, 0, 0, 0, 0},
9472 {0x0D, 0, 0, 0, 0},
9473 {0x0E, 0, 0, 0, 0},
9474 {0x0F, 0, 0, 0, 0},
9475 {0x10, 0, 0, 0, 0},
9476 {0x11, 0, 0, 0, 0},
9477 {0x12, 0, 0, 0, 0},
9478 {0x13, 0, 0, 0, 0},
9479 {0x14, 0, 0, 0, 0},
9480 {0x15, 0, 0, 0, 0},
9481 {0x16, 0, 0, 0, 0},
9482 {0x17, 0, 0, 0, 0},
9483 {0x18, 0, 0, 0, 0},
9484 {0x19, 0, 0, 0, 0},
9485 {0x1A, 0, 0, 0, 0},
9486 {0x1B, 0, 0, 0, 0},
9487 {0x1C, 0, 0, 0, 0},
9488 {0x1D, 0, 0, 0, 0},
9489 {0x1E, 0, 0, 0, 0},
9490 {0x1F, 0, 0, 0, 0},
9491 {0x20, 0, 0, 0, 0},
9492 {0x21, 0, 0, 0, 0},
9493 {0x22, 0x60, 0x60, 0, 0},
9494 {0x23, 0x6, 0x6, 0, 0},
9495 {0x24, 0xc, 0xc, 0, 0},
9496 {0x25, 0, 0, 0, 0},
9497 {0x26, 0, 0, 0, 0},
9498 {0x27, 0, 0, 0, 0},
9499 {0x28, 0x1, 0x1, 0, 0},
9500 {0x29, 0, 0, 0, 0},
9501 {0x2A, 0, 0, 0, 0},
9502 {0x2B, 0, 0, 0, 0},
9503 {0x2C, 0, 0, 0, 0},
9504 {0x2D, 0, 0, 0, 0},
9505 {0x2E, 0, 0, 0, 0},
9506 {0x2F, 0x1f, 0x1f, 0, 0},
9507 {0x30, 0x15, 0x15, 0, 0},
9508 {0x31, 0xf, 0xf, 0, 0},
9509 {0x32, 0, 0, 0, 0},
9510 {0x33, 0, 0, 0, 0},
9511 {0x34, 0, 0, 0, 0},
9512 {0x35, 0, 0, 0, 0},
9513 {0x36, 0, 0, 0, 0},
9514 {0x37, 0, 0, 0, 0},
9515 {0x38, 0, 0, 0, 0},
9516 {0x39, 0, 0, 0, 0},
9517 {0x3A, 0, 0, 0, 0},
9518 {0x3B, 0, 0, 0, 0},
9519 {0x3C, 0x13, 0x13, 0, 0},
9520 {0x3D, 0xf, 0xf, 0, 0},
9521 {0x3E, 0x18, 0x18, 0, 0},
9522 {0x3F, 0, 0, 0, 0},
9523 {0x40, 0, 0, 0, 0},
9524 {0x41, 0x20, 0x20, 0, 0},
9525 {0x42, 0x20, 0x20, 0, 0},
9526 {0x43, 0, 0, 0, 0},
9527 {0x44, 0x77, 0x77, 0, 0},
9528 {0x45, 0x7, 0x7, 0, 0},
9529 {0x46, 0x1, 0x1, 0, 0},
9530 {0x47, 0x4, 0x4, 0, 0},
9531 {0x48, 0xf, 0xf, 0, 0},
9532 {0x49, 0x30, 0x30, 0, 0},
9533 {0x4A, 0x32, 0x32, 0, 0},
9534 {0x4B, 0xd, 0xd, 0, 0},
9535 {0x4C, 0xd, 0xd, 0, 0},
9536 {0x4D, 0x4, 0x4, 0, 0},
9537 {0x4E, 0x6, 0x6, 0, 0},
9538 {0x4F, 0x1, 0x1, 0, 0},
9539 {0x50, 0x1c, 0x1c, 0, 0},
9540 {0x51, 0x2, 0x2, 0, 0},
9541 {0x52, 0x2, 0x2, 0, 0},
9542 {0x53, 0xf7, 0xf7, 1, 1},
9543 {0x54, 0xb4, 0xb4, 0, 0},
9544 {0x55, 0xd2, 0xd2, 0, 0},
9545 {0x56, 0, 0, 0, 0},
9546 {0x57, 0, 0, 0, 0},
9547 {0x58, 0x4, 0x4, 0, 0},
9548 {0x59, 0x96, 0x96, 0, 0},
9549 {0x5A, 0x3e, 0x3e, 0, 0},
9550 {0x5B, 0x3e, 0x3e, 0, 0},
9551 {0x5C, 0x13, 0x13, 0, 0},
9552 {0x5D, 0x2, 0x2, 0, 0},
9553 {0x5E, 0, 0, 0, 0},
9554 {0x5F, 0x7, 0x7, 0, 0},
9555 {0x60, 0x7, 0x7, 1, 1},
9556 {0x61, 0x8, 0x8, 0, 0},
9557 {0x62, 0x3, 0x3, 0, 0},
9558 {0x63, 0, 0, 0, 0},
9559 {0x64, 0, 0, 0, 0},
9560 {0x65, 0, 0, 0, 0},
9561 {0x66, 0, 0, 0, 0},
9562 {0x67, 0, 0, 0, 0},
9563 {0x68, 0x40, 0x40, 0, 0},
9564 {0x69, 0, 0, 0, 0},
9565 {0x6A, 0, 0, 0, 0},
9566 {0x6B, 0, 0, 0, 0},
9567 {0x6C, 0, 0, 0, 0},
9568 {0x6D, 0x1, 0x1, 0, 0},
9569 {0x6E, 0, 0, 0, 0},
9570 {0x6F, 0, 0, 0, 0},
9571 {0x70, 0x60, 0x60, 0, 0},
9572 {0x71, 0x66, 0x66, 0, 0},
9573 {0x72, 0xc, 0xc, 0, 0},
9574 {0x73, 0x66, 0x66, 0, 0},
9575 {0x74, 0x8f, 0x8f, 1, 1},
9576 {0x75, 0, 0, 0, 0},
9577 {0x76, 0xcc, 0xcc, 0, 0},
9578 {0x77, 0x1, 0x1, 0, 0},
9579 {0x78, 0x66, 0x66, 0, 0},
9580 {0x79, 0x66, 0x66, 0, 0},
9581 {0x7A, 0, 0, 0, 0},
9582 {0x7B, 0, 0, 0, 0},
9583 {0x7C, 0, 0, 0, 0},
9584 {0x7D, 0, 0, 0, 0},
9585 {0x7E, 0, 0, 0, 0},
9586 {0x7F, 0, 0, 0, 0},
9587 {0x80, 0, 0, 0, 0},
9588 {0x81, 0, 0, 0, 0},
9589 {0x82, 0, 0, 0, 0},
9590 {0x83, 0, 0, 0, 0},
9591 {0x84, 0, 0, 0, 0},
9592 {0x85, 0xff, 0xff, 0, 0},
9593 {0x86, 0, 0, 0, 0},
9594 {0x87, 0, 0, 0, 0},
9595 {0x88, 0, 0, 0, 0},
9596 {0x89, 0, 0, 0, 0},
9597 {0x8A, 0, 0, 0, 0},
9598 {0x8B, 0, 0, 0, 0},
9599 {0x8C, 0, 0, 0, 0},
9600 {0x8D, 0, 0, 0, 0},
9601 {0x8E, 0, 0, 0, 0},
9602 {0x8F, 0, 0, 0, 0},
9603 {0x90, 0, 0, 0, 0},
9604 {0x91, 0, 0, 0, 0},
9605 {0x92, 0, 0, 0, 0},
9606 {0x93, 0, 0, 0, 0},
9607 {0x94, 0, 0, 0, 0},
9608 {0x95, 0, 0, 0, 0},
9609 {0x96, 0, 0, 0, 0},
9610 {0x97, 0, 0, 0, 0},
9611 {0x98, 0, 0, 0, 0},
9612 {0x99, 0, 0, 0, 0},
9613 {0x9A, 0, 0, 0, 0},
9614 {0x9B, 0, 0, 0, 0},
9615 {0x9C, 0, 0, 0, 0},
9616 {0x9D, 0, 0, 0, 0},
9617 {0x9E, 0, 0, 0, 0},
9618 {0x9F, 0x6, 0x6, 0, 0},
9619 {0xA0, 0x66, 0x66, 0, 0},
9620 {0xA1, 0x66, 0x66, 0, 0},
9621 {0xA2, 0x66, 0x66, 0, 0},
9622 {0xA3, 0x66, 0x66, 0, 0},
9623 {0xA4, 0x66, 0x66, 0, 0},
9624 {0xA5, 0x66, 0x66, 0, 0},
9625 {0xA6, 0x66, 0x66, 0, 0},
9626 {0xA7, 0x66, 0x66, 0, 0},
9627 {0xA8, 0x66, 0x66, 0, 0},
9628 {0xA9, 0x66, 0x66, 0, 0},
9629 {0xAA, 0x66, 0x66, 0, 0},
9630 {0xAB, 0x66, 0x66, 0, 0},
9631 {0xAC, 0x66, 0x66, 0, 0},
9632 {0xAD, 0x66, 0x66, 0, 0},
9633 {0xAE, 0x66, 0x66, 0, 0},
9634 {0xAF, 0x66, 0x66, 0, 0},
9635 {0xB0, 0x66, 0x66, 0, 0},
9636 {0xB1, 0x66, 0x66, 0, 0},
9637 {0xB2, 0x66, 0x66, 0, 0},
9638 {0xB3, 0xa, 0xa, 0, 0},
9639 {0xB4, 0, 0, 0, 0},
9640 {0xB5, 0, 0, 0, 0},
9641 {0xB6, 0, 0, 0, 0},
9642 {0xFFFF, 0, 0, 0, 0}
9645 static struct radio_regs regs_TX_2056_rev6[] = {
9646 {0x02, 0, 0, 0, 0},
9647 {0x03, 0, 0, 0, 0},
9648 {0x04, 0, 0, 0, 0},
9649 {0x05, 0, 0, 0, 0},
9650 {0x06, 0, 0, 0, 0},
9651 {0x07, 0, 0, 0, 0},
9652 {0x08, 0, 0, 0, 0},
9653 {0x09, 0, 0, 0, 0},
9654 {0x0A, 0, 0, 0, 0},
9655 {0x0B, 0, 0, 0, 0},
9656 {0x0C, 0, 0, 0, 0},
9657 {0x0D, 0, 0, 0, 0},
9658 {0x0E, 0, 0, 0, 0},
9659 {0x0F, 0, 0, 0, 0},
9660 {0x10, 0, 0, 0, 0},
9661 {0x11, 0, 0, 0, 0},
9662 {0x12, 0, 0, 0, 0},
9663 {0x13, 0, 0, 0, 0},
9664 {0x14, 0, 0, 0, 0},
9665 {0x15, 0, 0, 0, 0},
9666 {0x16, 0, 0, 0, 0},
9667 {0x17, 0, 0, 0, 0},
9668 {0x18, 0, 0, 0, 0},
9669 {0x19, 0, 0, 0, 0},
9670 {0x1A, 0, 0, 0, 0},
9671 {0x1B, 0, 0, 0, 0},
9672 {0x1C, 0, 0, 0, 0},
9673 {0x1D, 0, 0, 0, 0},
9674 {0x1E, 0, 0, 0, 0},
9675 {0x1F, 0, 0, 0, 0},
9676 {0x20, 0, 0, 0, 0},
9677 {0x21, 0x88, 0x88, 0, 0},
9678 {0x22, 0x88, 0x88, 0, 0},
9679 {0x23, 0x88, 0x88, 0, 0},
9680 {0x24, 0x88, 0x88, 0, 0},
9681 {0x25, 0xc, 0xc, 0, 0},
9682 {0x26, 0, 0, 0, 0},
9683 {0x27, 0x3, 0x3, 0, 0},
9684 {0x28, 0, 0, 0, 0},
9685 {0x29, 0x3, 0x3, 0, 0},
9686 {0x2A, 0x37, 0x37, 0, 0},
9687 {0x2B, 0x3, 0x3, 0, 0},
9688 {0x2C, 0, 0, 0, 0},
9689 {0x2D, 0, 0, 0, 0},
9690 {0x2E, 0x1, 0x1, 0, 0},
9691 {0x2F, 0x1, 0x1, 0, 0},
9692 {0x30, 0, 0, 0, 0},
9693 {0x31, 0, 0, 0, 0},
9694 {0x32, 0, 0, 0, 0},
9695 {0x33, 0x11, 0x11, 0, 0},
9696 {0x34, 0xee, 0xee, 1, 1},
9697 {0x35, 0, 0, 0, 0},
9698 {0x36, 0, 0, 0, 0},
9699 {0x37, 0x3, 0x3, 0, 0},
9700 {0x38, 0x50, 0x50, 1, 1},
9701 {0x39, 0, 0, 0, 0},
9702 {0x3A, 0x50, 0x50, 1, 1},
9703 {0x3B, 0, 0, 0, 0},
9704 {0x3C, 0x6e, 0x6e, 0, 0},
9705 {0x3D, 0xf0, 0xf0, 1, 1},
9706 {0x3E, 0, 0, 0, 0},
9707 {0x3F, 0, 0, 0, 0},
9708 {0x40, 0, 0, 0, 0},
9709 {0x41, 0x3, 0x3, 0, 0},
9710 {0x42, 0x3, 0x3, 0, 0},
9711 {0x43, 0, 0, 0, 0},
9712 {0x44, 0x1e, 0x1e, 0, 0},
9713 {0x45, 0, 0, 0, 0},
9714 {0x46, 0x6e, 0x6e, 0, 0},
9715 {0x47, 0xf0, 0xf0, 1, 1},
9716 {0x48, 0, 0, 0, 0},
9717 {0x49, 0x2, 0x2, 0, 0},
9718 {0x4A, 0xff, 0xff, 1, 1},
9719 {0x4B, 0xc, 0xc, 0, 0},
9720 {0x4C, 0, 0, 0, 0},
9721 {0x4D, 0x38, 0x38, 0, 0},
9722 {0x4E, 0x70, 0x70, 1, 1},
9723 {0x4F, 0x2, 0x2, 0, 0},
9724 {0x50, 0x88, 0x88, 0, 0},
9725 {0x51, 0xc, 0xc, 0, 0},
9726 {0x52, 0, 0, 0, 0},
9727 {0x53, 0x8, 0x8, 0, 0},
9728 {0x54, 0x70, 0x70, 1, 1},
9729 {0x55, 0x2, 0x2, 0, 0},
9730 {0x56, 0xff, 0xff, 1, 1},
9731 {0x57, 0, 0, 0, 0},
9732 {0x58, 0x83, 0x83, 0, 0},
9733 {0x59, 0x77, 0x77, 1, 1},
9734 {0x5A, 0, 0, 0, 0},
9735 {0x5B, 0x2, 0x2, 0, 0},
9736 {0x5C, 0x88, 0x88, 0, 0},
9737 {0x5D, 0, 0, 0, 0},
9738 {0x5E, 0x8, 0x8, 0, 0},
9739 {0x5F, 0x77, 0x77, 1, 1},
9740 {0x60, 0x1, 0x1, 0, 0},
9741 {0x61, 0, 0, 0, 0},
9742 {0x62, 0x7, 0x7, 0, 0},
9743 {0x63, 0, 0, 0, 0},
9744 {0x64, 0x7, 0x7, 0, 0},
9745 {0x65, 0, 0, 0, 0},
9746 {0x66, 0, 0, 0, 0},
9747 {0x67, 0, 0, 1, 1},
9748 {0x68, 0, 0, 0, 0},
9749 {0x69, 0xa, 0xa, 0, 0},
9750 {0x6A, 0, 0, 0, 0},
9751 {0x6B, 0, 0, 0, 0},
9752 {0x6C, 0, 0, 0, 0},
9753 {0x6D, 0, 0, 0, 0},
9754 {0x6E, 0, 0, 0, 0},
9755 {0x6F, 0, 0, 0, 0},
9756 {0x70, 0, 0, 0, 0},
9757 {0x71, 0x2, 0x2, 0, 0},
9758 {0x72, 0, 0, 0, 0},
9759 {0x73, 0, 0, 0, 0},
9760 {0x74, 0xe, 0xe, 0, 0},
9761 {0x75, 0xe, 0xe, 0, 0},
9762 {0x76, 0xe, 0xe, 0, 0},
9763 {0x77, 0x13, 0x13, 0, 0},
9764 {0x78, 0x13, 0x13, 0, 0},
9765 {0x79, 0x1b, 0x1b, 0, 0},
9766 {0x7A, 0x1b, 0x1b, 0, 0},
9767 {0x7B, 0x55, 0x55, 0, 0},
9768 {0x7C, 0x5b, 0x5b, 0, 0},
9769 {0x7D, 0x30, 0x30, 1, 1},
9770 {0x7E, 0, 0, 0, 0},
9771 {0x7F, 0, 0, 0, 0},
9772 {0x80, 0, 0, 0, 0},
9773 {0x81, 0, 0, 0, 0},
9774 {0x82, 0, 0, 0, 0},
9775 {0x83, 0, 0, 0, 0},
9776 {0x84, 0, 0, 0, 0},
9777 {0x85, 0, 0, 0, 0},
9778 {0x86, 0, 0, 0, 0},
9779 {0x87, 0, 0, 0, 0},
9780 {0x88, 0, 0, 0, 0},
9781 {0x89, 0, 0, 0, 0},
9782 {0x8A, 0, 0, 0, 0},
9783 {0x8B, 0, 0, 0, 0},
9784 {0x8C, 0, 0, 0, 0},
9785 {0x8D, 0, 0, 0, 0},
9786 {0x8E, 0, 0, 0, 0},
9787 {0x8F, 0, 0, 0, 0},
9788 {0x90, 0, 0, 0, 0},
9789 {0x91, 0, 0, 0, 0},
9790 {0x92, 0, 0, 0, 0},
9791 {0x93, 0x70, 0x70, 0, 0},
9792 {0x94, 0x70, 0x70, 0, 0},
9793 {0x95, 0x70, 0x70, 0, 0},
9794 {0x96, 0x70, 0x70, 0, 0},
9795 {0x97, 0x70, 0x70, 0, 0},
9796 {0x98, 0x70, 0x70, 0, 0},
9797 {0x99, 0x70, 0x70, 0, 0},
9798 {0x9A, 0x70, 0x70, 0, 0},
9799 {0xFFFF, 0, 0, 0, 0}
9802 static struct radio_regs regs_RX_2056_rev6[] = {
9803 {0x02, 0, 0, 0, 0},
9804 {0x03, 0, 0, 0, 0},
9805 {0x04, 0, 0, 0, 0},
9806 {0x05, 0, 0, 0, 0},
9807 {0x06, 0, 0, 0, 0},
9808 {0x07, 0, 0, 0, 0},
9809 {0x08, 0, 0, 0, 0},
9810 {0x09, 0, 0, 0, 0},
9811 {0x0A, 0, 0, 0, 0},
9812 {0x0B, 0, 0, 0, 0},
9813 {0x0C, 0, 0, 0, 0},
9814 {0x0D, 0, 0, 0, 0},
9815 {0x0E, 0, 0, 0, 0},
9816 {0x0F, 0, 0, 0, 0},
9817 {0x10, 0, 0, 0, 0},
9818 {0x11, 0, 0, 0, 0},
9819 {0x12, 0, 0, 0, 0},
9820 {0x13, 0, 0, 0, 0},
9821 {0x14, 0, 0, 0, 0},
9822 {0x15, 0, 0, 0, 0},
9823 {0x16, 0, 0, 0, 0},
9824 {0x17, 0, 0, 0, 0},
9825 {0x18, 0, 0, 0, 0},
9826 {0x19, 0, 0, 0, 0},
9827 {0x1A, 0, 0, 0, 0},
9828 {0x1B, 0, 0, 0, 0},
9829 {0x1C, 0, 0, 0, 0},
9830 {0x1D, 0, 0, 0, 0},
9831 {0x1E, 0, 0, 0, 0},
9832 {0x1F, 0, 0, 0, 0},
9833 {0x20, 0x3, 0x3, 0, 0},
9834 {0x21, 0, 0, 0, 0},
9835 {0x22, 0, 0, 0, 0},
9836 {0x23, 0x90, 0x90, 0, 0},
9837 {0x24, 0x55, 0x55, 0, 0},
9838 {0x25, 0x15, 0x15, 0, 0},
9839 {0x26, 0x5, 0x5, 0, 0},
9840 {0x27, 0x15, 0x15, 0, 0},
9841 {0x28, 0x5, 0x5, 0, 0},
9842 {0x29, 0x20, 0x20, 0, 0},
9843 {0x2A, 0x11, 0x11, 0, 0},
9844 {0x2B, 0x90, 0x90, 0, 0},
9845 {0x2C, 0, 0, 0, 0},
9846 {0x2D, 0x88, 0x88, 0, 0},
9847 {0x2E, 0x32, 0x32, 0, 0},
9848 {0x2F, 0x77, 0x77, 0, 0},
9849 {0x30, 0x17, 0x17, 1, 1},
9850 {0x31, 0xff, 0xff, 1, 1},
9851 {0x32, 0x20, 0x20, 0, 0},
9852 {0x33, 0, 0, 0, 0},
9853 {0x34, 0x88, 0x88, 0, 0},
9854 {0x35, 0x32, 0x32, 0, 0},
9855 {0x36, 0x77, 0x77, 0, 0},
9856 {0x37, 0x17, 0x17, 1, 1},
9857 {0x38, 0xf0, 0xf0, 1, 1},
9858 {0x39, 0x20, 0x20, 0, 0},
9859 {0x3A, 0x8, 0x8, 0, 0},
9860 {0x3B, 0x55, 0x55, 1, 1},
9861 {0x3C, 0, 0, 0, 0},
9862 {0x3D, 0x88, 0x88, 1, 1},
9863 {0x3E, 0, 0, 0, 0},
9864 {0x3F, 0x44, 0x44, 0, 0},
9865 {0x40, 0x7, 0x7, 1, 1},
9866 {0x41, 0x6, 0x6, 0, 0},
9867 {0x42, 0x4, 0x4, 0, 0},
9868 {0x43, 0, 0, 0, 0},
9869 {0x44, 0x8, 0x8, 0, 0},
9870 {0x45, 0x55, 0x55, 1, 1},
9871 {0x46, 0, 0, 0, 0},
9872 {0x47, 0x11, 0x11, 0, 0},
9873 {0x48, 0, 0, 0, 0},
9874 {0x49, 0x44, 0x44, 0, 0},
9875 {0x4A, 0x7, 0x7, 0, 0},
9876 {0x4B, 0x6, 0x6, 0, 0},
9877 {0x4C, 0x4, 0x4, 0, 0},
9878 {0x4D, 0, 0, 0, 0},
9879 {0x4E, 0, 0, 0, 0},
9880 {0x4F, 0x26, 0x26, 1, 1},
9881 {0x50, 0x26, 0x26, 1, 1},
9882 {0x51, 0xf, 0xf, 1, 1},
9883 {0x52, 0xf, 0xf, 1, 1},
9884 {0x53, 0x44, 0x44, 0, 0},
9885 {0x54, 0, 0, 0, 0},
9886 {0x55, 0, 0, 0, 0},
9887 {0x56, 0x8, 0x8, 0, 0},
9888 {0x57, 0x8, 0x8, 0, 0},
9889 {0x58, 0x7, 0x7, 0, 0},
9890 {0x59, 0x22, 0x22, 0, 0},
9891 {0x5A, 0x22, 0x22, 0, 0},
9892 {0x5B, 0x2, 0x2, 0, 0},
9893 {0x5C, 0x4, 0x4, 1, 1},
9894 {0x5D, 0x7, 0x7, 0, 0},
9895 {0x5E, 0x55, 0x55, 0, 0},
9896 {0x5F, 0x23, 0x23, 0, 0},
9897 {0x60, 0x41, 0x41, 0, 0},
9898 {0x61, 0x1, 0x1, 0, 0},
9899 {0x62, 0xa, 0xa, 0, 0},
9900 {0x63, 0, 0, 0, 0},
9901 {0x64, 0, 0, 0, 0},
9902 {0x65, 0, 0, 0, 0},
9903 {0x66, 0, 0, 0, 0},
9904 {0x67, 0, 0, 0, 0},
9905 {0x68, 0, 0, 0, 0},
9906 {0x69, 0, 0, 0, 0},
9907 {0x6A, 0, 0, 0, 0},
9908 {0x6B, 0xc, 0xc, 0, 0},
9909 {0x6C, 0, 0, 0, 0},
9910 {0x6D, 0, 0, 0, 0},
9911 {0x6E, 0, 0, 0, 0},
9912 {0x6F, 0, 0, 0, 0},
9913 {0x70, 0, 0, 0, 0},
9914 {0x71, 0, 0, 0, 0},
9915 {0x72, 0x22, 0x22, 0, 0},
9916 {0x73, 0x22, 0x22, 0, 0},
9917 {0x74, 0, 0, 1, 1},
9918 {0x75, 0xa, 0xa, 0, 0},
9919 {0x76, 0x1, 0x1, 0, 0},
9920 {0x77, 0x22, 0x22, 0, 0},
9921 {0x78, 0x30, 0x30, 0, 0},
9922 {0x79, 0, 0, 0, 0},
9923 {0x7A, 0, 0, 0, 0},
9924 {0x7B, 0, 0, 0, 0},
9925 {0x7C, 0, 0, 0, 0},
9926 {0x7D, 0x5, 0x5, 1, 1},
9927 {0x7E, 0, 0, 0, 0},
9928 {0x7F, 0, 0, 0, 0},
9929 {0x80, 0, 0, 0, 0},
9930 {0x81, 0, 0, 0, 0},
9931 {0x82, 0, 0, 0, 0},
9932 {0x83, 0, 0, 0, 0},
9933 {0x84, 0, 0, 0, 0},
9934 {0x85, 0, 0, 0, 0},
9935 {0x86, 0, 0, 0, 0},
9936 {0x87, 0, 0, 0, 0},
9937 {0x88, 0, 0, 0, 0},
9938 {0x89, 0, 0, 0, 0},
9939 {0x8A, 0, 0, 0, 0},
9940 {0x8B, 0, 0, 0, 0},
9941 {0x8C, 0, 0, 0, 0},
9942 {0x8D, 0, 0, 0, 0},
9943 {0x8E, 0, 0, 0, 0},
9944 {0x8F, 0, 0, 0, 0},
9945 {0x90, 0, 0, 0, 0},
9946 {0x91, 0, 0, 0, 0},
9947 {0x92, 0, 0, 0, 0},
9948 {0x93, 0, 0, 0, 0},
9949 {0x94, 0, 0, 0, 0},
9950 {0xFFFF, 0, 0, 0, 0}
9953 static struct radio_regs regs_SYN_2056_rev7[] = {
9954 {0x02, 0, 0, 0, 0},
9955 {0x03, 0, 0, 0, 0},
9956 {0x04, 0, 0, 0, 0},
9957 {0x05, 0, 0, 0, 0},
9958 {0x06, 0, 0, 0, 0},
9959 {0x07, 0, 0, 0, 0},
9960 {0x08, 0, 0, 0, 0},
9961 {0x09, 0x1, 0x1, 0, 0},
9962 {0x0A, 0, 0, 0, 0},
9963 {0x0B, 0, 0, 0, 0},
9964 {0x0C, 0, 0, 0, 0},
9965 {0x0D, 0, 0, 0, 0},
9966 {0x0E, 0, 0, 0, 0},
9967 {0x0F, 0, 0, 0, 0},
9968 {0x10, 0, 0, 0, 0},
9969 {0x11, 0, 0, 0, 0},
9970 {0x12, 0, 0, 0, 0},
9971 {0x13, 0, 0, 0, 0},
9972 {0x14, 0, 0, 0, 0},
9973 {0x15, 0, 0, 0, 0},
9974 {0x16, 0, 0, 0, 0},
9975 {0x17, 0, 0, 0, 0},
9976 {0x18, 0, 0, 0, 0},
9977 {0x19, 0, 0, 0, 0},
9978 {0x1A, 0, 0, 0, 0},
9979 {0x1B, 0, 0, 0, 0},
9980 {0x1C, 0, 0, 0, 0},
9981 {0x1D, 0, 0, 0, 0},
9982 {0x1E, 0, 0, 0, 0},
9983 {0x1F, 0, 0, 0, 0},
9984 {0x20, 0, 0, 0, 0},
9985 {0x21, 0, 0, 0, 0},
9986 {0x22, 0x60, 0x60, 0, 0},
9987 {0x23, 0x6, 0x6, 0, 0},
9988 {0x24, 0xc, 0xc, 0, 0},
9989 {0x25, 0, 0, 0, 0},
9990 {0x26, 0, 0, 0, 0},
9991 {0x27, 0, 0, 0, 0},
9992 {0x28, 0x1, 0x1, 0, 0},
9993 {0x29, 0, 0, 0, 0},
9994 {0x2A, 0, 0, 0, 0},
9995 {0x2B, 0, 0, 0, 0},
9996 {0x2C, 0, 0, 0, 0},
9997 {0x2D, 0, 0, 0, 0},
9998 {0x2E, 0, 0, 0, 0},
9999 {0x2F, 0x1f, 0x1f, 0, 0},
10000 {0x30, 0x15, 0x15, 0, 0},
10001 {0x31, 0xf, 0xf, 0, 0},
10002 {0x32, 0, 0, 0, 0},
10003 {0x33, 0, 0, 0, 0},
10004 {0x34, 0, 0, 0, 0},
10005 {0x35, 0, 0, 0, 0},
10006 {0x36, 0, 0, 0, 0},
10007 {0x37, 0, 0, 0, 0},
10008 {0x38, 0, 0, 0, 0},
10009 {0x39, 0, 0, 0, 0},
10010 {0x3A, 0, 0, 0, 0},
10011 {0x3B, 0, 0, 0, 0},
10012 {0x3C, 0x13, 0x13, 0, 0},
10013 {0x3D, 0xf, 0xf, 0, 0},
10014 {0x3E, 0x18, 0x18, 0, 0},
10015 {0x3F, 0, 0, 0, 0},
10016 {0x40, 0, 0, 0, 0},
10017 {0x41, 0x20, 0x20, 0, 0},
10018 {0x42, 0x20, 0x20, 0, 0},
10019 {0x43, 0, 0, 0, 0},
10020 {0x44, 0x77, 0x77, 0, 0},
10021 {0x45, 0x7, 0x7, 0, 0},
10022 {0x46, 0x1, 0x1, 0, 0},
10023 {0x47, 0x4, 0x4, 0, 0},
10024 {0x48, 0xf, 0xf, 0, 0},
10025 {0x49, 0x30, 0x30, 0, 0},
10026 {0x4A, 0x32, 0x32, 0, 0},
10027 {0x4B, 0xd, 0xd, 0, 0},
10028 {0x4C, 0xd, 0xd, 0, 0},
10029 {0x4D, 0x4, 0x4, 0, 0},
10030 {0x4E, 0x6, 0x6, 0, 0},
10031 {0x4F, 0x1, 0x1, 0, 0},
10032 {0x50, 0x1c, 0x1c, 0, 0},
10033 {0x51, 0x2, 0x2, 0, 0},
10034 {0x52, 0x2, 0x2, 0, 0},
10035 {0x53, 0xf7, 0xf7, 1, 1},
10036 {0x54, 0xb4, 0xb4, 0, 0},
10037 {0x55, 0xd2, 0xd2, 0, 0},
10038 {0x56, 0, 0, 0, 0},
10039 {0x57, 0, 0, 0, 0},
10040 {0x58, 0x4, 0x4, 0, 0},
10041 {0x59, 0x96, 0x96, 0, 0},
10042 {0x5A, 0x3e, 0x3e, 0, 0},
10043 {0x5B, 0x3e, 0x3e, 0, 0},
10044 {0x5C, 0x13, 0x13, 0, 0},
10045 {0x5D, 0x2, 0x2, 0, 0},
10046 {0x5E, 0, 0, 0, 0},
10047 {0x5F, 0x7, 0x7, 0, 0},
10048 {0x60, 0x7, 0x7, 1, 1},
10049 {0x61, 0x8, 0x8, 0, 0},
10050 {0x62, 0x3, 0x3, 0, 0},
10051 {0x63, 0, 0, 0, 0},
10052 {0x64, 0, 0, 0, 0},
10053 {0x65, 0, 0, 0, 0},
10054 {0x66, 0, 0, 0, 0},
10055 {0x67, 0, 0, 0, 0},
10056 {0x68, 0x40, 0x40, 0, 0},
10057 {0x69, 0, 0, 0, 0},
10058 {0x6A, 0, 0, 0, 0},
10059 {0x6B, 0, 0, 0, 0},
10060 {0x6C, 0, 0, 0, 0},
10061 {0x6D, 0x1, 0x1, 0, 0},
10062 {0x6E, 0, 0, 0, 0},
10063 {0x6F, 0, 0, 0, 0},
10064 {0x70, 0x60, 0x60, 0, 0},
10065 {0x71, 0x66, 0x66, 0, 0},
10066 {0x72, 0xc, 0xc, 0, 0},
10067 {0x73, 0x66, 0x66, 0, 0},
10068 {0x74, 0x8f, 0x8f, 1, 1},
10069 {0x75, 0, 0, 0, 0},
10070 {0x76, 0xcc, 0xcc, 0, 0},
10071 {0x77, 0x1, 0x1, 0, 0},
10072 {0x78, 0x66, 0x66, 0, 0},
10073 {0x79, 0x66, 0x66, 0, 0},
10074 {0x7A, 0, 0, 0, 0},
10075 {0x7B, 0, 0, 0, 0},
10076 {0x7C, 0, 0, 0, 0},
10077 {0x7D, 0, 0, 0, 0},
10078 {0x7E, 0, 0, 0, 0},
10079 {0x7F, 0, 0, 0, 0},
10080 {0x80, 0, 0, 0, 0},
10081 {0x81, 0, 0, 0, 0},
10082 {0x82, 0, 0, 0, 0},
10083 {0x83, 0, 0, 0, 0},
10084 {0x84, 0, 0, 0, 0},
10085 {0x85, 0xff, 0xff, 0, 0},
10086 {0x86, 0, 0, 0, 0},
10087 {0x87, 0, 0, 0, 0},
10088 {0x88, 0, 0, 0, 0},
10089 {0x89, 0, 0, 0, 0},
10090 {0x8A, 0, 0, 0, 0},
10091 {0x8B, 0, 0, 0, 0},
10092 {0x8C, 0, 0, 0, 0},
10093 {0x8D, 0, 0, 0, 0},
10094 {0x8E, 0, 0, 0, 0},
10095 {0x8F, 0, 0, 0, 0},
10096 {0x90, 0, 0, 0, 0},
10097 {0x91, 0, 0, 0, 0},
10098 {0x92, 0, 0, 0, 0},
10099 {0x93, 0, 0, 0, 0},
10100 {0x94, 0, 0, 0, 0},
10101 {0x95, 0, 0, 0, 0},
10102 {0x96, 0, 0, 0, 0},
10103 {0x97, 0, 0, 0, 0},
10104 {0x98, 0, 0, 0, 0},
10105 {0x99, 0, 0, 0, 0},
10106 {0x9A, 0, 0, 0, 0},
10107 {0x9B, 0, 0, 0, 0},
10108 {0x9C, 0, 0, 0, 0},
10109 {0x9D, 0, 0, 0, 0},
10110 {0x9E, 0, 0, 0, 0},
10111 {0x9F, 0x6, 0x6, 0, 0},
10112 {0xA0, 0x66, 0x66, 0, 0},
10113 {0xA1, 0x66, 0x66, 0, 0},
10114 {0xA2, 0x66, 0x66, 0, 0},
10115 {0xA3, 0x66, 0x66, 0, 0},
10116 {0xA4, 0x66, 0x66, 0, 0},
10117 {0xA5, 0x66, 0x66, 0, 0},
10118 {0xA6, 0x66, 0x66, 0, 0},
10119 {0xA7, 0x66, 0x66, 0, 0},
10120 {0xA8, 0x66, 0x66, 0, 0},
10121 {0xA9, 0x66, 0x66, 0, 0},
10122 {0xAA, 0x66, 0x66, 0, 0},
10123 {0xAB, 0x66, 0x66, 0, 0},
10124 {0xAC, 0x66, 0x66, 0, 0},
10125 {0xAD, 0x66, 0x66, 0, 0},
10126 {0xAE, 0x66, 0x66, 0, 0},
10127 {0xAF, 0x66, 0x66, 0, 0},
10128 {0xB0, 0x66, 0x66, 0, 0},
10129 {0xB1, 0x66, 0x66, 0, 0},
10130 {0xB2, 0x66, 0x66, 0, 0},
10131 {0xB3, 0xa, 0xa, 0, 0},
10132 {0xB4, 0, 0, 0, 0},
10133 {0xB5, 0, 0, 0, 0},
10134 {0xB6, 0, 0, 0, 0},
10135 {0xFFFF, 0, 0, 0, 0},
10138 static struct radio_regs regs_TX_2056_rev7[] = {
10139 {0x02, 0, 0, 0, 0},
10140 {0x03, 0, 0, 0, 0},
10141 {0x04, 0, 0, 0, 0},
10142 {0x05, 0, 0, 0, 0},
10143 {0x06, 0, 0, 0, 0},
10144 {0x07, 0, 0, 0, 0},
10145 {0x08, 0, 0, 0, 0},
10146 {0x09, 0, 0, 0, 0},
10147 {0x0A, 0, 0, 0, 0},
10148 {0x0B, 0, 0, 0, 0},
10149 {0x0C, 0, 0, 0, 0},
10150 {0x0D, 0, 0, 0, 0},
10151 {0x0E, 0, 0, 0, 0},
10152 {0x0F, 0, 0, 0, 0},
10153 {0x10, 0, 0, 0, 0},
10154 {0x11, 0, 0, 0, 0},
10155 {0x12, 0, 0, 0, 0},
10156 {0x13, 0, 0, 0, 0},
10157 {0x14, 0, 0, 0, 0},
10158 {0x15, 0, 0, 0, 0},
10159 {0x16, 0, 0, 0, 0},
10160 {0x17, 0, 0, 0, 0},
10161 {0x18, 0, 0, 0, 0},
10162 {0x19, 0, 0, 0, 0},
10163 {0x1A, 0, 0, 0, 0},
10164 {0x1B, 0, 0, 0, 0},
10165 {0x1C, 0, 0, 0, 0},
10166 {0x1D, 0, 0, 0, 0},
10167 {0x1E, 0, 0, 0, 0},
10168 {0x1F, 0, 0, 0, 0},
10169 {0x20, 0, 0, 0, 0},
10170 {0x21, 0x88, 0x88, 0, 0},
10171 {0x22, 0x88, 0x88, 0, 0},
10172 {0x23, 0x88, 0x88, 0, 0},
10173 {0x24, 0x88, 0x88, 0, 0},
10174 {0x25, 0xc, 0xc, 0, 0},
10175 {0x26, 0, 0, 0, 0},
10176 {0x27, 0x3, 0x3, 0, 0},
10177 {0x28, 0, 0, 0, 0},
10178 {0x29, 0x3, 0x3, 0, 0},
10179 {0x2A, 0x37, 0x37, 0, 0},
10180 {0x2B, 0x3, 0x3, 0, 0},
10181 {0x2C, 0, 0, 0, 0},
10182 {0x2D, 0, 0, 0, 0},
10183 {0x2E, 0x1, 0x1, 0, 0},
10184 {0x2F, 0x1, 0x1, 0, 0},
10185 {0x30, 0, 0, 0, 0},
10186 {0x31, 0, 0, 0, 0},
10187 {0x32, 0, 0, 0, 0},
10188 {0x33, 0x11, 0x11, 0, 0},
10189 {0x34, 0xee, 0xee, 1, 1},
10190 {0x35, 0, 0, 0, 0},
10191 {0x36, 0, 0, 0, 0},
10192 {0x37, 0x3, 0x3, 0, 0},
10193 {0x38, 0x50, 0x50, 1, 1},
10194 {0x39, 0, 0, 0, 0},
10195 {0x3A, 0x50, 0x50, 1, 1},
10196 {0x3B, 0, 0, 0, 0},
10197 {0x3C, 0x6e, 0x6e, 0, 0},
10198 {0x3D, 0xf0, 0xf0, 1, 1},
10199 {0x3E, 0, 0, 0, 0},
10200 {0x3F, 0, 0, 0, 0},
10201 {0x40, 0, 0, 0, 0},
10202 {0x41, 0x3, 0x3, 0, 0},
10203 {0x42, 0x3, 0x3, 0, 0},
10204 {0x43, 0, 0, 0, 0},
10205 {0x44, 0x1e, 0x1e, 0, 0},
10206 {0x45, 0, 0, 0, 0},
10207 {0x46, 0x6e, 0x6e, 0, 0},
10208 {0x47, 0xf0, 0xf0, 1, 1},
10209 {0x48, 0, 0, 0, 0},
10210 {0x49, 0x2, 0x2, 0, 0},
10211 {0x4A, 0xff, 0xff, 1, 1},
10212 {0x4B, 0xc, 0xc, 0, 0},
10213 {0x4C, 0, 0, 0, 0},
10214 {0x4D, 0x38, 0x38, 0, 0},
10215 {0x4E, 0x70, 0x70, 1, 1},
10216 {0x4F, 0x2, 0x2, 0, 0},
10217 {0x50, 0x88, 0x88, 0, 0},
10218 {0x51, 0xc, 0xc, 0, 0},
10219 {0x52, 0, 0, 0, 0},
10220 {0x53, 0x8, 0x8, 0, 0},
10221 {0x54, 0x70, 0x70, 1, 1},
10222 {0x55, 0x2, 0x2, 0, 0},
10223 {0x56, 0xff, 0xff, 1, 1},
10224 {0x57, 0, 0, 0, 0},
10225 {0x58, 0x83, 0x83, 0, 0},
10226 {0x59, 0x77, 0x77, 1, 1},
10227 {0x5A, 0, 0, 0, 0},
10228 {0x5B, 0x2, 0x2, 0, 0},
10229 {0x5C, 0x88, 0x88, 0, 0},
10230 {0x5D, 0, 0, 0, 0},
10231 {0x5E, 0x8, 0x8, 0, 0},
10232 {0x5F, 0x77, 0x77, 1, 1},
10233 {0x60, 0x1, 0x1, 0, 0},
10234 {0x61, 0, 0, 0, 0},
10235 {0x62, 0x7, 0x7, 0, 0},
10236 {0x63, 0, 0, 0, 0},
10237 {0x64, 0x7, 0x7, 0, 0},
10238 {0x65, 0, 0, 0, 0},
10239 {0x66, 0, 0, 0, 0},
10240 {0x67, 0, 0, 1, 1},
10241 {0x68, 0, 0, 0, 0},
10242 {0x69, 0xa, 0xa, 0, 0},
10243 {0x6A, 0, 0, 0, 0},
10244 {0x6B, 0, 0, 0, 0},
10245 {0x6C, 0, 0, 0, 0},
10246 {0x6D, 0, 0, 0, 0},
10247 {0x6E, 0, 0, 0, 0},
10248 {0x6F, 0, 0, 0, 0},
10249 {0x70, 0, 0, 0, 0},
10250 {0x71, 0x2, 0x2, 0, 0},
10251 {0x72, 0, 0, 0, 0},
10252 {0x73, 0, 0, 0, 0},
10253 {0x74, 0xe, 0xe, 0, 0},
10254 {0x75, 0xe, 0xe, 0, 0},
10255 {0x76, 0xe, 0xe, 0, 0},
10256 {0x77, 0x13, 0x13, 0, 0},
10257 {0x78, 0x13, 0x13, 0, 0},
10258 {0x79, 0x1b, 0x1b, 0, 0},
10259 {0x7A, 0x1b, 0x1b, 0, 0},
10260 {0x7B, 0x55, 0x55, 0, 0},
10261 {0x7C, 0x5b, 0x5b, 0, 0},
10262 {0x7D, 0x30, 0x30, 1, 1},
10263 {0x7E, 0, 0, 0, 0},
10264 {0x7F, 0, 0, 0, 0},
10265 {0x80, 0, 0, 0, 0},
10266 {0x81, 0, 0, 0, 0},
10267 {0x82, 0, 0, 0, 0},
10268 {0x83, 0, 0, 0, 0},
10269 {0x84, 0, 0, 0, 0},
10270 {0x85, 0, 0, 0, 0},
10271 {0x86, 0, 0, 0, 0},
10272 {0x87, 0, 0, 0, 0},
10273 {0x88, 0, 0, 0, 0},
10274 {0x89, 0, 0, 0, 0},
10275 {0x8A, 0, 0, 0, 0},
10276 {0x8B, 0, 0, 0, 0},
10277 {0x8C, 0, 0, 0, 0},
10278 {0x8D, 0, 0, 0, 0},
10279 {0x8E, 0, 0, 0, 0},
10280 {0x8F, 0, 0, 0, 0},
10281 {0x90, 0, 0, 0, 0},
10282 {0x91, 0, 0, 0, 0},
10283 {0x92, 0, 0, 0, 0},
10284 {0x93, 0x70, 0x70, 0, 0},
10285 {0x94, 0x70, 0x70, 0, 0},
10286 {0x95, 0x71, 0x71, 1, 1},
10287 {0x96, 0x71, 0x71, 1, 1},
10288 {0x97, 0x72, 0x72, 1, 1},
10289 {0x98, 0x73, 0x73, 1, 1},
10290 {0x99, 0x74, 0x74, 1, 1},
10291 {0x9A, 0x75, 0x75, 1, 1},
10292 {0xFFFF, 0, 0, 0, 0},
10295 static struct radio_regs regs_RX_2056_rev7[] = {
10296 {0x02, 0, 0, 0, 0},
10297 {0x03, 0, 0, 0, 0},
10298 {0x04, 0, 0, 0, 0},
10299 {0x05, 0, 0, 0, 0},
10300 {0x06, 0, 0, 0, 0},
10301 {0x07, 0, 0, 0, 0},
10302 {0x08, 0, 0, 0, 0},
10303 {0x09, 0, 0, 0, 0},
10304 {0x0A, 0, 0, 0, 0},
10305 {0x0B, 0, 0, 0, 0},
10306 {0x0C, 0, 0, 0, 0},
10307 {0x0D, 0, 0, 0, 0},
10308 {0x0E, 0, 0, 0, 0},
10309 {0x0F, 0, 0, 0, 0},
10310 {0x10, 0, 0, 0, 0},
10311 {0x11, 0, 0, 0, 0},
10312 {0x12, 0, 0, 0, 0},
10313 {0x13, 0, 0, 0, 0},
10314 {0x14, 0, 0, 0, 0},
10315 {0x15, 0, 0, 0, 0},
10316 {0x16, 0, 0, 0, 0},
10317 {0x17, 0, 0, 0, 0},
10318 {0x18, 0, 0, 0, 0},
10319 {0x19, 0, 0, 0, 0},
10320 {0x1A, 0, 0, 0, 0},
10321 {0x1B, 0, 0, 0, 0},
10322 {0x1C, 0, 0, 0, 0},
10323 {0x1D, 0, 0, 0, 0},
10324 {0x1E, 0, 0, 0, 0},
10325 {0x1F, 0, 0, 0, 0},
10326 {0x20, 0x3, 0x3, 0, 0},
10327 {0x21, 0, 0, 0, 0},
10328 {0x22, 0, 0, 0, 0},
10329 {0x23, 0x90, 0x90, 0, 0},
10330 {0x24, 0x55, 0x55, 0, 0},
10331 {0x25, 0x15, 0x15, 0, 0},
10332 {0x26, 0x5, 0x5, 0, 0},
10333 {0x27, 0x15, 0x15, 0, 0},
10334 {0x28, 0x5, 0x5, 0, 0},
10335 {0x29, 0x20, 0x20, 0, 0},
10336 {0x2A, 0x11, 0x11, 0, 0},
10337 {0x2B, 0x90, 0x90, 0, 0},
10338 {0x2C, 0, 0, 0, 0},
10339 {0x2D, 0x88, 0x88, 0, 0},
10340 {0x2E, 0x32, 0x32, 0, 0},
10341 {0x2F, 0x77, 0x77, 0, 0},
10342 {0x30, 0x17, 0x17, 1, 1},
10343 {0x31, 0xff, 0xff, 1, 1},
10344 {0x32, 0x20, 0x20, 0, 0},
10345 {0x33, 0, 0, 0, 0},
10346 {0x34, 0x88, 0x88, 0, 0},
10347 {0x35, 0x32, 0x32, 0, 0},
10348 {0x36, 0x77, 0x77, 0, 0},
10349 {0x37, 0x17, 0x17, 1, 1},
10350 {0x38, 0xf0, 0xf0, 1, 1},
10351 {0x39, 0x20, 0x20, 0, 0},
10352 {0x3A, 0x8, 0x8, 0, 0},
10353 {0x3B, 0x55, 0x55, 1, 1},
10354 {0x3C, 0, 0, 0, 0},
10355 {0x3D, 0x88, 0x88, 1, 1},
10356 {0x3E, 0, 0, 0, 0},
10357 {0x3F, 0, 0, 1, 1},
10358 {0x40, 0x7, 0x7, 1, 1},
10359 {0x41, 0x6, 0x6, 0, 0},
10360 {0x42, 0x4, 0x4, 0, 0},
10361 {0x43, 0, 0, 0, 0},
10362 {0x44, 0x8, 0x8, 0, 0},
10363 {0x45, 0x55, 0x55, 1, 1},
10364 {0x46, 0, 0, 0, 0},
10365 {0x47, 0x11, 0x11, 0, 0},
10366 {0x48, 0, 0, 0, 0},
10367 {0x49, 0, 0, 1, 1},
10368 {0x4A, 0x7, 0x7, 0, 0},
10369 {0x4B, 0x6, 0x6, 0, 0},
10370 {0x4C, 0x4, 0x4, 0, 0},
10371 {0x4D, 0, 0, 0, 0},
10372 {0x4E, 0, 0, 0, 0},
10373 {0x4F, 0x26, 0x26, 1, 1},
10374 {0x50, 0x26, 0x26, 1, 1},
10375 {0x51, 0xf, 0xf, 1, 1},
10376 {0x52, 0xf, 0xf, 1, 1},
10377 {0x53, 0x44, 0x44, 0, 0},
10378 {0x54, 0, 0, 0, 0},
10379 {0x55, 0, 0, 0, 0},
10380 {0x56, 0x8, 0x8, 0, 0},
10381 {0x57, 0x8, 0x8, 0, 0},
10382 {0x58, 0x7, 0x7, 0, 0},
10383 {0x59, 0x22, 0x22, 0, 0},
10384 {0x5A, 0x22, 0x22, 0, 0},
10385 {0x5B, 0x2, 0x2, 0, 0},
10386 {0x5C, 0x4, 0x4, 1, 1},
10387 {0x5D, 0x7, 0x7, 0, 0},
10388 {0x5E, 0x55, 0x55, 0, 0},
10389 {0x5F, 0x23, 0x23, 0, 0},
10390 {0x60, 0x41, 0x41, 0, 0},
10391 {0x61, 0x1, 0x1, 0, 0},
10392 {0x62, 0xa, 0xa, 0, 0},
10393 {0x63, 0, 0, 0, 0},
10394 {0x64, 0, 0, 0, 0},
10395 {0x65, 0, 0, 0, 0},
10396 {0x66, 0, 0, 0, 0},
10397 {0x67, 0, 0, 0, 0},
10398 {0x68, 0, 0, 0, 0},
10399 {0x69, 0, 0, 0, 0},
10400 {0x6A, 0, 0, 0, 0},
10401 {0x6B, 0xc, 0xc, 0, 0},
10402 {0x6C, 0, 0, 0, 0},
10403 {0x6D, 0, 0, 0, 0},
10404 {0x6E, 0, 0, 0, 0},
10405 {0x6F, 0, 0, 0, 0},
10406 {0x70, 0, 0, 0, 0},
10407 {0x71, 0, 0, 0, 0},
10408 {0x72, 0x22, 0x22, 0, 0},
10409 {0x73, 0x22, 0x22, 0, 0},
10410 {0x74, 0, 0, 1, 1},
10411 {0x75, 0xa, 0xa, 0, 0},
10412 {0x76, 0x1, 0x1, 0, 0},
10413 {0x77, 0x22, 0x22, 0, 0},
10414 {0x78, 0x30, 0x30, 0, 0},
10415 {0x79, 0, 0, 0, 0},
10416 {0x7A, 0, 0, 0, 0},
10417 {0x7B, 0, 0, 0, 0},
10418 {0x7C, 0, 0, 0, 0},
10419 {0x7D, 0, 0, 0, 0},
10420 {0x7E, 0, 0, 0, 0},
10421 {0x7F, 0, 0, 0, 0},
10422 {0x80, 0, 0, 0, 0},
10423 {0x81, 0, 0, 0, 0},
10424 {0x82, 0, 0, 0, 0},
10425 {0x83, 0, 0, 0, 0},
10426 {0x84, 0, 0, 0, 0},
10427 {0x85, 0, 0, 0, 0},
10428 {0x86, 0, 0, 0, 0},
10429 {0x87, 0, 0, 0, 0},
10430 {0x88, 0, 0, 0, 0},
10431 {0x89, 0, 0, 0, 0},
10432 {0x8A, 0, 0, 0, 0},
10433 {0x8B, 0, 0, 0, 0},
10434 {0x8C, 0, 0, 0, 0},
10435 {0x8D, 0, 0, 0, 0},
10436 {0x8E, 0, 0, 0, 0},
10437 {0x8F, 0, 0, 0, 0},
10438 {0x90, 0, 0, 0, 0},
10439 {0x91, 0, 0, 0, 0},
10440 {0x92, 0, 0, 0, 0},
10441 {0x93, 0, 0, 0, 0},
10442 {0x94, 0, 0, 0, 0},
10443 {0xFFFF, 0, 0, 0, 0},
10446 static struct radio_regs regs_SYN_2056_rev8[] = {
10447 {0x02, 0, 0, 0, 0},
10448 {0x03, 0, 0, 0, 0},
10449 {0x04, 0, 0, 0, 0},
10450 {0x05, 0, 0, 0, 0},
10451 {0x06, 0, 0, 0, 0},
10452 {0x07, 0, 0, 0, 0},
10453 {0x08, 0, 0, 0, 0},
10454 {0x09, 0x1, 0x1, 0, 0},
10455 {0x0A, 0, 0, 0, 0},
10456 {0x0B, 0, 0, 0, 0},
10457 {0x0C, 0, 0, 0, 0},
10458 {0x0D, 0, 0, 0, 0},
10459 {0x0E, 0, 0, 0, 0},
10460 {0x0F, 0, 0, 0, 0},
10461 {0x10, 0, 0, 0, 0},
10462 {0x11, 0, 0, 0, 0},
10463 {0x12, 0, 0, 0, 0},
10464 {0x13, 0, 0, 0, 0},
10465 {0x14, 0, 0, 0, 0},
10466 {0x15, 0, 0, 0, 0},
10467 {0x16, 0, 0, 0, 0},
10468 {0x17, 0, 0, 0, 0},
10469 {0x18, 0, 0, 0, 0},
10470 {0x19, 0, 0, 0, 0},
10471 {0x1A, 0, 0, 0, 0},
10472 {0x1B, 0, 0, 0, 0},
10473 {0x1C, 0, 0, 0, 0},
10474 {0x1D, 0, 0, 0, 0},
10475 {0x1E, 0, 0, 0, 0},
10476 {0x1F, 0, 0, 0, 0},
10477 {0x20, 0, 0, 0, 0},
10478 {0x21, 0, 0, 0, 0},
10479 {0x22, 0x60, 0x60, 0, 0},
10480 {0x23, 0x6, 0x6, 0, 0},
10481 {0x24, 0xc, 0xc, 0, 0},
10482 {0x25, 0, 0, 0, 0},
10483 {0x26, 0, 0, 0, 0},
10484 {0x27, 0, 0, 0, 0},
10485 {0x28, 0x1, 0x1, 0, 0},
10486 {0x29, 0, 0, 0, 0},
10487 {0x2A, 0, 0, 0, 0},
10488 {0x2B, 0, 0, 0, 0},
10489 {0x2C, 0, 0, 0, 0},
10490 {0x2D, 0, 0, 0, 0},
10491 {0x2E, 0, 0, 0, 0},
10492 {0x2F, 0x1f, 0x1f, 0, 0},
10493 {0x30, 0x15, 0x15, 0, 0},
10494 {0x31, 0xf, 0xf, 0, 0},
10495 {0x32, 0, 0, 0, 0},
10496 {0x33, 0, 0, 0, 0},
10497 {0x34, 0, 0, 0, 0},
10498 {0x35, 0, 0, 0, 0},
10499 {0x36, 0, 0, 0, 0},
10500 {0x37, 0, 0, 0, 0},
10501 {0x38, 0, 0, 0, 0},
10502 {0x39, 0, 0, 0, 0},
10503 {0x3A, 0, 0, 0, 0},
10504 {0x3B, 0, 0, 0, 0},
10505 {0x3C, 0x13, 0x13, 0, 0},
10506 {0x3D, 0xf, 0xf, 0, 0},
10507 {0x3E, 0x18, 0x18, 0, 0},
10508 {0x3F, 0, 0, 0, 0},
10509 {0x40, 0, 0, 0, 0},
10510 {0x41, 0x20, 0x20, 0, 0},
10511 {0x42, 0x20, 0x20, 0, 0},
10512 {0x43, 0, 0, 0, 0},
10513 {0x44, 0x77, 0x77, 0, 0},
10514 {0x45, 0x7, 0x7, 0, 0},
10515 {0x46, 0x1, 0x1, 0, 0},
10516 {0x47, 0x4, 0x4, 0, 0},
10517 {0x48, 0xf, 0xf, 0, 0},
10518 {0x49, 0x30, 0x30, 0, 0},
10519 {0x4A, 0x32, 0x32, 0, 0},
10520 {0x4B, 0xd, 0xd, 0, 0},
10521 {0x4C, 0xd, 0xd, 0, 0},
10522 {0x4D, 0x4, 0x4, 0, 0},
10523 {0x4E, 0x6, 0x6, 0, 0},
10524 {0x4F, 0x1, 0x1, 0, 0},
10525 {0x50, 0x1c, 0x1c, 0, 0},
10526 {0x51, 0x2, 0x2, 0, 0},
10527 {0x52, 0x2, 0x2, 0, 0},
10528 {0x53, 0xf7, 0xf7, 1, 1},
10529 {0x54, 0xb4, 0xb4, 0, 0},
10530 {0x55, 0xd2, 0xd2, 0, 0},
10531 {0x56, 0, 0, 0, 0},
10532 {0x57, 0, 0, 0, 0},
10533 {0x58, 0x4, 0x4, 0, 0},
10534 {0x59, 0x96, 0x96, 0, 0},
10535 {0x5A, 0x3e, 0x3e, 0, 0},
10536 {0x5B, 0x3e, 0x3e, 0, 0},
10537 {0x5C, 0x13, 0x13, 0, 0},
10538 {0x5D, 0x2, 0x2, 0, 0},
10539 {0x5E, 0, 0, 0, 0},
10540 {0x5F, 0x7, 0x7, 0, 0},
10541 {0x60, 0x7, 0x7, 1, 1},
10542 {0x61, 0x8, 0x8, 0, 0},
10543 {0x62, 0x3, 0x3, 0, 0},
10544 {0x63, 0, 0, 0, 0},
10545 {0x64, 0, 0, 0, 0},
10546 {0x65, 0, 0, 0, 0},
10547 {0x66, 0, 0, 0, 0},
10548 {0x67, 0, 0, 0, 0},
10549 {0x68, 0x40, 0x40, 0, 0},
10550 {0x69, 0, 0, 0, 0},
10551 {0x6A, 0, 0, 0, 0},
10552 {0x6B, 0, 0, 0, 0},
10553 {0x6C, 0, 0, 0, 0},
10554 {0x6D, 0x1, 0x1, 0, 0},
10555 {0x6E, 0, 0, 0, 0},
10556 {0x6F, 0, 0, 0, 0},
10557 {0x70, 0x60, 0x60, 0, 0},
10558 {0x71, 0x66, 0x66, 0, 0},
10559 {0x72, 0xc, 0xc, 0, 0},
10560 {0x73, 0x66, 0x66, 0, 0},
10561 {0x74, 0x8f, 0x8f, 1, 1},
10562 {0x75, 0, 0, 0, 0},
10563 {0x76, 0xcc, 0xcc, 0, 0},
10564 {0x77, 0x1, 0x1, 0, 0},
10565 {0x78, 0x66, 0x66, 0, 0},
10566 {0x79, 0x66, 0x66, 0, 0},
10567 {0x7A, 0, 0, 0, 0},
10568 {0x7B, 0, 0, 0, 0},
10569 {0x7C, 0, 0, 0, 0},
10570 {0x7D, 0, 0, 0, 0},
10571 {0x7E, 0, 0, 0, 0},
10572 {0x7F, 0, 0, 0, 0},
10573 {0x80, 0, 0, 0, 0},
10574 {0x81, 0, 0, 0, 0},
10575 {0x82, 0, 0, 0, 0},
10576 {0x83, 0, 0, 0, 0},
10577 {0x84, 0, 0, 0, 0},
10578 {0x85, 0xff, 0xff, 0, 0},
10579 {0x86, 0, 0, 0, 0},
10580 {0x87, 0, 0, 0, 0},
10581 {0x88, 0, 0, 0, 0},
10582 {0x89, 0, 0, 0, 0},
10583 {0x8A, 0, 0, 0, 0},
10584 {0x8B, 0, 0, 0, 0},
10585 {0x8C, 0, 0, 0, 0},
10586 {0x8D, 0, 0, 0, 0},
10587 {0x8E, 0, 0, 0, 0},
10588 {0x8F, 0, 0, 0, 0},
10589 {0x90, 0, 0, 0, 0},
10590 {0x91, 0, 0, 0, 0},
10591 {0x92, 0, 0, 0, 0},
10592 {0x93, 0, 0, 0, 0},
10593 {0x94, 0, 0, 0, 0},
10594 {0x95, 0, 0, 0, 0},
10595 {0x96, 0, 0, 0, 0},
10596 {0x97, 0, 0, 0, 0},
10597 {0x98, 0, 0, 0, 0},
10598 {0x99, 0, 0, 0, 0},
10599 {0x9A, 0, 0, 0, 0},
10600 {0x9B, 0, 0, 0, 0},
10601 {0x9C, 0, 0, 0, 0},
10602 {0x9D, 0, 0, 0, 0},
10603 {0x9E, 0, 0, 0, 0},
10604 {0x9F, 0x6, 0x6, 0, 0},
10605 {0xA0, 0x66, 0x66, 0, 0},
10606 {0xA1, 0x66, 0x66, 0, 0},
10607 {0xA2, 0x66, 0x66, 0, 0},
10608 {0xA3, 0x66, 0x66, 0, 0},
10609 {0xA4, 0x66, 0x66, 0, 0},
10610 {0xA5, 0x66, 0x66, 0, 0},
10611 {0xA6, 0x66, 0x66, 0, 0},
10612 {0xA7, 0x66, 0x66, 0, 0},
10613 {0xA8, 0x66, 0x66, 0, 0},
10614 {0xA9, 0x66, 0x66, 0, 0},
10615 {0xAA, 0x66, 0x66, 0, 0},
10616 {0xAB, 0x66, 0x66, 0, 0},
10617 {0xAC, 0x66, 0x66, 0, 0},
10618 {0xAD, 0x66, 0x66, 0, 0},
10619 {0xAE, 0x66, 0x66, 0, 0},
10620 {0xAF, 0x66, 0x66, 0, 0},
10621 {0xB0, 0x66, 0x66, 0, 0},
10622 {0xB1, 0x66, 0x66, 0, 0},
10623 {0xB2, 0x66, 0x66, 0, 0},
10624 {0xB3, 0xa, 0xa, 0, 0},
10625 {0xB4, 0, 0, 0, 0},
10626 {0xB5, 0, 0, 0, 0},
10627 {0xB6, 0, 0, 0, 0},
10628 {0xFFFF, 0, 0, 0, 0},
10631 static struct radio_regs regs_TX_2056_rev8[] = {
10632 {0x02, 0, 0, 0, 0},
10633 {0x03, 0, 0, 0, 0},
10634 {0x04, 0, 0, 0, 0},
10635 {0x05, 0, 0, 0, 0},
10636 {0x06, 0, 0, 0, 0},
10637 {0x07, 0, 0, 0, 0},
10638 {0x08, 0, 0, 0, 0},
10639 {0x09, 0, 0, 0, 0},
10640 {0x0A, 0, 0, 0, 0},
10641 {0x0B, 0, 0, 0, 0},
10642 {0x0C, 0, 0, 0, 0},
10643 {0x0D, 0, 0, 0, 0},
10644 {0x0E, 0, 0, 0, 0},
10645 {0x0F, 0, 0, 0, 0},
10646 {0x10, 0, 0, 0, 0},
10647 {0x11, 0, 0, 0, 0},
10648 {0x12, 0, 0, 0, 0},
10649 {0x13, 0, 0, 0, 0},
10650 {0x14, 0, 0, 0, 0},
10651 {0x15, 0, 0, 0, 0},
10652 {0x16, 0, 0, 0, 0},
10653 {0x17, 0, 0, 0, 0},
10654 {0x18, 0, 0, 0, 0},
10655 {0x19, 0, 0, 0, 0},
10656 {0x1A, 0, 0, 0, 0},
10657 {0x1B, 0, 0, 0, 0},
10658 {0x1C, 0, 0, 0, 0},
10659 {0x1D, 0, 0, 0, 0},
10660 {0x1E, 0, 0, 0, 0},
10661 {0x1F, 0, 0, 0, 0},
10662 {0x20, 0, 0, 0, 0},
10663 {0x21, 0x88, 0x88, 0, 0},
10664 {0x22, 0x88, 0x88, 0, 0},
10665 {0x23, 0x88, 0x88, 0, 0},
10666 {0x24, 0x88, 0x88, 0, 0},
10667 {0x25, 0xc, 0xc, 0, 0},
10668 {0x26, 0, 0, 0, 0},
10669 {0x27, 0x3, 0x3, 0, 0},
10670 {0x28, 0, 0, 0, 0},
10671 {0x29, 0x3, 0x3, 0, 0},
10672 {0x2A, 0x37, 0x37, 0, 0},
10673 {0x2B, 0x3, 0x3, 0, 0},
10674 {0x2C, 0, 0, 0, 0},
10675 {0x2D, 0, 0, 0, 0},
10676 {0x2E, 0x1, 0x1, 0, 0},
10677 {0x2F, 0x1, 0x1, 0, 0},
10678 {0x30, 0, 0, 0, 0},
10679 {0x31, 0, 0, 0, 0},
10680 {0x32, 0, 0, 0, 0},
10681 {0x33, 0x11, 0x11, 0, 0},
10682 {0x34, 0xee, 0xee, 1, 1},
10683 {0x35, 0, 0, 0, 0},
10684 {0x36, 0, 0, 0, 0},
10685 {0x37, 0x3, 0x3, 0, 0},
10686 {0x38, 0x50, 0x50, 1, 1},
10687 {0x39, 0, 0, 0, 0},
10688 {0x3A, 0x50, 0x50, 1, 1},
10689 {0x3B, 0, 0, 0, 0},
10690 {0x3C, 0x6e, 0x6e, 0, 0},
10691 {0x3D, 0xf0, 0xf0, 1, 1},
10692 {0x3E, 0, 0, 0, 0},
10693 {0x3F, 0, 0, 0, 0},
10694 {0x40, 0, 0, 0, 0},
10695 {0x41, 0x3, 0x3, 0, 0},
10696 {0x42, 0x3, 0x3, 0, 0},
10697 {0x43, 0, 0, 0, 0},
10698 {0x44, 0x1e, 0x1e, 0, 0},
10699 {0x45, 0, 0, 0, 0},
10700 {0x46, 0x6e, 0x6e, 0, 0},
10701 {0x47, 0xf0, 0xf0, 1, 1},
10702 {0x48, 0, 0, 0, 0},
10703 {0x49, 0x2, 0x2, 0, 0},
10704 {0x4A, 0xff, 0xff, 1, 1},
10705 {0x4B, 0xc, 0xc, 0, 0},
10706 {0x4C, 0, 0, 0, 0},
10707 {0x4D, 0x38, 0x38, 0, 0},
10708 {0x4E, 0x70, 0x70, 1, 1},
10709 {0x4F, 0x2, 0x2, 0, 0},
10710 {0x50, 0x88, 0x88, 0, 0},
10711 {0x51, 0xc, 0xc, 0, 0},
10712 {0x52, 0, 0, 0, 0},
10713 {0x53, 0x8, 0x8, 0, 0},
10714 {0x54, 0x70, 0x70, 1, 1},
10715 {0x55, 0x2, 0x2, 0, 0},
10716 {0x56, 0xff, 0xff, 1, 1},
10717 {0x57, 0, 0, 0, 0},
10718 {0x58, 0x83, 0x83, 0, 0},
10719 {0x59, 0x77, 0x77, 1, 1},
10720 {0x5A, 0, 0, 0, 0},
10721 {0x5B, 0x2, 0x2, 0, 0},
10722 {0x5C, 0x88, 0x88, 0, 0},
10723 {0x5D, 0, 0, 0, 0},
10724 {0x5E, 0x8, 0x8, 0, 0},
10725 {0x5F, 0x77, 0x77, 1, 1},
10726 {0x60, 0x1, 0x1, 0, 0},
10727 {0x61, 0, 0, 0, 0},
10728 {0x62, 0x7, 0x7, 0, 0},
10729 {0x63, 0, 0, 0, 0},
10730 {0x64, 0x7, 0x7, 0, 0},
10731 {0x65, 0, 0, 0, 0},
10732 {0x66, 0, 0, 0, 0},
10733 {0x67, 0, 0, 1, 1},
10734 {0x68, 0, 0, 0, 0},
10735 {0x69, 0xa, 0xa, 0, 0},
10736 {0x6A, 0, 0, 0, 0},
10737 {0x6B, 0, 0, 0, 0},
10738 {0x6C, 0, 0, 0, 0},
10739 {0x6D, 0, 0, 0, 0},
10740 {0x6E, 0, 0, 0, 0},
10741 {0x6F, 0, 0, 0, 0},
10742 {0x70, 0, 0, 0, 0},
10743 {0x71, 0x2, 0x2, 0, 0},
10744 {0x72, 0, 0, 0, 0},
10745 {0x73, 0, 0, 0, 0},
10746 {0x74, 0xe, 0xe, 0, 0},
10747 {0x75, 0xe, 0xe, 0, 0},
10748 {0x76, 0xe, 0xe, 0, 0},
10749 {0x77, 0x13, 0x13, 0, 0},
10750 {0x78, 0x13, 0x13, 0, 0},
10751 {0x79, 0x1b, 0x1b, 0, 0},
10752 {0x7A, 0x1b, 0x1b, 0, 0},
10753 {0x7B, 0x55, 0x55, 0, 0},
10754 {0x7C, 0x5b, 0x5b, 0, 0},
10755 {0x7D, 0x30, 0x30, 1, 1},
10756 {0x7E, 0, 0, 0, 0},
10757 {0x7F, 0, 0, 0, 0},
10758 {0x80, 0, 0, 0, 0},
10759 {0x81, 0, 0, 0, 0},
10760 {0x82, 0, 0, 0, 0},
10761 {0x83, 0, 0, 0, 0},
10762 {0x84, 0, 0, 0, 0},
10763 {0x85, 0, 0, 0, 0},
10764 {0x86, 0, 0, 0, 0},
10765 {0x87, 0, 0, 0, 0},
10766 {0x88, 0, 0, 0, 0},
10767 {0x89, 0, 0, 0, 0},
10768 {0x8A, 0, 0, 0, 0},
10769 {0x8B, 0, 0, 0, 0},
10770 {0x8C, 0, 0, 0, 0},
10771 {0x8D, 0, 0, 0, 0},
10772 {0x8E, 0, 0, 0, 0},
10773 {0x8F, 0, 0, 0, 0},
10774 {0x90, 0, 0, 0, 0},
10775 {0x91, 0, 0, 0, 0},
10776 {0x92, 0, 0, 0, 0},
10777 {0x93, 0x70, 0x70, 0, 0},
10778 {0x94, 0x70, 0x70, 0, 0},
10779 {0x95, 0x70, 0x70, 0, 0},
10780 {0x96, 0x70, 0x70, 0, 0},
10781 {0x97, 0x70, 0x70, 0, 0},
10782 {0x98, 0x70, 0x70, 0, 0},
10783 {0x99, 0x70, 0x70, 0, 0},
10784 {0x9A, 0x70, 0x70, 0, 0},
10785 {0xFFFF, 0, 0, 0, 0},
10788 static struct radio_regs regs_RX_2056_rev8[] = {
10789 {0x02, 0, 0, 0, 0},
10790 {0x03, 0, 0, 0, 0},
10791 {0x04, 0, 0, 0, 0},
10792 {0x05, 0, 0, 0, 0},
10793 {0x06, 0, 0, 0, 0},
10794 {0x07, 0, 0, 0, 0},
10795 {0x08, 0, 0, 0, 0},
10796 {0x09, 0, 0, 0, 0},
10797 {0x0A, 0, 0, 0, 0},
10798 {0x0B, 0, 0, 0, 0},
10799 {0x0C, 0, 0, 0, 0},
10800 {0x0D, 0, 0, 0, 0},
10801 {0x0E, 0, 0, 0, 0},
10802 {0x0F, 0, 0, 0, 0},
10803 {0x10, 0, 0, 0, 0},
10804 {0x11, 0, 0, 0, 0},
10805 {0x12, 0, 0, 0, 0},
10806 {0x13, 0, 0, 0, 0},
10807 {0x14, 0, 0, 0, 0},
10808 {0x15, 0, 0, 0, 0},
10809 {0x16, 0, 0, 0, 0},
10810 {0x17, 0, 0, 0, 0},
10811 {0x18, 0, 0, 0, 0},
10812 {0x19, 0, 0, 0, 0},
10813 {0x1A, 0, 0, 0, 0},
10814 {0x1B, 0, 0, 0, 0},
10815 {0x1C, 0, 0, 0, 0},
10816 {0x1D, 0, 0, 0, 0},
10817 {0x1E, 0, 0, 0, 0},
10818 {0x1F, 0, 0, 0, 0},
10819 {0x20, 0x3, 0x3, 0, 0},
10820 {0x21, 0, 0, 0, 0},
10821 {0x22, 0, 0, 0, 0},
10822 {0x23, 0x90, 0x90, 0, 0},
10823 {0x24, 0x55, 0x55, 0, 0},
10824 {0x25, 0x15, 0x15, 0, 0},
10825 {0x26, 0x5, 0x5, 0, 0},
10826 {0x27, 0x15, 0x15, 0, 0},
10827 {0x28, 0x5, 0x5, 0, 0},
10828 {0x29, 0x20, 0x20, 0, 0},
10829 {0x2A, 0x11, 0x11, 0, 0},
10830 {0x2B, 0x90, 0x90, 0, 0},
10831 {0x2C, 0, 0, 0, 0},
10832 {0x2D, 0x88, 0x88, 0, 0},
10833 {0x2E, 0x32, 0x32, 0, 0},
10834 {0x2F, 0x77, 0x77, 0, 0},
10835 {0x30, 0x17, 0x17, 1, 1},
10836 {0x31, 0xff, 0xff, 1, 1},
10837 {0x32, 0x20, 0x20, 0, 0},
10838 {0x33, 0, 0, 0, 0},
10839 {0x34, 0x88, 0x88, 0, 0},
10840 {0x35, 0x32, 0x32, 0, 0},
10841 {0x36, 0x77, 0x77, 0, 0},
10842 {0x37, 0x17, 0x17, 1, 1},
10843 {0x38, 0xf0, 0xf0, 1, 1},
10844 {0x39, 0x20, 0x20, 0, 0},
10845 {0x3A, 0x8, 0x8, 0, 0},
10846 {0x3B, 0x55, 0x55, 1, 1},
10847 {0x3C, 0, 0, 0, 0},
10848 {0x3D, 0x88, 0x88, 1, 1},
10849 {0x3E, 0, 0, 0, 0},
10850 {0x3F, 0x44, 0x44, 0, 0},
10851 {0x40, 0x7, 0x7, 1, 1},
10852 {0x41, 0x6, 0x6, 0, 0},
10853 {0x42, 0x4, 0x4, 0, 0},
10854 {0x43, 0, 0, 0, 0},
10855 {0x44, 0x8, 0x8, 0, 0},
10856 {0x45, 0x55, 0x55, 1, 1},
10857 {0x46, 0, 0, 0, 0},
10858 {0x47, 0x11, 0x11, 0, 0},
10859 {0x48, 0, 0, 0, 0},
10860 {0x49, 0x44, 0x44, 0, 0},
10861 {0x4A, 0x7, 0x7, 0, 0},
10862 {0x4B, 0x6, 0x6, 0, 0},
10863 {0x4C, 0x4, 0x4, 0, 0},
10864 {0x4D, 0, 0, 0, 0},
10865 {0x4E, 0, 0, 0, 0},
10866 {0x4F, 0x26, 0x26, 1, 1},
10867 {0x50, 0x26, 0x26, 1, 1},
10868 {0x51, 0xf, 0xf, 1, 1},
10869 {0x52, 0xf, 0xf, 1, 1},
10870 {0x53, 0x44, 0x44, 0, 0},
10871 {0x54, 0, 0, 0, 0},
10872 {0x55, 0, 0, 0, 0},
10873 {0x56, 0x8, 0x8, 0, 0},
10874 {0x57, 0x8, 0x8, 0, 0},
10875 {0x58, 0x7, 0x7, 0, 0},
10876 {0x59, 0x22, 0x22, 0, 0},
10877 {0x5A, 0x22, 0x22, 0, 0},
10878 {0x5B, 0x2, 0x2, 0, 0},
10879 {0x5C, 0x4, 0x4, 1, 1},
10880 {0x5D, 0x7, 0x7, 0, 0},
10881 {0x5E, 0x55, 0x55, 0, 0},
10882 {0x5F, 0x23, 0x23, 0, 0},
10883 {0x60, 0x41, 0x41, 0, 0},
10884 {0x61, 0x1, 0x1, 0, 0},
10885 {0x62, 0xa, 0xa, 0, 0},
10886 {0x63, 0, 0, 0, 0},
10887 {0x64, 0, 0, 0, 0},
10888 {0x65, 0, 0, 0, 0},
10889 {0x66, 0, 0, 0, 0},
10890 {0x67, 0, 0, 0, 0},
10891 {0x68, 0, 0, 0, 0},
10892 {0x69, 0, 0, 0, 0},
10893 {0x6A, 0, 0, 0, 0},
10894 {0x6B, 0xc, 0xc, 0, 0},
10895 {0x6C, 0, 0, 0, 0},
10896 {0x6D, 0, 0, 0, 0},
10897 {0x6E, 0, 0, 0, 0},
10898 {0x6F, 0, 0, 0, 0},
10899 {0x70, 0, 0, 0, 0},
10900 {0x71, 0, 0, 0, 0},
10901 {0x72, 0x22, 0x22, 0, 0},
10902 {0x73, 0x22, 0x22, 0, 0},
10903 {0x74, 0, 0, 1, 1},
10904 {0x75, 0xa, 0xa, 0, 0},
10905 {0x76, 0x1, 0x1, 0, 0},
10906 {0x77, 0x22, 0x22, 0, 0},
10907 {0x78, 0x30, 0x30, 0, 0},
10908 {0x79, 0, 0, 0, 0},
10909 {0x7A, 0, 0, 0, 0},
10910 {0x7B, 0, 0, 0, 0},
10911 {0x7C, 0, 0, 0, 0},
10912 {0x7D, 0x5, 0x5, 1, 1},
10913 {0x7E, 0, 0, 0, 0},
10914 {0x7F, 0, 0, 0, 0},
10915 {0x80, 0, 0, 0, 0},
10916 {0x81, 0, 0, 0, 0},
10917 {0x82, 0, 0, 0, 0},
10918 {0x83, 0, 0, 0, 0},
10919 {0x84, 0, 0, 0, 0},
10920 {0x85, 0, 0, 0, 0},
10921 {0x86, 0, 0, 0, 0},
10922 {0x87, 0, 0, 0, 0},
10923 {0x88, 0, 0, 0, 0},
10924 {0x89, 0, 0, 0, 0},
10925 {0x8A, 0, 0, 0, 0},
10926 {0x8B, 0, 0, 0, 0},
10927 {0x8C, 0, 0, 0, 0},
10928 {0x8D, 0, 0, 0, 0},
10929 {0x8E, 0, 0, 0, 0},
10930 {0x8F, 0, 0, 0, 0},
10931 {0x90, 0, 0, 0, 0},
10932 {0x91, 0, 0, 0, 0},
10933 {0x92, 0, 0, 0, 0},
10934 {0x93, 0, 0, 0, 0},
10935 {0x94, 0, 0, 0, 0},
10936 {0xFFFF, 0, 0, 0, 0},
10939 static const struct radio_regs regs_SYN_2056_rev11[] = {
10940 {0x02, 0, 0, 0, 0},
10941 {0x03, 0, 0, 0, 0},
10942 {0x04, 0, 0, 0, 0},
10943 {0x05, 0, 0, 0, 0},
10944 {0x06, 0, 0, 0, 0},
10945 {0x07, 0, 0, 0, 0},
10946 {0x08, 0, 0, 0, 0},
10947 {0x09, 0x1, 0x1, 0, 0},
10948 {0x0A, 0, 0, 0, 0},
10949 {0x0B, 0, 0, 0, 0},
10950 {0x0C, 0, 0, 0, 0},
10951 {0x0D, 0, 0, 0, 0},
10952 {0x0E, 0, 0, 0, 0},
10953 {0x0F, 0, 0, 0, 0},
10954 {0x10, 0, 0, 0, 0},
10955 {0x11, 0, 0, 0, 0},
10956 {0x12, 0, 0, 0, 0},
10957 {0x13, 0, 0, 0, 0},
10958 {0x14, 0, 0, 0, 0},
10959 {0x15, 0, 0, 0, 0},
10960 {0x16, 0, 0, 0, 0},
10961 {0x17, 0, 0, 0, 0},
10962 {0x18, 0, 0, 0, 0},
10963 {0x19, 0, 0, 0, 0},
10964 {0x1A, 0, 0, 0, 0},
10965 {0x1B, 0, 0, 0, 0},
10966 {0x1C, 0, 0, 0, 0},
10967 {0x1D, 0, 0, 0, 0},
10968 {0x1E, 0, 0, 0, 0},
10969 {0x1F, 0, 0, 0, 0},
10970 {0x20, 0, 0, 0, 0},
10971 {0x21, 0, 0, 0, 0},
10972 {0x22, 0x60, 0x60, 0, 0},
10973 {0x23, 0x6, 0x6, 0, 0},
10974 {0x24, 0xc, 0xc, 0, 0},
10975 {0x25, 0, 0, 0, 0},
10976 {0x26, 0, 0, 0, 0},
10977 {0x27, 0, 0, 0, 0},
10978 {0x28, 0x1, 0x1, 0, 0},
10979 {0x29, 0, 0, 0, 0},
10980 {0x2A, 0, 0, 0, 0},
10981 {0x2B, 0, 0, 0, 0},
10982 {0x2C, 0, 0, 0, 0},
10983 {0x2D, 0, 0, 0, 0},
10984 {0x2E, 0, 0, 0, 0},
10985 {0x2F, 0x1f, 0x1f, 0, 0},
10986 {0x30, 0x15, 0x15, 0, 0},
10987 {0x31, 0xf, 0xf, 0, 0},
10988 {0x32, 0, 0, 0, 0},
10989 {0x33, 0, 0, 0, 0},
10990 {0x34, 0, 0, 0, 0},
10991 {0x35, 0, 0, 0, 0},
10992 {0x36, 0, 0, 0, 0},
10993 {0x37, 0, 0, 0, 0},
10994 {0x38, 0, 0, 0, 0},
10995 {0x39, 0, 0, 0, 0},
10996 {0x3A, 0, 0, 0, 0},
10997 {0x3B, 0, 0, 0, 0},
10998 {0x3C, 0x13, 0x13, 0, 0},
10999 {0x3D, 0xf, 0xf, 0, 0},
11000 {0x3E, 0x18, 0x18, 0, 0},
11001 {0x3F, 0, 0, 0, 0},
11002 {0x40, 0, 0, 0, 0},
11003 {0x41, 0x20, 0x20, 0, 0},
11004 {0x42, 0x20, 0x20, 0, 0},
11005 {0x43, 0, 0, 0, 0},
11006 {0x44, 0x77, 0x77, 0, 0},
11007 {0x45, 0x7, 0x7, 0, 0},
11008 {0x46, 0x1, 0x1, 0, 0},
11009 {0x47, 0x6, 0x6, 1, 1},
11010 {0x48, 0xf, 0xf, 0, 0},
11011 {0x49, 0x3f, 0x3f, 1, 1},
11012 {0x4A, 0x32, 0x32, 0, 0},
11013 {0x4B, 0x6, 0x6, 1, 1},
11014 {0x4C, 0x6, 0x6, 1, 1},
11015 {0x4D, 0x4, 0x4, 0, 0},
11016 {0x4E, 0x2b, 0x2b, 1, 1},
11017 {0x4F, 0x1, 0x1, 0, 0},
11018 {0x50, 0x1c, 0x1c, 0, 0},
11019 {0x51, 0x2, 0x2, 0, 0},
11020 {0x52, 0x2, 0x2, 0, 0},
11021 {0x53, 0xf7, 0xf7, 1, 1},
11022 {0x54, 0xb4, 0xb4, 0, 0},
11023 {0x55, 0xd2, 0xd2, 0, 0},
11024 {0x56, 0, 0, 0, 0},
11025 {0x57, 0, 0, 0, 0},
11026 {0x58, 0x4, 0x4, 0, 0},
11027 {0x59, 0x96, 0x96, 0, 0},
11028 {0x5A, 0x3e, 0x3e, 0, 0},
11029 {0x5B, 0x3e, 0x3e, 0, 0},
11030 {0x5C, 0x13, 0x13, 0, 0},
11031 {0x5D, 0x2, 0x2, 0, 0},
11032 {0x5E, 0, 0, 0, 0},
11033 {0x5F, 0x7, 0x7, 0, 0},
11034 {0x60, 0x7, 0x7, 1, 1},
11035 {0x61, 0x8, 0x8, 0, 0},
11036 {0x62, 0x3, 0x3, 0, 0},
11037 {0x63, 0, 0, 0, 0},
11038 {0x64, 0, 0, 0, 0},
11039 {0x65, 0, 0, 0, 0},
11040 {0x66, 0, 0, 0, 0},
11041 {0x67, 0, 0, 0, 0},
11042 {0x68, 0x40, 0x40, 0, 0},
11043 {0x69, 0, 0, 0, 0},
11044 {0x6A, 0, 0, 0, 0},
11045 {0x6B, 0, 0, 0, 0},
11046 {0x6C, 0, 0, 0, 0},
11047 {0x6D, 0x1, 0x1, 0, 0},
11048 {0x6E, 0, 0, 0, 0},
11049 {0x6F, 0, 0, 0, 0},
11050 {0x70, 0x60, 0x60, 0, 0},
11051 {0x71, 0x66, 0x66, 0, 0},
11052 {0x72, 0xc, 0xc, 0, 0},
11053 {0x73, 0x66, 0x66, 0, 0},
11054 {0x74, 0x8f, 0x8f, 1, 1},
11055 {0x75, 0, 0, 0, 0},
11056 {0x76, 0xcc, 0xcc, 0, 0},
11057 {0x77, 0x1, 0x1, 0, 0},
11058 {0x78, 0x66, 0x66, 0, 0},
11059 {0x79, 0x66, 0x66, 0, 0},
11060 {0x7A, 0, 0, 0, 0},
11061 {0x7B, 0, 0, 0, 0},
11062 {0x7C, 0, 0, 0, 0},
11063 {0x7D, 0, 0, 0, 0},
11064 {0x7E, 0, 0, 0, 0},
11065 {0x7F, 0, 0, 0, 0},
11066 {0x80, 0, 0, 0, 0},
11067 {0x81, 0, 0, 0, 0},
11068 {0x82, 0, 0, 0, 0},
11069 {0x83, 0, 0, 0, 0},
11070 {0x84, 0, 0, 0, 0},
11071 {0x85, 0xff, 0xff, 0, 0},
11072 {0x86, 0, 0, 0, 0},
11073 {0x87, 0, 0, 0, 0},
11074 {0x88, 0, 0, 0, 0},
11075 {0x89, 0, 0, 0, 0},
11076 {0x8A, 0, 0, 0, 0},
11077 {0x8B, 0, 0, 0, 0},
11078 {0x8C, 0, 0, 0, 0},
11079 {0x8D, 0, 0, 0, 0},
11080 {0x8E, 0, 0, 0, 0},
11081 {0x8F, 0, 0, 0, 0},
11082 {0x90, 0, 0, 0, 0},
11083 {0x91, 0, 0, 0, 0},
11084 {0x92, 0, 0, 0, 0},
11085 {0x93, 0, 0, 0, 0},
11086 {0x94, 0, 0, 0, 0},
11087 {0x95, 0, 0, 0, 0},
11088 {0x96, 0, 0, 0, 0},
11089 {0x97, 0, 0, 0, 0},
11090 {0x98, 0, 0, 0, 0},
11091 {0x99, 0, 0, 0, 0},
11092 {0x9A, 0, 0, 0, 0},
11093 {0x9B, 0, 0, 0, 0},
11094 {0x9C, 0, 0, 0, 0},
11095 {0x9D, 0, 0, 0, 0},
11096 {0x9E, 0, 0, 0, 0},
11097 {0x9F, 0x6, 0x6, 0, 0},
11098 {0xA0, 0x66, 0x66, 0, 0},
11099 {0xA1, 0x66, 0x66, 0, 0},
11100 {0xA2, 0x66, 0x66, 0, 0},
11101 {0xA3, 0x66, 0x66, 0, 0},
11102 {0xA4, 0x66, 0x66, 0, 0},
11103 {0xA5, 0x66, 0x66, 0, 0},
11104 {0xA6, 0x66, 0x66, 0, 0},
11105 {0xA7, 0x66, 0x66, 0, 0},
11106 {0xA8, 0x66, 0x66, 0, 0},
11107 {0xA9, 0x66, 0x66, 0, 0},
11108 {0xAA, 0x66, 0x66, 0, 0},
11109 {0xAB, 0x66, 0x66, 0, 0},
11110 {0xAC, 0x66, 0x66, 0, 0},
11111 {0xAD, 0x66, 0x66, 0, 0},
11112 {0xAE, 0x66, 0x66, 0, 0},
11113 {0xAF, 0x66, 0x66, 0, 0},
11114 {0xB0, 0x66, 0x66, 0, 0},
11115 {0xB1, 0x66, 0x66, 0, 0},
11116 {0xB2, 0x66, 0x66, 0, 0},
11117 {0xB3, 0xa, 0xa, 0, 0},
11118 {0xB4, 0, 0, 0, 0},
11119 {0xB5, 0, 0, 0, 0},
11120 {0xB6, 0, 0, 0, 0},
11121 {0xFFFF, 0, 0, 0, 0},
11124 static const struct radio_regs regs_TX_2056_rev11[] = {
11125 {0x02, 0, 0, 0, 0},
11126 {0x03, 0, 0, 0, 0},
11127 {0x04, 0, 0, 0, 0},
11128 {0x05, 0, 0, 0, 0},
11129 {0x06, 0, 0, 0, 0},
11130 {0x07, 0, 0, 0, 0},
11131 {0x08, 0, 0, 0, 0},
11132 {0x09, 0, 0, 0, 0},
11133 {0x0A, 0, 0, 0, 0},
11134 {0x0B, 0, 0, 0, 0},
11135 {0x0C, 0, 0, 0, 0},
11136 {0x0D, 0, 0, 0, 0},
11137 {0x0E, 0, 0, 0, 0},
11138 {0x0F, 0, 0, 0, 0},
11139 {0x10, 0, 0, 0, 0},
11140 {0x11, 0, 0, 0, 0},
11141 {0x12, 0, 0, 0, 0},
11142 {0x13, 0, 0, 0, 0},
11143 {0x14, 0, 0, 0, 0},
11144 {0x15, 0, 0, 0, 0},
11145 {0x16, 0, 0, 0, 0},
11146 {0x17, 0, 0, 0, 0},
11147 {0x18, 0, 0, 0, 0},
11148 {0x19, 0, 0, 0, 0},
11149 {0x1A, 0, 0, 0, 0},
11150 {0x1B, 0, 0, 0, 0},
11151 {0x1C, 0, 0, 0, 0},
11152 {0x1D, 0, 0, 0, 0},
11153 {0x1E, 0, 0, 0, 0},
11154 {0x1F, 0, 0, 0, 0},
11155 {0x20, 0, 0, 0, 0},
11156 {0x21, 0x88, 0x88, 0, 0},
11157 {0x22, 0x88, 0x88, 0, 0},
11158 {0x23, 0x88, 0x88, 0, 0},
11159 {0x24, 0x88, 0x88, 0, 0},
11160 {0x25, 0xc, 0xc, 0, 0},
11161 {0x26, 0, 0, 0, 0},
11162 {0x27, 0x3, 0x3, 0, 0},
11163 {0x28, 0, 0, 0, 0},
11164 {0x29, 0x3, 0x3, 0, 0},
11165 {0x2A, 0x37, 0x37, 0, 0},
11166 {0x2B, 0x3, 0x3, 0, 0},
11167 {0x2C, 0, 0, 0, 0},
11168 {0x2D, 0, 0, 0, 0},
11169 {0x2E, 0x1, 0x1, 0, 0},
11170 {0x2F, 0x1, 0x1, 0, 0},
11171 {0x30, 0, 0, 0, 0},
11172 {0x31, 0, 0, 0, 0},
11173 {0x32, 0, 0, 0, 0},
11174 {0x33, 0x11, 0x11, 0, 0},
11175 {0x34, 0xee, 0xee, 1, 1},
11176 {0x35, 0, 0, 0, 0},
11177 {0x36, 0, 0, 0, 0},
11178 {0x37, 0x3, 0x3, 0, 0},
11179 {0x38, 0x50, 0x50, 1, 1},
11180 {0x39, 0, 0, 0, 0},
11181 {0x3A, 0x50, 0x50, 1, 1},
11182 {0x3B, 0, 0, 0, 0},
11183 {0x3C, 0x6e, 0x6e, 0, 0},
11184 {0x3D, 0xf0, 0xf0, 1, 1},
11185 {0x3E, 0, 0, 0, 0},
11186 {0x3F, 0, 0, 0, 0},
11187 {0x40, 0, 0, 0, 0},
11188 {0x41, 0x3, 0x3, 0, 0},
11189 {0x42, 0x3, 0x3, 0, 0},
11190 {0x43, 0, 0, 0, 0},
11191 {0x44, 0x1e, 0x1e, 0, 0},
11192 {0x45, 0, 0, 0, 0},
11193 {0x46, 0x6e, 0x6e, 0, 0},
11194 {0x47, 0xf0, 0xf0, 1, 1},
11195 {0x48, 0, 0, 0, 0},
11196 {0x49, 0x2, 0x2, 0, 0},
11197 {0x4A, 0xff, 0xff, 1, 1},
11198 {0x4B, 0xc, 0xc, 0, 0},
11199 {0x4C, 0, 0, 0, 0},
11200 {0x4D, 0x38, 0x38, 0, 0},
11201 {0x4E, 0x70, 0x70, 1, 1},
11202 {0x4F, 0x2, 0x2, 0, 0},
11203 {0x50, 0x88, 0x88, 0, 0},
11204 {0x51, 0xc, 0xc, 0, 0},
11205 {0x52, 0, 0, 0, 0},
11206 {0x53, 0x8, 0x8, 0, 0},
11207 {0x54, 0x70, 0x70, 1, 1},
11208 {0x55, 0x2, 0x2, 0, 0},
11209 {0x56, 0xff, 0xff, 1, 1},
11210 {0x57, 0, 0, 0, 0},
11211 {0x58, 0x83, 0x83, 0, 0},
11212 {0x59, 0x77, 0x77, 1, 1},
11213 {0x5A, 0, 0, 0, 0},
11214 {0x5B, 0x2, 0x2, 0, 0},
11215 {0x5C, 0x88, 0x88, 0, 0},
11216 {0x5D, 0, 0, 0, 0},
11217 {0x5E, 0x8, 0x8, 0, 0},
11218 {0x5F, 0x77, 0x77, 1, 1},
11219 {0x60, 0x1, 0x1, 0, 0},
11220 {0x61, 0, 0, 0, 0},
11221 {0x62, 0x7, 0x7, 0, 0},
11222 {0x63, 0, 0, 0, 0},
11223 {0x64, 0x7, 0x7, 0, 0},
11224 {0x65, 0, 0, 0, 0},
11225 {0x66, 0, 0, 0, 0},
11226 {0x67, 0, 0, 1, 1},
11227 {0x68, 0, 0, 0, 0},
11228 {0x69, 0xa, 0xa, 0, 0},
11229 {0x6A, 0, 0, 0, 0},
11230 {0x6B, 0, 0, 0, 0},
11231 {0x6C, 0, 0, 0, 0},
11232 {0x6D, 0, 0, 0, 0},
11233 {0x6E, 0, 0, 0, 0},
11234 {0x6F, 0, 0, 0, 0},
11235 {0x70, 0, 0, 0, 0},
11236 {0x71, 0x2, 0x2, 0, 0},
11237 {0x72, 0, 0, 0, 0},
11238 {0x73, 0, 0, 0, 0},
11239 {0x74, 0xe, 0xe, 0, 0},
11240 {0x75, 0xe, 0xe, 0, 0},
11241 {0x76, 0xe, 0xe, 0, 0},
11242 {0x77, 0x13, 0x13, 0, 0},
11243 {0x78, 0x13, 0x13, 0, 0},
11244 {0x79, 0x1b, 0x1b, 0, 0},
11245 {0x7A, 0x1b, 0x1b, 0, 0},
11246 {0x7B, 0x55, 0x55, 0, 0},
11247 {0x7C, 0x5b, 0x5b, 0, 0},
11248 {0x7D, 0x30, 0x30, 1, 1},
11249 {0x7E, 0, 0, 0, 0},
11250 {0x7F, 0, 0, 0, 0},
11251 {0x80, 0, 0, 0, 0},
11252 {0x81, 0, 0, 0, 0},
11253 {0x82, 0, 0, 0, 0},
11254 {0x83, 0, 0, 0, 0},
11255 {0x84, 0, 0, 0, 0},
11256 {0x85, 0, 0, 0, 0},
11257 {0x86, 0, 0, 0, 0},
11258 {0x87, 0, 0, 0, 0},
11259 {0x88, 0, 0, 0, 0},
11260 {0x89, 0, 0, 0, 0},
11261 {0x8A, 0, 0, 0, 0},
11262 {0x8B, 0, 0, 0, 0},
11263 {0x8C, 0, 0, 0, 0},
11264 {0x8D, 0, 0, 0, 0},
11265 {0x8E, 0, 0, 0, 0},
11266 {0x8F, 0, 0, 0, 0},
11267 {0x90, 0, 0, 0, 0},
11268 {0x91, 0, 0, 0, 0},
11269 {0x92, 0, 0, 0, 0},
11270 {0x93, 0x70, 0x70, 0, 0},
11271 {0x94, 0x70, 0x70, 0, 0},
11272 {0x95, 0x70, 0x70, 0, 0},
11273 {0x96, 0x70, 0x70, 0, 0},
11274 {0x97, 0x70, 0x70, 0, 0},
11275 {0x98, 0x70, 0x70, 0, 0},
11276 {0x99, 0x70, 0x70, 0, 0},
11277 {0x9A, 0x70, 0x70, 0, 0},
11278 {0xFFFF, 0, 0, 0, 0},
11281 static const struct radio_regs regs_RX_2056_rev11[] = {
11282 {0x02, 0, 0, 0, 0},
11283 {0x03, 0, 0, 0, 0},
11284 {0x04, 0, 0, 0, 0},
11285 {0x05, 0, 0, 0, 0},
11286 {0x06, 0, 0, 0, 0},
11287 {0x07, 0, 0, 0, 0},
11288 {0x08, 0, 0, 0, 0},
11289 {0x09, 0, 0, 0, 0},
11290 {0x0A, 0, 0, 0, 0},
11291 {0x0B, 0, 0, 0, 0},
11292 {0x0C, 0, 0, 0, 0},
11293 {0x0D, 0, 0, 0, 0},
11294 {0x0E, 0, 0, 0, 0},
11295 {0x0F, 0, 0, 0, 0},
11296 {0x10, 0, 0, 0, 0},
11297 {0x11, 0, 0, 0, 0},
11298 {0x12, 0, 0, 0, 0},
11299 {0x13, 0, 0, 0, 0},
11300 {0x14, 0, 0, 0, 0},
11301 {0x15, 0, 0, 0, 0},
11302 {0x16, 0, 0, 0, 0},
11303 {0x17, 0, 0, 0, 0},
11304 {0x18, 0, 0, 0, 0},
11305 {0x19, 0, 0, 0, 0},
11306 {0x1A, 0, 0, 0, 0},
11307 {0x1B, 0, 0, 0, 0},
11308 {0x1C, 0, 0, 0, 0},
11309 {0x1D, 0, 0, 0, 0},
11310 {0x1E, 0, 0, 0, 0},
11311 {0x1F, 0, 0, 0, 0},
11312 {0x20, 0x3, 0x3, 0, 0},
11313 {0x21, 0, 0, 0, 0},
11314 {0x22, 0, 0, 0, 0},
11315 {0x23, 0x90, 0x90, 0, 0},
11316 {0x24, 0x55, 0x55, 0, 0},
11317 {0x25, 0x15, 0x15, 0, 0},
11318 {0x26, 0x5, 0x5, 0, 0},
11319 {0x27, 0x15, 0x15, 0, 0},
11320 {0x28, 0x5, 0x5, 0, 0},
11321 {0x29, 0x20, 0x20, 0, 0},
11322 {0x2A, 0x11, 0x11, 0, 0},
11323 {0x2B, 0x90, 0x90, 0, 0},
11324 {0x2C, 0, 0, 0, 0},
11325 {0x2D, 0x88, 0x88, 0, 0},
11326 {0x2E, 0x32, 0x32, 0, 0},
11327 {0x2F, 0x77, 0x77, 0, 0},
11328 {0x30, 0x17, 0x17, 1, 1},
11329 {0x31, 0xff, 0xff, 1, 1},
11330 {0x32, 0x20, 0x20, 0, 0},
11331 {0x33, 0, 0, 0, 0},
11332 {0x34, 0x88, 0x88, 0, 0},
11333 {0x35, 0x32, 0x32, 0, 0},
11334 {0x36, 0x77, 0x77, 0, 0},
11335 {0x37, 0x17, 0x17, 1, 1},
11336 {0x38, 0xf0, 0xf0, 1, 1},
11337 {0x39, 0x20, 0x20, 0, 0},
11338 {0x3A, 0x8, 0x8, 0, 0},
11339 {0x3B, 0x55, 0x55, 1, 1},
11340 {0x3C, 0, 0, 0, 0},
11341 {0x3D, 0x88, 0x88, 1, 1},
11342 {0x3E, 0, 0, 0, 0},
11343 {0x3F, 0x44, 0x44, 0, 0},
11344 {0x40, 0x7, 0x7, 1, 1},
11345 {0x41, 0x6, 0x6, 0, 0},
11346 {0x42, 0x4, 0x4, 0, 0},
11347 {0x43, 0, 0, 0, 0},
11348 {0x44, 0x8, 0x8, 0, 0},
11349 {0x45, 0x55, 0x55, 1, 1},
11350 {0x46, 0, 0, 0, 0},
11351 {0x47, 0x11, 0x11, 0, 0},
11352 {0x48, 0, 0, 0, 0},
11353 {0x49, 0x44, 0x44, 0, 0},
11354 {0x4A, 0x7, 0x7, 0, 0},
11355 {0x4B, 0x6, 0x6, 0, 0},
11356 {0x4C, 0x4, 0x4, 0, 0},
11357 {0x4D, 0, 0, 0, 0},
11358 {0x4E, 0, 0, 0, 0},
11359 {0x4F, 0x26, 0x26, 1, 1},
11360 {0x50, 0x26, 0x26, 1, 1},
11361 {0x51, 0xf, 0xf, 1, 1},
11362 {0x52, 0xf, 0xf, 1, 1},
11363 {0x53, 0x44, 0x44, 0, 0},
11364 {0x54, 0, 0, 0, 0},
11365 {0x55, 0, 0, 0, 0},
11366 {0x56, 0x8, 0x8, 0, 0},
11367 {0x57, 0x8, 0x8, 0, 0},
11368 {0x58, 0x7, 0x7, 0, 0},
11369 {0x59, 0x22, 0x22, 0, 0},
11370 {0x5A, 0x22, 0x22, 0, 0},
11371 {0x5B, 0x2, 0x2, 0, 0},
11372 {0x5C, 0x4, 0x4, 1, 1},
11373 {0x5D, 0x7, 0x7, 0, 0},
11374 {0x5E, 0x55, 0x55, 0, 0},
11375 {0x5F, 0x23, 0x23, 0, 0},
11376 {0x60, 0x41, 0x41, 0, 0},
11377 {0x61, 0x1, 0x1, 0, 0},
11378 {0x62, 0xa, 0xa, 0, 0},
11379 {0x63, 0, 0, 0, 0},
11380 {0x64, 0, 0, 0, 0},
11381 {0x65, 0, 0, 0, 0},
11382 {0x66, 0, 0, 0, 0},
11383 {0x67, 0, 0, 0, 0},
11384 {0x68, 0, 0, 0, 0},
11385 {0x69, 0, 0, 0, 0},
11386 {0x6A, 0, 0, 0, 0},
11387 {0x6B, 0xc, 0xc, 0, 0},
11388 {0x6C, 0, 0, 0, 0},
11389 {0x6D, 0, 0, 0, 0},
11390 {0x6E, 0, 0, 0, 0},
11391 {0x6F, 0, 0, 0, 0},
11392 {0x70, 0, 0, 0, 0},
11393 {0x71, 0, 0, 0, 0},
11394 {0x72, 0x22, 0x22, 0, 0},
11395 {0x73, 0x22, 0x22, 0, 0},
11396 {0x74, 0, 0, 1, 1},
11397 {0x75, 0xa, 0xa, 0, 0},
11398 {0x76, 0x1, 0x1, 0, 0},
11399 {0x77, 0x22, 0x22, 0, 0},
11400 {0x78, 0x30, 0x30, 0, 0},
11401 {0x79, 0, 0, 0, 0},
11402 {0x7A, 0, 0, 0, 0},
11403 {0x7B, 0, 0, 0, 0},
11404 {0x7C, 0, 0, 0, 0},
11405 {0x7D, 0x5, 0x5, 1, 1},
11406 {0x7E, 0, 0, 0, 0},
11407 {0x7F, 0, 0, 0, 0},
11408 {0x80, 0, 0, 0, 0},
11409 {0x81, 0, 0, 0, 0},
11410 {0x82, 0, 0, 0, 0},
11411 {0x83, 0, 0, 0, 0},
11412 {0x84, 0, 0, 0, 0},
11413 {0x85, 0, 0, 0, 0},
11414 {0x86, 0, 0, 0, 0},
11415 {0x87, 0, 0, 0, 0},
11416 {0x88, 0, 0, 0, 0},
11417 {0x89, 0, 0, 0, 0},
11418 {0x8A, 0, 0, 0, 0},
11419 {0x8B, 0, 0, 0, 0},
11420 {0x8C, 0, 0, 0, 0},
11421 {0x8D, 0, 0, 0, 0},
11422 {0x8E, 0, 0, 0, 0},
11423 {0x8F, 0, 0, 0, 0},
11424 {0x90, 0, 0, 0, 0},
11425 {0x91, 0, 0, 0, 0},
11426 {0x92, 0, 0, 0, 0},
11427 {0x93, 0, 0, 0, 0},
11428 {0x94, 0, 0, 0, 0},
11429 {0xFFFF, 0, 0, 0, 0},
11432 static struct radio_20xx_regs regs_2057_rev4[] = {
11433 {0x00, 0x84, 0},
11434 {0x01, 0, 0},
11435 {0x02, 0x60, 0},
11436 {0x03, 0x1f, 0},
11437 {0x04, 0x4, 0},
11438 {0x05, 0x2, 0},
11439 {0x06, 0x1, 0},
11440 {0x07, 0x1, 0},
11441 {0x08, 0x1, 0},
11442 {0x09, 0x69, 0},
11443 {0x0A, 0x66, 0},
11444 {0x0B, 0x6, 0},
11445 {0x0C, 0x18, 0},
11446 {0x0D, 0x3, 0},
11447 {0x0E, 0x20, 1},
11448 {0x0F, 0x20, 0},
11449 {0x10, 0, 0},
11450 {0x11, 0x7c, 0},
11451 {0x12, 0x42, 0},
11452 {0x13, 0xbd, 0},
11453 {0x14, 0x7, 0},
11454 {0x15, 0xf7, 0},
11455 {0x16, 0x8, 0},
11456 {0x17, 0x17, 0},
11457 {0x18, 0x7, 0},
11458 {0x19, 0, 0},
11459 {0x1A, 0x2, 0},
11460 {0x1B, 0x13, 0},
11461 {0x1C, 0x3e, 0},
11462 {0x1D, 0x3e, 0},
11463 {0x1E, 0x96, 0},
11464 {0x1F, 0x4, 0},
11465 {0x20, 0, 0},
11466 {0x21, 0, 0},
11467 {0x22, 0x17, 0},
11468 {0x23, 0x4, 0},
11469 {0x24, 0x1, 0},
11470 {0x25, 0x6, 0},
11471 {0x26, 0x4, 0},
11472 {0x27, 0xd, 0},
11473 {0x28, 0xd, 0},
11474 {0x29, 0x30, 0},
11475 {0x2A, 0x32, 0},
11476 {0x2B, 0x8, 0},
11477 {0x2C, 0x1c, 0},
11478 {0x2D, 0x2, 0},
11479 {0x2E, 0x4, 0},
11480 {0x2F, 0x7f, 0},
11481 {0x30, 0x27, 0},
11482 {0x31, 0, 1},
11483 {0x32, 0, 1},
11484 {0x33, 0, 1},
11485 {0x34, 0, 0},
11486 {0x35, 0x26, 1},
11487 {0x36, 0x18, 0},
11488 {0x37, 0x7, 0},
11489 {0x38, 0x66, 0},
11490 {0x39, 0x66, 0},
11491 {0x3A, 0x66, 0},
11492 {0x3B, 0x66, 0},
11493 {0x3C, 0xff, 1},
11494 {0x3D, 0xff, 1},
11495 {0x3E, 0xff, 1},
11496 {0x3F, 0xff, 1},
11497 {0x40, 0x16, 0},
11498 {0x41, 0x7, 0},
11499 {0x42, 0x19, 0},
11500 {0x43, 0x7, 0},
11501 {0x44, 0x6, 0},
11502 {0x45, 0x3, 0},
11503 {0x46, 0x1, 0},
11504 {0x47, 0x7, 0},
11505 {0x48, 0x33, 0},
11506 {0x49, 0x5, 0},
11507 {0x4A, 0x77, 0},
11508 {0x4B, 0x66, 0},
11509 {0x4C, 0x66, 0},
11510 {0x4D, 0, 0},
11511 {0x4E, 0x4, 0},
11512 {0x4F, 0xc, 0},
11513 {0x50, 0, 0},
11514 {0x51, 0x75, 0},
11515 {0x56, 0x7, 0},
11516 {0x57, 0, 0},
11517 {0x58, 0, 0},
11518 {0x59, 0xa8, 0},
11519 {0x5A, 0, 0},
11520 {0x5B, 0x1f, 0},
11521 {0x5C, 0x30, 0},
11522 {0x5D, 0x1, 0},
11523 {0x5E, 0x30, 0},
11524 {0x5F, 0x70, 0},
11525 {0x60, 0, 0},
11526 {0x61, 0, 0},
11527 {0x62, 0x33, 1},
11528 {0x63, 0x19, 0},
11529 {0x64, 0x62, 0},
11530 {0x65, 0, 0},
11531 {0x66, 0x11, 0},
11532 {0x69, 0, 0},
11533 {0x6A, 0x7e, 0},
11534 {0x6B, 0x3f, 0},
11535 {0x6C, 0x7f, 0},
11536 {0x6D, 0x78, 0},
11537 {0x6E, 0xc8, 0},
11538 {0x6F, 0x88, 0},
11539 {0x70, 0x8, 0},
11540 {0x71, 0xf, 0},
11541 {0x72, 0xbc, 0},
11542 {0x73, 0x8, 0},
11543 {0x74, 0x60, 0},
11544 {0x75, 0x1e, 0},
11545 {0x76, 0x70, 0},
11546 {0x77, 0, 0},
11547 {0x78, 0, 0},
11548 {0x79, 0, 0},
11549 {0x7A, 0x33, 0},
11550 {0x7B, 0x1e, 0},
11551 {0x7C, 0x62, 0},
11552 {0x7D, 0x11, 0},
11553 {0x80, 0x3c, 0},
11554 {0x81, 0x9c, 0},
11555 {0x82, 0xa, 0},
11556 {0x83, 0x9d, 0},
11557 {0x84, 0xa, 0},
11558 {0x85, 0, 0},
11559 {0x86, 0x40, 0},
11560 {0x87, 0x40, 0},
11561 {0x88, 0x88, 0},
11562 {0x89, 0x10, 0},
11563 {0x8A, 0xf0, 1},
11564 {0x8B, 0x10, 1},
11565 {0x8C, 0xf0, 1},
11566 {0x8D, 0, 0},
11567 {0x8E, 0, 0},
11568 {0x8F, 0x10, 0},
11569 {0x90, 0x55, 0},
11570 {0x91, 0x3f, 1},
11571 {0x92, 0x36, 1},
11572 {0x93, 0, 0},
11573 {0x94, 0, 0},
11574 {0x95, 0, 0},
11575 {0x96, 0x87, 0},
11576 {0x97, 0x11, 0},
11577 {0x98, 0, 0},
11578 {0x99, 0x33, 0},
11579 {0x9A, 0x88, 0},
11580 {0x9B, 0, 0},
11581 {0x9C, 0x87, 0},
11582 {0x9D, 0x11, 0},
11583 {0x9E, 0, 0},
11584 {0x9F, 0x33, 0},
11585 {0xA0, 0x88, 0},
11586 {0xA1, 0xe1, 0},
11587 {0xA2, 0x3f, 0},
11588 {0xA3, 0x44, 0},
11589 {0xA4, 0x8c, 1},
11590 {0xA5, 0x6d, 0},
11591 {0xA6, 0x22, 0},
11592 {0xA7, 0xbe, 0},
11593 {0xA8, 0x55, 1},
11594 {0xA9, 0xc, 0},
11595 {0xAA, 0xc, 0},
11596 {0xAB, 0xaa, 0},
11597 {0xAC, 0x2, 0},
11598 {0xAD, 0, 0},
11599 {0xAE, 0x10, 0},
11600 {0xAF, 0x1, 1},
11601 {0xB0, 0, 0},
11602 {0xB1, 0, 0},
11603 {0xB2, 0x80, 0},
11604 {0xB3, 0x60, 0},
11605 {0xB4, 0x44, 0},
11606 {0xB5, 0x55, 0},
11607 {0xB6, 0x1, 0},
11608 {0xB7, 0x55, 0},
11609 {0xB8, 0x1, 0},
11610 {0xB9, 0x5, 0},
11611 {0xBA, 0x55, 0},
11612 {0xBB, 0x55, 0},
11613 {0xC1, 0, 0},
11614 {0xC2, 0, 0},
11615 {0xC3, 0, 0},
11616 {0xC4, 0, 0},
11617 {0xC5, 0, 0},
11618 {0xC6, 0, 0},
11619 {0xC7, 0, 0},
11620 {0xC8, 0, 0},
11621 {0xC9, 0, 0},
11622 {0xCA, 0, 0},
11623 {0xCB, 0, 0},
11624 {0xCC, 0, 0},
11625 {0xCD, 0, 0},
11626 {0xCE, 0x5e, 0},
11627 {0xCF, 0xc, 0},
11628 {0xD0, 0xc, 0},
11629 {0xD1, 0xc, 0},
11630 {0xD2, 0, 0},
11631 {0xD3, 0x2b, 0},
11632 {0xD4, 0xc, 0},
11633 {0xD5, 0, 0},
11634 {0xD6, 0x75, 0},
11635 {0xDB, 0x7, 0},
11636 {0xDC, 0, 0},
11637 {0xDD, 0, 0},
11638 {0xDE, 0xa8, 0},
11639 {0xDF, 0, 0},
11640 {0xE0, 0x1f, 0},
11641 {0xE1, 0x30, 0},
11642 {0xE2, 0x1, 0},
11643 {0xE3, 0x30, 0},
11644 {0xE4, 0x70, 0},
11645 {0xE5, 0, 0},
11646 {0xE6, 0, 0},
11647 {0xE7, 0x33, 0},
11648 {0xE8, 0x19, 0},
11649 {0xE9, 0x62, 0},
11650 {0xEA, 0, 0},
11651 {0xEB, 0x11, 0},
11652 {0xEE, 0, 0},
11653 {0xEF, 0x7e, 0},
11654 {0xF0, 0x3f, 0},
11655 {0xF1, 0x7f, 0},
11656 {0xF2, 0x78, 0},
11657 {0xF3, 0xc8, 0},
11658 {0xF4, 0x88, 0},
11659 {0xF5, 0x8, 0},
11660 {0xF6, 0xf, 0},
11661 {0xF7, 0xbc, 0},
11662 {0xF8, 0x8, 0},
11663 {0xF9, 0x60, 0},
11664 {0xFA, 0x1e, 0},
11665 {0xFB, 0x70, 0},
11666 {0xFC, 0, 0},
11667 {0xFD, 0, 0},
11668 {0xFE, 0, 0},
11669 {0xFF, 0x33, 0},
11670 {0x100, 0x1e, 0},
11671 {0x101, 0x62, 0},
11672 {0x102, 0x11, 0},
11673 {0x105, 0x3c, 0},
11674 {0x106, 0x9c, 0},
11675 {0x107, 0xa, 0},
11676 {0x108, 0x9d, 0},
11677 {0x109, 0xa, 0},
11678 {0x10A, 0, 0},
11679 {0x10B, 0x40, 0},
11680 {0x10C, 0x40, 0},
11681 {0x10D, 0x88, 0},
11682 {0x10E, 0x10, 0},
11683 {0x10F, 0xf0, 1},
11684 {0x110, 0x10, 1},
11685 {0x111, 0xf0, 1},
11686 {0x112, 0, 0},
11687 {0x113, 0, 0},
11688 {0x114, 0x10, 0},
11689 {0x115, 0x55, 0},
11690 {0x116, 0x3f, 1},
11691 {0x117, 0x36, 1},
11692 {0x118, 0, 0},
11693 {0x119, 0, 0},
11694 {0x11A, 0, 0},
11695 {0x11B, 0x87, 0},
11696 {0x11C, 0x11, 0},
11697 {0x11D, 0, 0},
11698 {0x11E, 0x33, 0},
11699 {0x11F, 0x88, 0},
11700 {0x120, 0, 0},
11701 {0x121, 0x87, 0},
11702 {0x122, 0x11, 0},
11703 {0x123, 0, 0},
11704 {0x124, 0x33, 0},
11705 {0x125, 0x88, 0},
11706 {0x126, 0xe1, 0},
11707 {0x127, 0x3f, 0},
11708 {0x128, 0x44, 0},
11709 {0x129, 0x8c, 1},
11710 {0x12A, 0x6d, 0},
11711 {0x12B, 0x22, 0},
11712 {0x12C, 0xbe, 0},
11713 {0x12D, 0x55, 1},
11714 {0x12E, 0xc, 0},
11715 {0x12F, 0xc, 0},
11716 {0x130, 0xaa, 0},
11717 {0x131, 0x2, 0},
11718 {0x132, 0, 0},
11719 {0x133, 0x10, 0},
11720 {0x134, 0x1, 1},
11721 {0x135, 0, 0},
11722 {0x136, 0, 0},
11723 {0x137, 0x80, 0},
11724 {0x138, 0x60, 0},
11725 {0x139, 0x44, 0},
11726 {0x13A, 0x55, 0},
11727 {0x13B, 0x1, 0},
11728 {0x13C, 0x55, 0},
11729 {0x13D, 0x1, 0},
11730 {0x13E, 0x5, 0},
11731 {0x13F, 0x55, 0},
11732 {0x140, 0x55, 0},
11733 {0x146, 0, 0},
11734 {0x147, 0, 0},
11735 {0x148, 0, 0},
11736 {0x149, 0, 0},
11737 {0x14A, 0, 0},
11738 {0x14B, 0, 0},
11739 {0x14C, 0, 0},
11740 {0x14D, 0, 0},
11741 {0x14E, 0, 0},
11742 {0x14F, 0, 0},
11743 {0x150, 0, 0},
11744 {0x151, 0, 0},
11745 {0x152, 0, 0},
11746 {0x153, 0, 0},
11747 {0x154, 0xc, 0},
11748 {0x155, 0xc, 0},
11749 {0x156, 0xc, 0},
11750 {0x157, 0, 0},
11751 {0x158, 0x2b, 0},
11752 {0x159, 0x84, 0},
11753 {0x15A, 0x15, 0},
11754 {0x15B, 0xf, 0},
11755 {0x15C, 0, 0},
11756 {0x15D, 0, 0},
11757 {0x15E, 0, 1},
11758 {0x15F, 0, 1},
11759 {0x160, 0, 1},
11760 {0x161, 0, 1},
11761 {0x162, 0, 1},
11762 {0x163, 0, 1},
11763 {0x164, 0, 0},
11764 {0x165, 0, 0},
11765 {0x166, 0, 0},
11766 {0x167, 0, 0},
11767 {0x168, 0, 0},
11768 {0x169, 0x2, 1},
11769 {0x16A, 0, 1},
11770 {0x16B, 0, 1},
11771 {0x16C, 0, 1},
11772 {0x16D, 0, 0},
11773 {0x170, 0, 0},
11774 {0x171, 0x77, 0},
11775 {0x172, 0x77, 0},
11776 {0x173, 0x77, 0},
11777 {0x174, 0x77, 0},
11778 {0x175, 0, 0},
11779 {0x176, 0x3, 0},
11780 {0x177, 0x37, 0},
11781 {0x178, 0x3, 0},
11782 {0x179, 0, 0},
11783 {0x17A, 0x21, 0},
11784 {0x17B, 0x21, 0},
11785 {0x17C, 0, 0},
11786 {0x17D, 0xaa, 0},
11787 {0x17E, 0, 0},
11788 {0x17F, 0xaa, 0},
11789 {0x180, 0, 0},
11790 {0x190, 0, 0},
11791 {0x191, 0x77, 0},
11792 {0x192, 0x77, 0},
11793 {0x193, 0x77, 0},
11794 {0x194, 0x77, 0},
11795 {0x195, 0, 0},
11796 {0x196, 0x3, 0},
11797 {0x197, 0x37, 0},
11798 {0x198, 0x3, 0},
11799 {0x199, 0, 0},
11800 {0x19A, 0x21, 0},
11801 {0x19B, 0x21, 0},
11802 {0x19C, 0, 0},
11803 {0x19D, 0xaa, 0},
11804 {0x19E, 0, 0},
11805 {0x19F, 0xaa, 0},
11806 {0x1A0, 0, 0},
11807 {0x1A1, 0x2, 0},
11808 {0x1A2, 0xf, 0},
11809 {0x1A3, 0xf, 0},
11810 {0x1A4, 0, 1},
11811 {0x1A5, 0, 1},
11812 {0x1A6, 0, 1},
11813 {0x1A7, 0x2, 0},
11814 {0x1A8, 0xf, 0},
11815 {0x1A9, 0xf, 0},
11816 {0x1AA, 0, 1},
11817 {0x1AB, 0, 1},
11818 {0x1AC, 0, 1},
11819 {0xFFFF, 0, 0},
11822 static struct radio_20xx_regs regs_2057_rev5[] = {
11823 {0x00, 0, 1},
11824 {0x01, 0x57, 1},
11825 {0x02, 0x20, 1},
11826 {0x03, 0x1f, 0},
11827 {0x04, 0x4, 0},
11828 {0x05, 0x2, 0},
11829 {0x06, 0x1, 0},
11830 {0x07, 0x1, 0},
11831 {0x08, 0x1, 0},
11832 {0x09, 0x69, 0},
11833 {0x0A, 0x66, 0},
11834 {0x0B, 0x6, 0},
11835 {0x0C, 0x18, 0},
11836 {0x0D, 0x3, 0},
11837 {0x0E, 0x20, 0},
11838 {0x0F, 0x20, 0},
11839 {0x10, 0, 0},
11840 {0x11, 0x7c, 0},
11841 {0x12, 0x42, 0},
11842 {0x13, 0xbd, 0},
11843 {0x14, 0x7, 0},
11844 {0x15, 0x87, 0},
11845 {0x16, 0x8, 0},
11846 {0x17, 0x17, 0},
11847 {0x18, 0x7, 0},
11848 {0x19, 0, 0},
11849 {0x1A, 0x2, 0},
11850 {0x1B, 0x13, 0},
11851 {0x1C, 0x3e, 0},
11852 {0x1D, 0x3e, 0},
11853 {0x1E, 0x96, 0},
11854 {0x1F, 0x4, 0},
11855 {0x20, 0, 0},
11856 {0x21, 0, 0},
11857 {0x22, 0x17, 0},
11858 {0x23, 0x6, 1},
11859 {0x24, 0x1, 0},
11860 {0x25, 0x6, 0},
11861 {0x26, 0x4, 0},
11862 {0x27, 0xd, 0},
11863 {0x28, 0xd, 0},
11864 {0x29, 0x30, 0},
11865 {0x2A, 0x32, 0},
11866 {0x2B, 0x8, 0},
11867 {0x2C, 0x1c, 0},
11868 {0x2D, 0x2, 0},
11869 {0x2E, 0x4, 0},
11870 {0x2F, 0x7f, 0},
11871 {0x30, 0x27, 0},
11872 {0x31, 0, 1},
11873 {0x32, 0, 1},
11874 {0x33, 0, 1},
11875 {0x34, 0, 0},
11876 {0x35, 0x20, 0},
11877 {0x36, 0x18, 0},
11878 {0x37, 0x7, 0},
11879 {0x38, 0x66, 0},
11880 {0x39, 0x66, 0},
11881 {0x3C, 0xff, 0},
11882 {0x3D, 0xff, 0},
11883 {0x40, 0x16, 0},
11884 {0x41, 0x7, 0},
11885 {0x45, 0x3, 0},
11886 {0x46, 0x1, 0},
11887 {0x47, 0x7, 0},
11888 {0x4B, 0x66, 0},
11889 {0x4C, 0x66, 0},
11890 {0x4D, 0, 0},
11891 {0x4E, 0x4, 0},
11892 {0x4F, 0xc, 0},
11893 {0x50, 0, 0},
11894 {0x51, 0x70, 1},
11895 {0x56, 0x7, 0},
11896 {0x57, 0, 0},
11897 {0x58, 0, 0},
11898 {0x59, 0x88, 1},
11899 {0x5A, 0, 0},
11900 {0x5B, 0x1f, 0},
11901 {0x5C, 0x20, 1},
11902 {0x5D, 0x1, 0},
11903 {0x5E, 0x30, 0},
11904 {0x5F, 0x70, 0},
11905 {0x60, 0, 0},
11906 {0x61, 0, 0},
11907 {0x62, 0x33, 1},
11908 {0x63, 0xf, 1},
11909 {0x64, 0xf, 1},
11910 {0x65, 0, 0},
11911 {0x66, 0x11, 0},
11912 {0x80, 0x3c, 0},
11913 {0x81, 0x1, 1},
11914 {0x82, 0xa, 0},
11915 {0x85, 0, 0},
11916 {0x86, 0x40, 0},
11917 {0x87, 0x40, 0},
11918 {0x88, 0x88, 0},
11919 {0x89, 0x10, 0},
11920 {0x8A, 0xf0, 0},
11921 {0x8B, 0x10, 0},
11922 {0x8C, 0xf0, 0},
11923 {0x8F, 0x10, 0},
11924 {0x90, 0x55, 0},
11925 {0x91, 0x3f, 1},
11926 {0x92, 0x36, 1},
11927 {0x93, 0, 0},
11928 {0x94, 0, 0},
11929 {0x95, 0, 0},
11930 {0x96, 0x87, 0},
11931 {0x97, 0x11, 0},
11932 {0x98, 0, 0},
11933 {0x99, 0x33, 0},
11934 {0x9A, 0x88, 0},
11935 {0xA1, 0x20, 1},
11936 {0xA2, 0x3f, 0},
11937 {0xA3, 0x44, 0},
11938 {0xA4, 0x8c, 0},
11939 {0xA5, 0x6c, 0},
11940 {0xA6, 0x22, 0},
11941 {0xA7, 0xbe, 0},
11942 {0xA8, 0x55, 0},
11943 {0xAA, 0xc, 0},
11944 {0xAB, 0xaa, 0},
11945 {0xAC, 0x2, 0},
11946 {0xAD, 0, 0},
11947 {0xAE, 0x10, 0},
11948 {0xAF, 0x1, 0},
11949 {0xB0, 0, 0},
11950 {0xB1, 0, 0},
11951 {0xB2, 0x80, 0},
11952 {0xB3, 0x60, 0},
11953 {0xB4, 0x44, 0},
11954 {0xB5, 0x55, 0},
11955 {0xB6, 0x1, 0},
11956 {0xB7, 0x55, 0},
11957 {0xB8, 0x1, 0},
11958 {0xB9, 0x5, 0},
11959 {0xBA, 0x55, 0},
11960 {0xBB, 0x55, 0},
11961 {0xC3, 0, 0},
11962 {0xC4, 0, 0},
11963 {0xC5, 0, 0},
11964 {0xC6, 0, 0},
11965 {0xC7, 0, 0},
11966 {0xC8, 0, 0},
11967 {0xC9, 0, 0},
11968 {0xCA, 0, 0},
11969 {0xCB, 0, 0},
11970 {0xCD, 0, 0},
11971 {0xCE, 0x5e, 0},
11972 {0xCF, 0xc, 0},
11973 {0xD0, 0xc, 0},
11974 {0xD1, 0xc, 0},
11975 {0xD2, 0, 0},
11976 {0xD3, 0x2b, 0},
11977 {0xD4, 0xc, 0},
11978 {0xD5, 0, 0},
11979 {0xD6, 0x70, 1},
11980 {0xDB, 0x7, 0},
11981 {0xDC, 0, 0},
11982 {0xDD, 0, 0},
11983 {0xDE, 0x88, 1},
11984 {0xDF, 0, 0},
11985 {0xE0, 0x1f, 0},
11986 {0xE1, 0x20, 1},
11987 {0xE2, 0x1, 0},
11988 {0xE3, 0x30, 0},
11989 {0xE4, 0x70, 0},
11990 {0xE5, 0, 0},
11991 {0xE6, 0, 0},
11992 {0xE7, 0x33, 0},
11993 {0xE8, 0xf, 1},
11994 {0xE9, 0xf, 1},
11995 {0xEA, 0, 0},
11996 {0xEB, 0x11, 0},
11997 {0x105, 0x3c, 0},
11998 {0x106, 0x1, 1},
11999 {0x107, 0xa, 0},
12000 {0x10A, 0, 0},
12001 {0x10B, 0x40, 0},
12002 {0x10C, 0x40, 0},
12003 {0x10D, 0x88, 0},
12004 {0x10E, 0x10, 0},
12005 {0x10F, 0xf0, 0},
12006 {0x110, 0x10, 0},
12007 {0x111, 0xf0, 0},
12008 {0x114, 0x10, 0},
12009 {0x115, 0x55, 0},
12010 {0x116, 0x3f, 1},
12011 {0x117, 0x36, 1},
12012 {0x118, 0, 0},
12013 {0x119, 0, 0},
12014 {0x11A, 0, 0},
12015 {0x11B, 0x87, 0},
12016 {0x11C, 0x11, 0},
12017 {0x11D, 0, 0},
12018 {0x11E, 0x33, 0},
12019 {0x11F, 0x88, 0},
12020 {0x126, 0x20, 1},
12021 {0x127, 0x3f, 0},
12022 {0x128, 0x44, 0},
12023 {0x129, 0x8c, 0},
12024 {0x12A, 0x6c, 0},
12025 {0x12B, 0x22, 0},
12026 {0x12C, 0xbe, 0},
12027 {0x12D, 0x55, 0},
12028 {0x12F, 0xc, 0},
12029 {0x130, 0xaa, 0},
12030 {0x131, 0x2, 0},
12031 {0x132, 0, 0},
12032 {0x133, 0x10, 0},
12033 {0x134, 0x1, 0},
12034 {0x135, 0, 0},
12035 {0x136, 0, 0},
12036 {0x137, 0x80, 0},
12037 {0x138, 0x60, 0},
12038 {0x139, 0x44, 0},
12039 {0x13A, 0x55, 0},
12040 {0x13B, 0x1, 0},
12041 {0x13C, 0x55, 0},
12042 {0x13D, 0x1, 0},
12043 {0x13E, 0x5, 0},
12044 {0x13F, 0x55, 0},
12045 {0x140, 0x55, 0},
12046 {0x148, 0, 0},
12047 {0x149, 0, 0},
12048 {0x14A, 0, 0},
12049 {0x14B, 0, 0},
12050 {0x14C, 0, 0},
12051 {0x14D, 0, 0},
12052 {0x14E, 0, 0},
12053 {0x14F, 0, 0},
12054 {0x150, 0, 0},
12055 {0x154, 0xc, 0},
12056 {0x155, 0xc, 0},
12057 {0x156, 0xc, 0},
12058 {0x157, 0, 0},
12059 {0x158, 0x2b, 0},
12060 {0x159, 0x84, 0},
12061 {0x15A, 0x15, 0},
12062 {0x15B, 0xf, 0},
12063 {0x15C, 0, 0},
12064 {0x15D, 0, 0},
12065 {0x15E, 0, 1},
12066 {0x15F, 0, 1},
12067 {0x160, 0, 1},
12068 {0x161, 0, 1},
12069 {0x162, 0, 1},
12070 {0x163, 0, 1},
12071 {0x164, 0, 0},
12072 {0x165, 0, 0},
12073 {0x166, 0, 0},
12074 {0x167, 0, 0},
12075 {0x168, 0, 0},
12076 {0x169, 0, 0},
12077 {0x16A, 0, 1},
12078 {0x16B, 0, 1},
12079 {0x16C, 0, 1},
12080 {0x16D, 0, 0},
12081 {0x170, 0, 0},
12082 {0x171, 0x77, 0},
12083 {0x172, 0x77, 0},
12084 {0x173, 0x77, 0},
12085 {0x174, 0x77, 0},
12086 {0x175, 0, 0},
12087 {0x176, 0x3, 0},
12088 {0x177, 0x37, 0},
12089 {0x178, 0x3, 0},
12090 {0x179, 0, 0},
12091 {0x17B, 0x21, 0},
12092 {0x17C, 0, 0},
12093 {0x17D, 0xaa, 0},
12094 {0x17E, 0, 0},
12095 {0x190, 0, 0},
12096 {0x191, 0x77, 0},
12097 {0x192, 0x77, 0},
12098 {0x193, 0x77, 0},
12099 {0x194, 0x77, 0},
12100 {0x195, 0, 0},
12101 {0x196, 0x3, 0},
12102 {0x197, 0x37, 0},
12103 {0x198, 0x3, 0},
12104 {0x199, 0, 0},
12105 {0x19B, 0x21, 0},
12106 {0x19C, 0, 0},
12107 {0x19D, 0xaa, 0},
12108 {0x19E, 0, 0},
12109 {0x1A1, 0x2, 0},
12110 {0x1A2, 0xf, 0},
12111 {0x1A3, 0xf, 0},
12112 {0x1A4, 0, 1},
12113 {0x1A5, 0, 1},
12114 {0x1A6, 0, 1},
12115 {0x1A7, 0x2, 0},
12116 {0x1A8, 0xf, 0},
12117 {0x1A9, 0xf, 0},
12118 {0x1AA, 0, 1},
12119 {0x1AB, 0, 1},
12120 {0x1AC, 0, 1},
12121 {0x1AD, 0x84, 0},
12122 {0x1AE, 0x60, 0},
12123 {0x1AF, 0x47, 0},
12124 {0x1B0, 0x47, 0},
12125 {0x1B1, 0, 0},
12126 {0x1B2, 0, 0},
12127 {0x1B3, 0, 0},
12128 {0x1B4, 0, 0},
12129 {0x1B5, 0, 0},
12130 {0x1B6, 0, 0},
12131 {0x1B7, 0xc, 1},
12132 {0x1B8, 0, 0},
12133 {0x1B9, 0, 0},
12134 {0x1BA, 0, 0},
12135 {0x1BB, 0, 0},
12136 {0x1BC, 0, 0},
12137 {0x1BD, 0, 0},
12138 {0x1BE, 0, 0},
12139 {0x1BF, 0, 0},
12140 {0x1C0, 0, 0},
12141 {0x1C1, 0x1, 1},
12142 {0x1C2, 0x80, 1},
12143 {0x1C3, 0, 0},
12144 {0x1C4, 0, 0},
12145 {0x1C5, 0, 0},
12146 {0x1C6, 0, 0},
12147 {0x1C7, 0, 0},
12148 {0x1C8, 0, 0},
12149 {0x1C9, 0, 0},
12150 {0x1CA, 0, 0},
12151 {0xFFFF, 0, 0}
12154 static struct radio_20xx_regs regs_2057_rev5v1[] = {
12155 {0x00, 0x15, 1},
12156 {0x01, 0x57, 1},
12157 {0x02, 0x20, 1},
12158 {0x03, 0x1f, 0},
12159 {0x04, 0x4, 0},
12160 {0x05, 0x2, 0},
12161 {0x06, 0x1, 0},
12162 {0x07, 0x1, 0},
12163 {0x08, 0x1, 0},
12164 {0x09, 0x69, 0},
12165 {0x0A, 0x66, 0},
12166 {0x0B, 0x6, 0},
12167 {0x0C, 0x18, 0},
12168 {0x0D, 0x3, 0},
12169 {0x0E, 0x20, 0},
12170 {0x0F, 0x20, 0},
12171 {0x10, 0, 0},
12172 {0x11, 0x7c, 0},
12173 {0x12, 0x42, 0},
12174 {0x13, 0xbd, 0},
12175 {0x14, 0x7, 0},
12176 {0x15, 0x87, 0},
12177 {0x16, 0x8, 0},
12178 {0x17, 0x17, 0},
12179 {0x18, 0x7, 0},
12180 {0x19, 0, 0},
12181 {0x1A, 0x2, 0},
12182 {0x1B, 0x13, 0},
12183 {0x1C, 0x3e, 0},
12184 {0x1D, 0x3e, 0},
12185 {0x1E, 0x96, 0},
12186 {0x1F, 0x4, 0},
12187 {0x20, 0, 0},
12188 {0x21, 0, 0},
12189 {0x22, 0x17, 0},
12190 {0x23, 0x6, 1},
12191 {0x24, 0x1, 0},
12192 {0x25, 0x6, 0},
12193 {0x26, 0x4, 0},
12194 {0x27, 0xd, 0},
12195 {0x28, 0xd, 0},
12196 {0x29, 0x30, 0},
12197 {0x2A, 0x32, 0},
12198 {0x2B, 0x8, 0},
12199 {0x2C, 0x1c, 0},
12200 {0x2D, 0x2, 0},
12201 {0x2E, 0x4, 0},
12202 {0x2F, 0x7f, 0},
12203 {0x30, 0x27, 0},
12204 {0x31, 0, 1},
12205 {0x32, 0, 1},
12206 {0x33, 0, 1},
12207 {0x34, 0, 0},
12208 {0x35, 0x20, 0},
12209 {0x36, 0x18, 0},
12210 {0x37, 0x7, 0},
12211 {0x38, 0x66, 0},
12212 {0x39, 0x66, 0},
12213 {0x3C, 0xff, 0},
12214 {0x3D, 0xff, 0},
12215 {0x40, 0x16, 0},
12216 {0x41, 0x7, 0},
12217 {0x45, 0x3, 0},
12218 {0x46, 0x1, 0},
12219 {0x47, 0x7, 0},
12220 {0x4B, 0x66, 0},
12221 {0x4C, 0x66, 0},
12222 {0x4D, 0, 0},
12223 {0x4E, 0x4, 0},
12224 {0x4F, 0xc, 0},
12225 {0x50, 0, 0},
12226 {0x51, 0x70, 1},
12227 {0x56, 0x7, 0},
12228 {0x57, 0, 0},
12229 {0x58, 0, 0},
12230 {0x59, 0x88, 1},
12231 {0x5A, 0, 0},
12232 {0x5B, 0x1f, 0},
12233 {0x5C, 0x20, 1},
12234 {0x5D, 0x1, 0},
12235 {0x5E, 0x30, 0},
12236 {0x5F, 0x70, 0},
12237 {0x60, 0, 0},
12238 {0x61, 0, 0},
12239 {0x62, 0x33, 1},
12240 {0x63, 0xf, 1},
12241 {0x64, 0xf, 1},
12242 {0x65, 0, 0},
12243 {0x66, 0x11, 0},
12244 {0x80, 0x3c, 0},
12245 {0x81, 0x1, 1},
12246 {0x82, 0xa, 0},
12247 {0x85, 0, 0},
12248 {0x86, 0x40, 0},
12249 {0x87, 0x40, 0},
12250 {0x88, 0x88, 0},
12251 {0x89, 0x10, 0},
12252 {0x8A, 0xf0, 0},
12253 {0x8B, 0x10, 0},
12254 {0x8C, 0xf0, 0},
12255 {0x8F, 0x10, 0},
12256 {0x90, 0x55, 0},
12257 {0x91, 0x3f, 1},
12258 {0x92, 0x36, 1},
12259 {0x93, 0, 0},
12260 {0x94, 0, 0},
12261 {0x95, 0, 0},
12262 {0x96, 0x87, 0},
12263 {0x97, 0x11, 0},
12264 {0x98, 0, 0},
12265 {0x99, 0x33, 0},
12266 {0x9A, 0x88, 0},
12267 {0xA1, 0x20, 1},
12268 {0xA2, 0x3f, 0},
12269 {0xA3, 0x44, 0},
12270 {0xA4, 0x8c, 0},
12271 {0xA5, 0x6c, 0},
12272 {0xA6, 0x22, 0},
12273 {0xA7, 0xbe, 0},
12274 {0xA8, 0x55, 0},
12275 {0xAA, 0xc, 0},
12276 {0xAB, 0xaa, 0},
12277 {0xAC, 0x2, 0},
12278 {0xAD, 0, 0},
12279 {0xAE, 0x10, 0},
12280 {0xAF, 0x1, 0},
12281 {0xB0, 0, 0},
12282 {0xB1, 0, 0},
12283 {0xB2, 0x80, 0},
12284 {0xB3, 0x60, 0},
12285 {0xB4, 0x44, 0},
12286 {0xB5, 0x55, 0},
12287 {0xB6, 0x1, 0},
12288 {0xB7, 0x55, 0},
12289 {0xB8, 0x1, 0},
12290 {0xB9, 0x5, 0},
12291 {0xBA, 0x55, 0},
12292 {0xBB, 0x55, 0},
12293 {0xC3, 0, 0},
12294 {0xC4, 0, 0},
12295 {0xC5, 0, 0},
12296 {0xC6, 0, 0},
12297 {0xC7, 0, 0},
12298 {0xC8, 0, 0},
12299 {0xC9, 0x1, 1},
12300 {0xCA, 0, 0},
12301 {0xCB, 0, 0},
12302 {0xCD, 0, 0},
12303 {0xCE, 0x5e, 0},
12304 {0xCF, 0xc, 0},
12305 {0xD0, 0xc, 0},
12306 {0xD1, 0xc, 0},
12307 {0xD2, 0, 0},
12308 {0xD3, 0x2b, 0},
12309 {0xD4, 0xc, 0},
12310 {0xD5, 0, 0},
12311 {0xD6, 0x70, 1},
12312 {0xDB, 0x7, 0},
12313 {0xDC, 0, 0},
12314 {0xDD, 0, 0},
12315 {0xDE, 0x88, 1},
12316 {0xDF, 0, 0},
12317 {0xE0, 0x1f, 0},
12318 {0xE1, 0x20, 1},
12319 {0xE2, 0x1, 0},
12320 {0xE3, 0x30, 0},
12321 {0xE4, 0x70, 0},
12322 {0xE5, 0, 0},
12323 {0xE6, 0, 0},
12324 {0xE7, 0x33, 0},
12325 {0xE8, 0xf, 1},
12326 {0xE9, 0xf, 1},
12327 {0xEA, 0, 0},
12328 {0xEB, 0x11, 0},
12329 {0x105, 0x3c, 0},
12330 {0x106, 0x1, 1},
12331 {0x107, 0xa, 0},
12332 {0x10A, 0, 0},
12333 {0x10B, 0x40, 0},
12334 {0x10C, 0x40, 0},
12335 {0x10D, 0x88, 0},
12336 {0x10E, 0x10, 0},
12337 {0x10F, 0xf0, 0},
12338 {0x110, 0x10, 0},
12339 {0x111, 0xf0, 0},
12340 {0x114, 0x10, 0},
12341 {0x115, 0x55, 0},
12342 {0x116, 0x3f, 1},
12343 {0x117, 0x36, 1},
12344 {0x118, 0, 0},
12345 {0x119, 0, 0},
12346 {0x11A, 0, 0},
12347 {0x11B, 0x87, 0},
12348 {0x11C, 0x11, 0},
12349 {0x11D, 0, 0},
12350 {0x11E, 0x33, 0},
12351 {0x11F, 0x88, 0},
12352 {0x126, 0x20, 1},
12353 {0x127, 0x3f, 0},
12354 {0x128, 0x44, 0},
12355 {0x129, 0x8c, 0},
12356 {0x12A, 0x6c, 0},
12357 {0x12B, 0x22, 0},
12358 {0x12C, 0xbe, 0},
12359 {0x12D, 0x55, 0},
12360 {0x12F, 0xc, 0},
12361 {0x130, 0xaa, 0},
12362 {0x131, 0x2, 0},
12363 {0x132, 0, 0},
12364 {0x133, 0x10, 0},
12365 {0x134, 0x1, 0},
12366 {0x135, 0, 0},
12367 {0x136, 0, 0},
12368 {0x137, 0x80, 0},
12369 {0x138, 0x60, 0},
12370 {0x139, 0x44, 0},
12371 {0x13A, 0x55, 0},
12372 {0x13B, 0x1, 0},
12373 {0x13C, 0x55, 0},
12374 {0x13D, 0x1, 0},
12375 {0x13E, 0x5, 0},
12376 {0x13F, 0x55, 0},
12377 {0x140, 0x55, 0},
12378 {0x148, 0, 0},
12379 {0x149, 0, 0},
12380 {0x14A, 0, 0},
12381 {0x14B, 0, 0},
12382 {0x14C, 0, 0},
12383 {0x14D, 0, 0},
12384 {0x14E, 0x1, 1},
12385 {0x14F, 0, 0},
12386 {0x150, 0, 0},
12387 {0x154, 0xc, 0},
12388 {0x155, 0xc, 0},
12389 {0x156, 0xc, 0},
12390 {0x157, 0, 0},
12391 {0x158, 0x2b, 0},
12392 {0x159, 0x84, 0},
12393 {0x15A, 0x15, 0},
12394 {0x15B, 0xf, 0},
12395 {0x15C, 0, 0},
12396 {0x15D, 0, 0},
12397 {0x15E, 0, 1},
12398 {0x15F, 0, 1},
12399 {0x160, 0, 1},
12400 {0x161, 0, 1},
12401 {0x162, 0, 1},
12402 {0x163, 0, 1},
12403 {0x164, 0, 0},
12404 {0x165, 0, 0},
12405 {0x166, 0, 0},
12406 {0x167, 0, 0},
12407 {0x168, 0, 0},
12408 {0x169, 0, 0},
12409 {0x16A, 0, 1},
12410 {0x16B, 0, 1},
12411 {0x16C, 0, 1},
12412 {0x16D, 0, 0},
12413 {0x170, 0, 0},
12414 {0x171, 0x77, 0},
12415 {0x172, 0x77, 0},
12416 {0x173, 0x77, 0},
12417 {0x174, 0x77, 0},
12418 {0x175, 0, 0},
12419 {0x176, 0x3, 0},
12420 {0x177, 0x37, 0},
12421 {0x178, 0x3, 0},
12422 {0x179, 0, 0},
12423 {0x17B, 0x21, 0},
12424 {0x17C, 0, 0},
12425 {0x17D, 0xaa, 0},
12426 {0x17E, 0, 0},
12427 {0x190, 0, 0},
12428 {0x191, 0x77, 0},
12429 {0x192, 0x77, 0},
12430 {0x193, 0x77, 0},
12431 {0x194, 0x77, 0},
12432 {0x195, 0, 0},
12433 {0x196, 0x3, 0},
12434 {0x197, 0x37, 0},
12435 {0x198, 0x3, 0},
12436 {0x199, 0, 0},
12437 {0x19B, 0x21, 0},
12438 {0x19C, 0, 0},
12439 {0x19D, 0xaa, 0},
12440 {0x19E, 0, 0},
12441 {0x1A1, 0x2, 0},
12442 {0x1A2, 0xf, 0},
12443 {0x1A3, 0xf, 0},
12444 {0x1A4, 0, 1},
12445 {0x1A5, 0, 1},
12446 {0x1A6, 0, 1},
12447 {0x1A7, 0x2, 0},
12448 {0x1A8, 0xf, 0},
12449 {0x1A9, 0xf, 0},
12450 {0x1AA, 0, 1},
12451 {0x1AB, 0, 1},
12452 {0x1AC, 0, 1},
12453 {0x1AD, 0x84, 0},
12454 {0x1AE, 0x60, 0},
12455 {0x1AF, 0x47, 0},
12456 {0x1B0, 0x47, 0},
12457 {0x1B1, 0, 0},
12458 {0x1B2, 0, 0},
12459 {0x1B3, 0, 0},
12460 {0x1B4, 0, 0},
12461 {0x1B5, 0, 0},
12462 {0x1B6, 0, 0},
12463 {0x1B7, 0xc, 1},
12464 {0x1B8, 0, 0},
12465 {0x1B9, 0, 0},
12466 {0x1BA, 0, 0},
12467 {0x1BB, 0, 0},
12468 {0x1BC, 0, 0},
12469 {0x1BD, 0, 0},
12470 {0x1BE, 0, 0},
12471 {0x1BF, 0, 0},
12472 {0x1C0, 0, 0},
12473 {0x1C1, 0x1, 1},
12474 {0x1C2, 0x80, 1},
12475 {0x1C3, 0, 0},
12476 {0x1C4, 0, 0},
12477 {0x1C5, 0, 0},
12478 {0x1C6, 0, 0},
12479 {0x1C7, 0, 0},
12480 {0x1C8, 0, 0},
12481 {0x1C9, 0, 0},
12482 {0x1CA, 0, 0},
12483 {0xFFFF, 0, 0}
12486 static struct radio_20xx_regs regs_2057_rev7[] = {
12487 {0x00, 0, 1},
12488 {0x01, 0x57, 1},
12489 {0x02, 0x20, 1},
12490 {0x03, 0x1f, 0},
12491 {0x04, 0x4, 0},
12492 {0x05, 0x2, 0},
12493 {0x06, 0x1, 0},
12494 {0x07, 0x1, 0},
12495 {0x08, 0x1, 0},
12496 {0x09, 0x69, 0},
12497 {0x0A, 0x66, 0},
12498 {0x0B, 0x6, 0},
12499 {0x0C, 0x18, 0},
12500 {0x0D, 0x3, 0},
12501 {0x0E, 0x20, 0},
12502 {0x0F, 0x20, 0},
12503 {0x10, 0, 0},
12504 {0x11, 0x7c, 0},
12505 {0x12, 0x42, 0},
12506 {0x13, 0xbd, 0},
12507 {0x14, 0x7, 0},
12508 {0x15, 0x87, 0},
12509 {0x16, 0x8, 0},
12510 {0x17, 0x17, 0},
12511 {0x18, 0x7, 0},
12512 {0x19, 0, 0},
12513 {0x1A, 0x2, 0},
12514 {0x1B, 0x13, 0},
12515 {0x1C, 0x3e, 0},
12516 {0x1D, 0x3e, 0},
12517 {0x1E, 0x96, 0},
12518 {0x1F, 0x4, 0},
12519 {0x20, 0, 0},
12520 {0x21, 0, 0},
12521 {0x22, 0x17, 0},
12522 {0x23, 0x6, 0},
12523 {0x24, 0x1, 0},
12524 {0x25, 0x6, 0},
12525 {0x26, 0x4, 0},
12526 {0x27, 0xd, 0},
12527 {0x28, 0xd, 0},
12528 {0x29, 0x30, 0},
12529 {0x2A, 0x32, 0},
12530 {0x2B, 0x8, 0},
12531 {0x2C, 0x1c, 0},
12532 {0x2D, 0x2, 0},
12533 {0x2E, 0x4, 0},
12534 {0x2F, 0x7f, 0},
12535 {0x30, 0x27, 0},
12536 {0x31, 0, 1},
12537 {0x32, 0, 1},
12538 {0x33, 0, 1},
12539 {0x34, 0, 0},
12540 {0x35, 0x20, 0},
12541 {0x36, 0x18, 0},
12542 {0x37, 0x7, 0},
12543 {0x38, 0x66, 0},
12544 {0x39, 0x66, 0},
12545 {0x3A, 0x66, 0},
12546 {0x3B, 0x66, 0},
12547 {0x3C, 0xff, 0},
12548 {0x3D, 0xff, 0},
12549 {0x3E, 0xff, 0},
12550 {0x3F, 0xff, 0},
12551 {0x40, 0x16, 0},
12552 {0x41, 0x7, 0},
12553 {0x42, 0x19, 0},
12554 {0x43, 0x7, 0},
12555 {0x44, 0x6, 0},
12556 {0x45, 0x3, 0},
12557 {0x46, 0x1, 0},
12558 {0x47, 0x7, 0},
12559 {0x48, 0x33, 0},
12560 {0x49, 0x5, 0},
12561 {0x4A, 0x77, 0},
12562 {0x4B, 0x66, 0},
12563 {0x4C, 0x66, 0},
12564 {0x4D, 0, 0},
12565 {0x4E, 0x4, 0},
12566 {0x4F, 0xc, 0},
12567 {0x50, 0, 0},
12568 {0x51, 0x70, 1},
12569 {0x56, 0x7, 0},
12570 {0x57, 0, 0},
12571 {0x58, 0, 0},
12572 {0x59, 0x88, 1},
12573 {0x5A, 0, 0},
12574 {0x5B, 0x1f, 0},
12575 {0x5C, 0x20, 1},
12576 {0x5D, 0x1, 0},
12577 {0x5E, 0x30, 0},
12578 {0x5F, 0x70, 0},
12579 {0x60, 0, 0},
12580 {0x61, 0, 0},
12581 {0x62, 0x33, 1},
12582 {0x63, 0xf, 1},
12583 {0x64, 0x13, 1},
12584 {0x65, 0, 0},
12585 {0x66, 0xee, 1},
12586 {0x69, 0, 0},
12587 {0x6A, 0x7e, 0},
12588 {0x6B, 0x3f, 0},
12589 {0x6C, 0x7f, 0},
12590 {0x6D, 0x78, 0},
12591 {0x6E, 0x58, 1},
12592 {0x6F, 0x88, 0},
12593 {0x70, 0x8, 0},
12594 {0x71, 0xf, 0},
12595 {0x72, 0xbc, 0},
12596 {0x73, 0x8, 0},
12597 {0x74, 0x60, 0},
12598 {0x75, 0x13, 1},
12599 {0x76, 0x70, 0},
12600 {0x77, 0, 0},
12601 {0x78, 0, 0},
12602 {0x79, 0, 0},
12603 {0x7A, 0x33, 0},
12604 {0x7B, 0x13, 1},
12605 {0x7C, 0x14, 1},
12606 {0x7D, 0xee, 1},
12607 {0x80, 0x3c, 0},
12608 {0x81, 0x1, 1},
12609 {0x82, 0xa, 0},
12610 {0x83, 0x9d, 0},
12611 {0x84, 0xa, 0},
12612 {0x85, 0, 0},
12613 {0x86, 0x40, 0},
12614 {0x87, 0x40, 0},
12615 {0x88, 0x88, 0},
12616 {0x89, 0x10, 0},
12617 {0x8A, 0xf0, 0},
12618 {0x8B, 0x10, 0},
12619 {0x8C, 0xf0, 0},
12620 {0x8D, 0, 0},
12621 {0x8E, 0, 0},
12622 {0x8F, 0x10, 0},
12623 {0x90, 0x55, 0},
12624 {0x91, 0x3f, 1},
12625 {0x92, 0x36, 1},
12626 {0x93, 0, 0},
12627 {0x94, 0, 0},
12628 {0x95, 0, 0},
12629 {0x96, 0x87, 0},
12630 {0x97, 0x11, 0},
12631 {0x98, 0, 0},
12632 {0x99, 0x33, 0},
12633 {0x9A, 0x88, 0},
12634 {0x9B, 0, 0},
12635 {0x9C, 0x87, 0},
12636 {0x9D, 0x11, 0},
12637 {0x9E, 0, 0},
12638 {0x9F, 0x33, 0},
12639 {0xA0, 0x88, 0},
12640 {0xA1, 0x20, 1},
12641 {0xA2, 0x3f, 0},
12642 {0xA3, 0x44, 0},
12643 {0xA4, 0x8c, 0},
12644 {0xA5, 0x6c, 0},
12645 {0xA6, 0x22, 0},
12646 {0xA7, 0xbe, 0},
12647 {0xA8, 0x55, 0},
12648 {0xAA, 0xc, 0},
12649 {0xAB, 0xaa, 0},
12650 {0xAC, 0x2, 0},
12651 {0xAD, 0, 0},
12652 {0xAE, 0x10, 0},
12653 {0xAF, 0x1, 0},
12654 {0xB0, 0, 0},
12655 {0xB1, 0, 0},
12656 {0xB2, 0x80, 0},
12657 {0xB3, 0x60, 0},
12658 {0xB4, 0x44, 0},
12659 {0xB5, 0x55, 0},
12660 {0xB6, 0x1, 0},
12661 {0xB7, 0x55, 0},
12662 {0xB8, 0x1, 0},
12663 {0xB9, 0x5, 0},
12664 {0xBA, 0x55, 0},
12665 {0xBB, 0x55, 0},
12666 {0xC1, 0, 0},
12667 {0xC2, 0, 0},
12668 {0xC3, 0, 0},
12669 {0xC4, 0, 0},
12670 {0xC5, 0, 0},
12671 {0xC6, 0, 0},
12672 {0xC7, 0, 0},
12673 {0xC8, 0, 0},
12674 {0xC9, 0, 0},
12675 {0xCA, 0, 0},
12676 {0xCB, 0, 0},
12677 {0xCC, 0, 0},
12678 {0xCD, 0, 0},
12679 {0xCE, 0x5e, 0},
12680 {0xCF, 0xc, 0},
12681 {0xD0, 0xc, 0},
12682 {0xD1, 0xc, 0},
12683 {0xD2, 0, 0},
12684 {0xD3, 0x2b, 0},
12685 {0xD4, 0xc, 0},
12686 {0xD5, 0, 0},
12687 {0xD6, 0x70, 1},
12688 {0xDB, 0x7, 0},
12689 {0xDC, 0, 0},
12690 {0xDD, 0, 0},
12691 {0xDE, 0x88, 1},
12692 {0xDF, 0, 0},
12693 {0xE0, 0x1f, 0},
12694 {0xE1, 0x20, 1},
12695 {0xE2, 0x1, 0},
12696 {0xE3, 0x30, 0},
12697 {0xE4, 0x70, 0},
12698 {0xE5, 0, 0},
12699 {0xE6, 0, 0},
12700 {0xE7, 0x33, 0},
12701 {0xE8, 0xf, 1},
12702 {0xE9, 0x13, 1},
12703 {0xEA, 0, 0},
12704 {0xEB, 0xee, 1},
12705 {0xEE, 0, 0},
12706 {0xEF, 0x7e, 0},
12707 {0xF0, 0x3f, 0},
12708 {0xF1, 0x7f, 0},
12709 {0xF2, 0x78, 0},
12710 {0xF3, 0x58, 1},
12711 {0xF4, 0x88, 0},
12712 {0xF5, 0x8, 0},
12713 {0xF6, 0xf, 0},
12714 {0xF7, 0xbc, 0},
12715 {0xF8, 0x8, 0},
12716 {0xF9, 0x60, 0},
12717 {0xFA, 0x13, 1},
12718 {0xFB, 0x70, 0},
12719 {0xFC, 0, 0},
12720 {0xFD, 0, 0},
12721 {0xFE, 0, 0},
12722 {0xFF, 0x33, 0},
12723 {0x100, 0x13, 1},
12724 {0x101, 0x14, 1},
12725 {0x102, 0xee, 1},
12726 {0x105, 0x3c, 0},
12727 {0x106, 0x1, 1},
12728 {0x107, 0xa, 0},
12729 {0x108, 0x9d, 0},
12730 {0x109, 0xa, 0},
12731 {0x10A, 0, 0},
12732 {0x10B, 0x40, 0},
12733 {0x10C, 0x40, 0},
12734 {0x10D, 0x88, 0},
12735 {0x10E, 0x10, 0},
12736 {0x10F, 0xf0, 0},
12737 {0x110, 0x10, 0},
12738 {0x111, 0xf0, 0},
12739 {0x112, 0, 0},
12740 {0x113, 0, 0},
12741 {0x114, 0x10, 0},
12742 {0x115, 0x55, 0},
12743 {0x116, 0x3f, 1},
12744 {0x117, 0x36, 1},
12745 {0x118, 0, 0},
12746 {0x119, 0, 0},
12747 {0x11A, 0, 0},
12748 {0x11B, 0x87, 0},
12749 {0x11C, 0x11, 0},
12750 {0x11D, 0, 0},
12751 {0x11E, 0x33, 0},
12752 {0x11F, 0x88, 0},
12753 {0x120, 0, 0},
12754 {0x121, 0x87, 0},
12755 {0x122, 0x11, 0},
12756 {0x123, 0, 0},
12757 {0x124, 0x33, 0},
12758 {0x125, 0x88, 0},
12759 {0x126, 0x20, 1},
12760 {0x127, 0x3f, 0},
12761 {0x128, 0x44, 0},
12762 {0x129, 0x8c, 0},
12763 {0x12A, 0x6c, 0},
12764 {0x12B, 0x22, 0},
12765 {0x12C, 0xbe, 0},
12766 {0x12D, 0x55, 0},
12767 {0x12F, 0xc, 0},
12768 {0x130, 0xaa, 0},
12769 {0x131, 0x2, 0},
12770 {0x132, 0, 0},
12771 {0x133, 0x10, 0},
12772 {0x134, 0x1, 0},
12773 {0x135, 0, 0},
12774 {0x136, 0, 0},
12775 {0x137, 0x80, 0},
12776 {0x138, 0x60, 0},
12777 {0x139, 0x44, 0},
12778 {0x13A, 0x55, 0},
12779 {0x13B, 0x1, 0},
12780 {0x13C, 0x55, 0},
12781 {0x13D, 0x1, 0},
12782 {0x13E, 0x5, 0},
12783 {0x13F, 0x55, 0},
12784 {0x140, 0x55, 0},
12785 {0x146, 0, 0},
12786 {0x147, 0, 0},
12787 {0x148, 0, 0},
12788 {0x149, 0, 0},
12789 {0x14A, 0, 0},
12790 {0x14B, 0, 0},
12791 {0x14C, 0, 0},
12792 {0x14D, 0, 0},
12793 {0x14E, 0, 0},
12794 {0x14F, 0, 0},
12795 {0x150, 0, 0},
12796 {0x151, 0, 0},
12797 {0x154, 0xc, 0},
12798 {0x155, 0xc, 0},
12799 {0x156, 0xc, 0},
12800 {0x157, 0, 0},
12801 {0x158, 0x2b, 0},
12802 {0x159, 0x84, 0},
12803 {0x15A, 0x15, 0},
12804 {0x15B, 0xf, 0},
12805 {0x15C, 0, 0},
12806 {0x15D, 0, 0},
12807 {0x15E, 0, 1},
12808 {0x15F, 0, 1},
12809 {0x160, 0, 1},
12810 {0x161, 0, 1},
12811 {0x162, 0, 1},
12812 {0x163, 0, 1},
12813 {0x164, 0, 0},
12814 {0x165, 0, 0},
12815 {0x166, 0, 0},
12816 {0x167, 0, 0},
12817 {0x168, 0, 0},
12818 {0x169, 0, 0},
12819 {0x16A, 0, 1},
12820 {0x16B, 0, 1},
12821 {0x16C, 0, 1},
12822 {0x16D, 0, 0},
12823 {0x170, 0, 0},
12824 {0x171, 0x77, 0},
12825 {0x172, 0x77, 0},
12826 {0x173, 0x77, 0},
12827 {0x174, 0x77, 0},
12828 {0x175, 0, 0},
12829 {0x176, 0x3, 0},
12830 {0x177, 0x37, 0},
12831 {0x178, 0x3, 0},
12832 {0x179, 0, 0},
12833 {0x17A, 0x21, 0},
12834 {0x17B, 0x21, 0},
12835 {0x17C, 0, 0},
12836 {0x17D, 0xaa, 0},
12837 {0x17E, 0, 0},
12838 {0x17F, 0xaa, 0},
12839 {0x180, 0, 0},
12840 {0x190, 0, 0},
12841 {0x191, 0x77, 0},
12842 {0x192, 0x77, 0},
12843 {0x193, 0x77, 0},
12844 {0x194, 0x77, 0},
12845 {0x195, 0, 0},
12846 {0x196, 0x3, 0},
12847 {0x197, 0x37, 0},
12848 {0x198, 0x3, 0},
12849 {0x199, 0, 0},
12850 {0x19A, 0x21, 0},
12851 {0x19B, 0x21, 0},
12852 {0x19C, 0, 0},
12853 {0x19D, 0xaa, 0},
12854 {0x19E, 0, 0},
12855 {0x19F, 0xaa, 0},
12856 {0x1A0, 0, 0},
12857 {0x1A1, 0x2, 0},
12858 {0x1A2, 0xf, 0},
12859 {0x1A3, 0xf, 0},
12860 {0x1A4, 0, 1},
12861 {0x1A5, 0, 1},
12862 {0x1A6, 0, 1},
12863 {0x1A7, 0x2, 0},
12864 {0x1A8, 0xf, 0},
12865 {0x1A9, 0xf, 0},
12866 {0x1AA, 0, 1},
12867 {0x1AB, 0, 1},
12868 {0x1AC, 0, 1},
12869 {0x1AD, 0x84, 0},
12870 {0x1AE, 0x60, 0},
12871 {0x1AF, 0x47, 0},
12872 {0x1B0, 0x47, 0},
12873 {0x1B1, 0, 0},
12874 {0x1B2, 0, 0},
12875 {0x1B3, 0, 0},
12876 {0x1B4, 0, 0},
12877 {0x1B5, 0, 0},
12878 {0x1B6, 0, 0},
12879 {0x1B7, 0x5, 1},
12880 {0x1B8, 0, 0},
12881 {0x1B9, 0, 0},
12882 {0x1BA, 0, 0},
12883 {0x1BB, 0, 0},
12884 {0x1BC, 0, 0},
12885 {0x1BD, 0, 0},
12886 {0x1BE, 0, 0},
12887 {0x1BF, 0, 0},
12888 {0x1C0, 0, 0},
12889 {0x1C1, 0, 0},
12890 {0x1C2, 0xa0, 1},
12891 {0x1C3, 0, 0},
12892 {0x1C4, 0, 0},
12893 {0x1C5, 0, 0},
12894 {0x1C6, 0, 0},
12895 {0x1C7, 0, 0},
12896 {0x1C8, 0, 0},
12897 {0x1C9, 0, 0},
12898 {0x1CA, 0, 0},
12899 {0xFFFF, 0, 0}
12902 static struct radio_20xx_regs regs_2057_rev8[] = {
12903 {0x00, 0x8, 1},
12904 {0x01, 0x57, 1},
12905 {0x02, 0x20, 1},
12906 {0x03, 0x1f, 0},
12907 {0x04, 0x4, 0},
12908 {0x05, 0x2, 0},
12909 {0x06, 0x1, 0},
12910 {0x07, 0x1, 0},
12911 {0x08, 0x1, 0},
12912 {0x09, 0x69, 0},
12913 {0x0A, 0x66, 0},
12914 {0x0B, 0x6, 0},
12915 {0x0C, 0x18, 0},
12916 {0x0D, 0x3, 0},
12917 {0x0E, 0x20, 0},
12918 {0x0F, 0x20, 0},
12919 {0x10, 0, 0},
12920 {0x11, 0x7c, 0},
12921 {0x12, 0x42, 0},
12922 {0x13, 0xbd, 0},
12923 {0x14, 0x7, 0},
12924 {0x15, 0x87, 0},
12925 {0x16, 0x8, 0},
12926 {0x17, 0x17, 0},
12927 {0x18, 0x7, 0},
12928 {0x19, 0, 0},
12929 {0x1A, 0x2, 0},
12930 {0x1B, 0x13, 0},
12931 {0x1C, 0x3e, 0},
12932 {0x1D, 0x3e, 0},
12933 {0x1E, 0x96, 0},
12934 {0x1F, 0x4, 0},
12935 {0x20, 0, 0},
12936 {0x21, 0, 0},
12937 {0x22, 0x17, 0},
12938 {0x23, 0x6, 0},
12939 {0x24, 0x1, 0},
12940 {0x25, 0x6, 0},
12941 {0x26, 0x4, 0},
12942 {0x27, 0xd, 0},
12943 {0x28, 0xd, 0},
12944 {0x29, 0x30, 0},
12945 {0x2A, 0x32, 0},
12946 {0x2B, 0x8, 0},
12947 {0x2C, 0x1c, 0},
12948 {0x2D, 0x2, 0},
12949 {0x2E, 0x4, 0},
12950 {0x2F, 0x7f, 0},
12951 {0x30, 0x27, 0},
12952 {0x31, 0, 1},
12953 {0x32, 0, 1},
12954 {0x33, 0, 1},
12955 {0x34, 0, 0},
12956 {0x35, 0x20, 0},
12957 {0x36, 0x18, 0},
12958 {0x37, 0x7, 0},
12959 {0x38, 0x66, 0},
12960 {0x39, 0x66, 0},
12961 {0x3A, 0x66, 0},
12962 {0x3B, 0x66, 0},
12963 {0x3C, 0xff, 0},
12964 {0x3D, 0xff, 0},
12965 {0x3E, 0xff, 0},
12966 {0x3F, 0xff, 0},
12967 {0x40, 0x16, 0},
12968 {0x41, 0x7, 0},
12969 {0x42, 0x19, 0},
12970 {0x43, 0x7, 0},
12971 {0x44, 0x6, 0},
12972 {0x45, 0x3, 0},
12973 {0x46, 0x1, 0},
12974 {0x47, 0x7, 0},
12975 {0x48, 0x33, 0},
12976 {0x49, 0x5, 0},
12977 {0x4A, 0x77, 0},
12978 {0x4B, 0x66, 0},
12979 {0x4C, 0x66, 0},
12980 {0x4D, 0, 0},
12981 {0x4E, 0x4, 0},
12982 {0x4F, 0xc, 0},
12983 {0x50, 0, 0},
12984 {0x51, 0x70, 1},
12985 {0x56, 0x7, 0},
12986 {0x57, 0, 0},
12987 {0x58, 0, 0},
12988 {0x59, 0x88, 1},
12989 {0x5A, 0, 0},
12990 {0x5B, 0x1f, 0},
12991 {0x5C, 0x20, 1},
12992 {0x5D, 0x1, 0},
12993 {0x5E, 0x30, 0},
12994 {0x5F, 0x70, 0},
12995 {0x60, 0, 0},
12996 {0x61, 0, 0},
12997 {0x62, 0x33, 1},
12998 {0x63, 0xf, 1},
12999 {0x64, 0xf, 1},
13000 {0x65, 0, 0},
13001 {0x66, 0x11, 0},
13002 {0x69, 0, 0},
13003 {0x6A, 0x7e, 0},
13004 {0x6B, 0x3f, 0},
13005 {0x6C, 0x7f, 0},
13006 {0x6D, 0x78, 0},
13007 {0x6E, 0x58, 1},
13008 {0x6F, 0x88, 0},
13009 {0x70, 0x8, 0},
13010 {0x71, 0xf, 0},
13011 {0x72, 0xbc, 0},
13012 {0x73, 0x8, 0},
13013 {0x74, 0x60, 0},
13014 {0x75, 0x13, 1},
13015 {0x76, 0x70, 0},
13016 {0x77, 0, 0},
13017 {0x78, 0, 0},
13018 {0x79, 0, 0},
13019 {0x7A, 0x33, 0},
13020 {0x7B, 0x13, 1},
13021 {0x7C, 0xf, 1},
13022 {0x7D, 0xee, 1},
13023 {0x80, 0x3c, 0},
13024 {0x81, 0x1, 1},
13025 {0x82, 0xa, 0},
13026 {0x83, 0x9d, 0},
13027 {0x84, 0xa, 0},
13028 {0x85, 0, 0},
13029 {0x86, 0x40, 0},
13030 {0x87, 0x40, 0},
13031 {0x88, 0x88, 0},
13032 {0x89, 0x10, 0},
13033 {0x8A, 0xf0, 0},
13034 {0x8B, 0x10, 0},
13035 {0x8C, 0xf0, 0},
13036 {0x8D, 0, 0},
13037 {0x8E, 0, 0},
13038 {0x8F, 0x10, 0},
13039 {0x90, 0x55, 0},
13040 {0x91, 0x3f, 1},
13041 {0x92, 0x36, 1},
13042 {0x93, 0, 0},
13043 {0x94, 0, 0},
13044 {0x95, 0, 0},
13045 {0x96, 0x87, 0},
13046 {0x97, 0x11, 0},
13047 {0x98, 0, 0},
13048 {0x99, 0x33, 0},
13049 {0x9A, 0x88, 0},
13050 {0x9B, 0, 0},
13051 {0x9C, 0x87, 0},
13052 {0x9D, 0x11, 0},
13053 {0x9E, 0, 0},
13054 {0x9F, 0x33, 0},
13055 {0xA0, 0x88, 0},
13056 {0xA1, 0x20, 1},
13057 {0xA2, 0x3f, 0},
13058 {0xA3, 0x44, 0},
13059 {0xA4, 0x8c, 0},
13060 {0xA5, 0x6c, 0},
13061 {0xA6, 0x22, 0},
13062 {0xA7, 0xbe, 0},
13063 {0xA8, 0x55, 0},
13064 {0xAA, 0xc, 0},
13065 {0xAB, 0xaa, 0},
13066 {0xAC, 0x2, 0},
13067 {0xAD, 0, 0},
13068 {0xAE, 0x10, 0},
13069 {0xAF, 0x1, 0},
13070 {0xB0, 0, 0},
13071 {0xB1, 0, 0},
13072 {0xB2, 0x80, 0},
13073 {0xB3, 0x60, 0},
13074 {0xB4, 0x44, 0},
13075 {0xB5, 0x55, 0},
13076 {0xB6, 0x1, 0},
13077 {0xB7, 0x55, 0},
13078 {0xB8, 0x1, 0},
13079 {0xB9, 0x5, 0},
13080 {0xBA, 0x55, 0},
13081 {0xBB, 0x55, 0},
13082 {0xC1, 0, 0},
13083 {0xC2, 0, 0},
13084 {0xC3, 0, 0},
13085 {0xC4, 0, 0},
13086 {0xC5, 0, 0},
13087 {0xC6, 0, 0},
13088 {0xC7, 0, 0},
13089 {0xC8, 0, 0},
13090 {0xC9, 0x1, 1},
13091 {0xCA, 0, 0},
13092 {0xCB, 0, 0},
13093 {0xCC, 0, 0},
13094 {0xCD, 0, 0},
13095 {0xCE, 0x5e, 0},
13096 {0xCF, 0xc, 0},
13097 {0xD0, 0xc, 0},
13098 {0xD1, 0xc, 0},
13099 {0xD2, 0, 0},
13100 {0xD3, 0x2b, 0},
13101 {0xD4, 0xc, 0},
13102 {0xD5, 0, 0},
13103 {0xD6, 0x70, 1},
13104 {0xDB, 0x7, 0},
13105 {0xDC, 0, 0},
13106 {0xDD, 0, 0},
13107 {0xDE, 0x88, 1},
13108 {0xDF, 0, 0},
13109 {0xE0, 0x1f, 0},
13110 {0xE1, 0x20, 1},
13111 {0xE2, 0x1, 0},
13112 {0xE3, 0x30, 0},
13113 {0xE4, 0x70, 0},
13114 {0xE5, 0, 0},
13115 {0xE6, 0, 0},
13116 {0xE7, 0x33, 0},
13117 {0xE8, 0xf, 1},
13118 {0xE9, 0xf, 1},
13119 {0xEA, 0, 0},
13120 {0xEB, 0x11, 0},
13121 {0xEE, 0, 0},
13122 {0xEF, 0x7e, 0},
13123 {0xF0, 0x3f, 0},
13124 {0xF1, 0x7f, 0},
13125 {0xF2, 0x78, 0},
13126 {0xF3, 0x58, 1},
13127 {0xF4, 0x88, 0},
13128 {0xF5, 0x8, 0},
13129 {0xF6, 0xf, 0},
13130 {0xF7, 0xbc, 0},
13131 {0xF8, 0x8, 0},
13132 {0xF9, 0x60, 0},
13133 {0xFA, 0x13, 1},
13134 {0xFB, 0x70, 0},
13135 {0xFC, 0, 0},
13136 {0xFD, 0, 0},
13137 {0xFE, 0, 0},
13138 {0xFF, 0x33, 0},
13139 {0x100, 0x13, 1},
13140 {0x101, 0xf, 1},
13141 {0x102, 0xee, 1},
13142 {0x105, 0x3c, 0},
13143 {0x106, 0x1, 1},
13144 {0x107, 0xa, 0},
13145 {0x108, 0x9d, 0},
13146 {0x109, 0xa, 0},
13147 {0x10A, 0, 0},
13148 {0x10B, 0x40, 0},
13149 {0x10C, 0x40, 0},
13150 {0x10D, 0x88, 0},
13151 {0x10E, 0x10, 0},
13152 {0x10F, 0xf0, 0},
13153 {0x110, 0x10, 0},
13154 {0x111, 0xf0, 0},
13155 {0x112, 0, 0},
13156 {0x113, 0, 0},
13157 {0x114, 0x10, 0},
13158 {0x115, 0x55, 0},
13159 {0x116, 0x3f, 1},
13160 {0x117, 0x36, 1},
13161 {0x118, 0, 0},
13162 {0x119, 0, 0},
13163 {0x11A, 0, 0},
13164 {0x11B, 0x87, 0},
13165 {0x11C, 0x11, 0},
13166 {0x11D, 0, 0},
13167 {0x11E, 0x33, 0},
13168 {0x11F, 0x88, 0},
13169 {0x120, 0, 0},
13170 {0x121, 0x87, 0},
13171 {0x122, 0x11, 0},
13172 {0x123, 0, 0},
13173 {0x124, 0x33, 0},
13174 {0x125, 0x88, 0},
13175 {0x126, 0x20, 1},
13176 {0x127, 0x3f, 0},
13177 {0x128, 0x44, 0},
13178 {0x129, 0x8c, 0},
13179 {0x12A, 0x6c, 0},
13180 {0x12B, 0x22, 0},
13181 {0x12C, 0xbe, 0},
13182 {0x12D, 0x55, 0},
13183 {0x12F, 0xc, 0},
13184 {0x130, 0xaa, 0},
13185 {0x131, 0x2, 0},
13186 {0x132, 0, 0},
13187 {0x133, 0x10, 0},
13188 {0x134, 0x1, 0},
13189 {0x135, 0, 0},
13190 {0x136, 0, 0},
13191 {0x137, 0x80, 0},
13192 {0x138, 0x60, 0},
13193 {0x139, 0x44, 0},
13194 {0x13A, 0x55, 0},
13195 {0x13B, 0x1, 0},
13196 {0x13C, 0x55, 0},
13197 {0x13D, 0x1, 0},
13198 {0x13E, 0x5, 0},
13199 {0x13F, 0x55, 0},
13200 {0x140, 0x55, 0},
13201 {0x146, 0, 0},
13202 {0x147, 0, 0},
13203 {0x148, 0, 0},
13204 {0x149, 0, 0},
13205 {0x14A, 0, 0},
13206 {0x14B, 0, 0},
13207 {0x14C, 0, 0},
13208 {0x14D, 0, 0},
13209 {0x14E, 0x1, 1},
13210 {0x14F, 0, 0},
13211 {0x150, 0, 0},
13212 {0x151, 0, 0},
13213 {0x154, 0xc, 0},
13214 {0x155, 0xc, 0},
13215 {0x156, 0xc, 0},
13216 {0x157, 0, 0},
13217 {0x158, 0x2b, 0},
13218 {0x159, 0x84, 0},
13219 {0x15A, 0x15, 0},
13220 {0x15B, 0xf, 0},
13221 {0x15C, 0, 0},
13222 {0x15D, 0, 0},
13223 {0x15E, 0, 1},
13224 {0x15F, 0, 1},
13225 {0x160, 0, 1},
13226 {0x161, 0, 1},
13227 {0x162, 0, 1},
13228 {0x163, 0, 1},
13229 {0x164, 0, 0},
13230 {0x165, 0, 0},
13231 {0x166, 0, 0},
13232 {0x167, 0, 0},
13233 {0x168, 0, 0},
13234 {0x169, 0, 0},
13235 {0x16A, 0, 1},
13236 {0x16B, 0, 1},
13237 {0x16C, 0, 1},
13238 {0x16D, 0, 0},
13239 {0x170, 0, 0},
13240 {0x171, 0x77, 0},
13241 {0x172, 0x77, 0},
13242 {0x173, 0x77, 0},
13243 {0x174, 0x77, 0},
13244 {0x175, 0, 0},
13245 {0x176, 0x3, 0},
13246 {0x177, 0x37, 0},
13247 {0x178, 0x3, 0},
13248 {0x179, 0, 0},
13249 {0x17A, 0x21, 0},
13250 {0x17B, 0x21, 0},
13251 {0x17C, 0, 0},
13252 {0x17D, 0xaa, 0},
13253 {0x17E, 0, 0},
13254 {0x17F, 0xaa, 0},
13255 {0x180, 0, 0},
13256 {0x190, 0, 0},
13257 {0x191, 0x77, 0},
13258 {0x192, 0x77, 0},
13259 {0x193, 0x77, 0},
13260 {0x194, 0x77, 0},
13261 {0x195, 0, 0},
13262 {0x196, 0x3, 0},
13263 {0x197, 0x37, 0},
13264 {0x198, 0x3, 0},
13265 {0x199, 0, 0},
13266 {0x19A, 0x21, 0},
13267 {0x19B, 0x21, 0},
13268 {0x19C, 0, 0},
13269 {0x19D, 0xaa, 0},
13270 {0x19E, 0, 0},
13271 {0x19F, 0xaa, 0},
13272 {0x1A0, 0, 0},
13273 {0x1A1, 0x2, 0},
13274 {0x1A2, 0xf, 0},
13275 {0x1A3, 0xf, 0},
13276 {0x1A4, 0, 1},
13277 {0x1A5, 0, 1},
13278 {0x1A6, 0, 1},
13279 {0x1A7, 0x2, 0},
13280 {0x1A8, 0xf, 0},
13281 {0x1A9, 0xf, 0},
13282 {0x1AA, 0, 1},
13283 {0x1AB, 0, 1},
13284 {0x1AC, 0, 1},
13285 {0x1AD, 0x84, 0},
13286 {0x1AE, 0x60, 0},
13287 {0x1AF, 0x47, 0},
13288 {0x1B0, 0x47, 0},
13289 {0x1B1, 0, 0},
13290 {0x1B2, 0, 0},
13291 {0x1B3, 0, 0},
13292 {0x1B4, 0, 0},
13293 {0x1B5, 0, 0},
13294 {0x1B6, 0, 0},
13295 {0x1B7, 0x5, 1},
13296 {0x1B8, 0, 0},
13297 {0x1B9, 0, 0},
13298 {0x1BA, 0, 0},
13299 {0x1BB, 0, 0},
13300 {0x1BC, 0, 0},
13301 {0x1BD, 0, 0},
13302 {0x1BE, 0, 0},
13303 {0x1BF, 0, 0},
13304 {0x1C0, 0, 0},
13305 {0x1C1, 0, 0},
13306 {0x1C2, 0xa0, 1},
13307 {0x1C3, 0, 0},
13308 {0x1C4, 0, 0},
13309 {0x1C5, 0, 0},
13310 {0x1C6, 0, 0},
13311 {0x1C7, 0, 0},
13312 {0x1C8, 0, 0},
13313 {0x1C9, 0, 0},
13314 {0x1CA, 0, 0},
13315 {0xFFFF, 0, 0}
13318 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13320 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13321 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13323 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13325 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13326 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13327 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13328 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13329 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13330 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13331 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13332 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13333 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13336 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13337 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13338 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13339 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13340 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13341 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13342 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13343 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13344 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13348 static const u32 nphy_tpc_txgain[] = {
13349 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13350 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13351 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13352 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13353 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13354 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13355 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13356 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13357 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13358 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13359 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13360 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13361 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13362 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13363 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13364 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13365 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13366 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13367 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13368 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13369 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13370 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13371 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13372 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13373 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13374 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13375 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13376 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13377 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13378 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13379 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13380 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13383 static const u16 nphy_tpc_loscale[] = {
13384 256, 256, 271, 271, 287, 256, 256, 271,
13385 271, 287, 287, 304, 304, 256, 256, 271,
13386 271, 287, 287, 304, 304, 322, 322, 341,
13387 341, 362, 362, 383, 383, 256, 256, 271,
13388 271, 287, 287, 304, 304, 322, 322, 256,
13389 256, 271, 271, 287, 287, 304, 304, 322,
13390 322, 341, 341, 362, 362, 256, 256, 271,
13391 271, 287, 287, 304, 304, 322, 322, 256,
13392 256, 271, 271, 287, 287, 304, 304, 322,
13393 322, 341, 341, 362, 362, 256, 256, 271,
13394 271, 287, 287, 304, 304, 322, 322, 341,
13395 341, 362, 362, 383, 383, 406, 406, 430,
13396 430, 455, 455, 482, 482, 511, 511, 541,
13397 541, 573, 573, 607, 607, 643, 643, 681,
13398 681, 722, 722, 764, 764, 810, 810, 858,
13399 858, 908, 908, 962, 962, 1019, 1019, 256
13402 static u32 nphy_tpc_txgain_ipa[] = {
13403 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13404 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13405 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13406 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13407 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13408 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13409 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13410 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13411 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13412 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13413 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13414 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13415 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13416 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13417 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13418 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13419 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13420 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13421 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13422 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13423 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13424 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13425 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13426 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13427 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13428 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13429 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13430 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13431 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13432 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13433 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13434 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13437 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13438 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13439 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13440 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13441 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13442 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13443 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13444 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13445 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13446 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13447 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13448 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13449 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13450 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13451 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13452 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13453 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13454 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13455 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13456 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13457 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13458 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13459 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13460 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13461 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13462 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13463 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13464 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13465 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13466 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13467 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13468 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13469 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13472 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13473 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13474 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13475 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13476 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13477 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13478 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13479 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13480 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13481 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13482 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13483 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13484 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13485 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13486 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13487 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13488 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13489 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13490 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13491 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13492 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13493 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13494 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13495 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13496 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13497 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13498 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13499 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13500 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13501 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13502 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13503 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13504 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13507 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13508 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13509 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13510 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13511 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13512 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13513 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13514 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13515 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13516 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13517 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13518 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13519 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13520 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13521 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13522 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13523 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13524 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13525 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13526 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13527 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13528 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13529 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13530 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13531 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13532 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13533 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13534 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13535 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13536 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13537 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13538 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13539 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13542 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13543 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13544 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13545 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13546 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13547 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13548 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13549 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13550 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13551 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13552 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13553 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13554 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13555 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13556 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13557 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13558 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13559 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13560 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13561 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13562 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13563 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13564 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13565 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13566 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13567 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13568 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13569 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13570 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13571 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13572 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13573 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13574 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13577 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13578 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13579 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13580 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13581 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13582 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13583 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13584 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13585 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13586 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13587 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13588 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13589 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13590 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13591 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13592 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13593 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13594 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13595 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13596 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13597 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13612 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13613 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13614 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13615 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13616 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13617 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13618 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13619 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13620 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13621 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13622 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13623 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13624 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13625 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13626 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13627 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13628 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13629 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13630 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13631 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13632 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13633 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13634 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13635 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13636 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13637 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13638 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13639 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13640 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13641 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13642 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13643 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13644 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13647 static u32 nphy_tpc_txgain_ipa_5g[] = {
13648 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13649 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13650 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13651 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13652 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13653 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13654 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13655 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13656 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13657 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13658 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13659 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13660 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13661 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13662 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13663 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13664 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13665 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13666 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13667 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13668 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13669 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13670 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13671 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13672 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13673 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13674 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13675 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13676 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13677 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13678 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13679 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13682 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13683 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13684 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13685 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13686 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13687 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13688 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13689 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13690 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13691 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13692 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13693 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13694 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13695 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13696 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13697 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13698 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13699 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13700 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13701 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13702 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13703 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13704 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13705 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13706 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13707 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13708 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13709 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13710 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13711 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13712 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13713 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13714 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13717 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13718 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13719 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13720 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13721 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13722 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13723 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13724 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13725 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13726 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13727 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13728 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13729 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13730 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13731 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13732 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13733 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13734 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13735 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13736 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13737 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13738 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13739 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13740 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13741 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13742 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13743 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13744 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13745 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13746 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13747 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13748 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13749 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13752 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13753 -114, -108, -98, -91, -84, -78, -70, -62,
13754 -54, -46, -39, -31, -23, -15, -8, 0
13757 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13758 -100, -95, -89, -83, -77, -70, -63, -56,
13759 -48, -41, -33, -25, -19, -12, -6, 0
13762 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13763 -159, -113, -86, -72, -62, -54, -48, -43,
13764 -39, -35, -31, -28, -25, -23, -20, -18,
13765 -17, -15, -13, -11, -10, -8, -7, -6,
13766 -5, -4, -3, -3, -2, -1, -1, 0
13769 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13770 -109, -109, -82, -68, -58, -50, -44, -39,
13771 -35, -31, -28, -26, -23, -21, -19, -17,
13772 -16, -14, -13, -11, -10, -9, -8, -7,
13773 -5, -5, -4, -3, -2, -1, -1, 0
13776 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13777 -122, -122, -95, -80, -69, -61, -54, -49,
13778 -43, -39, -35, -32, -28, -26, -23, -21,
13779 -18, -16, -15, -13, -11, -10, -8, -7,
13780 -6, -5, -4, -3, -2, -1, -1, 0
13783 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13784 -107, -101, -92, -85, -78, -71, -62, -55,
13785 -47, -39, -32, -24, -19, -12, -6, 0
13788 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13789 -110, -104, -95, -88, -81, -74, -66, -58,
13790 -50, -44, -36, -28, -23, -15, -8, 0
13793 static u8 pad_gain_codes_used_2057rev5[] = {
13794 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13795 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13798 static u8 pad_gain_codes_used_2057rev7[] = {
13799 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13800 5, 4, 3, 2, 1
13803 static u8 pad_all_gain_codes_2057[] = {
13804 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13805 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13806 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13807 1, 0
13810 static u8 pga_all_gain_codes_2057[] = {
13811 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13814 static u32 nphy_papd_scaltbl[] = {
13815 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13816 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13817 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13818 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13819 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13820 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13821 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13822 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13823 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13824 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13825 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13826 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13827 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13828 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13829 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13830 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13833 static u32 nphy_tpc_txgain_rev3[] = {
13834 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13835 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13836 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13837 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13838 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13839 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13840 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13841 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13842 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13843 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13844 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13845 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13846 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13847 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13848 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13849 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13850 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13851 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13852 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13853 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13854 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13855 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13856 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13857 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13858 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13859 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13860 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13861 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13862 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13863 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13864 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13865 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13868 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13869 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13870 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13871 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13872 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13873 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13874 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13875 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13876 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13877 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13878 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13879 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13880 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13881 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13882 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13883 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13884 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13885 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13886 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13887 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13888 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13889 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13890 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13891 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13892 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13893 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13894 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13895 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13896 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13897 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13898 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13899 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13900 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13903 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13904 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13905 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13906 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13907 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13908 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13909 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13910 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13911 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13912 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13913 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13914 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13915 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13916 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13917 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13918 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13919 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13920 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13921 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13922 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13923 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13924 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13925 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13926 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13927 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13928 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13929 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13930 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13931 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13932 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13933 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13934 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13935 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13938 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13939 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13940 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13941 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13942 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13943 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13944 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13945 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13946 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13947 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13948 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13949 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13950 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13951 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13952 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13953 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13954 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13955 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13956 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13957 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13958 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13959 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13960 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13961 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13962 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13963 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13964 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13965 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13966 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13967 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13968 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13969 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13970 0x10090001, 0x10090001, 0x10090001, 0x10090001
13973 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13974 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13975 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13976 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13977 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13978 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13979 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13980 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13981 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13982 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13983 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13984 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13985 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13986 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13987 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13988 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13989 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13990 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13991 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13992 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13993 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13994 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13995 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13996 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13997 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13998 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13999 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
14000 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
14001 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
14002 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14003 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14004 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14005 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14008 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
14009 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14010 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14011 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14012 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14013 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14014 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14015 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14016 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14017 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14018 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14019 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14020 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14021 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14022 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14023 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14024 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14025 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14026 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14027 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14028 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14029 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14030 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14031 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14032 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14033 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14034 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14035 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14036 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14037 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14038 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14039 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14040 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14043 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14044 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14045 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14046 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14047 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14048 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14049 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14050 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14051 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14052 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14053 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14054 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14055 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14056 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14057 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14058 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14059 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14060 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14061 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14062 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14063 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14064 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14065 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14066 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14067 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14068 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14069 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14070 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14071 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14072 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14073 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14074 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14075 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14078 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14079 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14080 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14081 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14082 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14083 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14084 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14085 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14086 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14087 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14088 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14089 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14090 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14091 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14092 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14093 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14094 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14095 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14096 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14097 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14098 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14099 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14100 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14101 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14102 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14103 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14104 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14105 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14106 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14107 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14108 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14109 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14110 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14113 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14114 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14115 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14116 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14118 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14119 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14122 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14124 struct brcms_phy *pi = (struct brcms_phy *) pih;
14125 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14127 if (NREV_GE(pi->pubpi.phy_rev, 16))
14128 return true;
14130 phybist0 = read_phy_reg(pi, 0x0e);
14131 phybist1 = read_phy_reg(pi, 0x0f);
14132 phybist2 = read_phy_reg(pi, 0xea);
14133 phybist3 = read_phy_reg(pi, 0xeb);
14134 phybist4 = read_phy_reg(pi, 0x156);
14136 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14137 (phybist3 == 0) && (phybist4 == 0))
14138 return true;
14140 return false;
14143 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14145 u16 addr, val;
14147 val = 0x1e1f;
14148 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14149 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14150 write_phy_reg(pi, addr, val);
14151 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14152 val = 0x3e3f;
14153 else
14154 val -= 0x0202;
14157 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14160 void
14161 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14162 u32 width, const void *data)
14164 struct phytbl_info tbl;
14166 tbl.tbl_id = id;
14167 tbl.tbl_len = len;
14168 tbl.tbl_offset = offset;
14169 tbl.tbl_width = width;
14170 tbl.tbl_ptr = data;
14171 wlc_phy_write_table_nphy(pi, &tbl);
14174 void
14175 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14176 u32 width, void *data)
14178 struct phytbl_info tbl;
14180 tbl.tbl_id = id;
14181 tbl.tbl_len = len;
14182 tbl.tbl_offset = offset;
14183 tbl.tbl_width = width;
14184 tbl.tbl_ptr = data;
14185 wlc_phy_read_table_nphy(pi, &tbl);
14188 static void
14189 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14191 uint idx;
14193 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14194 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14195 wlc_phy_write_table_nphy(pi,
14196 &mimophytbl_info_rev16[idx]);
14197 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14198 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14199 wlc_phy_write_table_nphy(pi,
14200 &mimophytbl_info_rev7[idx]);
14201 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14202 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14203 wlc_phy_write_table_nphy(pi,
14204 &mimophytbl_info_rev3[idx]);
14205 } else {
14206 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14207 wlc_phy_write_table_nphy(pi,
14208 &mimophytbl_info_rev0[idx]);
14212 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14214 uint idx = 0;
14215 u8 antswctrllut;
14217 if (pi->phy_init_por)
14218 wlc_phy_static_table_download_nphy(pi);
14220 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14222 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14223 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14224 antswctrllut;
14226 switch (antswctrllut) {
14227 case 0:
14229 break;
14231 case 1:
14233 if (pi->aa2g == 7)
14234 wlc_phy_table_write_nphy(
14236 NPHY_TBL_ID_ANTSWCTRLLUT,
14237 2, 0x21, 8,
14238 &ant_sw_ctrl_tbl_rev8_2o3[0]);
14239 else
14240 wlc_phy_table_write_nphy(
14242 NPHY_TBL_ID_ANTSWCTRLLUT,
14243 2, 0x21, 8,
14244 &ant_sw_ctrl_tbl_rev8
14245 [0]);
14247 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14248 2, 0x25, 8,
14249 &ant_sw_ctrl_tbl_rev8[2]);
14250 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14251 2, 0x29, 8,
14252 &ant_sw_ctrl_tbl_rev8[4]);
14253 break;
14255 case 2:
14257 wlc_phy_table_write_nphy(
14258 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14259 2, 0x1, 8,
14260 &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14261 wlc_phy_table_write_nphy(
14262 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14263 2, 0x5, 8,
14264 &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14265 wlc_phy_table_write_nphy(
14266 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14267 2, 0x9, 8,
14268 &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14270 wlc_phy_table_write_nphy(
14271 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14272 2, 0x21, 8,
14273 &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14274 wlc_phy_table_write_nphy(
14275 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14276 2, 0x25, 8,
14277 &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14278 wlc_phy_table_write_nphy(
14279 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14280 2, 0x29, 8,
14281 &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14282 break;
14284 default:
14285 break;
14288 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14289 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14291 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14292 antswctrllut =
14293 CHSPEC_IS2G(pi->radio_chanspec) ?
14294 pi->srom_fem2g.antswctrllut :
14295 pi->srom_fem5g.antswctrllut;
14296 switch (antswctrllut) {
14297 case 0:
14298 wlc_phy_write_table_nphy(
14300 &mimophytbl_info_rev3_volatile
14301 [idx]);
14302 break;
14303 case 1:
14304 wlc_phy_write_table_nphy(
14306 &mimophytbl_info_rev3_volatile1
14307 [idx]);
14308 break;
14309 case 2:
14310 wlc_phy_write_table_nphy(
14312 &mimophytbl_info_rev3_volatile2
14313 [idx]);
14314 break;
14315 case 3:
14316 wlc_phy_write_table_nphy(
14318 &mimophytbl_info_rev3_volatile3
14319 [idx]);
14320 break;
14321 default:
14322 break;
14324 } else {
14325 wlc_phy_write_table_nphy(
14327 &mimophytbl_info_rev3_volatile[idx]);
14330 } else {
14331 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14332 wlc_phy_write_table_nphy(pi,
14333 &mimophytbl_info_rev0_volatile
14334 [idx]);
14338 static void
14339 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14341 write_phy_reg(pi, 0x77, holdoff);
14342 write_phy_reg(pi, 0xb4, delay);
14345 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14347 u16 holdoff, delay;
14349 if (rifs) {
14351 holdoff = 0x10;
14352 delay = 0x258;
14353 } else {
14355 holdoff = 0x15;
14356 delay = 0x320;
14359 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14361 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs))
14362 pi->sh->_rifs_phy = rifs;
14365 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14368 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14369 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14370 pi->phy_5g_pwrgain = true;
14371 return;
14374 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14375 pi->phy_5g_pwrgain = false;
14377 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14378 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14379 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14380 else if ((pi->sh->sromrev >= 4)
14381 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14382 pi->phy_5g_pwrgain = true;
14385 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
14387 u16 bw40po, cddpo, stbcpo, bwduppo;
14388 uint band_num;
14389 struct phy_shim_info *shim = pi->sh->physhim;
14391 if (pi->sh->sromrev >= 9)
14392 return;
14394 bw40po = (u16) wlapi_getintvar(shim, BRCMS_SROM_BW40PO);
14395 pi->bw402gpo = bw40po & 0xf;
14396 pi->bw405gpo = (bw40po & 0xf0) >> 4;
14397 pi->bw405glpo = (bw40po & 0xf00) >> 8;
14398 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14400 cddpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_CDDPO);
14401 pi->cdd2gpo = cddpo & 0xf;
14402 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14403 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14404 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14406 stbcpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_STBCPO);
14407 pi->stbc2gpo = stbcpo & 0xf;
14408 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14409 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14410 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14412 bwduppo = (u16) wlapi_getintvar(shim, BRCMS_SROM_BWDUPPO);
14413 pi->bwdup2gpo = bwduppo & 0xf;
14414 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14415 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14416 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14418 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14419 band_num++) {
14420 switch (band_num) {
14421 case 0:
14423 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14424 (s8) wlapi_getintvar(shim,
14425 BRCMS_SROM_MAXP2GA0);
14426 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14427 (s8) wlapi_getintvar(shim,
14428 BRCMS_SROM_MAXP2GA1);
14429 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14430 (s16) wlapi_getintvar(shim,
14431 BRCMS_SROM_PA2GW0A0);
14432 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14433 (s16) wlapi_getintvar(shim,
14434 BRCMS_SROM_PA2GW0A1);
14435 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14436 (s16) wlapi_getintvar(shim,
14437 BRCMS_SROM_PA2GW1A0);
14438 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14439 (s16) wlapi_getintvar(shim,
14440 BRCMS_SROM_PA2GW1A1);
14441 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14442 (s16) wlapi_getintvar(shim,
14443 BRCMS_SROM_PA2GW2A0);
14444 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14445 (s16) wlapi_getintvar(shim,
14446 BRCMS_SROM_PA2GW2A1);
14447 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14448 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA0);
14449 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14450 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA1);
14452 pi->cck2gpo = (u16) wlapi_getintvar(shim,
14453 BRCMS_SROM_CCK2GPO);
14455 pi->ofdm2gpo =
14456 (u32) wlapi_getintvar(shim,
14457 BRCMS_SROM_OFDM2GPO);
14459 pi->mcs2gpo[0] =
14460 (u16) wlapi_getintvar(shim,
14461 BRCMS_SROM_MCS2GPO0);
14462 pi->mcs2gpo[1] =
14463 (u16) wlapi_getintvar(shim,
14464 BRCMS_SROM_MCS2GPO1);
14465 pi->mcs2gpo[2] =
14466 (u16) wlapi_getintvar(shim,
14467 BRCMS_SROM_MCS2GPO2);
14468 pi->mcs2gpo[3] =
14469 (u16) wlapi_getintvar(shim,
14470 BRCMS_SROM_MCS2GPO3);
14471 pi->mcs2gpo[4] =
14472 (u16) wlapi_getintvar(shim,
14473 BRCMS_SROM_MCS2GPO4);
14474 pi->mcs2gpo[5] =
14475 (u16) wlapi_getintvar(shim,
14476 BRCMS_SROM_MCS2GPO5);
14477 pi->mcs2gpo[6] =
14478 (u16) wlapi_getintvar(shim,
14479 BRCMS_SROM_MCS2GPO6);
14480 pi->mcs2gpo[7] =
14481 (u16) wlapi_getintvar(shim,
14482 BRCMS_SROM_MCS2GPO7);
14483 break;
14484 case 1:
14486 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14487 (s8) wlapi_getintvar(shim, BRCMS_SROM_MAXP5GA0);
14488 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14489 (s8) wlapi_getintvar(shim,
14490 BRCMS_SROM_MAXP5GA1);
14491 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14492 (s16) wlapi_getintvar(shim,
14493 BRCMS_SROM_PA5GW0A0);
14494 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14495 (s16) wlapi_getintvar(shim,
14496 BRCMS_SROM_PA5GW0A1);
14497 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14498 (s16) wlapi_getintvar(shim,
14499 BRCMS_SROM_PA5GW1A0);
14500 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14501 (s16) wlapi_getintvar(shim,
14502 BRCMS_SROM_PA5GW1A1);
14503 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14504 (s16) wlapi_getintvar(shim,
14505 BRCMS_SROM_PA5GW2A0);
14506 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14507 (s16) wlapi_getintvar(shim,
14508 BRCMS_SROM_PA5GW2A1);
14509 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14510 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA0);
14511 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14512 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA1);
14514 pi->ofdm5gpo =
14515 (u32) wlapi_getintvar(shim,
14516 BRCMS_SROM_OFDM5GPO);
14518 pi->mcs5gpo[0] =
14519 (u16) wlapi_getintvar(shim,
14520 BRCMS_SROM_MCS5GPO0);
14521 pi->mcs5gpo[1] =
14522 (u16) wlapi_getintvar(shim,
14523 BRCMS_SROM_MCS5GPO1);
14524 pi->mcs5gpo[2] =
14525 (u16) wlapi_getintvar(shim,
14526 BRCMS_SROM_MCS5GPO2);
14527 pi->mcs5gpo[3] =
14528 (u16) wlapi_getintvar(shim,
14529 BRCMS_SROM_MCS5GPO3);
14530 pi->mcs5gpo[4] =
14531 (u16) wlapi_getintvar(shim,
14532 BRCMS_SROM_MCS5GPO4);
14533 pi->mcs5gpo[5] =
14534 (u16) wlapi_getintvar(shim,
14535 BRCMS_SROM_MCS5GPO5);
14536 pi->mcs5gpo[6] =
14537 (u16) wlapi_getintvar(shim,
14538 BRCMS_SROM_MCS5GPO6);
14539 pi->mcs5gpo[7] =
14540 (u16) wlapi_getintvar(shim,
14541 BRCMS_SROM_MCS5GPO7);
14542 break;
14543 case 2:
14545 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14546 (s8) wlapi_getintvar(shim,
14547 BRCMS_SROM_MAXP5GLA0);
14548 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14549 (s8) wlapi_getintvar(shim,
14550 BRCMS_SROM_MAXP5GLA1);
14551 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14552 (s16) wlapi_getintvar(shim,
14553 BRCMS_SROM_PA5GLW0A0);
14554 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14555 (s16) wlapi_getintvar(shim,
14556 BRCMS_SROM_PA5GLW0A1);
14557 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14558 (s16) wlapi_getintvar(shim,
14559 BRCMS_SROM_PA5GLW1A0);
14560 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14561 (s16) wlapi_getintvar(shim,
14562 BRCMS_SROM_PA5GLW1A1);
14563 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14564 (s16) wlapi_getintvar(shim,
14565 BRCMS_SROM_PA5GLW2A0);
14566 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14567 (s16) wlapi_getintvar(shim,
14568 BRCMS_SROM_PA5GLW2A1);
14569 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14570 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14572 pi->ofdm5glpo =
14573 (u32) wlapi_getintvar(shim,
14574 BRCMS_SROM_OFDM5GLPO);
14576 pi->mcs5glpo[0] =
14577 (u16) wlapi_getintvar(shim,
14578 BRCMS_SROM_MCS5GLPO0);
14579 pi->mcs5glpo[1] =
14580 (u16) wlapi_getintvar(shim,
14581 BRCMS_SROM_MCS5GLPO1);
14582 pi->mcs5glpo[2] =
14583 (u16) wlapi_getintvar(shim,
14584 BRCMS_SROM_MCS5GLPO2);
14585 pi->mcs5glpo[3] =
14586 (u16) wlapi_getintvar(shim,
14587 BRCMS_SROM_MCS5GLPO3);
14588 pi->mcs5glpo[4] =
14589 (u16) wlapi_getintvar(shim,
14590 BRCMS_SROM_MCS5GLPO4);
14591 pi->mcs5glpo[5] =
14592 (u16) wlapi_getintvar(shim,
14593 BRCMS_SROM_MCS5GLPO5);
14594 pi->mcs5glpo[6] =
14595 (u16) wlapi_getintvar(shim,
14596 BRCMS_SROM_MCS5GLPO6);
14597 pi->mcs5glpo[7] =
14598 (u16) wlapi_getintvar(shim,
14599 BRCMS_SROM_MCS5GLPO7);
14600 break;
14601 case 3:
14603 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14604 (s8) wlapi_getintvar(shim,
14605 BRCMS_SROM_MAXP5GHA0);
14606 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14607 (s8) wlapi_getintvar(shim,
14608 BRCMS_SROM_MAXP5GHA1);
14609 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14610 (s16) wlapi_getintvar(shim,
14611 BRCMS_SROM_PA5GHW0A0);
14612 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14613 (s16) wlapi_getintvar(shim,
14614 BRCMS_SROM_PA5GHW0A1);
14615 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14616 (s16) wlapi_getintvar(shim,
14617 BRCMS_SROM_PA5GHW1A0);
14618 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14619 (s16) wlapi_getintvar(shim,
14620 BRCMS_SROM_PA5GHW1A1);
14621 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14622 (s16) wlapi_getintvar(shim,
14623 BRCMS_SROM_PA5GHW2A0);
14624 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14625 (s16) wlapi_getintvar(shim,
14626 BRCMS_SROM_PA5GHW2A1);
14627 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14628 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14630 pi->ofdm5ghpo =
14631 (u32) wlapi_getintvar(shim,
14632 BRCMS_SROM_OFDM5GHPO);
14634 pi->mcs5ghpo[0] =
14635 (u16) wlapi_getintvar(shim,
14636 BRCMS_SROM_MCS5GHPO0);
14637 pi->mcs5ghpo[1] =
14638 (u16) wlapi_getintvar(shim,
14639 BRCMS_SROM_MCS5GHPO1);
14640 pi->mcs5ghpo[2] =
14641 (u16) wlapi_getintvar(shim,
14642 BRCMS_SROM_MCS5GHPO2);
14643 pi->mcs5ghpo[3] =
14644 (u16) wlapi_getintvar(shim,
14645 BRCMS_SROM_MCS5GHPO3);
14646 pi->mcs5ghpo[4] =
14647 (u16) wlapi_getintvar(shim,
14648 BRCMS_SROM_MCS5GHPO4);
14649 pi->mcs5ghpo[5] =
14650 (u16) wlapi_getintvar(shim,
14651 BRCMS_SROM_MCS5GHPO5);
14652 pi->mcs5ghpo[6] =
14653 (u16) wlapi_getintvar(shim,
14654 BRCMS_SROM_MCS5GHPO6);
14655 pi->mcs5ghpo[7] =
14656 (u16) wlapi_getintvar(shim,
14657 BRCMS_SROM_MCS5GHPO7);
14658 break;
14662 wlc_phy_txpwr_apply_nphy(pi);
14665 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14667 struct phy_shim_info *shim = pi->sh->physhim;
14669 pi->antswitch = (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWITCH);
14670 pi->aa2g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA2G);
14671 pi->aa5g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA5G);
14673 pi->srom_fem2g.tssipos = (u8) wlapi_getintvar(shim,
14674 BRCMS_SROM_TSSIPOS2G);
14675 pi->srom_fem2g.extpagain = (u8) wlapi_getintvar(shim,
14676 BRCMS_SROM_EXTPAGAIN2G);
14677 pi->srom_fem2g.pdetrange = (u8) wlapi_getintvar(shim,
14678 BRCMS_SROM_PDETRANGE2G);
14679 pi->srom_fem2g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO2G);
14680 pi->srom_fem2g.antswctrllut =
14681 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14683 pi->srom_fem5g.tssipos = (u8) wlapi_getintvar(shim,
14684 BRCMS_SROM_TSSIPOS5G);
14685 pi->srom_fem5g.extpagain = (u8) wlapi_getintvar(shim,
14686 BRCMS_SROM_EXTPAGAIN5G);
14687 pi->srom_fem5g.pdetrange = (u8) wlapi_getintvar(shim,
14688 BRCMS_SROM_PDETRANGE5G);
14689 pi->srom_fem5g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO5G);
14690 if (wlapi_getvar(shim, BRCMS_SROM_ANTSWCTL5G))
14691 pi->srom_fem5g.antswctrllut =
14692 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL5G);
14693 else
14694 pi->srom_fem5g.antswctrllut =
14695 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14697 wlc_phy_txpower_ipa_upd(pi);
14699 pi->phy_txcore_disable_temp =
14700 (s16) wlapi_getintvar(shim, BRCMS_SROM_TEMPTHRESH);
14701 if (pi->phy_txcore_disable_temp == 0)
14702 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
14704 pi->phy_tempsense_offset = (s8) wlapi_getintvar(shim,
14705 BRCMS_SROM_TEMPOFFSET);
14706 if (pi->phy_tempsense_offset != 0) {
14707 if (pi->phy_tempsense_offset >
14708 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
14709 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
14710 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14711 NPHY_SROM_MINTEMPOFFSET))
14712 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
14713 else
14714 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
14717 pi->phy_txcore_enable_temp =
14718 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
14720 pi->phycal_tempdelta =
14721 (u8) wlapi_getintvar(shim, BRCMS_SROM_PHYCAL_TEMPDELTA);
14722 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
14723 pi->phycal_tempdelta = 0;
14725 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14727 return true;
14730 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14732 uint i;
14734 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14735 pi->phyhang_avoid = true;
14737 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14738 pi->nphy_gband_spurwar_en = true;
14739 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14740 pi->nphy_aband_spurwar_en = true;
14742 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14743 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14744 pi->nphy_gband_spurwar2_en = true;
14747 pi->n_preamble_override = AUTO;
14748 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14749 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14751 pi->nphy_txrx_chain = AUTO;
14752 pi->phy_scraminit = AUTO;
14754 pi->nphy_rxcalparams = 0x010100B5;
14756 pi->nphy_perical = PHY_PERICAL_MPHASE;
14757 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14758 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14760 pi->nphy_gain_boost = true;
14761 pi->nphy_elna_gain_config = false;
14762 pi->radio_is_on = false;
14764 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14765 pi->nphy_txpwrindex[i].index = AUTO;
14767 wlc_phy_txpwrctrl_config_nphy(pi);
14768 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14769 pi->hwpwrctrl_capable = true;
14771 pi->pi_fptr.init = wlc_phy_init_nphy;
14772 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14773 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14774 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14776 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14777 return false;
14779 return true;
14782 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14784 s32 rfpwr_offset = 0;
14786 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14787 if ((pi->pubpi.radiorev == 3) ||
14788 (pi->pubpi.radiorev == 4) ||
14789 (pi->pubpi.radiorev == 6))
14790 rfpwr_offset = (s16)
14791 nphy_papd_padgain_dlt_2g_2057rev3n4
14792 [pad_gn];
14793 else if (pi->pubpi.radiorev == 5)
14794 rfpwr_offset = (s16)
14795 nphy_papd_padgain_dlt_2g_2057rev5
14796 [pad_gn];
14797 else if ((pi->pubpi.radiorev == 7)
14798 || (pi->pubpi.radiorev ==
14800 rfpwr_offset = (s16)
14801 nphy_papd_padgain_dlt_2g_2057rev7
14802 [pad_gn];
14803 } else {
14804 if ((pi->pubpi.radiorev == 3) ||
14805 (pi->pubpi.radiorev == 4) ||
14806 (pi->pubpi.radiorev == 6))
14807 rfpwr_offset = (s16)
14808 nphy_papd_pgagain_dlt_5g_2057
14809 [pga_gn];
14810 else if ((pi->pubpi.radiorev == 7)
14811 || (pi->pubpi.radiorev ==
14813 rfpwr_offset = (s16)
14814 nphy_papd_pgagain_dlt_5g_2057rev7
14815 [pga_gn];
14817 return rfpwr_offset;
14820 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14822 bool gf_preamble = false;
14823 u16 val;
14825 if (preamble == BRCMS_N_PREAMBLE_GF)
14826 gf_preamble = true;
14828 val = read_phy_reg(pi, 0xed);
14830 val |= RX_GF_MM_AUTO;
14831 val &= ~RX_GF_OR_MM;
14832 if (gf_preamble)
14833 val |= RX_GF_OR_MM;
14835 write_phy_reg(pi, 0xed, val);
14838 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14840 int j, type;
14841 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14843 for (type = 0; type < 3; type++) {
14844 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14845 write_phy_reg(pi, addr_offset[type] + j,
14846 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14849 if (pi->bw == WL_CHANSPEC_BW_40) {
14850 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14851 write_phy_reg(pi, 0x186 + j,
14852 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14853 } else {
14854 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14855 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14856 write_phy_reg(pi, 0x186 + j,
14857 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14860 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14861 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14862 write_phy_reg(pi, 0x2c5 + j,
14863 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14868 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14870 int j;
14872 if (pi->bw == WL_CHANSPEC_BW_40) {
14873 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14874 write_phy_reg(pi, 0x195 + j,
14875 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14876 } else {
14877 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14878 write_phy_reg(pi, 0x186 + j,
14879 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14883 static void
14884 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
14885 u8 len)
14887 u32 t1_offset, t2_offset;
14888 u8 ctr;
14889 u8 end_event =
14890 NREV_GE(pi->pubpi.phy_rev,
14891 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
14892 u8 end_dly = 1;
14894 if (pi->phyhang_avoid)
14895 wlc_phy_stay_in_carriersearch_nphy(pi, true);
14897 t1_offset = cmd << 4;
14898 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14899 events);
14900 t2_offset = t1_offset + 0x080;
14901 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14902 dlys);
14904 for (ctr = len; ctr < 16; ctr++) {
14905 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14906 t1_offset + ctr, 8, &end_event);
14907 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14908 t2_offset + ctr, 8, &end_dly);
14911 if (pi->phyhang_avoid)
14912 wlc_phy_stay_in_carriersearch_nphy(pi, false);
14915 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14917 u16 lpf_bw_ctl_val = 0;
14918 u16 rx2tx_lpf_rc_lut_offset = 0;
14920 if (offset == 0) {
14921 if (CHSPEC_IS40(pi->radio_chanspec))
14922 rx2tx_lpf_rc_lut_offset = 0x159;
14923 else
14924 rx2tx_lpf_rc_lut_offset = 0x154;
14925 } else {
14926 rx2tx_lpf_rc_lut_offset = offset;
14928 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14929 (u32) rx2tx_lpf_rc_lut_offset, 16,
14930 &lpf_bw_ctl_val);
14932 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14934 return lpf_bw_ctl_val;
14937 static void
14938 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14939 u8 core_mask, u8 off, u8 override_id)
14941 u8 core_num;
14942 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14943 u8 val_shift = 0;
14945 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14946 en_mask = field;
14947 for (core_num = 0; core_num < 2; core_num++) {
14948 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14950 switch (field) {
14951 case (0x1 << 2):
14952 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14953 val_addr = (core_num == 0) ? 0x7a :
14954 0x7d;
14955 val_mask = (0x1 << 1);
14956 val_shift = 1;
14957 break;
14958 case (0x1 << 3):
14959 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14960 val_addr = (core_num == 0) ? 0x7a :
14961 0x7d;
14962 val_mask = (0x1 << 2);
14963 val_shift = 2;
14964 break;
14965 case (0x1 << 4):
14966 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14967 val_addr = (core_num == 0) ? 0x7a :
14968 0x7d;
14969 val_mask = (0x1 << 4);
14970 val_shift = 4;
14971 break;
14972 case (0x1 << 5):
14973 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14974 val_addr = (core_num == 0) ? 0x7a :
14975 0x7d;
14976 val_mask = (0x1 << 5);
14977 val_shift = 5;
14978 break;
14979 case (0x1 << 6):
14980 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14981 val_addr = (core_num == 0) ? 0x7a :
14982 0x7d;
14983 val_mask = (0x1 << 6);
14984 val_shift = 6;
14985 break;
14986 case (0x1 << 7):
14987 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14988 val_addr = (core_num == 0) ? 0x7a :
14989 0x7d;
14990 val_mask = (0x1 << 7);
14991 val_shift = 7;
14992 break;
14993 case (0x1 << 10):
14994 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14995 val_addr = (core_num == 0) ? 0xf8 :
14996 0xfa;
14997 val_mask = (0x7 << 4);
14998 val_shift = 4;
14999 break;
15000 case (0x1 << 11):
15001 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15002 val_addr = (core_num == 0) ? 0x7b :
15003 0x7e;
15004 val_mask = (0xffff << 0);
15005 val_shift = 0;
15006 break;
15007 case (0x1 << 12):
15008 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15009 val_addr = (core_num == 0) ? 0x7c :
15010 0x7f;
15011 val_mask = (0xffff << 0);
15012 val_shift = 0;
15013 break;
15014 case (0x3 << 13):
15015 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15016 val_addr = (core_num == 0) ? 0x348 :
15017 0x349;
15018 val_mask = (0xff << 0);
15019 val_shift = 0;
15020 break;
15021 case (0x1 << 13):
15022 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15023 val_addr = (core_num == 0) ? 0x348 :
15024 0x349;
15025 val_mask = (0xf << 0);
15026 val_shift = 0;
15027 break;
15028 default:
15029 addr = 0xffff;
15030 break;
15032 } else if (override_id ==
15033 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
15035 switch (field) {
15036 case (0x1 << 1):
15037 en_addr = (core_num == 0) ? 0x342 :
15038 0x343;
15039 val_addr = (core_num == 0) ? 0x340 :
15040 0x341;
15041 val_mask = (0x1 << 1);
15042 val_shift = 1;
15043 break;
15044 case (0x1 << 3):
15045 en_addr = (core_num == 0) ? 0x342 :
15046 0x343;
15047 val_addr = (core_num == 0) ? 0x340 :
15048 0x341;
15049 val_mask = (0x1 << 3);
15050 val_shift = 3;
15051 break;
15052 case (0x1 << 5):
15053 en_addr = (core_num == 0) ? 0x342 :
15054 0x343;
15055 val_addr = (core_num == 0) ? 0x340 :
15056 0x341;
15057 val_mask = (0x1 << 5);
15058 val_shift = 5;
15059 break;
15060 case (0x1 << 4):
15061 en_addr = (core_num == 0) ? 0x342 :
15062 0x343;
15063 val_addr = (core_num == 0) ? 0x340 :
15064 0x341;
15065 val_mask = (0x1 << 4);
15066 val_shift = 4;
15067 break;
15068 case (0x1 << 2):
15070 en_addr = (core_num == 0) ? 0x342 :
15071 0x343;
15072 val_addr = (core_num == 0) ? 0x340 :
15073 0x341;
15074 val_mask = (0x1 << 2);
15075 val_shift = 2;
15076 break;
15077 case (0x1 << 7):
15079 en_addr = (core_num == 0) ? 0x342 :
15080 0x343;
15081 val_addr = (core_num == 0) ? 0x340 :
15082 0x341;
15083 val_mask = (0x7 << 8);
15084 val_shift = 8;
15085 break;
15086 case (0x1 << 11):
15087 en_addr = (core_num == 0) ? 0x342 :
15088 0x343;
15089 val_addr = (core_num == 0) ? 0x340 :
15090 0x341;
15091 val_mask = (0x1 << 14);
15092 val_shift = 14;
15093 break;
15094 case (0x1 << 10):
15095 en_addr = (core_num == 0) ? 0x342 :
15096 0x343;
15097 val_addr = (core_num == 0) ? 0x340 :
15098 0x341;
15099 val_mask = (0x1 << 13);
15100 val_shift = 13;
15101 break;
15102 case (0x1 << 9):
15103 en_addr = (core_num == 0) ? 0x342 :
15104 0x343;
15105 val_addr = (core_num == 0) ? 0x340 :
15106 0x341;
15107 val_mask = (0x1 << 12);
15108 val_shift = 12;
15109 break;
15110 case (0x1 << 8):
15111 en_addr = (core_num == 0) ? 0x342 :
15112 0x343;
15113 val_addr = (core_num == 0) ? 0x340 :
15114 0x341;
15115 val_mask = (0x1 << 11);
15116 val_shift = 11;
15117 break;
15118 case (0x1 << 6):
15119 en_addr = (core_num == 0) ? 0x342 :
15120 0x343;
15121 val_addr = (core_num == 0) ? 0x340 :
15122 0x341;
15123 val_mask = (0x1 << 6);
15124 val_shift = 6;
15125 break;
15126 case (0x1 << 0):
15127 en_addr = (core_num == 0) ? 0x342 :
15128 0x343;
15129 val_addr = (core_num == 0) ? 0x340 :
15130 0x341;
15131 val_mask = (0x1 << 0);
15132 val_shift = 0;
15133 break;
15134 default:
15135 addr = 0xffff;
15136 break;
15138 } else if (override_id ==
15139 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
15141 switch (field) {
15142 case (0x1 << 3):
15143 en_addr = (core_num == 0) ? 0x346 :
15144 0x347;
15145 val_addr = (core_num == 0) ? 0x344 :
15146 0x345;
15147 val_mask = (0x1 << 3);
15148 val_shift = 3;
15149 break;
15150 case (0x1 << 1):
15151 en_addr = (core_num == 0) ? 0x346 :
15152 0x347;
15153 val_addr = (core_num == 0) ? 0x344 :
15154 0x345;
15155 val_mask = (0x1 << 1);
15156 val_shift = 1;
15157 break;
15158 case (0x1 << 0):
15159 en_addr = (core_num == 0) ? 0x346 :
15160 0x347;
15161 val_addr = (core_num == 0) ? 0x344 :
15162 0x345;
15163 val_mask = (0x1 << 0);
15164 val_shift = 0;
15165 break;
15166 case (0x1 << 2):
15167 en_addr = (core_num == 0) ? 0x346 :
15168 0x347;
15169 val_addr = (core_num == 0) ? 0x344 :
15170 0x345;
15171 val_mask = (0x1 << 2);
15172 val_shift = 2;
15173 break;
15174 case (0x1 << 4):
15175 en_addr = (core_num == 0) ? 0x346 :
15176 0x347;
15177 val_addr = (core_num == 0) ? 0x344 :
15178 0x345;
15179 val_mask = (0x1 << 4);
15180 val_shift = 4;
15181 break;
15182 default:
15183 addr = 0xffff;
15184 break;
15188 if (off) {
15189 and_phy_reg(pi, en_addr, ~en_mask);
15190 and_phy_reg(pi, val_addr, ~val_mask);
15191 } else {
15193 if ((core_mask == 0)
15194 || (core_mask & (1 << core_num))) {
15195 or_phy_reg(pi, en_addr, en_mask);
15197 if (addr != 0xffff)
15198 mod_phy_reg(pi, val_addr,
15199 val_mask,
15200 (value <<
15201 val_shift));
15208 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15210 uint core;
15211 int ctr;
15212 s16 gain_delta[2];
15213 u8 curr_channel;
15214 u16 minmax_gain[2];
15215 u16 regval[4];
15217 if (pi->phyhang_avoid)
15218 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15220 if (pi->nphy_gain_boost) {
15221 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15223 gain_delta[0] = 6;
15224 gain_delta[1] = 6;
15225 } else {
15227 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15228 gain_delta[0] =
15229 (s16)
15230 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15231 curr_channel) +
15232 nphy_lnagain_est0[1]), 13);
15233 gain_delta[1] =
15234 (s16)
15235 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15236 curr_channel) +
15237 nphy_lnagain_est1[1]), 13);
15239 } else {
15241 gain_delta[0] = 0;
15242 gain_delta[1] = 0;
15245 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15246 if (pi->nphy_elna_gain_config) {
15248 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15249 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15250 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15251 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15252 } else {
15253 for (ctr = 0; ctr < 4; ctr++)
15254 regval[ctr] =
15255 nphy_def_lnagains[ctr] +
15256 gain_delta[core];
15258 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15260 minmax_gain[core] =
15261 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15264 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15265 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15267 if (pi->phyhang_avoid)
15268 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15271 static void
15272 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15274 if (core == PHY_CORE_0) {
15275 write_phy_reg(pi, 0x38, 0x4);
15276 if (CHSPEC_IS2G(pi->radio_chanspec))
15277 write_phy_reg(pi, 0x37, 0x0060);
15278 else
15279 write_phy_reg(pi, 0x37, 0x1080);
15280 } else if (core == PHY_CORE_1) {
15281 write_phy_reg(pi, 0x2ae, 0x4);
15282 if (CHSPEC_IS2G(pi->radio_chanspec))
15283 write_phy_reg(pi, 0x2ad, 0x0060);
15284 else
15285 write_phy_reg(pi, 0x2ad, 0x1080);
15289 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15291 u8 txchain0, txchain1;
15293 txchain0 = txchain & 0x1;
15294 txchain1 = (txchain & 0x2) >> 1;
15295 if (!txchain0)
15296 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15298 if (!txchain1)
15299 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15302 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15304 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15305 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15306 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15307 s8 tia_gainbits[] = {
15308 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15310 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15311 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15313 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15315 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15316 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15318 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
15319 lna1_gain_db);
15320 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
15321 lna1_gain_db);
15323 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
15324 lna2_gain_db);
15325 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
15326 lna2_gain_db);
15328 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15329 tia_gain_db);
15330 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15331 tia_gain_db);
15333 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15334 tia_gainbits);
15335 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15336 tia_gainbits);
15338 write_phy_reg(pi, 0x37, 0x74);
15339 write_phy_reg(pi, 0x2ad, 0x74);
15340 write_phy_reg(pi, 0x38, 0x18);
15341 write_phy_reg(pi, 0x2ae, 0x18);
15343 write_phy_reg(pi, 0x2b, 0xe8);
15344 write_phy_reg(pi, 0x41, 0xe8);
15346 if (CHSPEC_IS20(pi->radio_chanspec)) {
15348 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15349 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15350 } else {
15352 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15353 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15357 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15359 u16 currband;
15360 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15361 s8 *lna1_gain_db = NULL;
15362 s8 *lna1_gain_db_2 = NULL;
15363 s8 *lna2_gain_db = NULL;
15364 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15365 s8 *tia_gain_db;
15366 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15367 s8 *tia_gainbits;
15368 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15369 u16 *rfseq_init_gain;
15370 u16 init_gaincode;
15371 u16 clip1hi_gaincode;
15372 u16 clip1md_gaincode = 0;
15373 u16 clip1md_gaincode_B;
15374 u16 clip1lo_gaincode;
15375 u16 clip1lo_gaincode_B;
15376 u8 crsminl_th = 0;
15377 u8 crsminu_th;
15378 u16 nbclip_th = 0;
15379 u8 w1clip_th;
15380 u16 freq;
15381 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15382 u8 chg_nbclip_th = 0;
15384 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15385 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15387 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15388 if (currband == 0) {
15390 lna1_gain_db = lna1G_gain_db_rev7;
15392 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15393 lna1_gain_db);
15394 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15395 lna1_gain_db);
15397 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15399 if (CHSPEC_IS40(pi->radio_chanspec)) {
15400 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15401 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15404 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15406 if (CHSPEC_IS20(pi->radio_chanspec)) {
15407 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15408 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15410 } else {
15412 init_gaincode = 0x9e;
15413 clip1hi_gaincode = 0x9e;
15414 clip1md_gaincode_B = 0x24;
15415 clip1lo_gaincode = 0x8a;
15416 clip1lo_gaincode_B = 8;
15417 rfseq_init_gain = rfseqA_init_gain_rev7;
15419 tia_gain_db = tiaA_gain_db_rev7;
15420 tia_gainbits = tiaA_gainbits_rev7;
15422 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
15423 if (CHSPEC_IS20(pi->radio_chanspec)) {
15425 w1clip_th = 25;
15426 clip1md_gaincode = 0x82;
15428 if ((freq <= 5080) || (freq == 5825)) {
15430 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15431 s8 lna1A_gain_db_2_rev7[] = {
15432 11, 17, 22, 25};
15433 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15435 crsminu_th = 0x3e;
15436 lna1_gain_db = lna1A_gain_db_rev7;
15437 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15438 lna2_gain_db = lna2A_gain_db_rev7;
15439 } else if ((freq >= 5500) && (freq <= 5700)) {
15441 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15442 s8 lna1A_gain_db_2_rev7[] = {
15443 12, 18, 22, 26};
15444 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15446 crsminu_th = 0x45;
15447 clip1md_gaincode_B = 0x14;
15448 nbclip_th = 0xff;
15449 chg_nbclip_th = 1;
15450 lna1_gain_db = lna1A_gain_db_rev7;
15451 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15452 lna2_gain_db = lna2A_gain_db_rev7;
15453 } else {
15455 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15456 s8 lna1A_gain_db_2_rev7[] = {
15457 12, 18, 22, 26};
15458 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15460 crsminu_th = 0x41;
15461 lna1_gain_db = lna1A_gain_db_rev7;
15462 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15463 lna2_gain_db = lna2A_gain_db_rev7;
15466 if (freq <= 4920) {
15467 nvar_baseline_offset0 = 5;
15468 nvar_baseline_offset1 = 5;
15469 } else if ((freq > 4920) && (freq <= 5320)) {
15470 nvar_baseline_offset0 = 3;
15471 nvar_baseline_offset1 = 5;
15472 } else if ((freq > 5320) && (freq <= 5700)) {
15473 nvar_baseline_offset0 = 3;
15474 nvar_baseline_offset1 = 2;
15475 } else {
15476 nvar_baseline_offset0 = 4;
15477 nvar_baseline_offset1 = 0;
15479 } else {
15481 crsminu_th = 0x3a;
15482 crsminl_th = 0x3a;
15483 w1clip_th = 20;
15485 if ((freq >= 4920) && (freq <= 5320)) {
15486 nvar_baseline_offset0 = 4;
15487 nvar_baseline_offset1 = 5;
15488 } else if ((freq > 5320) && (freq <= 5550)) {
15489 nvar_baseline_offset0 = 4;
15490 nvar_baseline_offset1 = 2;
15491 } else {
15492 nvar_baseline_offset0 = 5;
15493 nvar_baseline_offset1 = 3;
15497 write_phy_reg(pi, 0x20, init_gaincode);
15498 write_phy_reg(pi, 0x2a7, init_gaincode);
15500 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15501 pi->pubpi.phy_corenum, 0x106, 16,
15502 rfseq_init_gain);
15504 write_phy_reg(pi, 0x22, clip1hi_gaincode);
15505 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15507 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15508 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15510 write_phy_reg(pi, 0x37, clip1lo_gaincode);
15511 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15512 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15513 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15515 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15516 tia_gain_db);
15517 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15518 tia_gain_db);
15520 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15521 tia_gainbits);
15522 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15523 tia_gainbits);
15525 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15527 if (chg_nbclip_th == 1) {
15528 write_phy_reg(pi, 0x2b, nbclip_th);
15529 write_phy_reg(pi, 0x41, nbclip_th);
15532 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15533 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15535 mod_phy_reg(pi, 0x2e4,
15536 (0x3f << 0), (nvar_baseline_offset0 << 0));
15538 mod_phy_reg(pi, 0x2e4,
15539 (0x3f << 6), (nvar_baseline_offset1 << 6));
15541 if (CHSPEC_IS20(pi->radio_chanspec)) {
15543 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15544 lna1_gain_db);
15545 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15546 lna1_gain_db_2);
15548 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15549 8, lna2_gain_db);
15550 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15551 8, lna2_gain_db);
15553 write_phy_reg(pi, 0x24, clip1md_gaincode);
15554 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15555 } else {
15556 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15561 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15563 u16 w1th, hpf_code, currband;
15564 int ctr;
15565 u8 rfseq_updategainu_events[] = {
15566 NPHY_RFSEQ_CMD_RX_GAIN,
15567 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15568 NPHY_RFSEQ_CMD_SET_HPF_BW
15570 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15571 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15572 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15573 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15574 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15575 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15576 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15577 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15578 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15579 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15580 s8 *lna1_gain_db = NULL;
15581 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15582 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15583 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15584 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15585 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15586 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15587 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15588 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15589 s8 *lna2_gain_db = NULL;
15590 s8 tiaG_gain_db[] = {
15591 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15592 s8 tiaA_gain_db[] = {
15593 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15594 s8 tiaA_gain_db_rev4[] = {
15595 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15596 s8 tiaA_gain_db_rev5[] = {
15597 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15598 s8 tiaA_gain_db_rev6[] = {
15599 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15600 s8 *tia_gain_db;
15601 s8 tiaG_gainbits[] = {
15602 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15603 s8 tiaA_gainbits[] = {
15604 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15605 s8 tiaA_gainbits_rev4[] = {
15606 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15607 s8 tiaA_gainbits_rev5[] = {
15608 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15609 s8 tiaA_gainbits_rev6[] = {
15610 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15611 s8 *tia_gainbits;
15612 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15613 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15614 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15615 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15616 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15617 u16 rfseqG_init_gain_rev5_elna[] = {
15618 0x013f, 0x013f, 0x013f, 0x013f };
15619 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15620 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15621 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15622 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15623 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15624 u16 rfseqA_init_gain_rev4_elna[] = {
15625 0x314f, 0x314f, 0x314f, 0x314f };
15626 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15627 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15628 u16 *rfseq_init_gain;
15629 u16 initG_gaincode = 0x627e;
15630 u16 initG_gaincode_rev4 = 0x527e;
15631 u16 initG_gaincode_rev5 = 0x427e;
15632 u16 initG_gaincode_rev5_elna = 0x027e;
15633 u16 initG_gaincode_rev6 = 0x527e;
15634 u16 initG_gaincode_rev6_224B0 = 0x427e;
15635 u16 initG_gaincode_rev6_elna = 0x127e;
15636 u16 initA_gaincode = 0x52de;
15637 u16 initA_gaincode_rev4 = 0x629e;
15638 u16 initA_gaincode_rev4_elna = 0x329e;
15639 u16 initA_gaincode_rev5 = 0x729e;
15640 u16 initA_gaincode_rev6 = 0x729e;
15641 u16 init_gaincode;
15642 u16 clip1hiG_gaincode = 0x107e;
15643 u16 clip1hiG_gaincode_rev4 = 0x007e;
15644 u16 clip1hiG_gaincode_rev5 = 0x1076;
15645 u16 clip1hiG_gaincode_rev6 = 0x007e;
15646 u16 clip1hiA_gaincode = 0x00de;
15647 u16 clip1hiA_gaincode_rev4 = 0x029e;
15648 u16 clip1hiA_gaincode_rev5 = 0x029e;
15649 u16 clip1hiA_gaincode_rev6 = 0x029e;
15650 u16 clip1hi_gaincode;
15651 u16 clip1mdG_gaincode = 0x0066;
15652 u16 clip1mdA_gaincode = 0x00ca;
15653 u16 clip1mdA_gaincode_rev4 = 0x1084;
15654 u16 clip1mdA_gaincode_rev5 = 0x2084;
15655 u16 clip1mdA_gaincode_rev6 = 0x2084;
15656 u16 clip1md_gaincode = 0;
15657 u16 clip1loG_gaincode = 0x0074;
15658 u16 clip1loG_gaincode_rev5[] = {
15659 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15661 u16 clip1loG_gaincode_rev6[] = {
15662 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15664 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15665 u16 clip1loA_gaincode = 0x00cc;
15666 u16 clip1loA_gaincode_rev4 = 0x0086;
15667 u16 clip1loA_gaincode_rev5 = 0x2086;
15668 u16 clip1loA_gaincode_rev6 = 0x2086;
15669 u16 clip1lo_gaincode;
15670 u8 crsminG_th = 0x18;
15671 u8 crsminG_th_rev5 = 0x18;
15672 u8 crsminG_th_rev6 = 0x18;
15673 u8 crsminA_th = 0x1e;
15674 u8 crsminA_th_rev4 = 0x24;
15675 u8 crsminA_th_rev5 = 0x24;
15676 u8 crsminA_th_rev6 = 0x24;
15677 u8 crsmin_th;
15678 u8 crsminlG_th = 0x18;
15679 u8 crsminlG_th_rev5 = 0x18;
15680 u8 crsminlG_th_rev6 = 0x18;
15681 u8 crsminlA_th = 0x1e;
15682 u8 crsminlA_th_rev4 = 0x24;
15683 u8 crsminlA_th_rev5 = 0x24;
15684 u8 crsminlA_th_rev6 = 0x24;
15685 u8 crsminl_th = 0;
15686 u8 crsminuG_th = 0x18;
15687 u8 crsminuG_th_rev5 = 0x18;
15688 u8 crsminuG_th_rev6 = 0x18;
15689 u8 crsminuA_th = 0x1e;
15690 u8 crsminuA_th_rev4 = 0x24;
15691 u8 crsminuA_th_rev5 = 0x24;
15692 u8 crsminuA_th_rev6 = 0x24;
15693 u8 crsminuA_th_rev6_224B0 = 0x2d;
15694 u8 crsminu_th;
15695 u16 nbclipG_th = 0x20d;
15696 u16 nbclipG_th_rev4 = 0x1a1;
15697 u16 nbclipG_th_rev5 = 0x1d0;
15698 u16 nbclipG_th_rev6 = 0x1d0;
15699 u16 nbclipA_th = 0x1a1;
15700 u16 nbclipA_th_rev4 = 0x107;
15701 u16 nbclipA_th_rev5 = 0x0a9;
15702 u16 nbclipA_th_rev6 = 0x0f0;
15703 u16 nbclip_th = 0;
15704 u8 w1clipG_th = 5;
15705 u8 w1clipG_th_rev5 = 9;
15706 u8 w1clipG_th_rev6 = 5;
15707 u8 w1clipA_th = 25, w1clip_th;
15708 u8 rssi_gain_default = 0x50;
15709 u8 rssiG_gain_rev6_224B0 = 0x50;
15710 u8 rssiA_gain_rev5 = 0x90;
15711 u8 rssiA_gain_rev6 = 0x90;
15712 u8 rssi_gain;
15713 u16 regval[21];
15714 u8 triso;
15716 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15717 pi->srom_fem2g.triso;
15719 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15720 if (pi->pubpi.radiorev == 5) {
15721 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15722 } else if (pi->pubpi.radiorev == 7) {
15723 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15725 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15726 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15728 } else if ((pi->pubpi.radiorev == 3)
15729 || (pi->pubpi.radiorev == 8)) {
15730 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15732 if (pi->pubpi.radiorev == 8) {
15733 mod_phy_reg(pi, 0x283,
15734 (0xff << 0), (0x44 << 0));
15735 mod_phy_reg(pi, 0x280,
15736 (0xff << 0), (0x44 << 0));
15738 } else {
15739 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15741 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15743 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15745 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15746 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15748 currband =
15749 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15750 if (currband == 0) {
15751 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15752 if (pi->pubpi.radiorev == 11) {
15753 lna1_gain_db = lna1G_gain_db_rev6_224B0;
15754 lna2_gain_db = lna2G_gain_db_rev6_224B0;
15755 rfseq_init_gain =
15756 rfseqG_init_gain_rev6_224B0;
15757 init_gaincode =
15758 initG_gaincode_rev6_224B0;
15759 clip1hi_gaincode =
15760 clip1hiG_gaincode_rev6;
15761 clip1lo_gaincode =
15762 clip1loG_gaincode_rev6_224B0;
15763 nbclip_th = nbclipG_th_rev6;
15764 w1clip_th = w1clipG_th_rev6;
15765 crsmin_th = crsminG_th_rev6;
15766 crsminl_th = crsminlG_th_rev6;
15767 crsminu_th = crsminuG_th_rev6;
15768 rssi_gain = rssiG_gain_rev6_224B0;
15769 } else {
15770 lna1_gain_db = lna1G_gain_db_rev6;
15771 lna2_gain_db = lna2G_gain_db_rev6;
15772 if (pi->sh->boardflags & BFL_EXTLNA) {
15774 rfseq_init_gain =
15775 rfseqG_init_gain_rev6_elna;
15776 init_gaincode =
15777 initG_gaincode_rev6_elna;
15778 } else {
15779 rfseq_init_gain =
15780 rfseqG_init_gain_rev6;
15781 init_gaincode =
15782 initG_gaincode_rev6;
15784 clip1hi_gaincode =
15785 clip1hiG_gaincode_rev6;
15786 switch (triso) {
15787 case 0:
15788 clip1lo_gaincode =
15789 clip1loG_gaincode_rev6
15790 [0];
15791 break;
15792 case 1:
15793 clip1lo_gaincode =
15794 clip1loG_gaincode_rev6
15795 [1];
15796 break;
15797 case 2:
15798 clip1lo_gaincode =
15799 clip1loG_gaincode_rev6
15800 [2];
15801 break;
15802 case 3:
15803 default:
15805 clip1lo_gaincode =
15806 clip1loG_gaincode_rev6
15807 [3];
15808 break;
15809 case 4:
15810 clip1lo_gaincode =
15811 clip1loG_gaincode_rev6
15812 [4];
15813 break;
15814 case 5:
15815 clip1lo_gaincode =
15816 clip1loG_gaincode_rev6
15817 [5];
15818 break;
15819 case 6:
15820 clip1lo_gaincode =
15821 clip1loG_gaincode_rev6
15822 [6];
15823 break;
15824 case 7:
15825 clip1lo_gaincode =
15826 clip1loG_gaincode_rev6
15827 [7];
15828 break;
15830 nbclip_th = nbclipG_th_rev6;
15831 w1clip_th = w1clipG_th_rev6;
15832 crsmin_th = crsminG_th_rev6;
15833 crsminl_th = crsminlG_th_rev6;
15834 crsminu_th = crsminuG_th_rev6;
15835 rssi_gain = rssi_gain_default;
15837 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15838 lna1_gain_db = lna1G_gain_db_rev5;
15839 lna2_gain_db = lna2G_gain_db_rev5;
15840 if (pi->sh->boardflags & BFL_EXTLNA) {
15842 rfseq_init_gain =
15843 rfseqG_init_gain_rev5_elna;
15844 init_gaincode =
15845 initG_gaincode_rev5_elna;
15846 } else {
15847 rfseq_init_gain = rfseqG_init_gain_rev5;
15848 init_gaincode = initG_gaincode_rev5;
15850 clip1hi_gaincode = clip1hiG_gaincode_rev5;
15851 switch (triso) {
15852 case 0:
15853 clip1lo_gaincode =
15854 clip1loG_gaincode_rev5[0];
15855 break;
15856 case 1:
15857 clip1lo_gaincode =
15858 clip1loG_gaincode_rev5[1];
15859 break;
15860 case 2:
15861 clip1lo_gaincode =
15862 clip1loG_gaincode_rev5[2];
15863 break;
15864 case 3:
15866 clip1lo_gaincode =
15867 clip1loG_gaincode_rev5[3];
15868 break;
15869 case 4:
15870 clip1lo_gaincode =
15871 clip1loG_gaincode_rev5[4];
15872 break;
15873 case 5:
15874 clip1lo_gaincode =
15875 clip1loG_gaincode_rev5[5];
15876 break;
15877 case 6:
15878 clip1lo_gaincode =
15879 clip1loG_gaincode_rev5[6];
15880 break;
15881 case 7:
15882 clip1lo_gaincode =
15883 clip1loG_gaincode_rev5[7];
15884 break;
15885 default:
15886 clip1lo_gaincode =
15887 clip1loG_gaincode_rev5[3];
15888 break;
15890 nbclip_th = nbclipG_th_rev5;
15891 w1clip_th = w1clipG_th_rev5;
15892 crsmin_th = crsminG_th_rev5;
15893 crsminl_th = crsminlG_th_rev5;
15894 crsminu_th = crsminuG_th_rev5;
15895 rssi_gain = rssi_gain_default;
15896 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15897 lna1_gain_db = lna1G_gain_db_rev4;
15898 lna2_gain_db = lna2G_gain_db;
15899 rfseq_init_gain = rfseqG_init_gain_rev4;
15900 init_gaincode = initG_gaincode_rev4;
15901 clip1hi_gaincode = clip1hiG_gaincode_rev4;
15902 clip1lo_gaincode = clip1loG_gaincode;
15903 nbclip_th = nbclipG_th_rev4;
15904 w1clip_th = w1clipG_th;
15905 crsmin_th = crsminG_th;
15906 crsminl_th = crsminlG_th;
15907 crsminu_th = crsminuG_th;
15908 rssi_gain = rssi_gain_default;
15909 } else {
15910 lna1_gain_db = lna1G_gain_db;
15911 lna2_gain_db = lna2G_gain_db;
15912 rfseq_init_gain = rfseqG_init_gain;
15913 init_gaincode = initG_gaincode;
15914 clip1hi_gaincode = clip1hiG_gaincode;
15915 clip1lo_gaincode = clip1loG_gaincode;
15916 nbclip_th = nbclipG_th;
15917 w1clip_th = w1clipG_th;
15918 crsmin_th = crsminG_th;
15919 crsminl_th = crsminlG_th;
15920 crsminu_th = crsminuG_th;
15921 rssi_gain = rssi_gain_default;
15923 tia_gain_db = tiaG_gain_db;
15924 tia_gainbits = tiaG_gainbits;
15925 clip1md_gaincode = clip1mdG_gaincode;
15926 } else {
15927 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15928 lna1_gain_db = lna1A_gain_db_rev6;
15929 lna2_gain_db = lna2A_gain_db_rev6;
15930 tia_gain_db = tiaA_gain_db_rev6;
15931 tia_gainbits = tiaA_gainbits_rev6;
15932 rfseq_init_gain = rfseqA_init_gain_rev6;
15933 init_gaincode = initA_gaincode_rev6;
15934 clip1hi_gaincode = clip1hiA_gaincode_rev6;
15935 clip1md_gaincode = clip1mdA_gaincode_rev6;
15936 clip1lo_gaincode = clip1loA_gaincode_rev6;
15937 crsmin_th = crsminA_th_rev6;
15938 crsminl_th = crsminlA_th_rev6;
15939 if ((pi->pubpi.radiorev == 11) &&
15940 (CHSPEC_IS40(pi->radio_chanspec) == 0))
15941 crsminu_th = crsminuA_th_rev6_224B0;
15942 else
15943 crsminu_th = crsminuA_th_rev6;
15945 nbclip_th = nbclipA_th_rev6;
15946 rssi_gain = rssiA_gain_rev6;
15947 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15948 lna1_gain_db = lna1A_gain_db_rev5;
15949 lna2_gain_db = lna2A_gain_db_rev5;
15950 tia_gain_db = tiaA_gain_db_rev5;
15951 tia_gainbits = tiaA_gainbits_rev5;
15952 rfseq_init_gain = rfseqA_init_gain_rev5;
15953 init_gaincode = initA_gaincode_rev5;
15954 clip1hi_gaincode = clip1hiA_gaincode_rev5;
15955 clip1md_gaincode = clip1mdA_gaincode_rev5;
15956 clip1lo_gaincode = clip1loA_gaincode_rev5;
15957 crsmin_th = crsminA_th_rev5;
15958 crsminl_th = crsminlA_th_rev5;
15959 crsminu_th = crsminuA_th_rev5;
15960 nbclip_th = nbclipA_th_rev5;
15961 rssi_gain = rssiA_gain_rev5;
15962 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15963 lna1_gain_db = lna1A_gain_db_rev4;
15964 lna2_gain_db = lna2A_gain_db_rev4;
15965 tia_gain_db = tiaA_gain_db_rev4;
15966 tia_gainbits = tiaA_gainbits_rev4;
15967 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15969 rfseq_init_gain =
15970 rfseqA_init_gain_rev4_elna;
15971 init_gaincode =
15972 initA_gaincode_rev4_elna;
15973 } else {
15974 rfseq_init_gain = rfseqA_init_gain_rev4;
15975 init_gaincode = initA_gaincode_rev4;
15977 clip1hi_gaincode = clip1hiA_gaincode_rev4;
15978 clip1md_gaincode = clip1mdA_gaincode_rev4;
15979 clip1lo_gaincode = clip1loA_gaincode_rev4;
15980 crsmin_th = crsminA_th_rev4;
15981 crsminl_th = crsminlA_th_rev4;
15982 crsminu_th = crsminuA_th_rev4;
15983 nbclip_th = nbclipA_th_rev4;
15984 rssi_gain = rssi_gain_default;
15985 } else {
15986 lna1_gain_db = lna1A_gain_db;
15987 lna2_gain_db = lna2A_gain_db;
15988 tia_gain_db = tiaA_gain_db;
15989 tia_gainbits = tiaA_gainbits;
15990 rfseq_init_gain = rfseqA_init_gain;
15991 init_gaincode = initA_gaincode;
15992 clip1hi_gaincode = clip1hiA_gaincode;
15993 clip1md_gaincode = clip1mdA_gaincode;
15994 clip1lo_gaincode = clip1loA_gaincode;
15995 crsmin_th = crsminA_th;
15996 crsminl_th = crsminlA_th;
15997 crsminu_th = crsminuA_th;
15998 nbclip_th = nbclipA_th;
15999 rssi_gain = rssi_gain_default;
16001 w1clip_th = w1clipA_th;
16004 write_radio_reg(pi,
16005 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16006 RADIO_2056_RX0), 0x17);
16007 write_radio_reg(pi,
16008 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16009 RADIO_2056_RX1), 0x17);
16011 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16012 0xf0);
16013 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16014 0xf0);
16016 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16017 0x0);
16018 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16019 0x0);
16021 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16022 rssi_gain);
16023 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16024 rssi_gain);
16026 write_radio_reg(pi,
16027 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16028 RADIO_2056_RX0), 0x17);
16029 write_radio_reg(pi,
16030 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16031 RADIO_2056_RX1), 0x17);
16033 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16034 0xFF);
16035 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16036 0xFF);
16038 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16039 8, lna1_gain_db);
16040 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16041 8, lna1_gain_db);
16043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16044 8, lna2_gain_db);
16045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16046 8, lna2_gain_db);
16048 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16049 8, tia_gain_db);
16050 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16051 8, tia_gain_db);
16053 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16054 8, tia_gainbits);
16055 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16056 8, tia_gainbits);
16058 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16059 8, &lpf_gain_db);
16060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16061 8, &lpf_gain_db);
16062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16063 8, &lpf_gainbits);
16064 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16065 8, &lpf_gainbits);
16067 write_phy_reg(pi, 0x20, init_gaincode);
16068 write_phy_reg(pi, 0x2a7, init_gaincode);
16070 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16071 pi->pubpi.phy_corenum, 0x106, 16,
16072 rfseq_init_gain);
16074 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16075 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16077 write_phy_reg(pi, 0x24, clip1md_gaincode);
16078 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16080 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16081 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16083 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16084 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16085 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16087 write_phy_reg(pi, 0x2b, nbclip_th);
16088 write_phy_reg(pi, 0x41, nbclip_th);
16090 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16091 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16093 write_phy_reg(pi, 0x150, 0x809c);
16095 } else {
16097 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16098 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16100 write_phy_reg(pi, 0x2b, 0x84);
16101 write_phy_reg(pi, 0x41, 0x84);
16103 if (CHSPEC_IS20(pi->radio_chanspec)) {
16104 write_phy_reg(pi, 0x6b, 0x2b);
16105 write_phy_reg(pi, 0x6c, 0x2b);
16106 write_phy_reg(pi, 0x6d, 0x9);
16107 write_phy_reg(pi, 0x6e, 0x9);
16110 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16111 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16112 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16114 if (CHSPEC_IS20(pi->radio_chanspec)) {
16115 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16116 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16118 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16119 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16122 write_phy_reg(pi, 0x150, 0x809c);
16124 if (pi->nphy_gain_boost)
16125 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16126 (CHSPEC_IS40(pi->radio_chanspec)))
16127 hpf_code = 4;
16128 else
16129 hpf_code = 5;
16130 else if (CHSPEC_IS40(pi->radio_chanspec))
16131 hpf_code = 6;
16132 else
16133 hpf_code = 7;
16135 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16136 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16138 for (ctr = 0; ctr < 4; ctr++)
16139 regval[ctr] = (hpf_code << 8) | 0x7c;
16140 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16142 wlc_phy_adjust_lnagaintbl_nphy(pi);
16144 if (pi->nphy_elna_gain_config) {
16145 regval[0] = 0;
16146 regval[1] = 1;
16147 regval[2] = 1;
16148 regval[3] = 1;
16149 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16150 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16152 for (ctr = 0; ctr < 4; ctr++)
16153 regval[ctr] = (hpf_code << 8) | 0x74;
16154 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16157 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16158 for (ctr = 0; ctr < 21; ctr++)
16159 regval[ctr] = 3 * ctr;
16160 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16161 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16163 for (ctr = 0; ctr < 21; ctr++)
16164 regval[ctr] = (u16) ctr;
16165 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16166 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16169 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16170 rfseq_updategainu_events,
16171 rfseq_updategainu_dlys,
16172 sizeof(rfseq_updategainu_events) /
16173 sizeof(rfseq_updategainu_events[0]));
16175 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16177 if (CHSPEC_IS2G(pi->radio_chanspec))
16178 mod_phy_reg(pi,
16179 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16180 0x7f, 0x4);
16184 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16186 u8 rfseq_rx2tx_events[] = {
16187 NPHY_RFSEQ_CMD_NOP,
16188 NPHY_RFSEQ_CMD_RXG_FBW,
16189 NPHY_RFSEQ_CMD_TR_SWITCH,
16190 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16191 NPHY_RFSEQ_CMD_RXPD_TXPD,
16192 NPHY_RFSEQ_CMD_TX_GAIN,
16193 NPHY_RFSEQ_CMD_EXT_PA
16195 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16196 u8 rfseq_tx2rx_events[] = {
16197 NPHY_RFSEQ_CMD_NOP,
16198 NPHY_RFSEQ_CMD_EXT_PA,
16199 NPHY_RFSEQ_CMD_TX_GAIN,
16200 NPHY_RFSEQ_CMD_RXPD_TXPD,
16201 NPHY_RFSEQ_CMD_TR_SWITCH,
16202 NPHY_RFSEQ_CMD_RXG_FBW,
16203 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16205 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16206 u8 rfseq_tx2rx_events_rev3[] = {
16207 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16208 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16209 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16210 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16211 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16212 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16213 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16214 NPHY_REV3_RFSEQ_CMD_END
16216 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16217 u8 rfseq_rx2tx_events_rev3[] = {
16218 NPHY_REV3_RFSEQ_CMD_NOP,
16219 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16220 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16221 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16222 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16223 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16224 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16225 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16226 NPHY_REV3_RFSEQ_CMD_END
16228 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16230 u8 rfseq_rx2tx_events_rev3_ipa[] = {
16231 NPHY_REV3_RFSEQ_CMD_NOP,
16232 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16233 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16234 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16235 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16236 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16237 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16238 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16239 NPHY_REV3_RFSEQ_CMD_END
16241 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16242 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16244 s16 alpha0, alpha1, alpha2;
16245 s16 beta0, beta1, beta2;
16246 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16247 stbc_data_weights;
16248 u8 chan_freq_range = 0;
16249 u16 dac_control = 0x0002;
16250 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16251 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16252 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16253 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16254 u16 *aux_adc_vmid;
16255 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16256 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16257 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16258 u16 *aux_adc_gain;
16259 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16260 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16261 s32 min_nvar_val = 0x18d;
16262 s32 min_nvar_offset_6mbps = 20;
16263 u8 pdetrange;
16264 u8 triso;
16265 u16 regval;
16266 u16 afectrl_adc_ctrl1_rev7 = 0x20;
16267 u16 afectrl_adc_ctrl2_rev7 = 0x0;
16268 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16269 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16270 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16271 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16272 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16273 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16274 u16 ipalvlshift_3p3_war_en = 0;
16275 u16 rccal_bcap_val, rccal_scap_val;
16276 u16 rccal_tx20_11b_bcap = 0;
16277 u16 rccal_tx20_11b_scap = 0;
16278 u16 rccal_tx20_11n_bcap = 0;
16279 u16 rccal_tx20_11n_scap = 0;
16280 u16 rccal_tx40_11n_bcap = 0;
16281 u16 rccal_tx40_11n_scap = 0;
16282 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16283 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16284 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16285 u16 tx_lpf_bw_ofdm_20mhz = 0;
16286 u16 tx_lpf_bw_ofdm_40mhz = 0;
16287 u16 tx_lpf_bw_11b = 0;
16288 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16289 u16 txgm_idac_bleed = 0;
16290 bool rccal_ovrd = false;
16291 u16 freq;
16292 int coreNum;
16294 if (CHSPEC_IS5G(pi->radio_chanspec))
16295 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
16296 else
16297 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
16299 if (pi->phyhang_avoid)
16300 wlc_phy_stay_in_carriersearch_nphy(pi, true);
16302 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
16304 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16306 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16307 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16309 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16310 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16311 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16312 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16313 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16314 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16315 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16316 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16317 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16318 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16319 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16320 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16321 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16322 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16323 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16324 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16327 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16328 write_phy_reg(pi, 0x23f, 0x1b0);
16329 write_phy_reg(pi, 0x240, 0x1b0);
16332 if (NREV_GE(pi->pubpi.phy_rev, 8))
16333 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16335 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16336 &dac_control);
16337 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16338 &dac_control);
16340 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16341 1, 0, 32, &leg_data_weights);
16342 leg_data_weights = leg_data_weights & 0xffffff;
16343 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16344 1, 0, 32, &leg_data_weights);
16346 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16347 2, 0x15e, 16,
16348 rfseq_rx2tx_dacbufpu_rev7);
16349 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16350 rfseq_rx2tx_dacbufpu_rev7);
16352 if (PHY_IPA(pi))
16353 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16354 rfseq_rx2tx_events_rev3_ipa,
16355 rfseq_rx2tx_dlys_rev3_ipa,
16356 sizeof
16357 (rfseq_rx2tx_events_rev3_ipa) /
16358 sizeof
16359 (rfseq_rx2tx_events_rev3_ipa
16360 [0]));
16362 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16363 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16365 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16366 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16367 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16369 if (PHY_IPA(pi)) {
16371 if (((pi->pubpi.radiorev == 5)
16372 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16373 || (pi->pubpi.radiorev == 7)
16374 || (pi->pubpi.radiorev == 8)) {
16376 rccal_bcap_val =
16377 read_radio_reg(
16379 RADIO_2057_RCCAL_BCAP_VAL);
16380 rccal_scap_val =
16381 read_radio_reg(
16383 RADIO_2057_RCCAL_SCAP_VAL);
16385 rccal_tx20_11b_bcap = rccal_bcap_val;
16386 rccal_tx20_11b_scap = rccal_scap_val;
16388 if ((pi->pubpi.radiorev == 5) &&
16389 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16391 rccal_tx20_11n_bcap = rccal_bcap_val;
16392 rccal_tx20_11n_scap = rccal_scap_val;
16393 rccal_tx40_11n_bcap = 0xc;
16394 rccal_tx40_11n_scap = 0xc;
16396 rccal_ovrd = true;
16398 } else if ((pi->pubpi.radiorev == 7)
16399 || (pi->pubpi.radiorev == 8)) {
16401 tx_lpf_bw_ofdm_20mhz = 4;
16402 tx_lpf_bw_11b = 1;
16404 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16405 rccal_tx20_11n_bcap = 0xc;
16406 rccal_tx20_11n_scap = 0xc;
16407 rccal_tx40_11n_bcap = 0xa;
16408 rccal_tx40_11n_scap = 0xa;
16409 } else {
16410 rccal_tx20_11n_bcap = 0x14;
16411 rccal_tx20_11n_scap = 0x14;
16412 rccal_tx40_11n_bcap = 0xf;
16413 rccal_tx40_11n_scap = 0xf;
16416 rccal_ovrd = true;
16420 } else {
16422 if (pi->pubpi.radiorev == 5) {
16424 tx_lpf_bw_ofdm_20mhz = 1;
16425 tx_lpf_bw_ofdm_40mhz = 3;
16427 rccal_bcap_val =
16428 read_radio_reg(
16430 RADIO_2057_RCCAL_BCAP_VAL);
16431 rccal_scap_val =
16432 read_radio_reg(
16434 RADIO_2057_RCCAL_SCAP_VAL);
16436 rccal_tx20_11b_bcap = rccal_bcap_val;
16437 rccal_tx20_11b_scap = rccal_scap_val;
16439 rccal_tx20_11n_bcap = 0x13;
16440 rccal_tx20_11n_scap = 0x11;
16441 rccal_tx40_11n_bcap = 0x13;
16442 rccal_tx40_11n_scap = 0x11;
16444 rccal_ovrd = true;
16448 if (rccal_ovrd) {
16450 rx2tx_lpf_rc_lut_tx20_11b =
16451 (rccal_tx20_11b_bcap << 8) |
16452 (rccal_tx20_11b_scap << 3) |
16453 tx_lpf_bw_11b;
16454 rx2tx_lpf_rc_lut_tx20_11n =
16455 (rccal_tx20_11n_bcap << 8) |
16456 (rccal_tx20_11n_scap << 3) |
16457 tx_lpf_bw_ofdm_20mhz;
16458 rx2tx_lpf_rc_lut_tx40_11n =
16459 (rccal_tx40_11n_bcap << 8) |
16460 (rccal_tx40_11n_scap << 3) |
16461 tx_lpf_bw_ofdm_40mhz;
16463 for (coreNum = 0; coreNum <= 1; coreNum++) {
16464 wlc_phy_table_write_nphy(
16465 pi, NPHY_TBL_ID_RFSEQ,
16467 0x152 + coreNum * 0x10,
16469 &rx2tx_lpf_rc_lut_tx20_11b);
16470 wlc_phy_table_write_nphy(
16471 pi, NPHY_TBL_ID_RFSEQ,
16473 0x153 + coreNum * 0x10,
16475 &rx2tx_lpf_rc_lut_tx20_11n);
16476 wlc_phy_table_write_nphy(
16477 pi, NPHY_TBL_ID_RFSEQ,
16479 0x154 + coreNum * 0x10,
16481 &rx2tx_lpf_rc_lut_tx20_11n);
16482 wlc_phy_table_write_nphy(
16483 pi, NPHY_TBL_ID_RFSEQ,
16485 0x155 + coreNum * 0x10,
16487 &rx2tx_lpf_rc_lut_tx40_11n);
16488 wlc_phy_table_write_nphy(
16489 pi, NPHY_TBL_ID_RFSEQ,
16491 0x156 + coreNum * 0x10,
16493 &rx2tx_lpf_rc_lut_tx40_11n);
16494 wlc_phy_table_write_nphy(
16495 pi, NPHY_TBL_ID_RFSEQ,
16497 0x157 + coreNum * 0x10,
16499 &rx2tx_lpf_rc_lut_tx40_11n);
16500 wlc_phy_table_write_nphy(
16501 pi, NPHY_TBL_ID_RFSEQ,
16503 0x158 + coreNum * 0x10,
16505 &rx2tx_lpf_rc_lut_tx40_11n);
16506 wlc_phy_table_write_nphy(
16507 pi, NPHY_TBL_ID_RFSEQ,
16509 0x159 + coreNum * 0x10,
16511 &rx2tx_lpf_rc_lut_tx40_11n);
16514 wlc_phy_rfctrl_override_nphy_rev7(
16515 pi, (0x1 << 4),
16516 1, 0x3, 0,
16517 NPHY_REV7_RFCTRLOVERRIDE_ID2);
16520 write_phy_reg(pi, 0x32f, 0x3);
16522 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16523 wlc_phy_rfctrl_override_nphy_rev7(
16524 pi, (0x1 << 2),
16525 1, 0x3, 0,
16526 NPHY_REV7_RFCTRLOVERRIDE_ID0);
16528 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16529 (pi->pubpi.radiorev == 6)) {
16530 if ((pi->sh->sromrev >= 8)
16531 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16532 ipalvlshift_3p3_war_en = 1;
16534 if (ipalvlshift_3p3_war_en) {
16535 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
16536 0x5);
16537 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
16538 0x30);
16539 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16540 or_radio_reg(pi,
16541 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
16542 0x1);
16543 or_radio_reg(pi,
16544 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
16545 0x1);
16547 ipa2g_mainbias = 0x1f;
16549 ipa2g_casconv = 0x6f;
16551 ipa2g_biasfilt = 0xaa;
16552 } else {
16554 ipa2g_mainbias = 0x2b;
16556 ipa2g_casconv = 0x7f;
16558 ipa2g_biasfilt = 0xee;
16561 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16562 for (coreNum = 0; coreNum <= 1; coreNum++) {
16563 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16564 coreNum, IPA2G_IMAIN,
16565 ipa2g_mainbias);
16566 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16567 coreNum, IPA2G_CASCONV,
16568 ipa2g_casconv);
16569 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16570 coreNum,
16571 IPA2G_BIAS_FILTER,
16572 ipa2g_biasfilt);
16577 if (PHY_IPA(pi)) {
16578 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16579 if ((pi->pubpi.radiorev == 3)
16580 || (pi->pubpi.radiorev == 4)
16581 || (pi->pubpi.radiorev == 6))
16582 txgm_idac_bleed = 0x7f;
16584 for (coreNum = 0; coreNum <= 1; coreNum++) {
16585 if (txgm_idac_bleed != 0)
16586 WRITE_RADIO_REG4(
16587 pi, RADIO_2057,
16588 CORE, coreNum,
16589 TXGM_IDAC_BLEED,
16590 txgm_idac_bleed);
16593 if (pi->pubpi.radiorev == 5) {
16595 for (coreNum = 0; coreNum <= 1;
16596 coreNum++) {
16597 WRITE_RADIO_REG4(pi, RADIO_2057,
16598 CORE, coreNum,
16599 IPA2G_CASCONV,
16600 0x13);
16601 WRITE_RADIO_REG4(pi, RADIO_2057,
16602 CORE, coreNum,
16603 IPA2G_IMAIN,
16604 0x1f);
16605 WRITE_RADIO_REG4(
16606 pi, RADIO_2057,
16607 CORE, coreNum,
16608 IPA2G_BIAS_FILTER,
16609 0xee);
16610 WRITE_RADIO_REG4(pi, RADIO_2057,
16611 CORE, coreNum,
16612 PAD2G_IDACS,
16613 0x8a);
16614 WRITE_RADIO_REG4(
16615 pi, RADIO_2057,
16616 CORE, coreNum,
16617 PAD_BIAS_FILTER_BWS,
16618 0x3e);
16621 } else if ((pi->pubpi.radiorev == 7)
16622 || (pi->pubpi.radiorev == 8)) {
16624 if (CHSPEC_IS40(pi->radio_chanspec) ==
16625 0) {
16626 WRITE_RADIO_REG4(pi, RADIO_2057,
16627 CORE, 0,
16628 IPA2G_IMAIN,
16629 0x14);
16630 WRITE_RADIO_REG4(pi, RADIO_2057,
16631 CORE, 1,
16632 IPA2G_IMAIN,
16633 0x12);
16634 } else {
16635 WRITE_RADIO_REG4(pi, RADIO_2057,
16636 CORE, 0,
16637 IPA2G_IMAIN,
16638 0x16);
16639 WRITE_RADIO_REG4(pi, RADIO_2057,
16640 CORE, 1,
16641 IPA2G_IMAIN,
16642 0x16);
16646 } else {
16647 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16648 pi->radio_chanspec));
16649 if (((freq >= 5180) && (freq <= 5230))
16650 || ((freq >= 5745) && (freq <= 5805))) {
16651 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16652 0, IPA5G_BIAS_FILTER,
16653 0xff);
16654 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16655 1, IPA5G_BIAS_FILTER,
16656 0xff);
16659 } else {
16661 if (pi->pubpi.radiorev != 5) {
16662 for (coreNum = 0; coreNum <= 1; coreNum++) {
16663 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16664 coreNum,
16665 TXMIX2G_TUNE_BOOST_PU,
16666 0x61);
16667 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16668 coreNum,
16669 TXGM_IDAC_BLEED, 0x70);
16674 if (pi->pubpi.radiorev == 4) {
16675 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16676 0x05, 16,
16677 &afectrl_adc_ctrl1_rev7);
16678 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16679 0x15, 16,
16680 &afectrl_adc_ctrl1_rev7);
16682 for (coreNum = 0; coreNum <= 1; coreNum++) {
16683 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16684 AFE_VCM_CAL_MASTER, 0x0);
16685 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16686 AFE_SET_VCM_I, 0x3f);
16687 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16688 AFE_SET_VCM_Q, 0x3f);
16690 } else {
16691 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16692 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16693 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16694 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16696 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16697 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16698 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16699 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16701 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16702 0x05, 16,
16703 &afectrl_adc_ctrl2_rev7);
16704 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16705 0x15, 16,
16706 &afectrl_adc_ctrl2_rev7);
16708 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16709 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16710 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16711 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16714 write_phy_reg(pi, 0x6a, 0x2);
16716 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16717 &min_nvar_offset_6mbps);
16719 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16720 &rfseq_pktgn_lpf_hpc_rev7);
16722 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16723 &rfseq_pktgn_lpf_h_hpc_rev7);
16725 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16726 &rfseq_htpktgn_lpf_hpc_rev7);
16728 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16729 &rfseq_cckpktgn_lpf_hpc_rev7);
16731 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16732 &rfseq_tx2rx_lpf_h_hpc_rev7);
16734 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16735 &rfseq_rx2tx_lpf_h_hpc_rev7);
16737 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16738 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16739 32, &min_nvar_val);
16740 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16741 127, 32, &min_nvar_val);
16742 } else {
16743 min_nvar_val = noise_var_tbl_rev7[3];
16744 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16745 32, &min_nvar_val);
16747 min_nvar_val = noise_var_tbl_rev7[127];
16748 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16749 127, 32, &min_nvar_val);
16752 wlc_phy_workarounds_nphy_gainctrl(pi);
16754 pdetrange =
16755 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16756 pdetrange : pi->srom_fem2g.pdetrange;
16758 if (pdetrange == 0) {
16759 chan_freq_range =
16760 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16761 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16762 aux_adc_vmid_rev7_core0[3] = 0x70;
16763 aux_adc_vmid_rev7_core1[3] = 0x70;
16764 aux_adc_gain_rev7[3] = 2;
16765 } else {
16766 aux_adc_vmid_rev7_core0[3] = 0x80;
16767 aux_adc_vmid_rev7_core1[3] = 0x80;
16768 aux_adc_gain_rev7[3] = 3;
16770 } else if (pdetrange == 1) {
16771 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16772 aux_adc_vmid_rev7_core0[3] = 0x7c;
16773 aux_adc_vmid_rev7_core1[3] = 0x7c;
16774 aux_adc_gain_rev7[3] = 2;
16775 } else {
16776 aux_adc_vmid_rev7_core0[3] = 0x8c;
16777 aux_adc_vmid_rev7_core1[3] = 0x8c;
16778 aux_adc_gain_rev7[3] = 1;
16780 } else if (pdetrange == 2) {
16781 if (pi->pubpi.radioid == BCM2057_ID) {
16782 if ((pi->pubpi.radiorev == 5)
16783 || (pi->pubpi.radiorev == 7)
16784 || (pi->pubpi.radiorev == 8)) {
16785 if (chan_freq_range ==
16786 WL_CHAN_FREQ_RANGE_2G) {
16787 aux_adc_vmid_rev7_core0[3] =
16788 0x8c;
16789 aux_adc_vmid_rev7_core1[3] =
16790 0x8c;
16791 aux_adc_gain_rev7[3] = 0;
16792 } else {
16793 aux_adc_vmid_rev7_core0[3] =
16794 0x96;
16795 aux_adc_vmid_rev7_core1[3] =
16796 0x96;
16797 aux_adc_gain_rev7[3] = 0;
16802 } else if (pdetrange == 3) {
16803 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16804 aux_adc_vmid_rev7_core0[3] = 0x89;
16805 aux_adc_vmid_rev7_core1[3] = 0x89;
16806 aux_adc_gain_rev7[3] = 0;
16809 } else if (pdetrange == 5) {
16811 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16812 aux_adc_vmid_rev7_core0[3] = 0x80;
16813 aux_adc_vmid_rev7_core1[3] = 0x80;
16814 aux_adc_gain_rev7[3] = 3;
16815 } else {
16816 aux_adc_vmid_rev7_core0[3] = 0x70;
16817 aux_adc_vmid_rev7_core1[3] = 0x70;
16818 aux_adc_gain_rev7[3] = 2;
16822 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16823 &aux_adc_vmid_rev7_core0);
16824 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16825 &aux_adc_vmid_rev7_core1);
16826 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16827 &aux_adc_gain_rev7);
16828 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16829 &aux_adc_gain_rev7);
16831 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16833 write_phy_reg(pi, 0x23f, 0x1f8);
16834 write_phy_reg(pi, 0x240, 0x1f8);
16836 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16837 1, 0, 32, &leg_data_weights);
16838 leg_data_weights = leg_data_weights & 0xffffff;
16839 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16840 1, 0, 32, &leg_data_weights);
16842 alpha0 = 293;
16843 alpha1 = 435;
16844 alpha2 = 261;
16845 beta0 = 366;
16846 beta1 = 205;
16847 beta2 = 32;
16848 write_phy_reg(pi, 0x145, alpha0);
16849 write_phy_reg(pi, 0x146, alpha1);
16850 write_phy_reg(pi, 0x147, alpha2);
16851 write_phy_reg(pi, 0x148, beta0);
16852 write_phy_reg(pi, 0x149, beta1);
16853 write_phy_reg(pi, 0x14a, beta2);
16855 write_phy_reg(pi, 0x38, 0xC);
16856 write_phy_reg(pi, 0x2ae, 0xC);
16858 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16859 rfseq_tx2rx_events_rev3,
16860 rfseq_tx2rx_dlys_rev3,
16861 sizeof(rfseq_tx2rx_events_rev3) /
16862 sizeof(rfseq_tx2rx_events_rev3[0]));
16864 if (PHY_IPA(pi))
16865 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16866 rfseq_rx2tx_events_rev3_ipa,
16867 rfseq_rx2tx_dlys_rev3_ipa,
16868 sizeof
16869 (rfseq_rx2tx_events_rev3_ipa) /
16870 sizeof
16871 (rfseq_rx2tx_events_rev3_ipa
16872 [0]));
16874 if ((pi->sh->hw_phyrxchain != 0x3) &&
16875 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16877 if (PHY_IPA(pi)) {
16878 rfseq_rx2tx_dlys_rev3[5] = 59;
16879 rfseq_rx2tx_dlys_rev3[6] = 1;
16880 rfseq_rx2tx_events_rev3[7] =
16881 NPHY_REV3_RFSEQ_CMD_END;
16884 wlc_phy_set_rfseq_nphy(
16885 pi, NPHY_RFSEQ_RX2TX,
16886 rfseq_rx2tx_events_rev3,
16887 rfseq_rx2tx_dlys_rev3,
16888 sizeof(rfseq_rx2tx_events_rev3) /
16889 sizeof(rfseq_rx2tx_events_rev3[0]));
16892 if (CHSPEC_IS2G(pi->radio_chanspec))
16893 write_phy_reg(pi, 0x6a, 0x2);
16894 else
16895 write_phy_reg(pi, 0x6a, 0x9c40);
16897 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16899 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16900 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16901 32, &min_nvar_val);
16902 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16903 127, 32, &min_nvar_val);
16904 } else {
16905 min_nvar_val = noise_var_tbl_rev3[3];
16906 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16907 32, &min_nvar_val);
16909 min_nvar_val = noise_var_tbl_rev3[127];
16910 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16911 127, 32, &min_nvar_val);
16914 wlc_phy_workarounds_nphy_gainctrl(pi);
16916 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16917 &dac_control);
16918 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16919 &dac_control);
16921 pdetrange =
16922 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16923 pdetrange : pi->srom_fem2g.pdetrange;
16925 if (pdetrange == 0) {
16926 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16927 aux_adc_vmid = aux_adc_vmid_rev4;
16928 aux_adc_gain = aux_adc_gain_rev4;
16929 } else {
16930 aux_adc_vmid = aux_adc_vmid_rev3;
16931 aux_adc_gain = aux_adc_gain_rev3;
16933 chan_freq_range =
16934 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16935 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16936 switch (chan_freq_range) {
16937 case WL_CHAN_FREQ_RANGE_5GL:
16938 aux_adc_vmid[3] = 0x89;
16939 aux_adc_gain[3] = 0;
16940 break;
16941 case WL_CHAN_FREQ_RANGE_5GM:
16942 aux_adc_vmid[3] = 0x89;
16943 aux_adc_gain[3] = 0;
16944 break;
16945 case WL_CHAN_FREQ_RANGE_5GH:
16946 aux_adc_vmid[3] = 0x89;
16947 aux_adc_gain[3] = 0;
16948 break;
16949 default:
16950 break;
16953 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16954 0x08, 16, aux_adc_vmid);
16955 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16956 0x18, 16, aux_adc_vmid);
16957 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16958 0x0c, 16, aux_adc_gain);
16959 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16960 0x1c, 16, aux_adc_gain);
16961 } else if (pdetrange == 1) {
16962 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16963 0x08, 16, sk_adc_vmid);
16964 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16965 0x18, 16, sk_adc_vmid);
16966 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16967 0x0c, 16, sk_adc_gain);
16968 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16969 0x1c, 16, sk_adc_gain);
16970 } else if (pdetrange == 2) {
16972 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16973 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16975 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16976 chan_freq_range =
16977 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16978 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16979 bcm_adc_vmid[3] = 0x8e;
16980 bcm_adc_gain[3] = 0x03;
16981 } else {
16982 bcm_adc_vmid[3] = 0x94;
16983 bcm_adc_gain[3] = 0x03;
16985 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16986 bcm_adc_vmid[3] = 0x84;
16987 bcm_adc_gain[3] = 0x02;
16990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16991 0x08, 16, bcm_adc_vmid);
16992 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16993 0x18, 16, bcm_adc_vmid);
16994 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16995 0x0c, 16, bcm_adc_gain);
16996 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16997 0x1c, 16, bcm_adc_gain);
16998 } else if (pdetrange == 3) {
16999 chan_freq_range =
17000 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17001 if ((NREV_GE(pi->pubpi.phy_rev, 4))
17002 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
17004 u16 auxadc_vmid[] = {
17005 0xa2, 0xb4, 0xb4, 0x270
17007 u16 auxadc_gain[] = {
17008 0x02, 0x02, 0x02, 0x00
17011 wlc_phy_table_write_nphy(pi,
17012 NPHY_TBL_ID_AFECTRL, 4,
17013 0x08, 16, auxadc_vmid);
17014 wlc_phy_table_write_nphy(pi,
17015 NPHY_TBL_ID_AFECTRL, 4,
17016 0x18, 16, auxadc_vmid);
17017 wlc_phy_table_write_nphy(pi,
17018 NPHY_TBL_ID_AFECTRL, 4,
17019 0x0c, 16, auxadc_gain);
17020 wlc_phy_table_write_nphy(pi,
17021 NPHY_TBL_ID_AFECTRL, 4,
17022 0x1c, 16, auxadc_gain);
17024 } else if ((pdetrange == 4) || (pdetrange == 5)) {
17025 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
17026 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
17027 u16 Vmid[2], Av[2];
17029 chan_freq_range =
17030 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17031 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
17032 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
17033 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
17034 Av[0] = (pdetrange == 4) ? 2 : 0;
17035 Av[1] = (pdetrange == 4) ? 2 : 0;
17036 } else {
17037 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
17038 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
17039 Av[0] = (pdetrange == 4) ? 2 : 0;
17040 Av[1] = (pdetrange == 4) ? 2 : 0;
17043 bcm_adc_vmid[3] = Vmid[0];
17044 bcm_adc_gain[3] = Av[0];
17045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17046 0x08, 16, bcm_adc_vmid);
17047 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17048 0x0c, 16, bcm_adc_gain);
17050 bcm_adc_vmid[3] = Vmid[1];
17051 bcm_adc_gain[3] = Av[1];
17052 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17053 0x18, 16, bcm_adc_vmid);
17054 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17055 0x1c, 16, bcm_adc_gain);
17058 write_radio_reg(pi,
17059 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
17060 0x0);
17061 write_radio_reg(pi,
17062 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
17063 0x0);
17065 write_radio_reg(pi,
17066 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
17067 0x6);
17068 write_radio_reg(pi,
17069 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
17070 0x6);
17072 write_radio_reg(pi,
17073 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
17074 0x7);
17075 write_radio_reg(pi,
17076 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
17077 0x7);
17079 write_radio_reg(pi,
17080 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
17081 0x88);
17082 write_radio_reg(pi,
17083 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
17084 0x88);
17086 write_radio_reg(pi,
17087 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
17088 0x0);
17089 write_radio_reg(pi,
17090 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
17091 0x0);
17093 write_radio_reg(pi,
17094 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
17095 0x0);
17096 write_radio_reg(pi,
17097 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
17098 0x0);
17100 triso =
17101 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
17102 triso : pi->srom_fem2g.triso;
17103 if (triso == 7) {
17104 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
17105 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
17108 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
17110 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
17111 (CHSPEC_IS5G(pi->radio_chanspec))) ||
17112 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
17113 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
17114 (CHSPEC_IS2G(pi->radio_chanspec)))) {
17115 nss1_data_weights = 0x00088888;
17116 ht_data_weights = 0x00088888;
17117 stbc_data_weights = 0x00088888;
17118 } else {
17119 nss1_data_weights = 0x88888888;
17120 ht_data_weights = 0x88888888;
17121 stbc_data_weights = 0x88888888;
17123 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17124 1, 1, 32, &nss1_data_weights);
17125 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17126 1, 2, 32, &ht_data_weights);
17127 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17128 1, 3, 32, &stbc_data_weights);
17130 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17131 if (CHSPEC_IS5G(pi->radio_chanspec)) {
17132 write_radio_reg(pi,
17133 RADIO_2056_TX_GMBB_IDAC |
17134 RADIO_2056_TX0, 0x70);
17135 write_radio_reg(pi,
17136 RADIO_2056_TX_GMBB_IDAC |
17137 RADIO_2056_TX1, 0x70);
17141 if (!pi->edcrs_threshold_lock) {
17142 write_phy_reg(pi, 0x224, 0x3eb);
17143 write_phy_reg(pi, 0x225, 0x3eb);
17144 write_phy_reg(pi, 0x226, 0x341);
17145 write_phy_reg(pi, 0x227, 0x341);
17146 write_phy_reg(pi, 0x228, 0x42b);
17147 write_phy_reg(pi, 0x229, 0x42b);
17148 write_phy_reg(pi, 0x22a, 0x381);
17149 write_phy_reg(pi, 0x22b, 0x381);
17150 write_phy_reg(pi, 0x22c, 0x42b);
17151 write_phy_reg(pi, 0x22d, 0x42b);
17152 write_phy_reg(pi, 0x22e, 0x381);
17153 write_phy_reg(pi, 0x22f, 0x381);
17156 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17158 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17159 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17160 MHF4_BPHY_TXCORE0,
17161 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
17163 } else {
17165 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17166 (pi->sh->boardtype == 0x8b)) {
17167 uint i;
17168 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17169 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17170 rfseq_rx2tx_dlys[i] = war_dlys[i];
17173 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17174 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
17175 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
17176 } else {
17177 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
17178 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
17181 regval = 0x000a;
17182 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
17183 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
17185 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17186 regval = 0xcdaa;
17187 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
17188 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
17191 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17192 regval = 0x0000;
17193 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
17194 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
17196 regval = 0x7aab;
17197 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
17198 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
17200 regval = 0x0800;
17201 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
17202 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
17205 write_phy_reg(pi, 0xf8, 0x02d8);
17206 write_phy_reg(pi, 0xf9, 0x0301);
17207 write_phy_reg(pi, 0xfa, 0x02d8);
17208 write_phy_reg(pi, 0xfb, 0x0301);
17210 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17211 rfseq_rx2tx_dlys,
17212 sizeof(rfseq_rx2tx_events) /
17213 sizeof(rfseq_rx2tx_events[0]));
17215 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17216 rfseq_tx2rx_dlys,
17217 sizeof(rfseq_tx2rx_events) /
17218 sizeof(rfseq_tx2rx_events[0]));
17220 wlc_phy_workarounds_nphy_gainctrl(pi);
17222 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17224 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17225 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17226 MHF3_NPHY_MLADV_WAR,
17227 MHF3_NPHY_MLADV_WAR,
17228 BRCM_BAND_ALL);
17230 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17231 write_phy_reg(pi, 0x1e3, 0x0);
17232 write_phy_reg(pi, 0x1e4, 0x0);
17235 if (NREV_LT(pi->pubpi.phy_rev, 2))
17236 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17238 alpha0 = 293;
17239 alpha1 = 435;
17240 alpha2 = 261;
17241 beta0 = 366;
17242 beta1 = 205;
17243 beta2 = 32;
17244 write_phy_reg(pi, 0x145, alpha0);
17245 write_phy_reg(pi, 0x146, alpha1);
17246 write_phy_reg(pi, 0x147, alpha2);
17247 write_phy_reg(pi, 0x148, beta0);
17248 write_phy_reg(pi, 0x149, beta1);
17249 write_phy_reg(pi, 0x14a, beta2);
17251 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17252 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17254 write_phy_reg(pi, 0x192, 0xb5);
17255 write_phy_reg(pi, 0x193, 0xa4);
17256 write_phy_reg(pi, 0x194, 0x0);
17259 if (NREV_IS(pi->pubpi.phy_rev, 2))
17260 mod_phy_reg(pi, 0x221,
17261 NPHY_FORCESIG_DECODEGATEDCLKS,
17262 NPHY_FORCESIG_DECODEGATEDCLKS);
17265 if (pi->phyhang_avoid)
17266 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17269 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17271 int j, type = 2;
17272 u16 addr_offset = 0x2c5;
17274 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17275 write_phy_reg(pi, addr_offset + j,
17276 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17279 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17282 if (write == 0) {
17283 vals[0] = read_phy_reg(pi, 0x2c);
17284 vals[1] = read_phy_reg(pi, 0x42);
17285 } else {
17286 write_phy_reg(pi, 0x2c, vals[0]);
17287 write_phy_reg(pi, 0x42, vals[1]);
17291 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17293 u8 core;
17295 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17296 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17297 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17298 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17299 TX_SSI_MASTER, 0x5);
17300 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17301 TX_SSI_MUX, 0xe);
17303 if (pi->pubpi.radiorev != 5)
17304 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17305 core, TSSIA, 0);
17307 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17308 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17309 core, TSSIG, 0x1);
17310 else
17311 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17312 core, TSSIG, 0x31);
17313 } else {
17314 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17315 TX_SSI_MASTER, 0x9);
17316 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17317 TX_SSI_MUX, 0xc);
17318 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17319 TSSIG, 0);
17321 if (pi->pubpi.radiorev != 5) {
17322 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17323 WRITE_RADIO_REG3(pi, RADIO_2057,
17324 TX, core,
17325 TSSIA, 0x1);
17326 else
17327 WRITE_RADIO_REG3(pi, RADIO_2057,
17328 TX, core,
17329 TSSIA, 0x31);
17332 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17334 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17336 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17337 0x3);
17338 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17339 0x0);
17341 } else {
17342 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17343 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17344 0x80);
17345 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17346 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17348 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17349 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17350 0x0);
17351 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17352 0x0);
17353 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17354 0x3);
17355 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17356 0x0);
17357 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17358 0x8);
17359 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17360 0x0);
17361 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17362 0x0);
17364 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17365 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17366 TX_SSI_MASTER, 0x5);
17368 if (pi->pubpi.radiorev != 5)
17369 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17370 core, TSSIA, 0x0);
17371 if (NREV_GE(pi->pubpi.phy_rev, 5))
17372 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17373 core, TSSIG, 0x31);
17374 else
17375 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17376 core, TSSIG, 0x11);
17377 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17378 TX_SSI_MUX, 0xe);
17379 } else {
17380 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17381 TX_SSI_MASTER, 0x9);
17382 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17383 TSSIA, 0x31);
17384 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17385 TSSIG, 0x0);
17386 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17387 TX_SSI_MUX, 0xc);
17393 static void
17394 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17395 u8 core_mask, u8 off)
17397 u8 core_num;
17398 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17399 0, val_mask = 0;
17400 u8 shift = 0, val_shift = 0;
17402 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17404 en_mask = field;
17405 for (core_num = 0; core_num < 2; core_num++) {
17407 switch (field) {
17408 case (0x1 << 1):
17409 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17410 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17411 val_mask = (0x1 << 0);
17412 val_shift = 0;
17413 break;
17414 case (0x1 << 2):
17415 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17416 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17417 val_mask = (0x1 << 1);
17418 val_shift = 1;
17419 break;
17420 case (0x1 << 3):
17421 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17422 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17423 val_mask = (0x1 << 2);
17424 val_shift = 2;
17425 break;
17426 case (0x1 << 4):
17427 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17428 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17429 val_mask = (0x1 << 4);
17430 val_shift = 4;
17431 break;
17432 case (0x1 << 5):
17433 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17434 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17435 val_mask = (0x1 << 5);
17436 val_shift = 5;
17437 break;
17438 case (0x1 << 6):
17439 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17440 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17441 val_mask = (0x1 << 6);
17442 val_shift = 6;
17443 break;
17444 case (0x1 << 7):
17445 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17446 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17447 val_mask = (0x1 << 7);
17448 val_shift = 7;
17449 break;
17450 case (0x1 << 8):
17451 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17452 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17453 val_mask = (0x7 << 8);
17454 val_shift = 8;
17455 break;
17456 case (0x1 << 11):
17457 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17458 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17459 val_mask = (0x7 << 13);
17460 val_shift = 13;
17461 break;
17463 case (0x1 << 9):
17464 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17465 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17466 val_mask = (0x7 << 0);
17467 val_shift = 0;
17468 break;
17470 case (0x1 << 10):
17471 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17472 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17473 val_mask = (0x7 << 4);
17474 val_shift = 4;
17475 break;
17477 case (0x1 << 12):
17478 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17479 val_addr = (core_num == 0) ? 0x7b : 0x7e;
17480 val_mask = (0xffff << 0);
17481 val_shift = 0;
17482 break;
17483 case (0x1 << 13):
17484 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17485 val_addr = (core_num == 0) ? 0x7c : 0x7f;
17486 val_mask = (0xffff << 0);
17487 val_shift = 0;
17488 break;
17489 case (0x1 << 14):
17490 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17491 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17492 val_mask = (0x3 << 6);
17493 val_shift = 6;
17494 break;
17495 case (0x1 << 0):
17496 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17497 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17498 val_mask = (0x1 << 15);
17499 val_shift = 15;
17500 break;
17501 default:
17502 addr = 0xffff;
17503 break;
17506 if (off) {
17507 and_phy_reg(pi, en_addr, ~en_mask);
17508 and_phy_reg(pi, val_addr, ~val_mask);
17509 } else {
17511 if ((core_mask == 0)
17512 || (core_mask & (1 << core_num))) {
17513 or_phy_reg(pi, en_addr, en_mask);
17515 if (addr != 0xffff)
17516 mod_phy_reg(pi, val_addr,
17517 val_mask,
17518 (value <<
17519 val_shift));
17523 } else {
17525 if (off) {
17526 and_phy_reg(pi, 0xec, ~field);
17527 value = 0x0;
17528 } else {
17529 or_phy_reg(pi, 0xec, field);
17532 for (core_num = 0; core_num < 2; core_num++) {
17534 switch (field) {
17535 case (0x1 << 1):
17536 case (0x1 << 9):
17537 case (0x1 << 12):
17538 case (0x1 << 13):
17539 case (0x1 << 14):
17540 addr = 0x78;
17542 core_mask = 0x1;
17543 break;
17544 case (0x1 << 2):
17545 case (0x1 << 3):
17546 case (0x1 << 4):
17547 case (0x1 << 5):
17548 case (0x1 << 6):
17549 case (0x1 << 7):
17550 case (0x1 << 8):
17551 addr = (core_num == 0) ? 0x7a : 0x7d;
17552 break;
17553 case (0x1 << 10):
17554 addr = (core_num == 0) ? 0x7b : 0x7e;
17555 break;
17556 case (0x1 << 11):
17557 addr = (core_num == 0) ? 0x7c : 0x7f;
17558 break;
17559 default:
17560 addr = 0xffff;
17563 switch (field) {
17564 case (0x1 << 1):
17565 mask = (0x7 << 3);
17566 shift = 3;
17567 break;
17568 case (0x1 << 9):
17569 mask = (0x1 << 2);
17570 shift = 2;
17571 break;
17572 case (0x1 << 12):
17573 mask = (0x1 << 8);
17574 shift = 8;
17575 break;
17576 case (0x1 << 13):
17577 mask = (0x1 << 9);
17578 shift = 9;
17579 break;
17580 case (0x1 << 14):
17581 mask = (0xf << 12);
17582 shift = 12;
17583 break;
17584 case (0x1 << 2):
17585 mask = (0x1 << 0);
17586 shift = 0;
17587 break;
17588 case (0x1 << 3):
17589 mask = (0x1 << 1);
17590 shift = 1;
17591 break;
17592 case (0x1 << 4):
17593 mask = (0x1 << 2);
17594 shift = 2;
17595 break;
17596 case (0x1 << 5):
17597 mask = (0x3 << 4);
17598 shift = 4;
17599 break;
17600 case (0x1 << 6):
17601 mask = (0x3 << 6);
17602 shift = 6;
17603 break;
17604 case (0x1 << 7):
17605 mask = (0x1 << 8);
17606 shift = 8;
17607 break;
17608 case (0x1 << 8):
17609 mask = (0x1 << 9);
17610 shift = 9;
17611 break;
17612 case (0x1 << 10):
17613 mask = 0x1fff;
17614 shift = 0x0;
17615 break;
17616 case (0x1 << 11):
17617 mask = 0x1fff;
17618 shift = 0x0;
17619 break;
17620 default:
17621 mask = 0x0;
17622 shift = 0x0;
17623 break;
17626 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17627 mod_phy_reg(pi, addr, mask, (value << shift));
17630 or_phy_reg(pi, 0xec, (0x1 << 0));
17631 or_phy_reg(pi, 0x78, (0x1 << 0));
17632 udelay(1);
17633 and_phy_reg(pi, 0xec, ~(0x1 << 0));
17637 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17639 s32 rssi_buf[4];
17640 s32 int_val;
17642 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17644 return;
17646 if (PHY_IPA(pi))
17647 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17649 if (NREV_GE(pi->pubpi.phy_rev, 7))
17650 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17651 0, 0x3, 0,
17652 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17653 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17654 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17656 wlc_phy_stopplayback_nphy(pi);
17658 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17660 udelay(20);
17661 int_val =
17662 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17664 wlc_phy_stopplayback_nphy(pi);
17665 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17667 if (NREV_GE(pi->pubpi.phy_rev, 7))
17668 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17669 0, 0x3, 1,
17670 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17671 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17672 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17674 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17676 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17677 (u8) ((int_val >> 24) & 0xff);
17678 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17679 (u8) ((int_val >> 24) & 0xff);
17681 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17682 (u8) ((int_val >> 8) & 0xff);
17683 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17684 (u8) ((int_val >> 8) & 0xff);
17685 } else {
17686 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17687 (u8) ((int_val >> 24) & 0xff);
17689 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17690 (u8) ((int_val >> 8) & 0xff);
17692 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17693 (u8) ((int_val >> 16) & 0xff);
17694 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17695 (u8) ((int_val) & 0xff);
17700 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17702 u8 idx, idx2, i, delta_ind;
17704 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17705 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17707 for (i = 0; i < 4; i++) {
17708 idx2 = 0;
17710 delta_ind = 0;
17712 switch (i) {
17713 case 0:
17715 if (CHSPEC_IS40(pi->radio_chanspec)
17716 && NPHY_IS_SROM_REINTERPRET) {
17717 idx = TXP_FIRST_MCS_40_SISO;
17718 } else {
17719 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17720 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17721 delta_ind = 1;
17723 break;
17725 case 1:
17727 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17728 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17729 break;
17731 case 2:
17733 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17734 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17735 break;
17737 case 3:
17739 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17740 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17741 break;
17744 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17745 pi->tx_power_offset[idx];
17746 idx = idx + delta_ind;
17747 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17748 pi->tx_power_offset[idx];
17749 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17750 pi->tx_power_offset[idx];
17751 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17752 pi->tx_power_offset[idx++];
17754 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17755 pi->tx_power_offset[idx++];
17756 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17757 pi->tx_power_offset[idx];
17758 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17759 pi->tx_power_offset[idx];
17760 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17761 pi->tx_power_offset[idx++];
17763 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17764 pi->tx_power_offset[idx++];
17765 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17766 pi->tx_power_offset[idx];
17767 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17768 pi->tx_power_offset[idx];
17769 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17770 pi->tx_power_offset[idx++];
17772 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17773 pi->tx_power_offset[idx];
17774 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17775 pi->tx_power_offset[idx++];
17776 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17777 pi->tx_power_offset[idx];
17778 idx = idx + 1 - delta_ind;
17779 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17780 pi->tx_power_offset[idx];
17782 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17783 pi->tx_power_offset[idx];
17784 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17785 pi->tx_power_offset[idx];
17786 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17787 pi->tx_power_offset[idx];
17788 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17789 pi->tx_power_offset[idx];
17793 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17795 u32 idx;
17796 s16 a1[2], b0[2], b1[2];
17797 s8 target_pwr_qtrdbm[2];
17798 s32 num, den, pwr_est;
17799 u8 chan_freq_range;
17800 u8 idle_tssi[2];
17801 u32 tbl_id, tbl_len, tbl_offset;
17802 u32 regval[64];
17803 u8 core;
17805 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17806 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17807 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17808 udelay(1);
17811 if (pi->phyhang_avoid)
17812 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17814 or_phy_reg(pi, 0x122, (0x1 << 0));
17816 if (NREV_GE(pi->pubpi.phy_rev, 3))
17817 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17818 else
17819 or_phy_reg(pi, 0x1e7, (0x1 << 15));
17821 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17822 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17824 if (pi->sh->sromrev < 4) {
17825 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17826 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17827 target_pwr_qtrdbm[0] = 13 * 4;
17828 target_pwr_qtrdbm[1] = 13 * 4;
17829 a1[0] = -424;
17830 a1[1] = -424;
17831 b0[0] = 5612;
17832 b0[1] = 5612;
17833 b1[1] = -1393;
17834 b1[0] = -1393;
17835 } else {
17837 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17838 switch (chan_freq_range) {
17839 case WL_CHAN_FREQ_RANGE_2G:
17840 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17841 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17842 target_pwr_qtrdbm[0] =
17843 pi->nphy_pwrctrl_info[0].max_pwr_2g;
17844 target_pwr_qtrdbm[1] =
17845 pi->nphy_pwrctrl_info[1].max_pwr_2g;
17846 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17847 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17848 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17849 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17850 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17851 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17852 break;
17853 case WL_CHAN_FREQ_RANGE_5GL:
17854 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17855 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17856 target_pwr_qtrdbm[0] =
17857 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
17858 target_pwr_qtrdbm[1] =
17859 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
17860 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17861 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17862 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17863 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17864 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17865 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17866 break;
17867 case WL_CHAN_FREQ_RANGE_5GM:
17868 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17869 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17870 target_pwr_qtrdbm[0] =
17871 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
17872 target_pwr_qtrdbm[1] =
17873 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
17874 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17875 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17876 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17877 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17878 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17879 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17880 break;
17881 case WL_CHAN_FREQ_RANGE_5GH:
17882 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17883 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17884 target_pwr_qtrdbm[0] =
17885 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
17886 target_pwr_qtrdbm[1] =
17887 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
17888 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17889 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17890 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17891 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17892 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17893 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17894 break;
17895 default:
17896 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17897 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17898 target_pwr_qtrdbm[0] = 13 * 4;
17899 target_pwr_qtrdbm[1] = 13 * 4;
17900 a1[0] = -424;
17901 a1[1] = -424;
17902 b0[0] = 5612;
17903 b0[1] = 5612;
17904 b1[1] = -1393;
17905 b1[0] = -1393;
17906 break;
17910 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17911 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17913 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17914 if (pi->srom_fem2g.tssipos)
17915 or_phy_reg(pi, 0x1e9, (0x1 << 14));
17917 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17918 for (core = 0; core <= 1; core++) {
17919 if (PHY_IPA(pi)) {
17920 if (CHSPEC_IS2G(pi->radio_chanspec))
17921 WRITE_RADIO_REG3(pi, RADIO_2057,
17922 TX, core,
17923 TX_SSI_MUX,
17924 0xe);
17925 else
17926 WRITE_RADIO_REG3(pi, RADIO_2057,
17927 TX, core,
17928 TX_SSI_MUX,
17929 0xc);
17932 } else {
17933 if (PHY_IPA(pi)) {
17935 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17936 RADIO_2056_TX0,
17937 (CHSPEC_IS5G
17938 (pi->radio_chanspec)) ?
17939 0xc : 0xe);
17940 write_radio_reg(pi,
17941 RADIO_2056_TX_TX_SSI_MUX |
17942 RADIO_2056_TX1,
17943 (CHSPEC_IS5G
17944 (pi->radio_chanspec)) ?
17945 0xc : 0xe);
17946 } else {
17948 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17949 RADIO_2056_TX0, 0x11);
17950 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17951 RADIO_2056_TX1, 0x11);
17956 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17957 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17958 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17959 udelay(1);
17962 if (NREV_GE(pi->pubpi.phy_rev, 7))
17963 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17964 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17965 else
17966 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17967 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17969 if (NREV_GE(pi->pubpi.phy_rev, 7))
17970 mod_phy_reg(pi, 0x222, (0xff << 0),
17971 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17972 else if (NREV_GT(pi->pubpi.phy_rev, 1))
17973 mod_phy_reg(pi, 0x222, (0xff << 0),
17974 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17976 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17977 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17979 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
17981 write_phy_reg(pi, 0x1e9,
17982 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
17984 write_phy_reg(pi, 0x1ea,
17985 (target_pwr_qtrdbm[0] << 0) |
17986 (target_pwr_qtrdbm[1] << 8));
17988 tbl_len = 64;
17989 tbl_offset = 0;
17990 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
17991 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
17993 for (idx = 0; idx < tbl_len; idx++) {
17994 num = 8 *
17995 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
17996 den = 32768 + a1[tbl_id - 26] * idx;
17997 pwr_est = max(((4 * num + den / 2) / den), -8);
17998 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17999 if (idx <=
18000 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
18001 pwr_est =
18002 max(pwr_est,
18003 target_pwr_qtrdbm
18004 [tbl_id - 26] + 1);
18006 regval[idx] = (u32) pwr_est;
18008 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18009 regval);
18012 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
18013 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
18014 pi->adj_pwr_tbl_nphy);
18015 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
18016 pi->adj_pwr_tbl_nphy);
18018 if (pi->phyhang_avoid)
18019 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18022 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
18024 u32 *tx_pwrctrl_tbl = NULL;
18026 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18027 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18028 if ((pi->pubpi.radiorev == 4)
18029 || (pi->pubpi.radiorev == 6))
18030 tx_pwrctrl_tbl =
18031 nphy_tpc_txgain_ipa_2g_2057rev4n6;
18032 else if (pi->pubpi.radiorev == 3)
18033 tx_pwrctrl_tbl =
18034 nphy_tpc_txgain_ipa_2g_2057rev3;
18035 else if (pi->pubpi.radiorev == 5)
18036 tx_pwrctrl_tbl =
18037 nphy_tpc_txgain_ipa_2g_2057rev5;
18038 else if ((pi->pubpi.radiorev == 7)
18039 || (pi->pubpi.radiorev == 8))
18040 tx_pwrctrl_tbl =
18041 nphy_tpc_txgain_ipa_2g_2057rev7;
18042 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18043 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
18044 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18045 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
18046 } else {
18047 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
18049 } else {
18051 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18052 if ((pi->pubpi.radiorev == 3) ||
18053 (pi->pubpi.radiorev == 4) ||
18054 (pi->pubpi.radiorev == 6))
18055 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
18056 else if ((pi->pubpi.radiorev == 7)
18057 || (pi->pubpi.radiorev == 8))
18058 tx_pwrctrl_tbl =
18059 nphy_tpc_txgain_ipa_5g_2057rev7;
18060 } else {
18061 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
18065 return tx_pwrctrl_tbl;
18068 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
18070 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18071 if (pi->nphy_rssical_chanspec_2G == 0)
18072 return;
18074 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18075 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18076 RADIO_2057_VCM_MASK,
18077 pi->rssical_cache.
18078 rssical_radio_regs_2G[0]);
18079 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18080 RADIO_2057_VCM_MASK,
18081 pi->rssical_cache.
18082 rssical_radio_regs_2G[1]);
18083 } else {
18084 mod_radio_reg(pi,
18085 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18086 RADIO_2056_VCM_MASK,
18087 pi->rssical_cache.
18088 rssical_radio_regs_2G[0]);
18089 mod_radio_reg(pi,
18090 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18091 RADIO_2056_VCM_MASK,
18092 pi->rssical_cache.
18093 rssical_radio_regs_2G[1]);
18096 write_phy_reg(pi, 0x1a6,
18097 pi->rssical_cache.rssical_phyregs_2G[0]);
18098 write_phy_reg(pi, 0x1ac,
18099 pi->rssical_cache.rssical_phyregs_2G[1]);
18100 write_phy_reg(pi, 0x1b2,
18101 pi->rssical_cache.rssical_phyregs_2G[2]);
18102 write_phy_reg(pi, 0x1b8,
18103 pi->rssical_cache.rssical_phyregs_2G[3]);
18104 write_phy_reg(pi, 0x1a4,
18105 pi->rssical_cache.rssical_phyregs_2G[4]);
18106 write_phy_reg(pi, 0x1aa,
18107 pi->rssical_cache.rssical_phyregs_2G[5]);
18108 write_phy_reg(pi, 0x1b0,
18109 pi->rssical_cache.rssical_phyregs_2G[6]);
18110 write_phy_reg(pi, 0x1b6,
18111 pi->rssical_cache.rssical_phyregs_2G[7]);
18112 write_phy_reg(pi, 0x1a5,
18113 pi->rssical_cache.rssical_phyregs_2G[8]);
18114 write_phy_reg(pi, 0x1ab,
18115 pi->rssical_cache.rssical_phyregs_2G[9]);
18116 write_phy_reg(pi, 0x1b1,
18117 pi->rssical_cache.rssical_phyregs_2G[10]);
18118 write_phy_reg(pi, 0x1b7,
18119 pi->rssical_cache.rssical_phyregs_2G[11]);
18121 } else {
18122 if (pi->nphy_rssical_chanspec_5G == 0)
18123 return;
18125 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18126 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18127 RADIO_2057_VCM_MASK,
18128 pi->rssical_cache.
18129 rssical_radio_regs_5G[0]);
18130 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18131 RADIO_2057_VCM_MASK,
18132 pi->rssical_cache.
18133 rssical_radio_regs_5G[1]);
18134 } else {
18135 mod_radio_reg(pi,
18136 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18137 RADIO_2056_VCM_MASK,
18138 pi->rssical_cache.
18139 rssical_radio_regs_5G[0]);
18140 mod_radio_reg(pi,
18141 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18142 RADIO_2056_VCM_MASK,
18143 pi->rssical_cache.
18144 rssical_radio_regs_5G[1]);
18147 write_phy_reg(pi, 0x1a6,
18148 pi->rssical_cache.rssical_phyregs_5G[0]);
18149 write_phy_reg(pi, 0x1ac,
18150 pi->rssical_cache.rssical_phyregs_5G[1]);
18151 write_phy_reg(pi, 0x1b2,
18152 pi->rssical_cache.rssical_phyregs_5G[2]);
18153 write_phy_reg(pi, 0x1b8,
18154 pi->rssical_cache.rssical_phyregs_5G[3]);
18155 write_phy_reg(pi, 0x1a4,
18156 pi->rssical_cache.rssical_phyregs_5G[4]);
18157 write_phy_reg(pi, 0x1aa,
18158 pi->rssical_cache.rssical_phyregs_5G[5]);
18159 write_phy_reg(pi, 0x1b0,
18160 pi->rssical_cache.rssical_phyregs_5G[6]);
18161 write_phy_reg(pi, 0x1b6,
18162 pi->rssical_cache.rssical_phyregs_5G[7]);
18163 write_phy_reg(pi, 0x1a5,
18164 pi->rssical_cache.rssical_phyregs_5G[8]);
18165 write_phy_reg(pi, 0x1ab,
18166 pi->rssical_cache.rssical_phyregs_5G[9]);
18167 write_phy_reg(pi, 0x1b1,
18168 pi->rssical_cache.rssical_phyregs_5G[10]);
18169 write_phy_reg(pi, 0x1b7,
18170 pi->rssical_cache.rssical_phyregs_5G[11]);
18174 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18176 u16 txcal_gain[2];
18178 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18179 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18180 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18181 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18183 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18184 txcal_gain);
18186 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18187 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18188 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18189 } else {
18190 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18191 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18194 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18195 txcal_gain);
18198 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18200 bool save_bbmult = false;
18201 u8 txcal_index_2057_rev5n7 = 0;
18202 u8 txcal_index_2057_rev3n4n6 = 10;
18204 if (pi->use_int_tx_iqlo_cal_nphy) {
18205 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18206 if ((pi->pubpi.radiorev == 3) ||
18207 (pi->pubpi.radiorev == 4) ||
18208 (pi->pubpi.radiorev == 6)) {
18210 pi->nphy_txcal_pwr_idx[0] =
18211 txcal_index_2057_rev3n4n6;
18212 pi->nphy_txcal_pwr_idx[1] =
18213 txcal_index_2057_rev3n4n6;
18214 wlc_phy_txpwr_index_nphy(
18215 pi, 3,
18216 txcal_index_2057_rev3n4n6,
18217 false);
18218 } else {
18220 pi->nphy_txcal_pwr_idx[0] =
18221 txcal_index_2057_rev5n7;
18222 pi->nphy_txcal_pwr_idx[1] =
18223 txcal_index_2057_rev5n7;
18224 wlc_phy_txpwr_index_nphy(
18225 pi, 3,
18226 txcal_index_2057_rev5n7,
18227 false);
18229 save_bbmult = true;
18231 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18232 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18233 if (pi->sh->hw_phytxchain != 3) {
18234 pi->nphy_txcal_pwr_idx[1] =
18235 pi->nphy_txcal_pwr_idx[0];
18236 wlc_phy_txpwr_index_nphy(pi, 3,
18237 pi->
18238 nphy_txcal_pwr_idx[0],
18239 true);
18240 save_bbmult = true;
18243 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18244 if (PHY_IPA(pi)) {
18245 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18246 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18247 false);
18248 } else {
18249 pi->nphy_txcal_pwr_idx[0] = 80;
18250 pi->nphy_txcal_pwr_idx[1] = 80;
18251 wlc_phy_txpwr_index_nphy(pi, 3, 80,
18252 false);
18253 save_bbmult = true;
18255 } else {
18256 wlc_phy_internal_cal_txgain_nphy(pi);
18257 save_bbmult = true;
18260 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18261 if (PHY_IPA(pi)) {
18262 if (CHSPEC_IS2G(pi->radio_chanspec))
18263 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18264 false);
18265 else
18266 wlc_phy_cal_txgainctrl_nphy(pi, 14,
18267 false);
18268 } else {
18269 wlc_phy_internal_cal_txgain_nphy(pi);
18270 save_bbmult = true;
18274 } else {
18275 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18278 if (save_bbmult)
18279 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18280 &pi->nphy_txcal_bbmult);
18283 static void
18284 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18285 u8 core_code)
18287 u16 mask;
18288 u16 val;
18289 u8 core;
18291 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18292 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18293 if (core_code == RADIO_MIMO_CORESEL_CORE1
18294 && core == PHY_CORE_1)
18295 continue;
18296 else if (core_code == RADIO_MIMO_CORESEL_CORE2
18297 && core == PHY_CORE_0)
18298 continue;
18300 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18302 mask = (0x1 << 10);
18303 val = 1 << 10;
18304 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18305 0x92, mask, val);
18308 if (field == NPHY_RfctrlIntc_override_OFF) {
18310 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18311 0x92, 0);
18313 wlc_phy_force_rfseq_nphy(pi,
18314 NPHY_RFSEQ_RESET2RX);
18315 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
18317 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18319 mask = (0x1 << 6) | (0x1 << 7);
18321 val = value << 6;
18322 mod_phy_reg(pi,
18323 (core ==
18324 PHY_CORE_0) ? 0x91 : 0x92,
18325 mask, val);
18327 or_phy_reg(pi,
18328 (core ==
18329 PHY_CORE_0) ? 0x91 : 0x92,
18330 (0x1 << 10));
18332 and_phy_reg(pi, 0x2ff, (u16)
18333 ~(0x3 << 14));
18334 or_phy_reg(pi, 0x2ff, (0x1 << 13));
18335 or_phy_reg(pi, 0x2ff, (0x1 << 0));
18336 } else {
18338 mask = (0x1 << 6) |
18339 (0x1 << 7) |
18340 (0x1 << 8) | (0x1 << 9);
18341 val = value << 6;
18342 mod_phy_reg(pi,
18343 (core ==
18344 PHY_CORE_0) ? 0x91 : 0x92,
18345 mask, val);
18347 mask = (0x1 << 0);
18348 val = 1 << 0;
18349 mod_phy_reg(pi,
18350 (core ==
18351 PHY_CORE_0) ? 0xe7 : 0xec,
18352 mask, val);
18354 mask = (core == PHY_CORE_0) ?
18355 (0x1 << 0) : (0x1 << 1);
18356 val = 1 << ((core == PHY_CORE_0) ?
18357 0 : 1);
18358 mod_phy_reg(pi, 0x78, mask, val);
18360 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18361 != 0), 10000);
18362 if (WARN(read_phy_reg(pi, 0x78) & val,
18363 "HW error: override failed"))
18364 return;
18366 mask = (0x1 << 0);
18367 val = 0 << 0;
18368 mod_phy_reg(pi,
18369 (core ==
18370 PHY_CORE_0) ? 0xe7 : 0xec,
18371 mask, val);
18373 } else if (field == NPHY_RfctrlIntc_override_PA) {
18374 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18376 mask = (0x1 << 4) | (0x1 << 5);
18378 if (CHSPEC_IS5G(pi->radio_chanspec))
18379 val = value << 5;
18380 else
18381 val = value << 4;
18383 mod_phy_reg(pi,
18384 (core ==
18385 PHY_CORE_0) ? 0x91 : 0x92,
18386 mask, val);
18388 or_phy_reg(pi,
18389 (core ==
18390 PHY_CORE_0) ? 0x91 : 0x92,
18391 (0x1 << 12));
18392 } else {
18394 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18395 mask = (0x1 << 5);
18396 val = value << 5;
18397 } else {
18398 mask = (0x1 << 4);
18399 val = value << 4;
18401 mod_phy_reg(pi,
18402 (core ==
18403 PHY_CORE_0) ? 0x91 : 0x92,
18404 mask, val);
18406 } else if (field ==
18407 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18408 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18409 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18411 mask = (0x1 << 0);
18412 val = value << 0;
18413 mod_phy_reg(pi,
18414 (core ==
18415 PHY_CORE_0) ? 0x91
18416 : 0x92, mask, val);
18418 mask = (0x1 << 2);
18419 mod_phy_reg(pi,
18420 (core ==
18421 PHY_CORE_0) ? 0x91
18422 : 0x92, mask, 0);
18423 } else {
18425 mask = (0x1 << 2);
18426 val = value << 2;
18427 mod_phy_reg(pi,
18428 (core ==
18429 PHY_CORE_0) ? 0x91
18430 : 0x92, mask, val);
18432 mask = (0x1 << 0);
18433 mod_phy_reg(pi,
18434 (core ==
18435 PHY_CORE_0) ? 0x91
18436 : 0x92, mask, 0);
18439 mask = (0x1 << 11);
18440 val = 1 << 11;
18441 mod_phy_reg(pi,
18442 (core ==
18443 PHY_CORE_0) ? 0x91 : 0x92,
18444 mask, val);
18445 } else {
18447 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18448 mask = (0x1 << 0);
18449 val = value << 0;
18450 } else {
18451 mask = (0x1 << 2);
18452 val = value << 2;
18454 mod_phy_reg(pi,
18455 (core ==
18456 PHY_CORE_0) ? 0x91 : 0x92,
18457 mask, val);
18459 } else if (field ==
18460 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18461 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18462 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18464 mask = (0x1 << 1);
18465 val = value << 1;
18466 mod_phy_reg(pi,
18467 (core ==
18468 PHY_CORE_0) ? 0x91
18469 : 0x92, mask, val);
18471 mask = (0x1 << 3);
18472 mod_phy_reg(pi,
18473 (core ==
18474 PHY_CORE_0) ? 0x91
18475 : 0x92, mask, 0);
18476 } else {
18478 mask = (0x1 << 3);
18479 val = value << 3;
18480 mod_phy_reg(pi,
18481 (core ==
18482 PHY_CORE_0) ? 0x91
18483 : 0x92, mask, val);
18485 mask = (0x1 << 1);
18486 mod_phy_reg(pi,
18487 (core ==
18488 PHY_CORE_0) ? 0x91
18489 : 0x92, mask, 0);
18492 mask = (0x1 << 11);
18493 val = 1 << 11;
18494 mod_phy_reg(pi,
18495 (core ==
18496 PHY_CORE_0) ? 0x91 : 0x92,
18497 mask, val);
18498 } else {
18500 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18501 mask = (0x1 << 1);
18502 val = value << 1;
18503 } else {
18504 mask = (0x1 << 3);
18505 val = value << 3;
18507 mod_phy_reg(pi,
18508 (core ==
18509 PHY_CORE_0) ? 0x91 : 0x92,
18510 mask, val);
18517 void
18518 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18519 bool debug)
18521 int gainctrl_loopidx;
18522 uint core;
18523 u16 m0m1, curr_m0m1;
18524 s32 delta_power;
18525 s32 txpwrindex;
18526 s32 qdBm_power[2];
18527 u16 orig_BBConfig;
18528 u16 phy_saveregs[4];
18529 u32 freq_test;
18530 u16 ampl_test = 250;
18531 uint stepsize;
18532 bool phyhang_avoid_state = false;
18534 if (NREV_GE(pi->pubpi.phy_rev, 7))
18535 stepsize = 2;
18536 else
18537 stepsize = 1;
18539 if (CHSPEC_IS40(pi->radio_chanspec))
18540 freq_test = 5000;
18541 else
18542 freq_test = 2500;
18544 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18545 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18547 if (pi->phyhang_avoid)
18548 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18550 phyhang_avoid_state = pi->phyhang_avoid;
18551 pi->phyhang_avoid = false;
18553 phy_saveregs[0] = read_phy_reg(pi, 0x91);
18554 phy_saveregs[1] = read_phy_reg(pi, 0x92);
18555 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18556 phy_saveregs[3] = read_phy_reg(pi, 0xec);
18557 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18558 RADIO_MIMO_CORESEL_CORE1 |
18559 RADIO_MIMO_CORESEL_CORE2);
18561 if (!debug) {
18562 wlc_phy_rfctrlintc_override_nphy(pi,
18563 NPHY_RfctrlIntc_override_TRSW,
18564 0x2, RADIO_MIMO_CORESEL_CORE1);
18565 wlc_phy_rfctrlintc_override_nphy(pi,
18566 NPHY_RfctrlIntc_override_TRSW,
18567 0x8, RADIO_MIMO_CORESEL_CORE2);
18568 } else {
18569 wlc_phy_rfctrlintc_override_nphy(pi,
18570 NPHY_RfctrlIntc_override_TRSW,
18571 0x1, RADIO_MIMO_CORESEL_CORE1);
18572 wlc_phy_rfctrlintc_override_nphy(pi,
18573 NPHY_RfctrlIntc_override_TRSW,
18574 0x7, RADIO_MIMO_CORESEL_CORE2);
18577 orig_BBConfig = read_phy_reg(pi, 0x01);
18578 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18580 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18582 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18583 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18585 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18586 gainctrl_loopidx++) {
18587 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18588 false);
18590 if (core == PHY_CORE_0)
18591 curr_m0m1 = m0m1 & 0xff00;
18592 else
18593 curr_m0m1 = m0m1 & 0x00ff;
18595 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18596 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18598 udelay(50);
18600 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18601 NPHY_CAL_TSSISAMPS);
18603 pi->nphy_bb_mult_save = 0;
18604 wlc_phy_stopplayback_nphy(pi);
18606 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18608 txpwrindex -= stepsize * delta_power;
18609 if (txpwrindex < 0)
18610 txpwrindex = 0;
18611 else if (txpwrindex > 127)
18612 txpwrindex = 127;
18614 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18615 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18616 (pi->srom_fem5g.extpagain == 3)) {
18617 if (txpwrindex < 30)
18618 txpwrindex = 30;
18620 } else {
18621 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18622 (pi->srom_fem2g.extpagain == 3)) {
18623 if (txpwrindex < 50)
18624 txpwrindex = 50;
18628 wlc_phy_txpwr_index_nphy(pi, (1 << core),
18629 (u8) txpwrindex, true);
18632 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18634 if (debug) {
18635 u16 radio_gain;
18636 u16 dbg_m0m1;
18638 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18640 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18641 false);
18643 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18644 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18646 udelay(100);
18648 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18649 NPHY_CAL_TSSISAMPS);
18651 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18652 &radio_gain);
18654 mdelay(4000);
18655 pi->nphy_bb_mult_save = 0;
18656 wlc_phy_stopplayback_nphy(pi);
18660 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18661 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18663 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18665 write_phy_reg(pi, 0x01, orig_BBConfig);
18667 write_phy_reg(pi, 0x91, phy_saveregs[0]);
18668 write_phy_reg(pi, 0x92, phy_saveregs[1]);
18669 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18670 write_phy_reg(pi, 0xec, phy_saveregs[3]);
18672 pi->phyhang_avoid = phyhang_avoid_state;
18674 if (pi->phyhang_avoid)
18675 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18678 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18680 void *tbl_ptr;
18681 int coreNum;
18682 u16 *txcal_radio_regs = NULL;
18684 if (pi->phyhang_avoid)
18685 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18687 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18689 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18690 &pi->calibration_cache.
18691 rxcal_coeffs_2G);
18693 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18694 txcal_radio_regs =
18695 pi->calibration_cache.txcal_radio_regs_2G;
18696 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18698 pi->calibration_cache.txcal_radio_regs_2G[0] =
18699 read_radio_reg(pi,
18700 RADIO_2056_TX_LOFT_FINE_I |
18701 RADIO_2056_TX0);
18702 pi->calibration_cache.txcal_radio_regs_2G[1] =
18703 read_radio_reg(pi,
18704 RADIO_2056_TX_LOFT_FINE_Q |
18705 RADIO_2056_TX0);
18706 pi->calibration_cache.txcal_radio_regs_2G[2] =
18707 read_radio_reg(pi,
18708 RADIO_2056_TX_LOFT_FINE_I |
18709 RADIO_2056_TX1);
18710 pi->calibration_cache.txcal_radio_regs_2G[3] =
18711 read_radio_reg(pi,
18712 RADIO_2056_TX_LOFT_FINE_Q |
18713 RADIO_2056_TX1);
18715 pi->calibration_cache.txcal_radio_regs_2G[4] =
18716 read_radio_reg(pi,
18717 RADIO_2056_TX_LOFT_COARSE_I |
18718 RADIO_2056_TX0);
18719 pi->calibration_cache.txcal_radio_regs_2G[5] =
18720 read_radio_reg(pi,
18721 RADIO_2056_TX_LOFT_COARSE_Q |
18722 RADIO_2056_TX0);
18723 pi->calibration_cache.txcal_radio_regs_2G[6] =
18724 read_radio_reg(pi,
18725 RADIO_2056_TX_LOFT_COARSE_I |
18726 RADIO_2056_TX1);
18727 pi->calibration_cache.txcal_radio_regs_2G[7] =
18728 read_radio_reg(pi,
18729 RADIO_2056_TX_LOFT_COARSE_Q |
18730 RADIO_2056_TX1);
18731 } else {
18732 pi->calibration_cache.txcal_radio_regs_2G[0] =
18733 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18734 pi->calibration_cache.txcal_radio_regs_2G[1] =
18735 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18736 pi->calibration_cache.txcal_radio_regs_2G[2] =
18737 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18738 pi->calibration_cache.txcal_radio_regs_2G[3] =
18739 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18742 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18743 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18744 } else {
18746 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18747 &pi->calibration_cache.
18748 rxcal_coeffs_5G);
18750 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18751 txcal_radio_regs =
18752 pi->calibration_cache.txcal_radio_regs_5G;
18753 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18755 pi->calibration_cache.txcal_radio_regs_5G[0] =
18756 read_radio_reg(pi,
18757 RADIO_2056_TX_LOFT_FINE_I |
18758 RADIO_2056_TX0);
18759 pi->calibration_cache.txcal_radio_regs_5G[1] =
18760 read_radio_reg(pi,
18761 RADIO_2056_TX_LOFT_FINE_Q |
18762 RADIO_2056_TX0);
18763 pi->calibration_cache.txcal_radio_regs_5G[2] =
18764 read_radio_reg(pi,
18765 RADIO_2056_TX_LOFT_FINE_I |
18766 RADIO_2056_TX1);
18767 pi->calibration_cache.txcal_radio_regs_5G[3] =
18768 read_radio_reg(pi,
18769 RADIO_2056_TX_LOFT_FINE_Q |
18770 RADIO_2056_TX1);
18772 pi->calibration_cache.txcal_radio_regs_5G[4] =
18773 read_radio_reg(pi,
18774 RADIO_2056_TX_LOFT_COARSE_I |
18775 RADIO_2056_TX0);
18776 pi->calibration_cache.txcal_radio_regs_5G[5] =
18777 read_radio_reg(pi,
18778 RADIO_2056_TX_LOFT_COARSE_Q |
18779 RADIO_2056_TX0);
18780 pi->calibration_cache.txcal_radio_regs_5G[6] =
18781 read_radio_reg(pi,
18782 RADIO_2056_TX_LOFT_COARSE_I |
18783 RADIO_2056_TX1);
18784 pi->calibration_cache.txcal_radio_regs_5G[7] =
18785 read_radio_reg(pi,
18786 RADIO_2056_TX_LOFT_COARSE_Q |
18787 RADIO_2056_TX1);
18788 } else {
18789 pi->calibration_cache.txcal_radio_regs_5G[0] =
18790 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18791 pi->calibration_cache.txcal_radio_regs_5G[1] =
18792 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18793 pi->calibration_cache.txcal_radio_regs_5G[2] =
18794 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18795 pi->calibration_cache.txcal_radio_regs_5G[3] =
18796 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18799 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18800 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18802 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18803 for (coreNum = 0; coreNum <= 1; coreNum++) {
18805 txcal_radio_regs[2 * coreNum] =
18806 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18807 LOFT_FINE_I);
18808 txcal_radio_regs[2 * coreNum + 1] =
18809 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18810 LOFT_FINE_Q);
18812 txcal_radio_regs[2 * coreNum + 4] =
18813 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18814 LOFT_COARSE_I);
18815 txcal_radio_regs[2 * coreNum + 5] =
18816 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18817 LOFT_COARSE_Q);
18821 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18823 if (pi->phyhang_avoid)
18824 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18827 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18829 struct nphy_iq_comp tx_comp;
18831 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18833 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18834 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18835 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18836 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18839 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18841 u16 *loft_comp;
18842 u16 txcal_coeffs_bphy[4];
18843 u16 *tbl_ptr;
18844 int coreNum;
18845 u16 *txcal_radio_regs = NULL;
18847 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18848 if (pi->nphy_iqcal_chanspec_2G == 0)
18849 return;
18851 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18852 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18853 } else {
18854 if (pi->nphy_iqcal_chanspec_5G == 0)
18855 return;
18857 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18858 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18861 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18863 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18864 txcal_coeffs_bphy[0] = tbl_ptr[0];
18865 txcal_coeffs_bphy[1] = tbl_ptr[1];
18866 txcal_coeffs_bphy[2] = tbl_ptr[2];
18867 txcal_coeffs_bphy[3] = tbl_ptr[3];
18868 } else {
18869 txcal_coeffs_bphy[0] = 0;
18870 txcal_coeffs_bphy[1] = 0;
18871 txcal_coeffs_bphy[2] = 0;
18872 txcal_coeffs_bphy[3] = 0;
18875 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18876 txcal_coeffs_bphy);
18878 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18880 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18882 if (NREV_LT(pi->pubpi.phy_rev, 2))
18883 wlc_phy_tx_iq_war_nphy(pi);
18885 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18886 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18887 txcal_radio_regs =
18888 pi->calibration_cache.txcal_radio_regs_2G;
18889 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18891 write_radio_reg(pi,
18892 RADIO_2056_TX_LOFT_FINE_I |
18893 RADIO_2056_TX0,
18894 pi->calibration_cache.
18895 txcal_radio_regs_2G[0]);
18896 write_radio_reg(pi,
18897 RADIO_2056_TX_LOFT_FINE_Q |
18898 RADIO_2056_TX0,
18899 pi->calibration_cache.
18900 txcal_radio_regs_2G[1]);
18901 write_radio_reg(pi,
18902 RADIO_2056_TX_LOFT_FINE_I |
18903 RADIO_2056_TX1,
18904 pi->calibration_cache.
18905 txcal_radio_regs_2G[2]);
18906 write_radio_reg(pi,
18907 RADIO_2056_TX_LOFT_FINE_Q |
18908 RADIO_2056_TX1,
18909 pi->calibration_cache.
18910 txcal_radio_regs_2G[3]);
18912 write_radio_reg(pi,
18913 RADIO_2056_TX_LOFT_COARSE_I |
18914 RADIO_2056_TX0,
18915 pi->calibration_cache.
18916 txcal_radio_regs_2G[4]);
18917 write_radio_reg(pi,
18918 RADIO_2056_TX_LOFT_COARSE_Q |
18919 RADIO_2056_TX0,
18920 pi->calibration_cache.
18921 txcal_radio_regs_2G[5]);
18922 write_radio_reg(pi,
18923 RADIO_2056_TX_LOFT_COARSE_I |
18924 RADIO_2056_TX1,
18925 pi->calibration_cache.
18926 txcal_radio_regs_2G[6]);
18927 write_radio_reg(pi,
18928 RADIO_2056_TX_LOFT_COARSE_Q |
18929 RADIO_2056_TX1,
18930 pi->calibration_cache.
18931 txcal_radio_regs_2G[7]);
18932 } else {
18933 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18934 pi->calibration_cache.
18935 txcal_radio_regs_2G[0]);
18936 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18937 pi->calibration_cache.
18938 txcal_radio_regs_2G[1]);
18939 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18940 pi->calibration_cache.
18941 txcal_radio_regs_2G[2]);
18942 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18943 pi->calibration_cache.
18944 txcal_radio_regs_2G[3]);
18947 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18948 &pi->calibration_cache.
18949 rxcal_coeffs_2G);
18950 } else {
18951 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18952 txcal_radio_regs =
18953 pi->calibration_cache.txcal_radio_regs_5G;
18954 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18956 write_radio_reg(pi,
18957 RADIO_2056_TX_LOFT_FINE_I |
18958 RADIO_2056_TX0,
18959 pi->calibration_cache.
18960 txcal_radio_regs_5G[0]);
18961 write_radio_reg(pi,
18962 RADIO_2056_TX_LOFT_FINE_Q |
18963 RADIO_2056_TX0,
18964 pi->calibration_cache.
18965 txcal_radio_regs_5G[1]);
18966 write_radio_reg(pi,
18967 RADIO_2056_TX_LOFT_FINE_I |
18968 RADIO_2056_TX1,
18969 pi->calibration_cache.
18970 txcal_radio_regs_5G[2]);
18971 write_radio_reg(pi,
18972 RADIO_2056_TX_LOFT_FINE_Q |
18973 RADIO_2056_TX1,
18974 pi->calibration_cache.
18975 txcal_radio_regs_5G[3]);
18977 write_radio_reg(pi,
18978 RADIO_2056_TX_LOFT_COARSE_I |
18979 RADIO_2056_TX0,
18980 pi->calibration_cache.
18981 txcal_radio_regs_5G[4]);
18982 write_radio_reg(pi,
18983 RADIO_2056_TX_LOFT_COARSE_Q |
18984 RADIO_2056_TX0,
18985 pi->calibration_cache.
18986 txcal_radio_regs_5G[5]);
18987 write_radio_reg(pi,
18988 RADIO_2056_TX_LOFT_COARSE_I |
18989 RADIO_2056_TX1,
18990 pi->calibration_cache.
18991 txcal_radio_regs_5G[6]);
18992 write_radio_reg(pi,
18993 RADIO_2056_TX_LOFT_COARSE_Q |
18994 RADIO_2056_TX1,
18995 pi->calibration_cache.
18996 txcal_radio_regs_5G[7]);
18997 } else {
18998 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18999 pi->calibration_cache.
19000 txcal_radio_regs_5G[0]);
19001 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19002 pi->calibration_cache.
19003 txcal_radio_regs_5G[1]);
19004 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19005 pi->calibration_cache.
19006 txcal_radio_regs_5G[2]);
19007 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19008 pi->calibration_cache.
19009 txcal_radio_regs_5G[3]);
19012 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19013 &pi->calibration_cache.
19014 rxcal_coeffs_5G);
19017 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19018 for (coreNum = 0; coreNum <= 1; coreNum++) {
19020 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19021 LOFT_FINE_I,
19022 txcal_radio_regs[2 * coreNum]);
19023 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19024 LOFT_FINE_Q,
19025 txcal_radio_regs[2 * coreNum + 1]);
19027 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19028 LOFT_COARSE_I,
19029 txcal_radio_regs[2 * coreNum + 4]);
19030 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19031 LOFT_COARSE_Q,
19032 txcal_radio_regs[2 * coreNum + 5]);
19037 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
19039 u32 idx;
19040 u16 iqloCalbuf[7];
19041 u32 iqcomp, locomp, curr_locomp;
19042 s8 locomp_i, locomp_q;
19043 s8 curr_locomp_i, curr_locomp_q;
19044 u32 tbl_id, tbl_len, tbl_offset;
19045 u32 regval[128];
19047 if (pi->phyhang_avoid)
19048 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19050 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
19052 tbl_len = 128;
19053 tbl_offset = 320;
19054 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19055 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19056 iqcomp =
19057 (tbl_id ==
19058 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
19059 (iqloCalbuf[1] & 0x3ff)
19060 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
19061 (iqloCalbuf[3] & 0x3ff);
19063 for (idx = 0; idx < tbl_len; idx++)
19064 regval[idx] = iqcomp;
19065 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19066 regval);
19069 tbl_offset = 448;
19070 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19071 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19073 locomp =
19074 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
19075 locomp_i = (s8) ((locomp >> 8) & 0xff);
19076 locomp_q = (s8) ((locomp) & 0xff);
19077 for (idx = 0; idx < tbl_len; idx++) {
19078 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19079 curr_locomp_i = locomp_i;
19080 curr_locomp_q = locomp_q;
19081 } else {
19082 curr_locomp_i = (s8) ((locomp_i *
19083 nphy_tpc_loscale[idx] +
19084 128) >> 8);
19085 curr_locomp_q =
19086 (s8) ((locomp_q *
19087 nphy_tpc_loscale[idx] +
19088 128) >> 8);
19090 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
19091 curr_locomp |= (u32) (curr_locomp_q & 0xff);
19092 regval[idx] = curr_locomp;
19094 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19095 regval);
19098 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19100 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
19101 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
19104 if (pi->phyhang_avoid)
19105 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19108 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
19110 u8 tx_lpf_bw = 0;
19112 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19113 if (CHSPEC_IS40(pi->radio_chanspec))
19114 tx_lpf_bw = 3;
19115 else
19116 tx_lpf_bw = 1;
19118 if (PHY_IPA(pi)) {
19119 if (CHSPEC_IS40(pi->radio_chanspec))
19120 tx_lpf_bw = 5;
19121 else
19122 tx_lpf_bw = 4;
19125 write_phy_reg(pi, 0xe8,
19126 (tx_lpf_bw << 0) |
19127 (tx_lpf_bw << 3) |
19128 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19130 if (PHY_IPA(pi)) {
19132 if (CHSPEC_IS40(pi->radio_chanspec))
19133 tx_lpf_bw = 4;
19134 else
19135 tx_lpf_bw = 1;
19137 write_phy_reg(pi, 0xe9,
19138 (tx_lpf_bw << 0) |
19139 (tx_lpf_bw << 3) |
19140 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19145 static void
19146 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
19148 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19149 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19150 CHSPEC_IS40(pi->radio_chanspec)) {
19151 if (!pi->nphy_anarxlpf_adjusted) {
19152 write_radio_reg(pi,
19153 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19154 RADIO_2056_RX0),
19155 ((pi->nphy_rccal_value +
19156 reduction_factr) | 0x80));
19158 pi->nphy_anarxlpf_adjusted = true;
19160 } else {
19161 if (pi->nphy_anarxlpf_adjusted) {
19162 write_radio_reg(pi,
19163 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19164 RADIO_2056_RX0),
19165 (pi->nphy_rccal_value | 0x80));
19167 pi->nphy_anarxlpf_adjusted = false;
19173 static void
19174 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19175 int *tone_id_buf, u32 *noise_var_buf)
19177 int i;
19178 u32 offset;
19179 int tone_id;
19180 int tbllen =
19181 CHSPEC_IS40(pi->radio_chanspec) ?
19182 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
19184 if (pi->nphy_noisevars_adjusted) {
19185 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19186 tone_id = pi->nphy_saved_noisevars.tone_id[i];
19187 offset = (tone_id >= 0) ?
19188 ((tone_id *
19189 2) + 1) : (tbllen + (tone_id * 2) + 1);
19190 wlc_phy_table_write_nphy(
19191 pi, NPHY_TBL_ID_NOISEVAR, 1,
19192 offset, 32,
19193 &pi->nphy_saved_noisevars.min_noise_vars[i]);
19196 pi->nphy_saved_noisevars.bufcount = 0;
19197 pi->nphy_noisevars_adjusted = false;
19200 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19201 pi->nphy_saved_noisevars.bufcount = 0;
19203 for (i = 0; i < ntones; i++) {
19204 tone_id = tone_id_buf[i];
19205 offset = (tone_id >= 0) ?
19206 ((tone_id * 2) + 1) :
19207 (tbllen + (tone_id * 2) + 1);
19208 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19209 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19210 offset, 32,
19211 &pi->nphy_saved_noisevars.
19212 min_noise_vars[i]);
19213 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19214 offset, 32, &noise_var_buf[i]);
19215 pi->nphy_saved_noisevars.bufcount++;
19218 pi->nphy_noisevars_adjusted = true;
19222 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19224 u16 regval;
19226 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19227 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19228 CHSPEC_IS40(pi->radio_chanspec)) {
19229 if (!pi->nphy_crsminpwr_adjusted) {
19230 regval = read_phy_reg(pi, 0x27d);
19231 pi->nphy_crsminpwr[0] = regval & 0xff;
19232 regval &= 0xff00;
19233 regval |= (u16) minpwr;
19234 write_phy_reg(pi, 0x27d, regval);
19236 regval = read_phy_reg(pi, 0x280);
19237 pi->nphy_crsminpwr[1] = regval & 0xff;
19238 regval &= 0xff00;
19239 regval |= (u16) minpwr;
19240 write_phy_reg(pi, 0x280, regval);
19242 regval = read_phy_reg(pi, 0x283);
19243 pi->nphy_crsminpwr[2] = regval & 0xff;
19244 regval &= 0xff00;
19245 regval |= (u16) minpwr;
19246 write_phy_reg(pi, 0x283, regval);
19248 pi->nphy_crsminpwr_adjusted = true;
19250 } else {
19251 if (pi->nphy_crsminpwr_adjusted) {
19252 regval = read_phy_reg(pi, 0x27d);
19253 regval &= 0xff00;
19254 regval |= pi->nphy_crsminpwr[0];
19255 write_phy_reg(pi, 0x27d, regval);
19257 regval = read_phy_reg(pi, 0x280);
19258 regval &= 0xff00;
19259 regval |= pi->nphy_crsminpwr[1];
19260 write_phy_reg(pi, 0x280, regval);
19262 regval = read_phy_reg(pi, 0x283);
19263 regval &= 0xff00;
19264 regval |= pi->nphy_crsminpwr[2];
19265 write_phy_reg(pi, 0x283, regval);
19267 pi->nphy_crsminpwr_adjusted = false;
19273 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19275 u16 cur_channel = 0;
19276 int nphy_adj_tone_id_buf[] = { 57, 58 };
19277 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19278 bool isAdjustNoiseVar = false;
19279 uint numTonesAdjust = 0;
19280 u32 tempval = 0;
19282 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19283 if (pi->phyhang_avoid)
19284 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19286 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19288 if (pi->nphy_gband_spurwar_en) {
19290 wlc_phy_adjust_rx_analpfbw_nphy(
19292 NPHY_ANARXLPFBW_REDUCTIONFACT);
19294 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19295 if ((cur_channel == 11)
19296 && CHSPEC_IS40(pi->radio_chanspec))
19297 wlc_phy_adjust_min_noisevar_nphy(
19298 pi, 2,
19299 nphy_adj_tone_id_buf,
19300 nphy_adj_noise_var_buf);
19301 else
19302 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19303 NULL,
19304 NULL);
19307 wlc_phy_adjust_crsminpwr_nphy(pi,
19308 NPHY_ADJUSTED_MINCRSPOWER);
19311 if ((pi->nphy_gband_spurwar2_en)
19312 && CHSPEC_IS2G(pi->radio_chanspec)) {
19314 if (CHSPEC_IS40(pi->radio_chanspec)) {
19315 switch (cur_channel) {
19316 case 3:
19317 nphy_adj_tone_id_buf[0] = 57;
19318 nphy_adj_tone_id_buf[1] = 58;
19319 nphy_adj_noise_var_buf[0] = 0x22f;
19320 nphy_adj_noise_var_buf[1] = 0x25f;
19321 isAdjustNoiseVar = true;
19322 break;
19323 case 4:
19324 nphy_adj_tone_id_buf[0] = 41;
19325 nphy_adj_tone_id_buf[1] = 42;
19326 nphy_adj_noise_var_buf[0] = 0x22f;
19327 nphy_adj_noise_var_buf[1] = 0x25f;
19328 isAdjustNoiseVar = true;
19329 break;
19330 case 5:
19331 nphy_adj_tone_id_buf[0] = 25;
19332 nphy_adj_tone_id_buf[1] = 26;
19333 nphy_adj_noise_var_buf[0] = 0x24f;
19334 nphy_adj_noise_var_buf[1] = 0x25f;
19335 isAdjustNoiseVar = true;
19336 break;
19337 case 6:
19338 nphy_adj_tone_id_buf[0] = 9;
19339 nphy_adj_tone_id_buf[1] = 10;
19340 nphy_adj_noise_var_buf[0] = 0x22f;
19341 nphy_adj_noise_var_buf[1] = 0x24f;
19342 isAdjustNoiseVar = true;
19343 break;
19344 case 7:
19345 nphy_adj_tone_id_buf[0] = 121;
19346 nphy_adj_tone_id_buf[1] = 122;
19347 nphy_adj_noise_var_buf[0] = 0x18f;
19348 nphy_adj_noise_var_buf[1] = 0x24f;
19349 isAdjustNoiseVar = true;
19350 break;
19351 case 8:
19352 nphy_adj_tone_id_buf[0] = 105;
19353 nphy_adj_tone_id_buf[1] = 106;
19354 nphy_adj_noise_var_buf[0] = 0x22f;
19355 nphy_adj_noise_var_buf[1] = 0x25f;
19356 isAdjustNoiseVar = true;
19357 break;
19358 case 9:
19359 nphy_adj_tone_id_buf[0] = 89;
19360 nphy_adj_tone_id_buf[1] = 90;
19361 nphy_adj_noise_var_buf[0] = 0x22f;
19362 nphy_adj_noise_var_buf[1] = 0x24f;
19363 isAdjustNoiseVar = true;
19364 break;
19365 case 10:
19366 nphy_adj_tone_id_buf[0] = 73;
19367 nphy_adj_tone_id_buf[1] = 74;
19368 nphy_adj_noise_var_buf[0] = 0x22f;
19369 nphy_adj_noise_var_buf[1] = 0x24f;
19370 isAdjustNoiseVar = true;
19371 break;
19372 default:
19373 isAdjustNoiseVar = false;
19374 break;
19378 if (isAdjustNoiseVar) {
19379 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
19380 sizeof(nphy_adj_tone_id_buf[0]);
19382 wlc_phy_adjust_min_noisevar_nphy(
19384 numTonesAdjust,
19385 nphy_adj_tone_id_buf,
19386 nphy_adj_noise_var_buf);
19388 tempval = 0;
19390 } else {
19391 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19392 NULL);
19396 if ((pi->nphy_aband_spurwar_en) &&
19397 (CHSPEC_IS5G(pi->radio_chanspec))) {
19398 switch (cur_channel) {
19399 case 54:
19400 nphy_adj_tone_id_buf[0] = 32;
19401 nphy_adj_noise_var_buf[0] = 0x25f;
19402 break;
19403 case 38:
19404 case 102:
19405 case 118:
19406 nphy_adj_tone_id_buf[0] = 0;
19407 nphy_adj_noise_var_buf[0] = 0x0;
19408 break;
19409 case 134:
19410 nphy_adj_tone_id_buf[0] = 32;
19411 nphy_adj_noise_var_buf[0] = 0x21f;
19412 break;
19413 case 151:
19414 nphy_adj_tone_id_buf[0] = 16;
19415 nphy_adj_noise_var_buf[0] = 0x23f;
19416 break;
19417 case 153:
19418 case 161:
19419 nphy_adj_tone_id_buf[0] = 48;
19420 nphy_adj_noise_var_buf[0] = 0x23f;
19421 break;
19422 default:
19423 nphy_adj_tone_id_buf[0] = 0;
19424 nphy_adj_noise_var_buf[0] = 0x0;
19425 break;
19428 if (nphy_adj_tone_id_buf[0]
19429 && nphy_adj_noise_var_buf[0])
19430 wlc_phy_adjust_min_noisevar_nphy(
19431 pi, 1,
19432 nphy_adj_tone_id_buf,
19433 nphy_adj_noise_var_buf);
19434 else
19435 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19436 NULL);
19439 if (pi->phyhang_avoid)
19440 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19444 void wlc_phy_init_nphy(struct brcms_phy *pi)
19446 u16 val;
19447 u16 clip1_ths[2];
19448 struct nphy_txgains target_gain;
19449 u8 tx_pwr_ctrl_state;
19450 bool do_nphy_cal = false;
19451 uint core;
19452 u32 d11_clk_ctl_st;
19453 bool do_rssi_cal = false;
19455 core = 0;
19457 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19458 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19460 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19461 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
19462 (pi->sh->chippkg == BCM4718_PKG_ID))) {
19463 if ((pi->sh->boardflags & BFL_EXTLNA) &&
19464 (CHSPEC_IS2G(pi->radio_chanspec)))
19465 ai_cc_reg(pi->sh->sih,
19466 offsetof(struct chipcregs, chipcontrol),
19467 0x40, 0x40);
19470 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19471 CHSPEC_IS40(pi->radio_chanspec)) {
19473 d11_clk_ctl_st = bcma_read32(pi->d11core,
19474 D11REGOFFS(clk_ctl_st));
19475 bcma_mask32(pi->d11core, D11REGOFFS(clk_ctl_st),
19476 ~(CCS_FORCEHT | CCS_HTAREQ));
19478 bcma_write32(pi->d11core, D11REGOFFS(clk_ctl_st),
19479 d11_clk_ctl_st);
19482 pi->use_int_tx_iqlo_cal_nphy =
19483 (PHY_IPA(pi) ||
19484 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19485 (NREV_GE(pi->pubpi.phy_rev, 5)
19486 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19488 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19490 pi->nphy_deaf_count = 0;
19492 wlc_phy_tbl_init_nphy(pi);
19494 pi->nphy_crsminpwr_adjusted = false;
19495 pi->nphy_noisevars_adjusted = false;
19497 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19498 write_phy_reg(pi, 0xe7, 0);
19499 write_phy_reg(pi, 0xec, 0);
19500 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19501 write_phy_reg(pi, 0x342, 0);
19502 write_phy_reg(pi, 0x343, 0);
19503 write_phy_reg(pi, 0x346, 0);
19504 write_phy_reg(pi, 0x347, 0);
19506 write_phy_reg(pi, 0xe5, 0);
19507 write_phy_reg(pi, 0xe6, 0);
19508 } else {
19509 write_phy_reg(pi, 0xec, 0);
19512 write_phy_reg(pi, 0x91, 0);
19513 write_phy_reg(pi, 0x92, 0);
19514 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19515 write_phy_reg(pi, 0x93, 0);
19516 write_phy_reg(pi, 0x94, 0);
19519 and_phy_reg(pi, 0xa1, ~3);
19521 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19522 write_phy_reg(pi, 0x8f, 0);
19523 write_phy_reg(pi, 0xa5, 0);
19524 } else {
19525 write_phy_reg(pi, 0xa5, 0);
19528 if (NREV_IS(pi->pubpi.phy_rev, 2))
19529 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19530 else if (NREV_LT(pi->pubpi.phy_rev, 2))
19531 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19533 write_phy_reg(pi, 0x203, 32);
19534 write_phy_reg(pi, 0x201, 32);
19536 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19537 write_phy_reg(pi, 0x20d, 160);
19538 else
19539 write_phy_reg(pi, 0x20d, 184);
19541 write_phy_reg(pi, 0x13a, 200);
19543 write_phy_reg(pi, 0x70, 80);
19545 write_phy_reg(pi, 0x1ff, 48);
19547 if (NREV_LT(pi->pubpi.phy_rev, 8))
19548 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19550 wlc_phy_stf_chain_upd_nphy(pi);
19552 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19553 write_phy_reg(pi, 0x180, 0xaa8);
19554 write_phy_reg(pi, 0x181, 0x9a4);
19557 if (PHY_IPA(pi)) {
19558 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19560 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19561 0x29b, (0x1 << 0), (1) << 0);
19563 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19564 0x29c, (0x1ff << 7),
19565 (pi->nphy_papd_epsilon_offset[core]) << 7);
19569 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19570 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19571 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19574 wlc_phy_workarounds_nphy(pi);
19576 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19578 val = read_phy_reg(pi, 0x01);
19579 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19580 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19581 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19583 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19585 wlc_phy_pa_override_nphy(pi, OFF);
19586 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19587 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19588 wlc_phy_pa_override_nphy(pi, ON);
19590 wlc_phy_classifier_nphy(pi, 0, 0);
19591 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19593 if (CHSPEC_IS2G(pi->radio_chanspec))
19594 wlc_phy_bphy_init_nphy(pi);
19596 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19597 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19599 wlc_phy_txpwr_fixpower_nphy(pi);
19601 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19603 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19605 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19606 u32 *tx_pwrctrl_tbl = NULL;
19607 u16 idx;
19608 s16 pga_gn = 0;
19609 s16 pad_gn = 0;
19610 s32 rfpwr_offset;
19612 if (PHY_IPA(pi)) {
19613 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19614 } else {
19615 if (CHSPEC_IS5G(pi->radio_chanspec)) {
19616 if (NREV_IS(pi->pubpi.phy_rev, 3))
19617 tx_pwrctrl_tbl =
19618 nphy_tpc_5GHz_txgain_rev3;
19619 else if (NREV_IS(pi->pubpi.phy_rev, 4))
19620 tx_pwrctrl_tbl =
19621 (pi->srom_fem5g.extpagain ==
19622 3) ?
19623 nphy_tpc_5GHz_txgain_HiPwrEPA :
19624 nphy_tpc_5GHz_txgain_rev4;
19625 else
19626 tx_pwrctrl_tbl =
19627 nphy_tpc_5GHz_txgain_rev5;
19628 } else {
19629 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19630 if (pi->pubpi.radiorev == 5)
19631 tx_pwrctrl_tbl =
19632 nphy_tpc_txgain_epa_2057rev5;
19633 else if (pi->pubpi.radiorev == 3)
19634 tx_pwrctrl_tbl =
19635 nphy_tpc_txgain_epa_2057rev3;
19636 } else {
19637 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19638 (pi->srom_fem2g.extpagain == 3))
19639 tx_pwrctrl_tbl =
19640 nphy_tpc_txgain_HiPwrEPA;
19641 else
19642 tx_pwrctrl_tbl =
19643 nphy_tpc_txgain_rev3;
19648 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19649 192, 32, tx_pwrctrl_tbl);
19650 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19651 192, 32, tx_pwrctrl_tbl);
19653 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19655 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19657 for (idx = 0; idx < 128; idx++) {
19658 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19659 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19660 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19661 pad_gn);
19662 wlc_phy_table_write_nphy(
19664 NPHY_TBL_ID_CORE1TXPWRCTL,
19665 1, 576 + idx, 32,
19666 &rfpwr_offset);
19667 wlc_phy_table_write_nphy(
19669 NPHY_TBL_ID_CORE2TXPWRCTL,
19670 1, 576 + idx, 32,
19671 &rfpwr_offset);
19673 } else {
19675 for (idx = 0; idx < 128; idx++) {
19676 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19677 if (CHSPEC_IS2G(pi->radio_chanspec))
19678 rfpwr_offset = (s16)
19679 nphy_papd_pga_gain_delta_ipa_2g
19680 [pga_gn];
19681 else
19682 rfpwr_offset = (s16)
19683 nphy_papd_pga_gain_delta_ipa_5g
19684 [pga_gn];
19686 wlc_phy_table_write_nphy(
19688 NPHY_TBL_ID_CORE1TXPWRCTL,
19689 1, 576 + idx, 32,
19690 &rfpwr_offset);
19691 wlc_phy_table_write_nphy(
19693 NPHY_TBL_ID_CORE2TXPWRCTL,
19694 1, 576 + idx, 32,
19695 &rfpwr_offset);
19699 } else {
19701 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19702 192, 32, nphy_tpc_txgain);
19703 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19704 192, 32, nphy_tpc_txgain);
19707 if (pi->sh->phyrxchain != 0x3)
19708 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19709 pi->sh->phyrxchain);
19711 if (PHY_PERICAL_MPHASE_PENDING(pi))
19712 wlc_phy_cal_perical_mphase_restart(pi);
19714 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19715 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19716 (pi->nphy_rssical_chanspec_2G == 0) :
19717 (pi->nphy_rssical_chanspec_5G == 0);
19719 if (do_rssi_cal)
19720 wlc_phy_rssi_cal_nphy(pi);
19721 else
19722 wlc_phy_restore_rssical_nphy(pi);
19723 } else {
19724 wlc_phy_rssi_cal_nphy(pi);
19727 if (!SCAN_RM_IN_PROGRESS(pi))
19728 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19729 (pi->nphy_iqcal_chanspec_2G == 0) :
19730 (pi->nphy_iqcal_chanspec_5G == 0);
19732 if (!pi->do_initcal)
19733 do_nphy_cal = false;
19735 if (do_nphy_cal) {
19737 target_gain = wlc_phy_get_tx_gain_nphy(pi);
19739 if (pi->antsel_type == ANTSEL_2x3)
19740 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19741 true);
19743 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19744 wlc_phy_rssi_cal_nphy(pi);
19746 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19747 pi->nphy_cal_orig_pwr_idx[0] =
19748 pi->nphy_txpwrindex[PHY_CORE_0]
19750 index_internal;
19751 pi->nphy_cal_orig_pwr_idx[1] =
19752 pi->nphy_txpwrindex[PHY_CORE_1]
19754 index_internal;
19756 wlc_phy_precal_txgain_nphy(pi);
19757 target_gain =
19758 wlc_phy_get_tx_gain_nphy(pi);
19761 if (wlc_phy_cal_txiqlo_nphy
19762 (pi, target_gain, true,
19763 false) == 0) {
19764 if (wlc_phy_cal_rxiq_nphy
19765 (pi, target_gain, 2,
19766 false) == 0)
19767 wlc_phy_savecal_nphy(pi);
19770 } else if (pi->mphase_cal_phase_id ==
19771 MPHASE_CAL_STATE_IDLE) {
19772 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19773 PHY_PERICAL_PHYINIT);
19775 } else {
19776 wlc_phy_restorecal_nphy(pi);
19779 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19781 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19783 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19785 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19787 write_phy_reg(pi, 0x70, 50);
19789 wlc_phy_txlpfbw_nphy(pi);
19791 wlc_phy_spurwar_nphy(pi);
19795 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19797 u16 val;
19799 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19801 val = read_phy_reg(pi, 0x01);
19802 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19803 udelay(1);
19804 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19806 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19808 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19811 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19813 u16 rfctrlintc_override_val;
19815 if (!en) {
19817 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19818 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19820 if (NREV_GE(pi->pubpi.phy_rev, 7))
19821 rfctrlintc_override_val = 0x1480;
19822 else if (NREV_GE(pi->pubpi.phy_rev, 3))
19823 rfctrlintc_override_val =
19824 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19825 else
19826 rfctrlintc_override_val =
19827 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19829 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19830 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19831 } else {
19832 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19833 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19838 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19841 u16 txrx_chain =
19842 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19843 bool CoreActv_override = false;
19845 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19846 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19847 CoreActv_override = true;
19849 if (NREV_LE(pi->pubpi.phy_rev, 2))
19850 and_phy_reg(pi, 0xa0, ~0x20);
19851 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19852 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19853 CoreActv_override = true;
19855 if (NREV_LE(pi->pubpi.phy_rev, 2))
19856 or_phy_reg(pi, 0xa0, 0x20);
19859 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19861 if (CoreActv_override) {
19862 pi->nphy_perical = PHY_PERICAL_DISABLE;
19863 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19864 } else {
19865 pi->nphy_perical = PHY_PERICAL_MPHASE;
19866 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19870 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19872 u16 regval;
19873 u16 tbl_buf[16];
19874 uint i;
19875 struct brcms_phy *pi = (struct brcms_phy *) pih;
19876 u16 tbl_opcode;
19877 bool suspend;
19879 pi->sh->phyrxchain = rxcore_bitmask;
19881 if (!pi->sh->clk)
19882 return;
19884 suspend = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
19885 MCTL_EN_MAC));
19886 if (!suspend)
19887 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19889 if (pi->phyhang_avoid)
19890 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19892 regval = read_phy_reg(pi, 0xa2);
19893 regval &= ~(0xf << 4);
19894 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19895 write_phy_reg(pi, 0xa2, regval);
19897 if ((rxcore_bitmask & 0x3) != 0x3) {
19899 write_phy_reg(pi, 0x20e, 1);
19901 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19902 if (pi->rx2tx_biasentry == -1) {
19903 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19904 ARRAY_SIZE(tbl_buf), 80,
19905 16, tbl_buf);
19907 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19908 if (tbl_buf[i] ==
19909 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19910 pi->rx2tx_biasentry = (u8) i;
19911 tbl_opcode =
19912 NPHY_REV3_RFSEQ_CMD_NOP;
19913 wlc_phy_table_write_nphy(
19915 NPHY_TBL_ID_RFSEQ,
19916 1, i,
19918 &tbl_opcode);
19919 break;
19920 } else if (tbl_buf[i] ==
19921 NPHY_REV3_RFSEQ_CMD_END)
19922 break;
19926 } else {
19928 write_phy_reg(pi, 0x20e, 30);
19930 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19931 if (pi->rx2tx_biasentry != -1) {
19932 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19933 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19934 1, pi->rx2tx_biasentry,
19935 16, &tbl_opcode);
19936 pi->rx2tx_biasentry = -1;
19941 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19943 if (pi->phyhang_avoid)
19944 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19946 if (!suspend)
19947 wlapi_enable_mac(pi->sh->physhim);
19950 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19952 u16 regval, rxen_bits;
19953 struct brcms_phy *pi = (struct brcms_phy *) pih;
19955 regval = read_phy_reg(pi, 0xa2);
19956 rxen_bits = (regval >> 4) & 0xf;
19958 return (u8) rxen_bits;
19961 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19963 return PHY_IPA(pi);
19966 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19970 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19973 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
19974 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
19976 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
19977 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
19981 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
19983 struct radio_20xx_regs *regs_2057_ptr = NULL;
19985 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
19986 regs_2057_ptr = regs_2057_rev4;
19987 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
19988 || NREV_IS(pi->pubpi.phy_rev, 9)) {
19989 switch (pi->pubpi.radiorev) {
19990 case 5:
19992 if (pi->pubpi.radiover == 0x0)
19993 regs_2057_ptr = regs_2057_rev5;
19994 else if (pi->pubpi.radiover == 0x1)
19995 regs_2057_ptr = regs_2057_rev5v1;
19996 else
19997 break;
19999 case 7:
20001 regs_2057_ptr = regs_2057_rev7;
20002 break;
20004 case 8:
20006 regs_2057_ptr = regs_2057_rev8;
20007 break;
20009 default:
20010 break;
20014 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
20017 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
20019 u16 rcal_reg = 0;
20020 int i;
20022 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20024 if (pi->pubpi.radiorev == 5) {
20026 and_phy_reg(pi, 0x342, ~(0x1 << 1));
20028 udelay(10);
20030 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
20031 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20032 0x1);
20034 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
20036 udelay(10);
20038 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
20040 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20041 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
20042 if (rcal_reg & 0x1)
20043 break;
20045 udelay(100);
20048 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20049 "HW error: radio calib2"))
20050 return 0;
20052 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
20054 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
20056 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
20057 if (pi->pubpi.radiorev == 5) {
20059 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
20060 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20061 0x0);
20064 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
20066 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
20067 rcal_reg);
20068 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
20069 rcal_reg << 2);
20072 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20073 u16 savereg;
20075 savereg =
20076 read_radio_reg(
20078 RADIO_2056_SYN_PLL_MAST2 |
20079 RADIO_2056_SYN);
20080 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20081 savereg | 0x7);
20082 udelay(10);
20084 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20085 0x1);
20086 udelay(10);
20088 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20089 0x9);
20091 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20092 rcal_reg = read_radio_reg(
20094 RADIO_2056_SYN_RCAL_CODE_OUT |
20095 RADIO_2056_SYN);
20096 if (rcal_reg & 0x80)
20097 break;
20099 udelay(100);
20102 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20103 "HW error: radio calib3"))
20104 return 0;
20106 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20107 0x1);
20109 rcal_reg =
20110 read_radio_reg(pi,
20111 RADIO_2056_SYN_RCAL_CODE_OUT |
20112 RADIO_2056_SYN);
20114 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20115 0x0);
20117 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20118 savereg);
20120 return rcal_reg & 0x1f;
20122 return rcal_reg & 0x3e;
20125 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
20127 u16 rccal_valid;
20128 int i;
20129 bool chip43226_6362A0;
20131 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
20132 || (pi->pubpi.radiorev == 4)
20133 || (pi->pubpi.radiorev == 6));
20135 rccal_valid = 0;
20136 if (chip43226_6362A0) {
20137 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
20138 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
20139 } else {
20140 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
20142 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
20144 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20145 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20147 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20148 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20149 if (rccal_valid & 0x2)
20150 break;
20152 udelay(500);
20155 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20157 rccal_valid = 0;
20158 if (chip43226_6362A0) {
20159 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
20160 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20161 } else {
20162 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
20164 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
20166 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20167 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20169 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20170 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20171 if (rccal_valid & 0x2)
20172 break;
20174 udelay(500);
20177 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20179 rccal_valid = 0;
20180 if (chip43226_6362A0) {
20181 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
20183 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
20184 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20185 } else {
20186 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
20187 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20188 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
20190 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20192 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20193 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20194 if (rccal_valid & 0x2)
20195 break;
20197 udelay(500);
20200 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20201 return 0;
20203 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20205 return rccal_valid;
20208 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20211 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
20213 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
20214 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20215 mdelay(2);
20216 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
20217 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20219 if (pi->phy_init_por) {
20220 wlc_phy_radio205x_rcal(pi);
20221 wlc_phy_radio2057_rccal(pi);
20224 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20227 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20229 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20230 const struct radio_regs *regs_TX_2056_ptr = NULL;
20231 const struct radio_regs *regs_RX_2056_ptr = NULL;
20233 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20234 regs_SYN_2056_ptr = regs_SYN_2056;
20235 regs_TX_2056_ptr = regs_TX_2056;
20236 regs_RX_2056_ptr = regs_RX_2056;
20237 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20238 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20239 regs_TX_2056_ptr = regs_TX_2056_A1;
20240 regs_RX_2056_ptr = regs_RX_2056_A1;
20241 } else {
20242 switch (pi->pubpi.radiorev) {
20243 case 5:
20244 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20245 regs_TX_2056_ptr = regs_TX_2056_rev5;
20246 regs_RX_2056_ptr = regs_RX_2056_rev5;
20247 break;
20249 case 6:
20250 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20251 regs_TX_2056_ptr = regs_TX_2056_rev6;
20252 regs_RX_2056_ptr = regs_RX_2056_rev6;
20253 break;
20255 case 7:
20256 case 9:
20257 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20258 regs_TX_2056_ptr = regs_TX_2056_rev7;
20259 regs_RX_2056_ptr = regs_RX_2056_rev7;
20260 break;
20262 case 8:
20263 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20264 regs_TX_2056_ptr = regs_TX_2056_rev8;
20265 regs_RX_2056_ptr = regs_RX_2056_rev8;
20266 break;
20268 case 11:
20269 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20270 regs_TX_2056_ptr = regs_TX_2056_rev11;
20271 regs_RX_2056_ptr = regs_RX_2056_rev11;
20272 break;
20274 default:
20275 break;
20279 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20281 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20283 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20285 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20287 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20290 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20292 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20294 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20295 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20296 udelay(1000);
20297 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20299 if ((pi->sh->boardflags2 & BFL2_LEGACY)
20300 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20301 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20302 else
20303 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20305 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20307 if (pi->phy_init_por)
20308 wlc_phy_radio205x_rcal(pi);
20311 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20314 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20315 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20317 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20320 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20322 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20325 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20328 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20329 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20331 if (((pi->sh->sromrev >= 4)
20332 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20333 || ((pi->sh->sromrev < 4))) {
20334 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20335 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20338 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20339 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20341 and_radio_reg(pi, RADIO_2055_CAL_MISC,
20342 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20344 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20346 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20348 udelay(1000);
20350 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20352 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20353 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20355 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20356 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20357 "HW error: radio calibration1\n"))
20358 return;
20360 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20361 ~(RADIO_2055_CAL_LPO_ENABLE));
20363 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20365 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20366 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20368 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20369 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20371 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20372 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20373 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20374 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20375 if (pi->nphy_gain_boost) {
20376 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20377 ~(RADIO_2055_GAINBST_DISABLE));
20378 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20379 ~(RADIO_2055_GAINBST_DISABLE));
20380 } else {
20381 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20382 RADIO_2055_GAINBST_DISABLE);
20383 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20384 RADIO_2055_GAINBST_DISABLE);
20387 udelay(2);
20390 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20392 if (on) {
20393 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20394 if (!pi->radio_is_on) {
20395 wlc_phy_radio_preinit_205x(pi);
20396 wlc_phy_radio_init_2057(pi);
20397 wlc_phy_radio_postinit_2057(pi);
20400 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20401 pi->radio_chanspec);
20402 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20403 wlc_phy_radio_preinit_205x(pi);
20404 wlc_phy_radio_init_2056(pi);
20405 wlc_phy_radio_postinit_2056(pi);
20407 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20408 pi->radio_chanspec);
20409 } else {
20410 wlc_phy_radio_preinit_2055(pi);
20411 wlc_phy_radio_init_2055(pi);
20412 wlc_phy_radio_postinit_2055(pi);
20415 pi->radio_is_on = true;
20417 } else {
20419 if (NREV_GE(pi->pubpi.phy_rev, 3)
20420 && NREV_LT(pi->pubpi.phy_rev, 7)) {
20421 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20422 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20424 write_radio_reg(pi,
20425 RADIO_2056_TX_PADA_BOOST_TUNE |
20426 RADIO_2056_TX0, 0);
20427 write_radio_reg(pi,
20428 RADIO_2056_TX_PADG_BOOST_TUNE |
20429 RADIO_2056_TX0, 0);
20430 write_radio_reg(pi,
20431 RADIO_2056_TX_PGAA_BOOST_TUNE |
20432 RADIO_2056_TX0, 0);
20433 write_radio_reg(pi,
20434 RADIO_2056_TX_PGAG_BOOST_TUNE |
20435 RADIO_2056_TX0, 0);
20436 mod_radio_reg(pi,
20437 RADIO_2056_TX_MIXA_BOOST_TUNE |
20438 RADIO_2056_TX0, 0xf0, 0);
20439 write_radio_reg(pi,
20440 RADIO_2056_TX_MIXG_BOOST_TUNE |
20441 RADIO_2056_TX0, 0);
20443 write_radio_reg(pi,
20444 RADIO_2056_TX_PADA_BOOST_TUNE |
20445 RADIO_2056_TX1, 0);
20446 write_radio_reg(pi,
20447 RADIO_2056_TX_PADG_BOOST_TUNE |
20448 RADIO_2056_TX1, 0);
20449 write_radio_reg(pi,
20450 RADIO_2056_TX_PGAA_BOOST_TUNE |
20451 RADIO_2056_TX1, 0);
20452 write_radio_reg(pi,
20453 RADIO_2056_TX_PGAG_BOOST_TUNE |
20454 RADIO_2056_TX1, 0);
20455 mod_radio_reg(pi,
20456 RADIO_2056_TX_MIXA_BOOST_TUNE |
20457 RADIO_2056_TX1, 0xf0, 0);
20458 write_radio_reg(pi,
20459 RADIO_2056_TX_MIXG_BOOST_TUNE |
20460 RADIO_2056_TX1, 0);
20462 pi->radio_is_on = false;
20465 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20466 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20467 pi->radio_is_on = false;
20473 static bool
20474 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20475 const struct chan_info_nphy_radio2057 **t0,
20476 const struct chan_info_nphy_radio205x **t1,
20477 const struct chan_info_nphy_radio2057_rev5 **t2,
20478 const struct chan_info_nphy_2055 **t3)
20480 uint i;
20481 const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20482 const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20483 const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20484 u32 tbl_len = 0;
20486 int freq = 0;
20488 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20490 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20492 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20493 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20495 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20496 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20497 switch (pi->pubpi.radiorev) {
20499 case 5:
20501 if (pi->pubpi.radiover == 0x0) {
20503 chan_info_tbl_p_2 =
20504 chan_info_nphyrev8_2057_rev5;
20505 tbl_len = ARRAY_SIZE(
20506 chan_info_nphyrev8_2057_rev5);
20508 } else if (pi->pubpi.radiover == 0x1) {
20510 chan_info_tbl_p_2 =
20511 chan_info_nphyrev9_2057_rev5v1;
20512 tbl_len = ARRAY_SIZE(
20513 chan_info_nphyrev9_2057_rev5v1);
20516 break;
20518 case 7:
20519 chan_info_tbl_p_0 =
20520 chan_info_nphyrev8_2057_rev7;
20521 tbl_len = ARRAY_SIZE(
20522 chan_info_nphyrev8_2057_rev7);
20523 break;
20525 case 8:
20526 chan_info_tbl_p_0 =
20527 chan_info_nphyrev8_2057_rev8;
20528 tbl_len = ARRAY_SIZE(
20529 chan_info_nphyrev8_2057_rev8);
20530 break;
20532 default:
20533 break;
20535 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20537 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20538 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20539 } else {
20540 goto fail;
20543 for (i = 0; i < tbl_len; i++) {
20544 if (pi->pubpi.radiorev == 5) {
20546 if (chan_info_tbl_p_2[i].chan == channel)
20547 break;
20548 } else {
20550 if (chan_info_tbl_p_0[i].chan == channel)
20551 break;
20555 if (i >= tbl_len)
20556 goto fail;
20558 if (pi->pubpi.radiorev == 5) {
20559 *t2 = &chan_info_tbl_p_2[i];
20560 freq = chan_info_tbl_p_2[i].freq;
20561 } else {
20562 *t0 = &chan_info_tbl_p_0[i];
20563 freq = chan_info_tbl_p_0[i].freq;
20566 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20567 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20568 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20569 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20570 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20571 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20572 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20573 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
20574 || NREV_IS(pi->pubpi.phy_rev, 6)) {
20575 switch (pi->pubpi.radiorev) {
20576 case 5:
20577 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20578 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20579 break;
20580 case 6:
20581 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20582 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20583 break;
20584 case 7:
20585 case 9:
20586 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20587 tbl_len =
20588 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20589 break;
20590 case 8:
20591 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20592 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20593 break;
20594 case 11:
20595 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20596 tbl_len = ARRAY_SIZE(
20597 chan_info_nphyrev6_2056v11);
20598 break;
20599 default:
20600 break;
20604 for (i = 0; i < tbl_len; i++) {
20605 if (chan_info_tbl_p_1[i].chan == channel)
20606 break;
20609 if (i >= tbl_len)
20610 goto fail;
20612 *t1 = &chan_info_tbl_p_1[i];
20613 freq = chan_info_tbl_p_1[i].freq;
20615 } else {
20616 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20617 if (chan_info_nphy_2055[i].chan == channel)
20618 break;
20620 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20621 goto fail;
20623 *t3 = &chan_info_nphy_2055[i];
20624 freq = chan_info_nphy_2055[i].freq;
20627 *f = freq;
20628 return true;
20630 fail:
20631 *f = WL_CHAN_FREQ_RANGE_2G;
20632 return false;
20635 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20637 int freq;
20638 const struct chan_info_nphy_radio2057 *t0 = NULL;
20639 const struct chan_info_nphy_radio205x *t1 = NULL;
20640 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20641 const struct chan_info_nphy_2055 *t3 = NULL;
20643 if (channel == 0)
20644 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20646 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20648 if (CHSPEC_IS2G(pi->radio_chanspec))
20649 return WL_CHAN_FREQ_RANGE_2G;
20651 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20652 return WL_CHAN_FREQ_RANGE_5GL;
20653 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20654 return WL_CHAN_FREQ_RANGE_5GM;
20655 else
20656 return WL_CHAN_FREQ_RANGE_5GH;
20659 static void
20660 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20661 const struct chan_info_nphy_2055 *ci)
20664 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20665 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20666 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20667 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20669 BRCMS_PHY_WAR_PR51571(pi);
20671 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20672 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20673 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20674 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20676 BRCMS_PHY_WAR_PR51571(pi);
20678 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20679 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20680 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20681 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20683 BRCMS_PHY_WAR_PR51571(pi);
20685 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20686 ci->RF_core1_lgbuf_a_tune);
20687 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20688 ci->RF_core1_lgbuf_g_tune);
20689 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20690 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20691 ci->RF_core1_tx_pga_pad_tn);
20693 BRCMS_PHY_WAR_PR51571(pi);
20695 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20696 ci->RF_core1_tx_mx_bgtrim);
20697 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20698 ci->RF_core2_lgbuf_a_tune);
20699 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20700 ci->RF_core2_lgbuf_g_tune);
20701 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20703 BRCMS_PHY_WAR_PR51571(pi);
20705 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20706 ci->RF_core2_tx_pga_pad_tn);
20707 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20708 ci->RF_core2_tx_mx_bgtrim);
20710 udelay(50);
20712 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20713 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20715 BRCMS_PHY_WAR_PR51571(pi);
20717 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20719 udelay(300);
20722 static void
20723 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20724 const struct chan_info_nphy_radio205x *ci)
20726 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20728 write_radio_reg(pi,
20729 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20730 ci->RF_SYN_pll_vcocal1);
20731 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20732 ci->RF_SYN_pll_vcocal2);
20733 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20734 ci->RF_SYN_pll_refdiv);
20735 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20736 ci->RF_SYN_pll_mmd2);
20737 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20738 ci->RF_SYN_pll_mmd1);
20739 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20740 ci->RF_SYN_pll_loopfilter1);
20741 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20742 ci->RF_SYN_pll_loopfilter2);
20743 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20744 ci->RF_SYN_pll_loopfilter3);
20745 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20746 ci->RF_SYN_pll_loopfilter4);
20747 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20748 ci->RF_SYN_pll_loopfilter5);
20749 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20750 ci->RF_SYN_reserved_addr27);
20751 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20752 ci->RF_SYN_reserved_addr28);
20753 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20754 ci->RF_SYN_reserved_addr29);
20755 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20756 ci->RF_SYN_logen_VCOBUF1);
20757 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20758 ci->RF_SYN_logen_MIXER2);
20759 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20760 ci->RF_SYN_logen_BUF3);
20761 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20762 ci->RF_SYN_logen_BUF4);
20764 write_radio_reg(pi,
20765 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20766 ci->RF_RX0_lnaa_tune);
20767 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20768 ci->RF_RX0_lnag_tune);
20769 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20770 ci->RF_TX0_intpaa_boost_tune);
20771 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20772 ci->RF_TX0_intpag_boost_tune);
20773 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20774 ci->RF_TX0_pada_boost_tune);
20775 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20776 ci->RF_TX0_padg_boost_tune);
20777 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20778 ci->RF_TX0_pgaa_boost_tune);
20779 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20780 ci->RF_TX0_pgag_boost_tune);
20781 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20782 ci->RF_TX0_mixa_boost_tune);
20783 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20784 ci->RF_TX0_mixg_boost_tune);
20786 write_radio_reg(pi,
20787 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20788 ci->RF_RX1_lnaa_tune);
20789 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20790 ci->RF_RX1_lnag_tune);
20791 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20792 ci->RF_TX1_intpaa_boost_tune);
20793 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20794 ci->RF_TX1_intpag_boost_tune);
20795 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20796 ci->RF_TX1_pada_boost_tune);
20797 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20798 ci->RF_TX1_padg_boost_tune);
20799 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20800 ci->RF_TX1_pgaa_boost_tune);
20801 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20802 ci->RF_TX1_pgag_boost_tune);
20803 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20804 ci->RF_TX1_mixa_boost_tune);
20805 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20806 ci->RF_TX1_mixg_boost_tune);
20808 if (NREV_IS(pi->pubpi.phy_rev, 3))
20809 regs_SYN_2056_ptr = regs_SYN_2056;
20810 else if (NREV_IS(pi->pubpi.phy_rev, 4))
20811 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20812 else {
20813 switch (pi->pubpi.radiorev) {
20814 case 5:
20815 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20816 break;
20817 case 6:
20818 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20819 break;
20820 case 7:
20821 case 9:
20822 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20823 break;
20824 case 8:
20825 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20826 break;
20827 case 11:
20828 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20829 break;
20832 if (CHSPEC_IS2G(pi->radio_chanspec))
20833 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20834 RADIO_2056_SYN,
20835 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20836 else
20837 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20838 RADIO_2056_SYN,
20839 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20841 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20842 if (CHSPEC_IS2G(pi->radio_chanspec)) {
20843 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20844 RADIO_2056_SYN, 0x1f);
20845 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20846 RADIO_2056_SYN, 0x1f);
20848 write_radio_reg(pi,
20849 RADIO_2056_SYN_PLL_LOOPFILTER4 |
20850 RADIO_2056_SYN, 0xb);
20851 write_radio_reg(pi,
20852 RADIO_2056_SYN_PLL_CP2 |
20853 RADIO_2056_SYN, 0x14);
20857 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20858 (CHSPEC_IS2G(pi->radio_chanspec))) {
20859 write_radio_reg(pi,
20860 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20861 0x1f);
20862 write_radio_reg(pi,
20863 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20864 0x1f);
20865 write_radio_reg(pi,
20866 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20867 0xb);
20868 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20869 0x20);
20872 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20873 if (CHSPEC_IS5G(pi->radio_chanspec)) {
20874 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20875 RADIO_2056_SYN, 0x1f);
20876 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20877 RADIO_2056_SYN, 0x1f);
20878 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20879 RADIO_2056_SYN, 0x5);
20880 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20881 RADIO_2056_SYN, 0xc);
20885 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20886 u16 pag_boost_tune;
20887 u16 padg_boost_tune;
20888 u16 pgag_boost_tune;
20889 u16 mixg_boost_tune;
20890 u16 bias, cascbias;
20891 uint core;
20893 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20895 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20897 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20898 PADG_IDAC, 0xcc);
20900 bias = 0x25;
20901 cascbias = 0x20;
20903 if ((pi->sh->chip ==
20904 BCM43224_CHIP_ID)
20905 || (pi->sh->chip ==
20906 BCM43225_CHIP_ID)) {
20907 if (pi->sh->chippkg ==
20908 BCM43224_FAB_SMIC) {
20909 bias = 0x2a;
20910 cascbias = 0x38;
20914 pag_boost_tune = 0x4;
20915 pgag_boost_tune = 0x03;
20916 padg_boost_tune = 0x77;
20917 mixg_boost_tune = 0x65;
20919 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20920 INTPAG_IMAIN_STAT, bias);
20921 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20922 INTPAG_IAUX_STAT, bias);
20923 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20924 INTPAG_CASCBIAS, cascbias);
20926 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20927 INTPAG_BOOST_TUNE,
20928 pag_boost_tune);
20929 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20930 PGAG_BOOST_TUNE,
20931 pgag_boost_tune);
20932 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20933 PADG_BOOST_TUNE,
20934 padg_boost_tune);
20935 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20936 MIXG_BOOST_TUNE,
20937 mixg_boost_tune);
20938 } else {
20940 bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20941 0x40 : 0x20;
20943 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20944 INTPAG_IMAIN_STAT, bias);
20945 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20946 INTPAG_IAUX_STAT, bias);
20947 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20948 INTPAG_CASCBIAS, 0x30);
20950 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20951 0xee);
20955 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20956 && CHSPEC_IS5G(pi->radio_chanspec)) {
20957 u16 paa_boost_tune;
20958 u16 pada_boost_tune;
20959 u16 pgaa_boost_tune;
20960 u16 mixa_boost_tune;
20961 u16 freq, pabias, cascbias;
20962 uint core;
20964 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20966 if (freq < 5150) {
20968 paa_boost_tune = 0xa;
20969 pada_boost_tune = 0x77;
20970 pgaa_boost_tune = 0xf;
20971 mixa_boost_tune = 0xf;
20972 } else if (freq < 5340) {
20974 paa_boost_tune = 0x8;
20975 pada_boost_tune = 0x77;
20976 pgaa_boost_tune = 0xfb;
20977 mixa_boost_tune = 0xf;
20978 } else if (freq < 5650) {
20980 paa_boost_tune = 0x0;
20981 pada_boost_tune = 0x77;
20982 pgaa_boost_tune = 0xb;
20983 mixa_boost_tune = 0xf;
20984 } else {
20986 paa_boost_tune = 0x0;
20987 pada_boost_tune = 0x77;
20988 if (freq != 5825)
20989 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
20990 else
20991 pgaa_boost_tune = 6;
20993 mixa_boost_tune = 0xf;
20996 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20997 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20998 INTPAA_BOOST_TUNE, paa_boost_tune);
20999 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21000 PADA_BOOST_TUNE, pada_boost_tune);
21001 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21002 PGAA_BOOST_TUNE, pgaa_boost_tune);
21003 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21004 MIXA_BOOST_TUNE, mixa_boost_tune);
21006 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21007 TXSPARE1, 0x30);
21008 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21009 PA_SPARE2, 0xee);
21011 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21012 PADA_CASCBIAS, 0x3);
21014 cascbias = 0x30;
21016 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21017 (pi->sh->chip == BCM43225_CHIP_ID)) {
21018 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
21019 cascbias = 0x35;
21022 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
21024 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21025 INTPAA_IAUX_STAT, pabias);
21026 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21027 INTPAA_IMAIN_STAT, pabias);
21028 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21029 INTPAA_CASCBIAS, cascbias);
21033 udelay(50);
21035 wlc_phy_radio205x_vcocal_nphy(pi);
21038 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
21040 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21041 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
21042 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
21043 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
21044 (1 << 2));
21045 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
21046 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21047 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
21048 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21049 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
21050 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21051 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
21054 udelay(300);
21057 static void
21058 wlc_phy_chanspec_radio2057_setup(
21059 struct brcms_phy *pi,
21060 const struct chan_info_nphy_radio2057 *ci,
21061 const struct chan_info_nphy_radio2057_rev5 *
21062 ci2)
21064 int coreNum;
21065 u16 txmix2g_tune_boost_pu = 0;
21066 u16 pad2g_tune_pus = 0;
21068 if (pi->pubpi.radiorev == 5) {
21070 write_radio_reg(pi,
21071 RADIO_2057_VCOCAL_COUNTVAL0,
21072 ci2->RF_vcocal_countval0);
21073 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21074 ci2->RF_vcocal_countval1);
21075 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21076 ci2->RF_rfpll_refmaster_sparextalsize);
21077 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21078 ci2->RF_rfpll_loopfilter_r1);
21079 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21080 ci2->RF_rfpll_loopfilter_c2);
21081 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21082 ci2->RF_rfpll_loopfilter_c1);
21083 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
21084 ci2->RF_cp_kpd_idac);
21085 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
21086 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
21087 write_radio_reg(pi,
21088 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
21089 write_radio_reg(pi,
21090 RADIO_2057_LOGEN_MX2G_TUNE,
21091 ci2->RF_logen_mx2g_tune);
21092 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21093 ci2->RF_logen_indbuf2g_tune);
21095 write_radio_reg(pi,
21096 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21097 ci2->RF_txmix2g_tune_boost_pu_core0);
21098 write_radio_reg(pi,
21099 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21100 ci2->RF_pad2g_tune_pus_core0);
21101 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21102 ci2->RF_lna2g_tune_core0);
21104 write_radio_reg(pi,
21105 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21106 ci2->RF_txmix2g_tune_boost_pu_core1);
21107 write_radio_reg(pi,
21108 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21109 ci2->RF_pad2g_tune_pus_core1);
21110 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21111 ci2->RF_lna2g_tune_core1);
21113 } else {
21115 write_radio_reg(pi,
21116 RADIO_2057_VCOCAL_COUNTVAL0,
21117 ci->RF_vcocal_countval0);
21118 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21119 ci->RF_vcocal_countval1);
21120 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21121 ci->RF_rfpll_refmaster_sparextalsize);
21122 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21123 ci->RF_rfpll_loopfilter_r1);
21124 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21125 ci->RF_rfpll_loopfilter_c2);
21126 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21127 ci->RF_rfpll_loopfilter_c1);
21128 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
21129 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
21130 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
21131 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
21132 write_radio_reg(pi,
21133 RADIO_2057_LOGEN_MX2G_TUNE,
21134 ci->RF_logen_mx2g_tune);
21135 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
21136 ci->RF_logen_mx5g_tune);
21137 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21138 ci->RF_logen_indbuf2g_tune);
21139 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
21140 ci->RF_logen_indbuf5g_tune);
21142 write_radio_reg(pi,
21143 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21144 ci->RF_txmix2g_tune_boost_pu_core0);
21145 write_radio_reg(pi,
21146 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21147 ci->RF_pad2g_tune_pus_core0);
21148 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
21149 ci->RF_pga_boost_tune_core0);
21150 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
21151 ci->RF_txmix5g_boost_tune_core0);
21152 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
21153 ci->RF_pad5g_tune_misc_pus_core0);
21154 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21155 ci->RF_lna2g_tune_core0);
21156 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
21157 ci->RF_lna5g_tune_core0);
21159 write_radio_reg(pi,
21160 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21161 ci->RF_txmix2g_tune_boost_pu_core1);
21162 write_radio_reg(pi,
21163 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21164 ci->RF_pad2g_tune_pus_core1);
21165 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
21166 ci->RF_pga_boost_tune_core1);
21167 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
21168 ci->RF_txmix5g_boost_tune_core1);
21169 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
21170 ci->RF_pad5g_tune_misc_pus_core1);
21171 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21172 ci->RF_lna2g_tune_core1);
21173 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
21174 ci->RF_lna5g_tune_core1);
21177 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21179 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21180 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21181 0x3f);
21182 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21183 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21184 0x8);
21185 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21186 0x8);
21187 } else {
21188 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21189 0x1f);
21190 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21191 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21192 0x8);
21193 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21194 0x8);
21196 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21197 (pi->pubpi.radiorev == 8)) {
21199 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21200 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21201 0x1b);
21202 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
21203 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21204 0xa);
21205 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21206 0xa);
21207 } else {
21208 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21209 0x1f);
21210 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21211 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21212 0x8);
21213 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21214 0x8);
21219 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21220 if (PHY_IPA(pi)) {
21221 if (pi->pubpi.radiorev == 3)
21222 txmix2g_tune_boost_pu = 0x6b;
21224 if (pi->pubpi.radiorev == 5)
21225 pad2g_tune_pus = 0x73;
21227 } else {
21228 if (pi->pubpi.radiorev != 5) {
21229 pad2g_tune_pus = 0x3;
21231 txmix2g_tune_boost_pu = 0x61;
21235 for (coreNum = 0; coreNum <= 1; coreNum++) {
21237 if (txmix2g_tune_boost_pu != 0)
21238 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21239 TXMIX2G_TUNE_BOOST_PU,
21240 txmix2g_tune_boost_pu);
21242 if (pad2g_tune_pus != 0)
21243 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21244 PAD2G_TUNE_PUS,
21245 pad2g_tune_pus);
21249 udelay(50);
21251 wlc_phy_radio205x_vcocal_nphy(pi);
21254 static void
21255 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21256 const struct nphy_sfo_cfg *ci)
21258 u16 val;
21260 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21261 if (CHSPEC_IS5G(chanspec) && !val) {
21263 val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21264 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21265 (val | MAC_PHY_FORCE_CLK));
21267 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21268 (BBCFG_RESETCCA | BBCFG_RESETRX));
21270 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21272 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21273 } else if (!CHSPEC_IS5G(chanspec) && val) {
21275 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21277 val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21278 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21279 (val | MAC_PHY_FORCE_CLK));
21281 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21282 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21284 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21287 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21288 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21289 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21291 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21292 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21293 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21295 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21296 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21298 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21299 } else {
21300 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21301 NPHY_ClassifierCtrl_ofdm_en);
21303 if (CHSPEC_IS2G(chanspec))
21304 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21307 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21308 wlc_phy_txpwr_fixpower_nphy(pi);
21310 if (NREV_LT(pi->pubpi.phy_rev, 3))
21311 wlc_phy_adjust_lnagaintbl_nphy(pi);
21313 wlc_phy_txlpfbw_nphy(pi);
21315 if (NREV_GE(pi->pubpi.phy_rev, 3)
21316 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21317 u8 spuravoid = 0;
21319 val = CHSPEC_CHANNEL(chanspec);
21320 if (!CHSPEC_IS40(pi->radio_chanspec)) {
21321 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21322 if ((val == 13) || (val == 14) || (val == 153))
21323 spuravoid = 1;
21324 } else if (((val >= 5) && (val <= 8)) || (val == 13)
21325 || (val == 14)) {
21326 spuravoid = 1;
21328 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21329 if (val == 54)
21330 spuravoid = 1;
21331 } else {
21332 if (pi->nphy_aband_spurwar_en &&
21333 ((val == 38) || (val == 102)
21334 || (val == 118)))
21335 spuravoid = 1;
21338 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21339 spuravoid = 1;
21341 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21342 si_pmu_spuravoid_pllupdate(pi->sh->sih, spuravoid);
21343 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21345 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21346 (pi->sh->chip == BCM43225_CHIP_ID)) {
21347 if (spuravoid == 1) {
21348 bcma_write16(pi->d11core,
21349 D11REGOFFS(tsf_clk_frac_l),
21350 0x5341);
21351 bcma_write16(pi->d11core,
21352 D11REGOFFS(tsf_clk_frac_h), 0x8);
21353 } else {
21354 bcma_write16(pi->d11core,
21355 D11REGOFFS(tsf_clk_frac_l),
21356 0x8889);
21357 bcma_write16(pi->d11core,
21358 D11REGOFFS(tsf_clk_frac_h), 0x8);
21362 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21364 mod_phy_reg(pi, 0x01, (0x1 << 15),
21365 ((spuravoid > 0) ? (0x1 << 15) : 0));
21367 wlc_phy_resetcca_nphy(pi);
21369 pi->phy_isspuravoid = (spuravoid > 0);
21372 if (NREV_LT(pi->pubpi.phy_rev, 7))
21373 write_phy_reg(pi, 0x17e, 0x3830);
21375 wlc_phy_spurwar_nphy(pi);
21378 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21380 int freq;
21381 const struct chan_info_nphy_radio2057 *t0 = NULL;
21382 const struct chan_info_nphy_radio205x *t1 = NULL;
21383 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21384 const struct chan_info_nphy_2055 *t3 = NULL;
21386 if (!wlc_phy_chan2freq_nphy
21387 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21388 return;
21390 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21392 if (CHSPEC_BW(chanspec) != pi->bw)
21393 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21395 if (CHSPEC_IS40(chanspec)) {
21396 if (CHSPEC_SB_UPPER(chanspec)) {
21397 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21398 if (NREV_GE(pi->pubpi.phy_rev, 7))
21399 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21400 } else {
21401 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21402 if (NREV_GE(pi->pubpi.phy_rev, 7))
21403 and_phy_reg(pi, 0x310,
21404 (~PRIM_SEL_UP20 & 0xffff));
21408 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21409 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21411 if ((pi->pubpi.radiorev <= 4)
21412 || (pi->pubpi.radiorev == 6)) {
21413 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21414 0x2,
21415 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21416 : 0));
21417 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21418 0x2,
21419 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21420 : 0));
21423 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21424 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21425 (pi->pubpi.radiorev == 5) ?
21426 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21427 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21429 } else {
21431 mod_radio_reg(pi,
21432 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21433 0x4,
21434 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21435 wlc_phy_chanspec_radio2056_setup(pi, t1);
21437 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21438 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21441 } else {
21443 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21444 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21445 : (0x05 << 4)));
21447 wlc_phy_chanspec_radio2055_setup(pi, t3);
21448 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21449 (const struct nphy_sfo_cfg *)
21450 &(t3->PHY_BW1a));
21455 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21457 struct brcms_phy *pi = (struct brcms_phy *) ppi;
21458 u16 mask = 0xfc00;
21459 u32 mc = 0;
21461 if (NREV_GE(pi->pubpi.phy_rev, 7))
21462 return;
21464 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21465 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21467 if (lut_init == false)
21468 return;
21470 if (pi->srom_fem2g.antswctrllut == 0) {
21471 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21472 1, 0x02, 16, &v0);
21473 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21474 1, 0x03, 16, &v1);
21475 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21476 1, 0x08, 16, &v2);
21477 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21478 1, 0x0C, 16, &v3);
21481 if (pi->srom_fem5g.antswctrllut == 0) {
21482 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21483 1, 0x12, 16, &v0);
21484 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21485 1, 0x13, 16, &v1);
21486 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21487 1, 0x18, 16, &v2);
21488 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21489 1, 0x1C, 16, &v3);
21491 } else {
21493 write_phy_reg(pi, 0xc8, 0x0);
21494 write_phy_reg(pi, 0xc9, 0x0);
21496 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
21498 mc = bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
21499 mc &= ~MCTL_GPOUT_SEL_MASK;
21500 bcma_write32(pi->d11core, D11REGOFFS(maccontrol), mc);
21502 bcma_set16(pi->d11core, D11REGOFFS(psm_gpio_oe), mask);
21504 bcma_mask16(pi->d11core, D11REGOFFS(psm_gpio_out), ~mask);
21506 if (lut_init) {
21507 write_phy_reg(pi, 0xf8, 0x02d8);
21508 write_phy_reg(pi, 0xf9, 0x0301);
21509 write_phy_reg(pi, 0xfa, 0x02d8);
21510 write_phy_reg(pi, 0xfb, 0x0301);
21515 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21517 u16 curr_ctl, new_ctl;
21518 bool suspended = false;
21520 if (D11REV_IS(pi->sh->corerev, 16)) {
21521 suspended = (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
21522 MCTL_EN_MAC) ? false : true;
21523 if (!suspended)
21524 wlapi_suspend_mac_and_wait(pi->sh->physhim);
21527 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21529 new_ctl = (curr_ctl & (~mask)) | (val & mask);
21531 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21533 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21534 wlapi_enable_mac(pi->sh->physhim);
21536 return new_ctl;
21539 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21541 u16 trigger_mask, status_mask;
21542 u16 orig_RfseqCoreActv;
21544 switch (cmd) {
21545 case NPHY_RFSEQ_RX2TX:
21546 trigger_mask = NPHY_RfseqTrigger_rx2tx;
21547 status_mask = NPHY_RfseqStatus_rx2tx;
21548 break;
21549 case NPHY_RFSEQ_TX2RX:
21550 trigger_mask = NPHY_RfseqTrigger_tx2rx;
21551 status_mask = NPHY_RfseqStatus_tx2rx;
21552 break;
21553 case NPHY_RFSEQ_RESET2RX:
21554 trigger_mask = NPHY_RfseqTrigger_reset2rx;
21555 status_mask = NPHY_RfseqStatus_reset2rx;
21556 break;
21557 case NPHY_RFSEQ_UPDATEGAINH:
21558 trigger_mask = NPHY_RfseqTrigger_updategainh;
21559 status_mask = NPHY_RfseqStatus_updategainh;
21560 break;
21561 case NPHY_RFSEQ_UPDATEGAINL:
21562 trigger_mask = NPHY_RfseqTrigger_updategainl;
21563 status_mask = NPHY_RfseqStatus_updategainl;
21564 break;
21565 case NPHY_RFSEQ_UPDATEGAINU:
21566 trigger_mask = NPHY_RfseqTrigger_updategainu;
21567 status_mask = NPHY_RfseqStatus_updategainu;
21568 break;
21569 default:
21570 return;
21573 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21574 or_phy_reg(pi, 0xa1,
21575 (NPHY_RfseqMode_CoreActv_override |
21576 NPHY_RfseqMode_Trigger_override));
21577 or_phy_reg(pi, 0xa3, trigger_mask);
21578 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21579 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21580 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21583 static void
21584 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21585 u8 core_mask, u8 off)
21587 u16 rfmxgain = 0, lpfgain = 0;
21588 u16 tgain = 0;
21590 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21592 switch (cmd) {
21593 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21594 wlc_phy_rfctrl_override_nphy_rev7(
21595 pi, (0x1 << 5),
21596 value, core_mask, off,
21597 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21598 wlc_phy_rfctrl_override_nphy_rev7(
21599 pi, (0x1 << 4), value,
21600 core_mask, off,
21601 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21602 wlc_phy_rfctrl_override_nphy_rev7(
21603 pi, (0x1 << 3), value,
21604 core_mask, off,
21605 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21606 break;
21607 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21608 wlc_phy_rfctrl_override_nphy_rev7(
21609 pi, (0x1 << 2),
21610 value, core_mask, off,
21611 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21612 wlc_phy_rfctrl_override_nphy_rev7(
21613 pi, (0x1 << 1), value,
21614 core_mask, off,
21615 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21616 wlc_phy_rfctrl_override_nphy_rev7(
21617 pi, (0x1 << 0), value,
21618 core_mask, off,
21619 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21620 wlc_phy_rfctrl_override_nphy_rev7(
21621 pi, (0x1 << 1), value,
21622 core_mask, off,
21623 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21624 wlc_phy_rfctrl_override_nphy_rev7(
21625 pi, (0x1 << 11), 0,
21626 core_mask, off,
21627 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21628 break;
21629 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21630 wlc_phy_rfctrl_override_nphy_rev7(
21631 pi, (0x1 << 2),
21632 value, core_mask, off,
21633 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21634 wlc_phy_rfctrl_override_nphy_rev7(
21635 pi, (0x1 << 1), value,
21636 core_mask, off,
21637 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21638 wlc_phy_rfctrl_override_nphy_rev7(
21639 pi, (0x1 << 0), value,
21640 core_mask, off,
21641 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21642 wlc_phy_rfctrl_override_nphy_rev7(
21643 pi, (0x1 << 2), value,
21644 core_mask, off,
21645 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21646 wlc_phy_rfctrl_override_nphy_rev7(
21647 pi, (0x1 << 11), 1,
21648 core_mask, off,
21649 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21650 break;
21651 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21652 rfmxgain = value & 0x000ff;
21653 lpfgain = value & 0x0ff00;
21654 lpfgain = lpfgain >> 8;
21656 wlc_phy_rfctrl_override_nphy_rev7(
21657 pi, (0x1 << 11),
21658 rfmxgain, core_mask,
21659 off,
21660 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21661 wlc_phy_rfctrl_override_nphy_rev7(
21662 pi, (0x3 << 13),
21663 lpfgain, core_mask,
21664 off,
21665 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21666 break;
21667 case NPHY_REV7_RfctrlOverride_cmd_txgain:
21668 tgain = value & 0x7fff;
21669 lpfgain = value & 0x8000;
21670 lpfgain = lpfgain >> 14;
21672 wlc_phy_rfctrl_override_nphy_rev7(
21673 pi, (0x1 << 12),
21674 tgain, core_mask, off,
21675 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21676 wlc_phy_rfctrl_override_nphy_rev7(
21677 pi, (0x1 << 13),
21678 lpfgain, core_mask,
21679 off,
21680 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21681 break;
21686 static void
21687 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21688 u8 coresel, u8 rail, u8 rssi_type)
21690 u16 valuetostuff;
21692 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21693 NPHY_RSSICAL_MAXREAD : offset;
21694 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21695 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21697 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21699 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21700 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21701 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21702 write_phy_reg(pi, 0x1a6, valuetostuff);
21704 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21705 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21706 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21707 write_phy_reg(pi, 0x1ac, valuetostuff);
21709 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21710 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21711 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21712 write_phy_reg(pi, 0x1b2, valuetostuff);
21714 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21715 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21716 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21717 write_phy_reg(pi, 0x1b8, valuetostuff);
21719 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21720 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21721 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21722 write_phy_reg(pi, 0x1a4, valuetostuff);
21724 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21725 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21726 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21727 write_phy_reg(pi, 0x1aa, valuetostuff);
21729 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21730 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21731 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21732 write_phy_reg(pi, 0x1b0, valuetostuff);
21734 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21735 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21736 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21737 write_phy_reg(pi, 0x1b6, valuetostuff);
21739 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21740 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21741 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21742 write_phy_reg(pi, 0x1a5, valuetostuff);
21743 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21744 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21745 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21746 write_phy_reg(pi, 0x1ab, valuetostuff);
21748 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21749 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21750 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21751 write_phy_reg(pi, 0x1b1, valuetostuff);
21753 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21754 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21755 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21756 write_phy_reg(pi, 0x1b7, valuetostuff);
21758 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21759 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21760 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21761 write_phy_reg(pi, 0x1a7, valuetostuff);
21762 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21763 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21764 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21765 write_phy_reg(pi, 0x1ad, valuetostuff);
21766 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21767 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21768 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21769 write_phy_reg(pi, 0x1b3, valuetostuff);
21770 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21771 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21772 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21773 write_phy_reg(pi, 0x1b9, valuetostuff);
21775 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21776 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21777 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21778 write_phy_reg(pi, 0x1a8, valuetostuff);
21780 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21781 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21782 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21783 write_phy_reg(pi, 0x1ae, valuetostuff);
21785 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21786 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21787 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21788 write_phy_reg(pi, 0x1b4, valuetostuff);
21790 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21791 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21792 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21793 write_phy_reg(pi, 0x1ba, valuetostuff);
21795 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21796 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21797 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21798 write_phy_reg(pi, 0x1a9, valuetostuff);
21799 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21800 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21801 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21802 write_phy_reg(pi, 0x1b5, valuetostuff);
21804 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21805 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21806 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21807 write_phy_reg(pi, 0x1af, valuetostuff);
21809 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21810 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21811 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21812 write_phy_reg(pi, 0x1bb, valuetostuff);
21815 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21817 if (PHY_IPA(pi)) {
21818 if (NREV_GE(pi->pubpi.phy_rev, 7))
21819 write_radio_reg(pi,
21820 ((core == PHY_CORE_0) ?
21821 RADIO_2057_TX0_TX_SSI_MUX :
21822 RADIO_2057_TX1_TX_SSI_MUX),
21823 (CHSPEC_IS5G(pi->radio_chanspec) ?
21824 0xc : 0xe));
21825 else
21826 write_radio_reg(pi,
21827 RADIO_2056_TX_TX_SSI_MUX |
21828 ((core == PHY_CORE_0) ?
21829 RADIO_2056_TX0 : RADIO_2056_TX1),
21830 (CHSPEC_IS5G(pi->radio_chanspec) ?
21831 0xc : 0xe));
21832 } else {
21833 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21834 write_radio_reg(pi,
21835 ((core == PHY_CORE_0) ?
21836 RADIO_2057_TX0_TX_SSI_MUX :
21837 RADIO_2057_TX1_TX_SSI_MUX),
21838 0x11);
21840 if (pi->pubpi.radioid == BCM2057_ID)
21841 write_radio_reg(pi,
21842 RADIO_2057_IQTEST_SEL_PU, 0x1);
21844 } else {
21845 write_radio_reg(pi,
21846 RADIO_2056_TX_TX_SSI_MUX |
21847 ((core == PHY_CORE_0) ?
21848 RADIO_2056_TX0 : RADIO_2056_TX1),
21849 0x11);
21854 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21856 u16 mask, val;
21857 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21858 startseq;
21859 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21860 rfctrlovr_trigger_val;
21861 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21862 u16 rfctrlcmd_val, rfctrlovr_val;
21863 u8 core;
21865 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21866 if (core_code == RADIO_MIMO_CORESEL_OFF) {
21867 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21868 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21870 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21871 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21873 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21874 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21876 mask = (0x1 << 2) |
21877 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21878 mod_phy_reg(pi, 0xf9, mask, 0);
21879 mod_phy_reg(pi, 0xfb, mask, 0);
21881 } else {
21882 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21883 if (core_code == RADIO_MIMO_CORESEL_CORE1
21884 && core == PHY_CORE_1)
21885 continue;
21886 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21887 && core == PHY_CORE_0)
21888 continue;
21890 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21891 0x8f : 0xa5, (0x1 << 9), 1 << 9);
21893 if (rssi_type == NPHY_RSSI_SEL_W1 ||
21894 rssi_type == NPHY_RSSI_SEL_W2 ||
21895 rssi_type == NPHY_RSSI_SEL_NB) {
21896 mod_phy_reg(pi,
21897 (core ==
21898 PHY_CORE_0) ? 0xa6 : 0xa7,
21899 (0x3 << 8), 0);
21901 mask = (0x1 << 2) |
21902 (0x1 << 3) |
21903 (0x1 << 4) | (0x1 << 5);
21904 mod_phy_reg(pi,
21905 (core ==
21906 PHY_CORE_0) ? 0xf9 : 0xfb,
21907 mask, 0);
21909 if (rssi_type == NPHY_RSSI_SEL_W1) {
21910 if (CHSPEC_IS5G(
21911 pi->radio_chanspec)) {
21912 mask = (0x1 << 2);
21913 val = 1 << 2;
21914 } else {
21915 mask = (0x1 << 3);
21916 val = 1 << 3;
21918 } else if (rssi_type ==
21919 NPHY_RSSI_SEL_W2) {
21920 mask = (0x1 << 4);
21921 val = 1 << 4;
21922 } else {
21923 mask = (0x1 << 5);
21924 val = 1 << 5;
21926 mod_phy_reg(pi,
21927 (core ==
21928 PHY_CORE_0) ? 0xf9 : 0xfb,
21929 mask, val);
21931 mask = (0x1 << 5);
21932 val = 1 << 5;
21933 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21934 0xe5 : 0xe6, mask, val);
21935 } else {
21936 if (rssi_type == NPHY_RSSI_SEL_TBD) {
21937 mask = (0x3 << 8);
21938 val = 1 << 8;
21939 mod_phy_reg(pi,
21940 (core ==
21941 PHY_CORE_0) ? 0xa6
21942 : 0xa7, mask, val);
21943 mask = (0x3 << 10);
21944 val = 1 << 10;
21945 mod_phy_reg(pi,
21946 (core ==
21947 PHY_CORE_0) ? 0xa6
21948 : 0xa7, mask, val);
21949 } else if (rssi_type ==
21950 NPHY_RSSI_SEL_IQ) {
21951 mask = (0x3 << 8);
21952 val = 2 << 8;
21953 mod_phy_reg(pi,
21954 (core ==
21955 PHY_CORE_0) ? 0xa6
21956 : 0xa7, mask, val);
21957 mask = (0x3 << 10);
21958 val = 2 << 10;
21959 mod_phy_reg(pi,
21960 (core ==
21961 PHY_CORE_0) ? 0xa6
21962 : 0xa7, mask, val);
21963 } else {
21964 mask = (0x3 << 8);
21965 val = 3 << 8;
21966 mod_phy_reg(pi,
21967 (core ==
21968 PHY_CORE_0) ? 0xa6
21969 : 0xa7, mask, val);
21970 mask = (0x3 << 10);
21971 val = 3 << 10;
21972 mod_phy_reg(pi,
21973 (core ==
21974 PHY_CORE_0) ? 0xa6
21975 : 0xa7, mask, val);
21976 brcms_phy_wr_tx_mux(pi, core);
21977 afectrlovr_rssi_val = 1 << 9;
21978 mod_phy_reg(pi,
21979 (core ==
21980 PHY_CORE_0) ? 0x8f
21981 : 0xa5, (0x1 << 9),
21982 afectrlovr_rssi_val);
21987 } else {
21989 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21990 (rssi_type == NPHY_RSSI_SEL_W2) ||
21991 (rssi_type == NPHY_RSSI_SEL_NB))
21992 val = 0x0;
21993 else if (rssi_type == NPHY_RSSI_SEL_TBD)
21994 val = 0x1;
21995 else if (rssi_type == NPHY_RSSI_SEL_IQ)
21996 val = 0x2;
21997 else
21998 val = 0x3;
22000 mask = ((0x3 << 12) | (0x3 << 14));
22001 val = (val << 12) | (val << 14);
22002 mod_phy_reg(pi, 0xa6, mask, val);
22003 mod_phy_reg(pi, 0xa7, mask, val);
22005 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22006 (rssi_type == NPHY_RSSI_SEL_W2) ||
22007 (rssi_type == NPHY_RSSI_SEL_NB)) {
22008 if (rssi_type == NPHY_RSSI_SEL_W1)
22009 val = 0x1;
22010 if (rssi_type == NPHY_RSSI_SEL_W2)
22011 val = 0x2;
22012 if (rssi_type == NPHY_RSSI_SEL_NB)
22013 val = 0x3;
22015 mask = (0x3 << 4);
22016 val = (val << 4);
22017 mod_phy_reg(pi, 0x7a, mask, val);
22018 mod_phy_reg(pi, 0x7d, mask, val);
22021 if (core_code == RADIO_MIMO_CORESEL_OFF) {
22022 afectrlovr_rssi_val = 0;
22023 rfctrlcmd_rxen_val = 0;
22024 rfctrlcmd_coresel_val = 0;
22025 rfctrlovr_rssi_val = 0;
22026 rfctrlovr_rxen_val = 0;
22027 rfctrlovr_coresel_val = 0;
22028 rfctrlovr_trigger_val = 0;
22029 startseq = 0;
22030 } else {
22031 afectrlovr_rssi_val = 1;
22032 rfctrlcmd_rxen_val = 1;
22033 rfctrlcmd_coresel_val = core_code;
22034 rfctrlovr_rssi_val = 1;
22035 rfctrlovr_rxen_val = 1;
22036 rfctrlovr_coresel_val = 1;
22037 rfctrlovr_trigger_val = 1;
22038 startseq = 1;
22041 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
22042 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
22043 12) | (afectrlovr_rssi_val << 13);
22044 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
22045 afectrlovr_rssi_val);
22047 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22048 (rssi_type == NPHY_RSSI_SEL_W2) ||
22049 (rssi_type == NPHY_RSSI_SEL_NB)) {
22050 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
22051 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
22052 (rfctrlcmd_coresel_val << 3);
22054 rfctrlovr_mask = ((0x1 << 5) |
22055 (0x1 << 12) |
22056 (0x1 << 1) | (0x1 << 0));
22057 rfctrlovr_val = (rfctrlovr_rssi_val <<
22058 5) |
22059 (rfctrlovr_rxen_val << 12) |
22060 (rfctrlovr_coresel_val << 1) |
22061 (rfctrlovr_trigger_val << 0);
22063 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
22064 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
22066 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
22067 udelay(20);
22069 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22075 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
22076 u8 nsamps)
22078 s16 rssi0, rssi1;
22079 u16 afectrlCore1_save = 0;
22080 u16 afectrlCore2_save = 0;
22081 u16 afectrlOverride1_save = 0;
22082 u16 afectrlOverride2_save = 0;
22083 u16 rfctrlOverrideAux0_save = 0;
22084 u16 rfctrlOverrideAux1_save = 0;
22085 u16 rfctrlMiscReg1_save = 0;
22086 u16 rfctrlMiscReg2_save = 0;
22087 u16 rfctrlcmd_save = 0;
22088 u16 rfctrloverride_save = 0;
22089 u16 rfctrlrssiothers1_save = 0;
22090 u16 rfctrlrssiothers2_save = 0;
22091 s8 tmp_buf[4];
22092 u8 ctr = 0, samp = 0;
22093 s32 rssi_out_val;
22094 u16 gpiosel_orig;
22096 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22097 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22098 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22099 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22100 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22101 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
22102 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22103 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22104 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22105 } else {
22106 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
22107 rfctrlcmd_save = read_phy_reg(pi, 0x78);
22108 rfctrloverride_save = read_phy_reg(pi, 0xec);
22109 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
22110 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
22113 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22115 gpiosel_orig = read_phy_reg(pi, 0xca);
22116 if (NREV_LT(pi->pubpi.phy_rev, 2))
22117 write_phy_reg(pi, 0xca, 5);
22119 for (ctr = 0; ctr < 4; ctr++)
22120 rssi_buf[ctr] = 0;
22122 for (samp = 0; samp < nsamps; samp++) {
22123 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22124 rssi0 = read_phy_reg(pi, 0x1c9);
22125 rssi1 = read_phy_reg(pi, 0x1ca);
22126 } else {
22127 rssi0 = read_phy_reg(pi, 0x219);
22128 rssi1 = read_phy_reg(pi, 0x21a);
22131 ctr = 0;
22132 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22133 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22134 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22135 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22137 for (ctr = 0; ctr < 4; ctr++)
22138 rssi_buf[ctr] += tmp_buf[ctr];
22142 rssi_out_val = rssi_buf[3] & 0xff;
22143 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22144 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22145 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22147 if (NREV_LT(pi->pubpi.phy_rev, 2))
22148 write_phy_reg(pi, 0xca, gpiosel_orig);
22150 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22151 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22152 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22153 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22154 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22155 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22156 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22157 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22158 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22159 } else {
22160 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22161 write_phy_reg(pi, 0x78, rfctrlcmd_save);
22162 write_phy_reg(pi, 0xec, rfctrloverride_save);
22163 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22164 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22167 return rssi_out_val;
22170 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
22172 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22173 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22174 u16 pwrdet_rxtx_core1_save;
22175 u16 pwrdet_rxtx_core2_save;
22176 u16 afectrlCore1_save;
22177 u16 afectrlCore2_save;
22178 u16 afectrlOverride_save;
22179 u16 afectrlOverride2_save;
22180 u16 pd_pll_ts_save;
22181 u16 gpioSel_save;
22182 s32 radio_temp[4];
22183 s32 radio_temp2[4];
22184 u16 syn_tempprocsense_save;
22185 s16 offset = 0;
22187 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22188 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22189 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22190 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22191 s32 auxADC_Vl;
22192 u16 RfctrlOverride5_save, RfctrlOverride6_save;
22193 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22194 u16 RSSIMultCoef0QPowerDet_save;
22195 u16 tempsense_Rcal;
22197 syn_tempprocsense_save =
22198 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22200 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22201 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22202 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22203 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22204 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22205 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22206 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22207 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22208 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22210 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22211 &auxADC_Vmid_save);
22212 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22213 &auxADC_Av_save);
22214 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22215 &auxADC_rssi_ctrlL_save);
22216 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22217 &auxADC_rssi_ctrlH_save);
22219 write_phy_reg(pi, 0x1ae, 0x0);
22221 auxADC_rssi_ctrlL = 0x0;
22222 auxADC_rssi_ctrlH = 0x20;
22223 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22224 &auxADC_rssi_ctrlL);
22225 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22226 &auxADC_rssi_ctrlH);
22228 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22230 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22231 tempsense_Rcal | 0x01);
22233 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22234 1, 0, 0,
22235 NPHY_REV7_RFCTRLOVERRIDE_ID2);
22236 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22237 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22238 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22239 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22241 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22242 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22243 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22244 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22245 udelay(5);
22246 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22247 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22248 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22249 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22250 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22251 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22252 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22253 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22254 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22255 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22257 auxADC_Vmid = 0xA3;
22258 auxADC_Av = 0x0;
22259 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22260 &auxADC_Vmid);
22261 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22262 &auxADC_Av);
22264 udelay(3);
22266 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22267 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22268 tempsense_Rcal | 0x03);
22270 udelay(5);
22271 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22273 auxADC_Av = 0x7;
22274 if (radio_temp[1] + radio_temp2[1] < -30) {
22275 auxADC_Vmid = 0x45;
22276 auxADC_Vl = 263;
22277 } else if (radio_temp[1] + radio_temp2[1] < -9) {
22278 auxADC_Vmid = 0x200;
22279 auxADC_Vl = 467;
22280 } else if (radio_temp[1] + radio_temp2[1] < 11) {
22281 auxADC_Vmid = 0x266;
22282 auxADC_Vl = 634;
22283 } else {
22284 auxADC_Vmid = 0x2D5;
22285 auxADC_Vl = 816;
22288 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22289 &auxADC_Vmid);
22290 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22291 &auxADC_Av);
22293 udelay(3);
22295 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22296 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22297 tempsense_Rcal | 0x01);
22299 udelay(5);
22300 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22302 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22303 syn_tempprocsense_save);
22305 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22306 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22307 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22308 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22309 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22310 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22311 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22312 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22313 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22315 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22316 &auxADC_Vmid_save);
22317 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22318 &auxADC_Av_save);
22319 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22320 &auxADC_rssi_ctrlL_save);
22321 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22322 &auxADC_rssi_ctrlH_save);
22324 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22325 + 82 * (auxADC_Vl) - 28861 +
22326 128) / 256;
22328 offset = (s16) pi->phy_tempsense_offset;
22330 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22331 syn_tempprocsense_save =
22332 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22334 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22335 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22336 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22337 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22338 gpioSel_save = read_phy_reg(pi, 0xca);
22340 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22342 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22343 if (NREV_LT(pi->pubpi.phy_rev, 7))
22344 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22346 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22347 if (NREV_GE(pi->pubpi.phy_rev, 7))
22348 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22349 else
22350 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22352 radio_temp[0] =
22353 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22355 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22356 syn_tempprocsense_save);
22358 write_phy_reg(pi, 0xca, gpioSel_save);
22359 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22360 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22361 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22362 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22364 offset = (s16) pi->phy_tempsense_offset;
22365 } else {
22367 pwrdet_rxtx_core1_save =
22368 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22369 pwrdet_rxtx_core2_save =
22370 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22371 core1_txrf_iqcal1_save =
22372 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22373 core1_txrf_iqcal2_save =
22374 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22375 core2_txrf_iqcal1_save =
22376 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22377 core2_txrf_iqcal2_save =
22378 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22379 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22381 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22382 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22383 afectrlOverride_save = read_phy_reg(pi, 0xa5);
22384 gpioSel_save = read_phy_reg(pi, 0xca);
22386 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22387 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22388 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22389 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22390 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22391 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22392 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22394 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22395 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22397 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22398 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22400 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22401 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22403 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22404 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22405 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22406 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22408 radio_temp[0] =
22409 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
22410 radio_temp[3]);
22412 radio_temp[0] =
22413 (radio_temp[0] +
22414 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22416 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22418 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22419 pwrdet_rxtx_core1_save);
22420 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22421 pwrdet_rxtx_core2_save);
22422 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22423 core1_txrf_iqcal1_save);
22424 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22425 core2_txrf_iqcal1_save);
22426 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22427 core1_txrf_iqcal2_save);
22428 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22429 core2_txrf_iqcal2_save);
22430 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22432 write_phy_reg(pi, 0xca, gpioSel_save);
22433 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22434 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22435 write_phy_reg(pi, 0xa5, afectrlOverride_save);
22438 return (s16) radio_temp[0] + offset;
22441 static void
22442 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22444 u8 core;
22446 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22447 if (rssi_type == NPHY_RSSI_SEL_NB) {
22448 if (core == PHY_CORE_0) {
22449 mod_radio_reg(pi,
22450 RADIO_2055_CORE1_B0_NBRSSI_VCM,
22451 RADIO_2055_NBRSSI_VCM_I_MASK,
22452 vcm_buf[2 *
22453 core] <<
22454 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22455 mod_radio_reg(pi,
22456 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22457 RADIO_2055_NBRSSI_VCM_Q_MASK,
22458 vcm_buf[2 * core +
22459 1] <<
22460 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22461 } else {
22462 mod_radio_reg(pi,
22463 RADIO_2055_CORE2_B0_NBRSSI_VCM,
22464 RADIO_2055_NBRSSI_VCM_I_MASK,
22465 vcm_buf[2 *
22466 core] <<
22467 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22468 mod_radio_reg(pi,
22469 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22470 RADIO_2055_NBRSSI_VCM_Q_MASK,
22471 vcm_buf[2 * core +
22472 1] <<
22473 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22475 } else {
22476 if (core == PHY_CORE_0)
22477 mod_radio_reg(pi,
22478 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22479 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22480 vcm_buf[2 *
22481 core] <<
22482 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22483 else
22484 mod_radio_reg(pi,
22485 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22486 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22487 vcm_buf[2 *
22488 core] <<
22489 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22494 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22496 u16 classif_state;
22497 u16 clip_state[2];
22498 u16 clip_off[] = { 0xffff, 0xffff };
22499 s32 target_code;
22500 u8 vcm, min_vcm;
22501 u8 vcm_final = 0;
22502 u8 result_idx;
22503 s32 poll_results[8][4] = {
22504 {0, 0, 0, 0},
22505 {0, 0, 0, 0},
22506 {0, 0, 0, 0},
22507 {0, 0, 0, 0},
22508 {0, 0, 0, 0},
22509 {0, 0, 0, 0},
22510 {0, 0, 0, 0},
22511 {0, 0, 0, 0}
22513 s32 poll_result_core[4] = { 0, 0, 0, 0 };
22514 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22515 s32 fine_digital_offset[4];
22516 s32 poll_results_min[4] = { 0, 0, 0, 0 };
22517 s32 min_poll;
22518 u8 vcm_level_max;
22519 u8 core;
22520 u8 wb_cnt;
22521 u8 rssi_type;
22522 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22523 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22524 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22525 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22526 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22527 u16 NPHY_RfctrlCmd_save;
22528 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22529 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22530 u8 rxcore_state;
22531 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22532 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22533 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22534 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22536 NPHY_REV7_RfctrlOverride3_save =
22537 NPHY_REV7_RfctrlOverride4_save =
22538 NPHY_REV7_RfctrlOverride5_save =
22539 NPHY_REV7_RfctrlOverride6_save =
22540 NPHY_REV7_RfctrlMiscReg3_save =
22541 NPHY_REV7_RfctrlMiscReg4_save =
22542 NPHY_REV7_RfctrlMiscReg5_save =
22543 NPHY_REV7_RfctrlMiscReg6_save = 0;
22545 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22546 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22547 wlc_phy_clip_det_nphy(pi, 0, clip_state);
22548 wlc_phy_clip_det_nphy(pi, 1, clip_off);
22550 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22551 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22552 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22553 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22554 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22555 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22556 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22557 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22558 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22559 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22560 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22561 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22562 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22564 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22565 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22566 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22567 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22568 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22569 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22570 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22571 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22572 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22573 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22575 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22576 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22578 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22579 RADIO_MIMO_CORESEL_ALLRXTX);
22580 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22581 RADIO_MIMO_CORESEL_ALLRXTX);
22583 if (NREV_GE(pi->pubpi.phy_rev, 7))
22584 wlc_phy_rfctrl_override_1tomany_nphy(
22586 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22587 0, 0, 0);
22588 else
22589 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22591 if (NREV_GE(pi->pubpi.phy_rev, 7))
22592 wlc_phy_rfctrl_override_1tomany_nphy(
22594 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22595 1, 0, 0);
22596 else
22597 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22599 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22600 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22601 1, 0, 0,
22602 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22603 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22604 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22605 } else {
22606 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22607 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22610 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22611 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22612 wlc_phy_rfctrl_override_nphy_rev7(
22613 pi, (0x1 << 5),
22614 0, 0, 0,
22615 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22616 wlc_phy_rfctrl_override_nphy_rev7(
22617 pi, (0x1 << 4), 1, 0,
22619 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22620 } else {
22621 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22622 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22625 } else {
22626 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22627 wlc_phy_rfctrl_override_nphy_rev7(
22628 pi, (0x1 << 4),
22629 0, 0, 0,
22630 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22631 wlc_phy_rfctrl_override_nphy_rev7(
22632 pi, (0x1 << 5), 1, 0,
22634 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22635 } else {
22636 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22637 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22641 rxcore_state = wlc_phy_rxcore_getstate_nphy(
22642 (struct brcms_phy_pub *) pi);
22644 vcm_level_max = 8;
22646 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22648 if ((rxcore_state & (1 << core)) == 0)
22649 continue;
22651 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22652 core ==
22653 PHY_CORE_0 ?
22654 RADIO_MIMO_CORESEL_CORE1 :
22655 RADIO_MIMO_CORESEL_CORE2,
22656 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22657 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22658 core ==
22659 PHY_CORE_0 ?
22660 RADIO_MIMO_CORESEL_CORE1 :
22661 RADIO_MIMO_CORESEL_CORE2,
22662 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22664 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22665 if (NREV_GE(pi->pubpi.phy_rev, 7))
22666 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22667 RADIO_2057_NB_MASTER_CORE0 :
22668 RADIO_2057_NB_MASTER_CORE1,
22669 RADIO_2057_VCM_MASK, vcm);
22670 else
22671 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22672 ((core ==
22673 PHY_CORE_0) ? RADIO_2056_RX0 :
22674 RADIO_2056_RX1),
22675 RADIO_2056_VCM_MASK,
22676 vcm << RADIO_2056_RSSI_VCM_SHIFT);
22678 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22679 &poll_results[vcm][0],
22680 NPHY_RSSICAL_NPOLL);
22683 for (result_idx = 0; result_idx < 4; result_idx++) {
22684 if ((core == result_idx / 2) &&
22685 (result_idx % 2 == 0)) {
22687 min_d = NPHY_RSSICAL_MAXD;
22688 min_vcm = 0;
22689 min_poll =
22690 NPHY_RSSICAL_MAXREAD *
22691 NPHY_RSSICAL_NPOLL + 1;
22692 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22693 curr_d =
22694 poll_results[vcm][result_idx] *
22695 poll_results[vcm][result_idx] +
22696 poll_results[vcm][result_idx +
22697 1] *
22698 poll_results[vcm][result_idx +
22700 if (curr_d < min_d) {
22701 min_d = curr_d;
22702 min_vcm = vcm;
22704 if (poll_results[vcm][result_idx] <
22705 min_poll)
22706 min_poll =
22707 poll_results[vcm]
22708 [result_idx];
22710 vcm_final = min_vcm;
22711 poll_results_min[result_idx] = min_poll;
22715 if (NREV_GE(pi->pubpi.phy_rev, 7))
22716 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22717 RADIO_2057_NB_MASTER_CORE0 :
22718 RADIO_2057_NB_MASTER_CORE1,
22719 RADIO_2057_VCM_MASK, vcm_final);
22720 else
22721 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22722 ((core ==
22723 PHY_CORE_0) ? RADIO_2056_RX0 :
22724 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22725 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22727 for (result_idx = 0; result_idx < 4; result_idx++) {
22728 if (core == result_idx / 2) {
22729 fine_digital_offset[result_idx] =
22730 (NPHY_RSSICAL_NB_TARGET *
22731 NPHY_RSSICAL_NPOLL) -
22732 poll_results[vcm_final][result_idx];
22733 if (fine_digital_offset[result_idx] < 0) {
22734 fine_digital_offset[result_idx] =
22735 abs(fine_digital_offset
22736 [result_idx]);
22737 fine_digital_offset[result_idx] +=
22738 (NPHY_RSSICAL_NPOLL / 2);
22739 fine_digital_offset[result_idx] /=
22740 NPHY_RSSICAL_NPOLL;
22741 fine_digital_offset[result_idx] =
22742 -fine_digital_offset[
22743 result_idx];
22744 } else {
22745 fine_digital_offset[result_idx] +=
22746 (NPHY_RSSICAL_NPOLL / 2);
22747 fine_digital_offset[result_idx] /=
22748 NPHY_RSSICAL_NPOLL;
22751 if (poll_results_min[result_idx] ==
22752 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22753 fine_digital_offset[result_idx] =
22754 (NPHY_RSSICAL_NB_TARGET -
22755 NPHY_RSSICAL_MAXREAD - 1);
22757 wlc_phy_scale_offset_rssi_nphy(
22758 pi, 0x0,
22759 (s8)
22760 fine_digital_offset
22761 [result_idx],
22762 (result_idx / 2 == 0) ?
22763 RADIO_MIMO_CORESEL_CORE1 :
22764 RADIO_MIMO_CORESEL_CORE2,
22765 (result_idx % 2 == 0) ?
22766 NPHY_RAIL_I : NPHY_RAIL_Q,
22767 NPHY_RSSI_SEL_NB);
22773 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22775 if ((rxcore_state & (1 << core)) == 0)
22776 continue;
22778 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22779 if (wb_cnt == 0) {
22780 rssi_type = NPHY_RSSI_SEL_W1;
22781 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22782 } else {
22783 rssi_type = NPHY_RSSI_SEL_W2;
22784 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22787 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22788 core ==
22789 PHY_CORE_0 ?
22790 RADIO_MIMO_CORESEL_CORE1
22792 RADIO_MIMO_CORESEL_CORE2,
22793 NPHY_RAIL_I, rssi_type);
22794 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22795 core ==
22796 PHY_CORE_0 ?
22797 RADIO_MIMO_CORESEL_CORE1
22799 RADIO_MIMO_CORESEL_CORE2,
22800 NPHY_RAIL_Q, rssi_type);
22802 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22803 NPHY_RSSICAL_NPOLL);
22805 for (result_idx = 0; result_idx < 4; result_idx++) {
22806 if (core == result_idx / 2) {
22807 fine_digital_offset[result_idx] =
22808 (target_code *
22809 NPHY_RSSICAL_NPOLL) -
22810 poll_result_core[result_idx];
22811 if (fine_digital_offset[result_idx] <
22812 0) {
22813 fine_digital_offset[result_idx]
22814 = abs(
22815 fine_digital_offset
22816 [result_idx]);
22817 fine_digital_offset[result_idx]
22818 += (NPHY_RSSICAL_NPOLL
22819 / 2);
22820 fine_digital_offset[result_idx]
22821 /= NPHY_RSSICAL_NPOLL;
22822 fine_digital_offset[result_idx]
22823 = -fine_digital_offset
22824 [result_idx];
22825 } else {
22826 fine_digital_offset[result_idx]
22827 += (NPHY_RSSICAL_NPOLL
22828 / 2);
22829 fine_digital_offset[result_idx]
22830 /= NPHY_RSSICAL_NPOLL;
22833 wlc_phy_scale_offset_rssi_nphy(
22834 pi, 0x0,
22835 (s8)
22836 fine_digital_offset
22837 [core *
22839 (core == PHY_CORE_0) ?
22840 RADIO_MIMO_CORESEL_CORE1 :
22841 RADIO_MIMO_CORESEL_CORE2,
22842 (result_idx % 2 == 0) ?
22843 NPHY_RAIL_I :
22844 NPHY_RAIL_Q,
22845 rssi_type);
22852 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22853 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22855 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22857 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22858 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22859 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22861 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22862 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22863 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22865 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22866 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22867 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22868 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22869 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22870 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22871 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22872 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22873 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22874 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22875 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22877 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22878 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22879 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22880 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22881 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22882 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22883 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22884 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22885 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22886 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22888 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22889 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22891 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22892 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22893 pi->rssical_cache.rssical_radio_regs_2G[0] =
22894 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22895 pi->rssical_cache.rssical_radio_regs_2G[1] =
22896 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22897 } else {
22898 pi->rssical_cache.rssical_radio_regs_2G[0] =
22899 read_radio_reg(pi,
22900 RADIO_2056_RX_RSSI_MISC |
22901 RADIO_2056_RX0);
22902 pi->rssical_cache.rssical_radio_regs_2G[1] =
22903 read_radio_reg(pi,
22904 RADIO_2056_RX_RSSI_MISC |
22905 RADIO_2056_RX1);
22908 pi->rssical_cache.rssical_phyregs_2G[0] =
22909 read_phy_reg(pi, 0x1a6);
22910 pi->rssical_cache.rssical_phyregs_2G[1] =
22911 read_phy_reg(pi, 0x1ac);
22912 pi->rssical_cache.rssical_phyregs_2G[2] =
22913 read_phy_reg(pi, 0x1b2);
22914 pi->rssical_cache.rssical_phyregs_2G[3] =
22915 read_phy_reg(pi, 0x1b8);
22916 pi->rssical_cache.rssical_phyregs_2G[4] =
22917 read_phy_reg(pi, 0x1a4);
22918 pi->rssical_cache.rssical_phyregs_2G[5] =
22919 read_phy_reg(pi, 0x1aa);
22920 pi->rssical_cache.rssical_phyregs_2G[6] =
22921 read_phy_reg(pi, 0x1b0);
22922 pi->rssical_cache.rssical_phyregs_2G[7] =
22923 read_phy_reg(pi, 0x1b6);
22924 pi->rssical_cache.rssical_phyregs_2G[8] =
22925 read_phy_reg(pi, 0x1a5);
22926 pi->rssical_cache.rssical_phyregs_2G[9] =
22927 read_phy_reg(pi, 0x1ab);
22928 pi->rssical_cache.rssical_phyregs_2G[10] =
22929 read_phy_reg(pi, 0x1b1);
22930 pi->rssical_cache.rssical_phyregs_2G[11] =
22931 read_phy_reg(pi, 0x1b7);
22933 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22934 } else {
22935 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22936 pi->rssical_cache.rssical_radio_regs_5G[0] =
22937 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22938 pi->rssical_cache.rssical_radio_regs_5G[1] =
22939 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22940 } else {
22941 pi->rssical_cache.rssical_radio_regs_5G[0] =
22942 read_radio_reg(pi,
22943 RADIO_2056_RX_RSSI_MISC |
22944 RADIO_2056_RX0);
22945 pi->rssical_cache.rssical_radio_regs_5G[1] =
22946 read_radio_reg(pi,
22947 RADIO_2056_RX_RSSI_MISC |
22948 RADIO_2056_RX1);
22951 pi->rssical_cache.rssical_phyregs_5G[0] =
22952 read_phy_reg(pi, 0x1a6);
22953 pi->rssical_cache.rssical_phyregs_5G[1] =
22954 read_phy_reg(pi, 0x1ac);
22955 pi->rssical_cache.rssical_phyregs_5G[2] =
22956 read_phy_reg(pi, 0x1b2);
22957 pi->rssical_cache.rssical_phyregs_5G[3] =
22958 read_phy_reg(pi, 0x1b8);
22959 pi->rssical_cache.rssical_phyregs_5G[4] =
22960 read_phy_reg(pi, 0x1a4);
22961 pi->rssical_cache.rssical_phyregs_5G[5] =
22962 read_phy_reg(pi, 0x1aa);
22963 pi->rssical_cache.rssical_phyregs_5G[6] =
22964 read_phy_reg(pi, 0x1b0);
22965 pi->rssical_cache.rssical_phyregs_5G[7] =
22966 read_phy_reg(pi, 0x1b6);
22967 pi->rssical_cache.rssical_phyregs_5G[8] =
22968 read_phy_reg(pi, 0x1a5);
22969 pi->rssical_cache.rssical_phyregs_5G[9] =
22970 read_phy_reg(pi, 0x1ab);
22971 pi->rssical_cache.rssical_phyregs_5G[10] =
22972 read_phy_reg(pi, 0x1b1);
22973 pi->rssical_cache.rssical_phyregs_5G[11] =
22974 read_phy_reg(pi, 0x1b7);
22976 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22979 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22980 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22983 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
22985 s32 target_code;
22986 u16 classif_state;
22987 u16 clip_state[2];
22988 u16 rssi_ctrl_state[2], pd_state[2];
22989 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
22990 u16 rfctrlintc_override_val;
22991 u16 clip_off[] = { 0xffff, 0xffff };
22992 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
22993 u8 vcm, min_vcm, vcm_tmp[4];
22994 u8 vcm_final[4] = { 0, 0, 0, 0 };
22995 u8 result_idx, ctr;
22996 s32 poll_results[4][4] = {
22997 {0, 0, 0, 0},
22998 {0, 0, 0, 0},
22999 {0, 0, 0, 0},
23000 {0, 0, 0, 0}
23002 s32 poll_miniq[4][2] = {
23003 {0, 0},
23004 {0, 0},
23005 {0, 0},
23006 {0, 0}
23008 s32 min_d, curr_d;
23009 s32 fine_digital_offset[4];
23010 s32 poll_results_min[4] = { 0, 0, 0, 0 };
23011 s32 min_poll;
23013 switch (rssi_type) {
23014 case NPHY_RSSI_SEL_NB:
23015 target_code = NPHY_RSSICAL_NB_TARGET;
23016 break;
23017 case NPHY_RSSI_SEL_W1:
23018 target_code = NPHY_RSSICAL_W1_TARGET;
23019 break;
23020 case NPHY_RSSI_SEL_W2:
23021 target_code = NPHY_RSSICAL_W2_TARGET;
23022 break;
23023 default:
23024 return;
23025 break;
23028 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
23029 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
23030 wlc_phy_clip_det_nphy(pi, 0, clip_state);
23031 wlc_phy_clip_det_nphy(pi, 1, clip_off);
23033 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
23034 rfctrlintc_override_val =
23035 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
23037 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
23038 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
23039 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
23040 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
23042 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
23043 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
23044 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
23045 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
23047 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
23048 RADIO_2055_WBRSSI_G2_PD;
23049 pd_state[0] =
23050 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
23051 pd_state[1] =
23052 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
23053 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
23054 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
23055 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
23056 RADIO_2055_WBRSSI_G2_SEL;
23057 rssi_ctrl_state[0] =
23058 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
23059 rssi_ctrl_state[1] =
23060 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
23061 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
23063 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23064 NPHY_RAIL_I, rssi_type);
23065 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23066 NPHY_RAIL_Q, rssi_type);
23068 for (vcm = 0; vcm < 4; vcm++) {
23070 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
23071 if (rssi_type != NPHY_RSSI_SEL_W2)
23072 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
23074 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
23075 NPHY_RSSICAL_NPOLL);
23077 if ((rssi_type == NPHY_RSSI_SEL_W1)
23078 || (rssi_type == NPHY_RSSI_SEL_W2)) {
23079 for (ctr = 0; ctr < 2; ctr++)
23080 poll_miniq[vcm][ctr] =
23081 min(poll_results[vcm][ctr * 2 + 0],
23082 poll_results[vcm][ctr * 2 + 1]);
23086 for (result_idx = 0; result_idx < 4; result_idx++) {
23087 min_d = NPHY_RSSICAL_MAXD;
23088 min_vcm = 0;
23089 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
23090 for (vcm = 0; vcm < 4; vcm++) {
23091 curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
23092 poll_results[vcm][result_idx] :
23093 poll_miniq[vcm][result_idx / 2]) -
23094 (target_code * NPHY_RSSICAL_NPOLL));
23095 if (curr_d < min_d) {
23096 min_d = curr_d;
23097 min_vcm = vcm;
23099 if (poll_results[vcm][result_idx] < min_poll)
23100 min_poll = poll_results[vcm][result_idx];
23102 vcm_final[result_idx] = min_vcm;
23103 poll_results_min[result_idx] = min_poll;
23106 if (rssi_type != NPHY_RSSI_SEL_W2)
23107 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
23109 for (result_idx = 0; result_idx < 4; result_idx++) {
23110 fine_digital_offset[result_idx] =
23111 (target_code * NPHY_RSSICAL_NPOLL) -
23112 poll_results[vcm_final[result_idx]][result_idx];
23113 if (fine_digital_offset[result_idx] < 0) {
23114 fine_digital_offset[result_idx] =
23115 abs(fine_digital_offset[result_idx]);
23116 fine_digital_offset[result_idx] +=
23117 (NPHY_RSSICAL_NPOLL / 2);
23118 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23119 fine_digital_offset[result_idx] =
23120 -fine_digital_offset[result_idx];
23121 } else {
23122 fine_digital_offset[result_idx] +=
23123 (NPHY_RSSICAL_NPOLL / 2);
23124 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23127 if (poll_results_min[result_idx] ==
23128 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23129 fine_digital_offset[result_idx] =
23130 (target_code - NPHY_RSSICAL_MAXREAD - 1);
23132 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23133 (s8)
23134 fine_digital_offset[result_idx],
23135 (result_idx / 2 ==
23136 0) ? RADIO_MIMO_CORESEL_CORE1 :
23137 RADIO_MIMO_CORESEL_CORE2,
23138 (result_idx % 2 ==
23139 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23140 rssi_type);
23143 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23144 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23145 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23146 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23147 NPHY_RSSI_SEL_NB);
23148 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23149 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23150 NPHY_RSSI_SEL_W1);
23151 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
23152 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23153 NPHY_RSSI_SEL_W2);
23154 else
23155 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23156 NPHY_RSSI_SEL_W2);
23157 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23158 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23159 NPHY_RSSI_SEL_NB);
23160 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23161 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23162 NPHY_RSSI_SEL_W1);
23163 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
23164 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23165 NPHY_RSSI_SEL_W2);
23166 else
23167 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23168 NPHY_RSSI_SEL_W2);
23170 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
23172 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23173 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23174 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23175 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23177 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23178 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23180 wlc_phy_resetcca_nphy(pi);
23183 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
23185 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23186 wlc_phy_rssi_cal_nphy_rev3(pi);
23187 } else {
23188 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23189 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23190 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23195 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
23197 s16 rxpwr, rxpwr0, rxpwr1;
23198 s16 phyRx0_l, phyRx2_l;
23200 rxpwr = 0;
23201 rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23202 rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23204 if (rxpwr0 > 127)
23205 rxpwr0 -= 256;
23206 if (rxpwr1 > 127)
23207 rxpwr1 -= 256;
23209 phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23210 phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23211 if (phyRx2_l > 127)
23212 phyRx2_l -= 256;
23214 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23215 rxpwr0 = rxpwr1;
23216 rxpwr1 = phyRx2_l;
23219 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23220 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23221 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23222 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23223 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23224 rxpwr = (rxpwr0 + rxpwr1) >> 1;
23226 return rxpwr;
23229 static void
23230 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23231 u16 num_samps)
23233 u16 t;
23234 u32 *data_buf = NULL;
23236 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23237 if (data_buf == NULL)
23238 return;
23240 if (pi->phyhang_avoid)
23241 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23243 for (t = 0; t < num_samps; t++)
23244 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23245 (((unsigned int)tone_buf[t].q) & 0x3ff);
23246 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23247 data_buf);
23249 kfree(data_buf);
23251 if (pi->phyhang_avoid)
23252 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23255 static u16
23256 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23257 u8 dac_test_mode)
23259 u8 phy_bw, is_phybw40;
23260 u16 num_samps, t, spur;
23261 s32 theta = 0, rot = 0;
23262 u32 tbl_len;
23263 struct cordic_iq *tone_buf = NULL;
23265 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23266 phy_bw = (is_phybw40 == 1) ? 40 : 20;
23267 tbl_len = (phy_bw << 3);
23269 if (dac_test_mode == 1) {
23270 spur = read_phy_reg(pi, 0x01);
23271 spur = (spur >> 15) & 1;
23272 phy_bw = (spur == 1) ? 82 : 80;
23273 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23275 tbl_len = (phy_bw << 1);
23278 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23279 if (tone_buf == NULL)
23280 return 0;
23282 num_samps = (u16) tbl_len;
23283 rot = ((f_kHz * 36) / phy_bw) / 100;
23284 theta = 0;
23286 for (t = 0; t < num_samps; t++) {
23288 tone_buf[t] = cordic_calc_iq(theta);
23290 theta += rot;
23292 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23293 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23296 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23298 kfree(tone_buf);
23300 return num_samps;
23303 static void
23304 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23305 u16 wait, u8 iqmode, u8 dac_test_mode,
23306 bool modify_bbmult)
23308 u16 bb_mult;
23309 u8 phy_bw, sample_cmd;
23310 u16 orig_RfseqCoreActv;
23311 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23312 lpf_bw_ctl_miscreg4;
23314 if (pi->phyhang_avoid)
23315 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23317 phy_bw = 20;
23318 if (CHSPEC_IS40(pi->radio_chanspec))
23319 phy_bw = 40;
23321 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23323 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23324 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23325 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23326 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23327 (0x7 << 8);
23328 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23329 (0x7 << 8);
23330 } else {
23331 wlc_phy_rfctrl_override_nphy_rev7(
23333 (0x1 << 7),
23334 wlc_phy_read_lpf_bw_ctl_nphy
23335 (pi,
23336 0), 0, 0,
23337 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23339 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23341 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23342 (0x7 << 8);
23343 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23344 (0x7 << 8);
23348 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23350 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23351 &bb_mult);
23352 pi->nphy_bb_mult_save =
23353 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23356 if (modify_bbmult) {
23357 bb_mult = (phy_bw == 20) ? 100 : 71;
23358 bb_mult = (bb_mult << 8) + bb_mult;
23359 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23360 &bb_mult);
23363 if (pi->phyhang_avoid)
23364 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23366 write_phy_reg(pi, 0xc6, num_samps - 1);
23368 if (loops != 0xffff)
23369 write_phy_reg(pi, 0xc4, loops - 1);
23370 else
23371 write_phy_reg(pi, 0xc4, loops);
23373 write_phy_reg(pi, 0xc5, wait);
23375 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23376 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23377 if (iqmode) {
23379 and_phy_reg(pi, 0xc2, 0x7FFF);
23381 or_phy_reg(pi, 0xc2, 0x8000);
23382 } else {
23384 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23385 write_phy_reg(pi, 0xc3, sample_cmd);
23388 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23390 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23394 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23395 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23397 u16 num_samps;
23398 u16 loops = 0xffff;
23399 u16 wait = 0;
23401 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23402 dac_test_mode);
23403 if (num_samps == 0)
23404 return -EBADE;
23406 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23407 dac_test_mode, modify_bbmult);
23409 return 0;
23412 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23414 u16 playback_status;
23415 u16 bb_mult;
23417 if (pi->phyhang_avoid)
23418 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23420 playback_status = read_phy_reg(pi, 0xc7);
23421 if (playback_status & 0x1)
23422 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23423 else if (playback_status & 0x2)
23424 and_phy_reg(pi, 0xc2,
23425 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23427 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23429 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23431 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23432 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23433 &bb_mult);
23435 pi->nphy_bb_mult_save = 0;
23438 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23439 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23440 wlc_phy_rfctrl_override_nphy_rev7(
23442 (0x1 << 7),
23443 0, 0, 1,
23444 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23445 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23449 if (pi->phyhang_avoid)
23450 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23453 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23455 u32 *tx_pwrctrl_tbl = NULL;
23456 uint phyrev = pi->pubpi.phy_rev;
23458 if (PHY_IPA(pi)) {
23459 tx_pwrctrl_tbl =
23460 wlc_phy_get_ipa_gaintbl_nphy(pi);
23461 } else {
23462 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23463 if (NREV_IS(phyrev, 3))
23464 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23465 else if (NREV_IS(phyrev, 4))
23466 tx_pwrctrl_tbl =
23467 (pi->srom_fem5g.extpagain == 3) ?
23468 nphy_tpc_5GHz_txgain_HiPwrEPA :
23469 nphy_tpc_5GHz_txgain_rev4;
23470 else
23471 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23472 } else {
23473 if (NREV_GE(phyrev, 7)) {
23474 if (pi->pubpi.radiorev == 3)
23475 tx_pwrctrl_tbl =
23476 nphy_tpc_txgain_epa_2057rev3;
23477 else if (pi->pubpi.radiorev == 5)
23478 tx_pwrctrl_tbl =
23479 nphy_tpc_txgain_epa_2057rev5;
23480 } else {
23481 if (NREV_GE(phyrev, 5) &&
23482 (pi->srom_fem2g.extpagain == 3))
23483 tx_pwrctrl_tbl =
23484 nphy_tpc_txgain_HiPwrEPA;
23485 else
23486 tx_pwrctrl_tbl =
23487 nphy_tpc_txgain_rev3;
23491 return tx_pwrctrl_tbl;
23494 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23496 u16 base_idx[2], curr_gain[2];
23497 u8 core_no;
23498 struct nphy_txgains target_gain;
23499 u32 *tx_pwrctrl_tbl = NULL;
23501 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23502 if (pi->phyhang_avoid)
23503 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23505 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23506 curr_gain);
23508 if (pi->phyhang_avoid)
23509 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23511 for (core_no = 0; core_no < 2; core_no++) {
23512 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23513 target_gain.ipa[core_no] =
23514 curr_gain[core_no] & 0x0007;
23515 target_gain.pad[core_no] =
23516 ((curr_gain[core_no] & 0x00F8) >> 3);
23517 target_gain.pga[core_no] =
23518 ((curr_gain[core_no] & 0x0F00) >> 8);
23519 target_gain.txgm[core_no] =
23520 ((curr_gain[core_no] & 0x7000) >> 12);
23521 target_gain.txlpf[core_no] =
23522 ((curr_gain[core_no] & 0x8000) >> 15);
23523 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23524 target_gain.ipa[core_no] =
23525 curr_gain[core_no] & 0x000F;
23526 target_gain.pad[core_no] =
23527 ((curr_gain[core_no] & 0x00F0) >> 4);
23528 target_gain.pga[core_no] =
23529 ((curr_gain[core_no] & 0x0F00) >> 8);
23530 target_gain.txgm[core_no] =
23531 ((curr_gain[core_no] & 0x7000) >> 12);
23532 } else {
23533 target_gain.ipa[core_no] =
23534 curr_gain[core_no] & 0x0003;
23535 target_gain.pad[core_no] =
23536 ((curr_gain[core_no] & 0x000C) >> 2);
23537 target_gain.pga[core_no] =
23538 ((curr_gain[core_no] & 0x0070) >> 4);
23539 target_gain.txgm[core_no] =
23540 ((curr_gain[core_no] & 0x0380) >> 7);
23543 } else {
23544 uint phyrev = pi->pubpi.phy_rev;
23546 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23547 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23548 for (core_no = 0; core_no < 2; core_no++) {
23549 if (NREV_GE(phyrev, 3)) {
23550 tx_pwrctrl_tbl =
23551 brcms_phy_get_tx_pwrctrl_tbl(pi);
23552 if (NREV_GE(phyrev, 7)) {
23553 target_gain.ipa[core_no] =
23554 (tx_pwrctrl_tbl
23555 [base_idx[core_no]]
23556 >> 16) & 0x7;
23557 target_gain.pad[core_no] =
23558 (tx_pwrctrl_tbl
23559 [base_idx[core_no]]
23560 >> 19) & 0x1f;
23561 target_gain.pga[core_no] =
23562 (tx_pwrctrl_tbl
23563 [base_idx[core_no]]
23564 >> 24) & 0xf;
23565 target_gain.txgm[core_no] =
23566 (tx_pwrctrl_tbl
23567 [base_idx[core_no]]
23568 >> 28) & 0x7;
23569 target_gain.txlpf[core_no] =
23570 (tx_pwrctrl_tbl
23571 [base_idx[core_no]]
23572 >> 31) & 0x1;
23573 } else {
23574 target_gain.ipa[core_no] =
23575 (tx_pwrctrl_tbl
23576 [base_idx[core_no]]
23577 >> 16) & 0xf;
23578 target_gain.pad[core_no] =
23579 (tx_pwrctrl_tbl
23580 [base_idx[core_no]]
23581 >> 20) & 0xf;
23582 target_gain.pga[core_no] =
23583 (tx_pwrctrl_tbl
23584 [base_idx[core_no]]
23585 >> 24) & 0xf;
23586 target_gain.txgm[core_no] =
23587 (tx_pwrctrl_tbl
23588 [base_idx[core_no]]
23589 >> 28) & 0x7;
23591 } else {
23592 target_gain.ipa[core_no] =
23593 (nphy_tpc_txgain[base_idx[core_no]] >>
23594 16) & 0x3;
23595 target_gain.pad[core_no] =
23596 (nphy_tpc_txgain[base_idx[core_no]] >>
23597 18) & 0x3;
23598 target_gain.pga[core_no] =
23599 (nphy_tpc_txgain[base_idx[core_no]] >>
23600 20) & 0x7;
23601 target_gain.txgm[core_no] =
23602 (nphy_tpc_txgain[base_idx[core_no]] >>
23603 23) & 0x7;
23608 return target_gain;
23611 static void
23612 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23613 struct nphy_txgains target_gain,
23614 struct nphy_iqcal_params *params)
23616 u8 k;
23617 int idx;
23618 u16 gain_index;
23619 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23621 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23622 if (NREV_GE(pi->pubpi.phy_rev, 7))
23623 params->txlpf = target_gain.txlpf[core_no];
23625 params->txgm = target_gain.txgm[core_no];
23626 params->pga = target_gain.pga[core_no];
23627 params->pad = target_gain.pad[core_no];
23628 params->ipa = target_gain.ipa[core_no];
23629 if (NREV_GE(pi->pubpi.phy_rev, 7))
23630 params->cal_gain =
23631 ((params->txlpf << 15) | (params->txgm << 12) |
23632 (params->pga << 8) |
23633 (params->pad << 3) | (params->ipa));
23634 else
23635 params->cal_gain =
23636 ((params->txgm << 12) | (params->pga << 8) |
23637 (params->pad << 4) | (params->ipa));
23639 params->ncorr[0] = 0x79;
23640 params->ncorr[1] = 0x79;
23641 params->ncorr[2] = 0x79;
23642 params->ncorr[3] = 0x79;
23643 params->ncorr[4] = 0x79;
23644 } else {
23646 gain_index = ((target_gain.pad[core_no] << 0) |
23647 (target_gain.pga[core_no] << 4) |
23648 (target_gain.txgm[core_no] << 8));
23650 idx = -1;
23651 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23652 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23653 gain_index) {
23654 idx = k;
23655 break;
23659 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23660 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23661 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23662 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23663 (params->pad << 2));
23664 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23665 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23666 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23667 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23671 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23673 u16 jtag_core, core;
23675 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23677 for (core = 0; core <= 1; core++) {
23679 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23680 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23681 TX_SSI_MASTER);
23683 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23684 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23685 IQCAL_VCM_HG);
23687 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23688 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23689 IQCAL_IDAC);
23691 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23692 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23693 TSSI_VCM);
23695 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23697 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23698 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23699 TX_SSI_MUX);
23701 if (pi->pubpi.radiorev != 5)
23702 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23703 READ_RADIO_REG3(pi, RADIO_2057, TX,
23704 core,
23705 TSSIA);
23707 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23708 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23710 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23711 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23712 TSSI_MISC1);
23714 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23715 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23716 TX_SSI_MASTER, 0x0a);
23717 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23718 IQCAL_VCM_HG, 0x43);
23719 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23720 IQCAL_IDAC, 0x55);
23721 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23722 TSSI_VCM, 0x00);
23723 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23724 TSSIG, 0x00);
23725 if (pi->use_int_tx_iqlo_cal_nphy) {
23726 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23727 core, TX_SSI_MUX, 0x4);
23728 if (!(pi->
23729 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23730 WRITE_RADIO_REG3(pi, RADIO_2057,
23731 TX, core,
23732 TSSIA, 0x31);
23733 else
23734 WRITE_RADIO_REG3(pi, RADIO_2057,
23735 TX, core,
23736 TSSIA, 0x21);
23738 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23739 TSSI_MISC1, 0x00);
23740 } else {
23741 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23742 TX_SSI_MASTER, 0x06);
23743 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23744 IQCAL_VCM_HG, 0x43);
23745 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23746 IQCAL_IDAC, 0x55);
23747 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23748 TSSI_VCM, 0x00);
23750 if (pi->pubpi.radiorev != 5)
23751 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23752 core, TSSIA, 0x00);
23753 if (pi->use_int_tx_iqlo_cal_nphy) {
23754 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23755 core, TX_SSI_MUX,
23756 0x06);
23757 if (!(pi->
23758 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23759 WRITE_RADIO_REG3(pi, RADIO_2057,
23760 TX, core,
23761 TSSIG, 0x31);
23762 else
23763 WRITE_RADIO_REG3(pi, RADIO_2057,
23764 TX, core,
23765 TSSIG, 0x21);
23767 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23768 TSSI_MISC1, 0x00);
23771 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23773 for (core = 0; core <= 1; core++) {
23774 jtag_core =
23775 (core ==
23776 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23778 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23779 read_radio_reg(pi,
23780 RADIO_2056_TX_TX_SSI_MASTER |
23781 jtag_core);
23783 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23784 read_radio_reg(pi,
23785 RADIO_2056_TX_IQCAL_VCM_HG |
23786 jtag_core);
23788 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23789 read_radio_reg(pi,
23790 RADIO_2056_TX_IQCAL_IDAC |
23791 jtag_core);
23793 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23794 read_radio_reg(
23796 RADIO_2056_TX_TSSI_VCM |
23797 jtag_core);
23799 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23800 read_radio_reg(pi,
23801 RADIO_2056_TX_TX_AMP_DET |
23802 jtag_core);
23804 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23805 read_radio_reg(pi,
23806 RADIO_2056_TX_TX_SSI_MUX |
23807 jtag_core);
23809 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23810 read_radio_reg(pi,
23811 RADIO_2056_TX_TSSIA | jtag_core);
23813 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23814 read_radio_reg(pi,
23815 RADIO_2056_TX_TSSIG | jtag_core);
23817 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23818 read_radio_reg(pi,
23819 RADIO_2056_TX_TSSI_MISC1 |
23820 jtag_core);
23822 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23823 read_radio_reg(pi,
23824 RADIO_2056_TX_TSSI_MISC2 |
23825 jtag_core);
23827 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23828 read_radio_reg(pi,
23829 RADIO_2056_TX_TSSI_MISC3 |
23830 jtag_core);
23832 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23833 write_radio_reg(pi,
23834 RADIO_2056_TX_TX_SSI_MASTER |
23835 jtag_core, 0x0a);
23836 write_radio_reg(pi,
23837 RADIO_2056_TX_IQCAL_VCM_HG |
23838 jtag_core, 0x40);
23839 write_radio_reg(pi,
23840 RADIO_2056_TX_IQCAL_IDAC |
23841 jtag_core, 0x55);
23842 write_radio_reg(pi,
23843 RADIO_2056_TX_TSSI_VCM |
23844 jtag_core, 0x00);
23845 write_radio_reg(pi,
23846 RADIO_2056_TX_TX_AMP_DET |
23847 jtag_core, 0x00);
23849 if (PHY_IPA(pi)) {
23850 write_radio_reg(
23852 RADIO_2056_TX_TX_SSI_MUX
23853 | jtag_core, 0x4);
23854 write_radio_reg(pi,
23855 RADIO_2056_TX_TSSIA |
23856 jtag_core, 0x1);
23857 } else {
23858 write_radio_reg(
23860 RADIO_2056_TX_TX_SSI_MUX
23861 | jtag_core, 0x00);
23862 write_radio_reg(pi,
23863 RADIO_2056_TX_TSSIA |
23864 jtag_core, 0x2f);
23866 write_radio_reg(pi,
23867 RADIO_2056_TX_TSSIG | jtag_core,
23868 0x00);
23869 write_radio_reg(pi,
23870 RADIO_2056_TX_TSSI_MISC1 |
23871 jtag_core, 0x00);
23873 write_radio_reg(pi,
23874 RADIO_2056_TX_TSSI_MISC2 |
23875 jtag_core, 0x00);
23876 write_radio_reg(pi,
23877 RADIO_2056_TX_TSSI_MISC3 |
23878 jtag_core, 0x00);
23879 } else {
23880 write_radio_reg(pi,
23881 RADIO_2056_TX_TX_SSI_MASTER |
23882 jtag_core, 0x06);
23883 write_radio_reg(pi,
23884 RADIO_2056_TX_IQCAL_VCM_HG |
23885 jtag_core, 0x40);
23886 write_radio_reg(pi,
23887 RADIO_2056_TX_IQCAL_IDAC |
23888 jtag_core, 0x55);
23889 write_radio_reg(pi,
23890 RADIO_2056_TX_TSSI_VCM |
23891 jtag_core, 0x00);
23892 write_radio_reg(pi,
23893 RADIO_2056_TX_TX_AMP_DET |
23894 jtag_core, 0x00);
23895 write_radio_reg(pi,
23896 RADIO_2056_TX_TSSIA | jtag_core,
23897 0x00);
23899 if (PHY_IPA(pi)) {
23901 write_radio_reg(
23903 RADIO_2056_TX_TX_SSI_MUX
23904 | jtag_core, 0x06);
23905 if (NREV_LT(pi->pubpi.phy_rev, 5))
23906 write_radio_reg(
23908 RADIO_2056_TX_TSSIG
23909 | jtag_core,
23910 0x11);
23911 else
23912 write_radio_reg(
23914 RADIO_2056_TX_TSSIG
23915 | jtag_core,
23916 0x1);
23917 } else {
23918 write_radio_reg(
23920 RADIO_2056_TX_TX_SSI_MUX
23921 | jtag_core, 0x00);
23922 write_radio_reg(pi,
23923 RADIO_2056_TX_TSSIG |
23924 jtag_core, 0x20);
23927 write_radio_reg(pi,
23928 RADIO_2056_TX_TSSI_MISC1 |
23929 jtag_core, 0x00);
23930 write_radio_reg(pi,
23931 RADIO_2056_TX_TSSI_MISC2 |
23932 jtag_core, 0x00);
23933 write_radio_reg(pi,
23934 RADIO_2056_TX_TSSI_MISC3 |
23935 jtag_core, 0x00);
23938 } else {
23940 pi->tx_rx_cal_radio_saveregs[0] =
23941 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23942 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23943 pi->tx_rx_cal_radio_saveregs[1] =
23944 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23945 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23947 pi->tx_rx_cal_radio_saveregs[2] =
23948 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23949 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23950 pi->tx_rx_cal_radio_saveregs[3] =
23951 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23952 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23954 pi->tx_rx_cal_radio_saveregs[4] =
23955 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23956 pi->tx_rx_cal_radio_saveregs[5] =
23957 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23959 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23960 0) {
23962 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23963 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23964 } else {
23966 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23967 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23970 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23972 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23973 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23974 } else {
23976 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23977 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23982 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
23984 u16 jtag_core, core;
23986 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23987 for (core = 0; core <= 1; core++) {
23989 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23990 TX_SSI_MASTER,
23991 pi->
23992 tx_rx_cal_radio_saveregs[(core * 11) +
23993 0]);
23995 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23996 pi->
23997 tx_rx_cal_radio_saveregs[(core * 11) +
23998 1]);
24000 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
24001 pi->
24002 tx_rx_cal_radio_saveregs[(core * 11) +
24003 2]);
24005 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
24006 pi->
24007 tx_rx_cal_radio_saveregs[(core * 11) +
24008 3]);
24010 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
24011 pi->
24012 tx_rx_cal_radio_saveregs[(core * 11) +
24013 5]);
24015 if (pi->pubpi.radiorev != 5)
24016 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24017 TSSIA,
24018 pi->tx_rx_cal_radio_saveregs
24019 [(core * 11) + 6]);
24021 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
24022 pi->
24023 tx_rx_cal_radio_saveregs[(core * 11) +
24024 7]);
24026 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
24027 pi->
24028 tx_rx_cal_radio_saveregs[(core * 11) +
24029 8]);
24031 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24032 for (core = 0; core <= 1; core++) {
24033 jtag_core = (core == PHY_CORE_0) ?
24034 RADIO_2056_TX0 : RADIO_2056_TX1;
24036 write_radio_reg(pi,
24037 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
24038 pi->
24039 tx_rx_cal_radio_saveregs[(core * 11) +
24040 0]);
24042 write_radio_reg(pi,
24043 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
24044 pi->
24045 tx_rx_cal_radio_saveregs[(core * 11) +
24046 1]);
24048 write_radio_reg(pi,
24049 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
24050 pi->
24051 tx_rx_cal_radio_saveregs[(core * 11) +
24052 2]);
24054 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
24055 pi->
24056 tx_rx_cal_radio_saveregs[(core * 11) +
24057 3]);
24059 write_radio_reg(pi,
24060 RADIO_2056_TX_TX_AMP_DET | jtag_core,
24061 pi->
24062 tx_rx_cal_radio_saveregs[(core * 11) +
24063 4]);
24065 write_radio_reg(pi,
24066 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
24067 pi->
24068 tx_rx_cal_radio_saveregs[(core * 11) +
24069 5]);
24071 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
24072 pi->
24073 tx_rx_cal_radio_saveregs[(core * 11) +
24074 6]);
24076 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
24077 pi->
24078 tx_rx_cal_radio_saveregs[(core * 11) +
24079 7]);
24081 write_radio_reg(pi,
24082 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
24083 pi->
24084 tx_rx_cal_radio_saveregs[(core * 11) +
24085 8]);
24087 write_radio_reg(pi,
24088 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
24089 pi->
24090 tx_rx_cal_radio_saveregs[(core * 11) +
24091 9]);
24093 write_radio_reg(pi,
24094 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
24095 pi->
24096 tx_rx_cal_radio_saveregs[(core * 11) +
24097 10]);
24099 } else {
24101 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
24102 pi->tx_rx_cal_radio_saveregs[0]);
24103 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
24104 pi->tx_rx_cal_radio_saveregs[1]);
24105 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
24106 pi->tx_rx_cal_radio_saveregs[2]);
24107 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
24108 pi->tx_rx_cal_radio_saveregs[3]);
24109 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
24110 pi->tx_rx_cal_radio_saveregs[4]);
24111 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
24112 pi->tx_rx_cal_radio_saveregs[5]);
24116 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24118 u16 val, mask;
24120 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24121 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24122 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24124 mask = ((0x3 << 8) | (0x3 << 10));
24125 val = (0x2 << 8);
24126 val |= (0x2 << 10);
24127 mod_phy_reg(pi, 0xa6, mask, val);
24128 mod_phy_reg(pi, 0xa7, mask, val);
24130 val = read_phy_reg(pi, 0x8f);
24131 pi->tx_rx_cal_phy_saveregs[2] = val;
24132 val |= ((0x1 << 9) | (0x1 << 10));
24133 write_phy_reg(pi, 0x8f, val);
24135 val = read_phy_reg(pi, 0xa5);
24136 pi->tx_rx_cal_phy_saveregs[3] = val;
24137 val |= ((0x1 << 9) | (0x1 << 10));
24138 write_phy_reg(pi, 0xa5, val);
24140 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24141 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24143 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24144 &val);
24145 pi->tx_rx_cal_phy_saveregs[5] = val;
24146 val = 0;
24147 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24148 &val);
24150 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24151 &val);
24152 pi->tx_rx_cal_phy_saveregs[6] = val;
24153 val = 0;
24154 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24155 &val);
24157 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24158 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24160 if (!(pi->use_int_tx_iqlo_cal_nphy))
24161 wlc_phy_rfctrlintc_override_nphy(
24163 NPHY_RfctrlIntc_override_PA,
24165 RADIO_MIMO_CORESEL_CORE1
24167 RADIO_MIMO_CORESEL_CORE2);
24168 else
24169 wlc_phy_rfctrlintc_override_nphy(
24171 NPHY_RfctrlIntc_override_PA,
24173 RADIO_MIMO_CORESEL_CORE1
24175 RADIO_MIMO_CORESEL_CORE2);
24177 wlc_phy_rfctrlintc_override_nphy(pi,
24178 NPHY_RfctrlIntc_override_TRSW,
24179 0x2, RADIO_MIMO_CORESEL_CORE1);
24180 wlc_phy_rfctrlintc_override_nphy(pi,
24181 NPHY_RfctrlIntc_override_TRSW,
24182 0x8, RADIO_MIMO_CORESEL_CORE2);
24184 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24185 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24186 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24187 0x29b, (0x1 << 0), (0) << 0);
24189 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24190 0x29b, (0x1 << 0), (0) << 0);
24192 if (NREV_IS(pi->pubpi.phy_rev, 7)
24193 || NREV_GE(pi->pubpi.phy_rev, 8))
24194 wlc_phy_rfctrl_override_nphy_rev7(
24195 pi, (0x1 << 7),
24196 wlc_phy_read_lpf_bw_ctl_nphy
24197 (pi,
24198 0), 0, 0,
24199 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24201 if (pi->use_int_tx_iqlo_cal_nphy
24202 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24204 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24206 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24207 1 << 4);
24209 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24210 mod_radio_reg(
24212 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24213 1, 0);
24214 mod_radio_reg(
24216 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24217 1, 0);
24218 } else {
24219 mod_radio_reg(
24221 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24222 1, 0);
24223 mod_radio_reg(
24225 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24226 1, 0);
24228 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24229 wlc_phy_rfctrl_override_nphy_rev7(
24231 (0x1 << 3), 0,
24232 0x3, 0,
24233 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24236 } else {
24237 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24238 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24240 mask = ((0x3 << 12) | (0x3 << 14));
24241 val = (0x2 << 12);
24242 val |= (0x2 << 14);
24243 mod_phy_reg(pi, 0xa6, mask, val);
24244 mod_phy_reg(pi, 0xa7, mask, val);
24246 val = read_phy_reg(pi, 0xa5);
24247 pi->tx_rx_cal_phy_saveregs[2] = val;
24248 val |= ((0x1 << 12) | (0x1 << 13));
24249 write_phy_reg(pi, 0xa5, val);
24251 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24252 &val);
24253 pi->tx_rx_cal_phy_saveregs[3] = val;
24254 val |= 0x2000;
24255 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24256 &val);
24258 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24259 &val);
24260 pi->tx_rx_cal_phy_saveregs[4] = val;
24261 val |= 0x2000;
24262 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24263 &val);
24265 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24266 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24267 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24268 write_phy_reg(pi, 0x91, val);
24269 write_phy_reg(pi, 0x92, val);
24273 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24275 u16 mask;
24277 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24278 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24279 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24280 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24281 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24282 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24284 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24285 &pi->tx_rx_cal_phy_saveregs[5]);
24286 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24287 &pi->tx_rx_cal_phy_saveregs[6]);
24289 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24290 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24292 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24293 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24295 if (NREV_IS(pi->pubpi.phy_rev, 7)
24296 || NREV_GE(pi->pubpi.phy_rev, 8))
24297 wlc_phy_rfctrl_override_nphy_rev7(
24298 pi, (0x1 << 7), 0, 0,
24300 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24302 wlc_phy_resetcca_nphy(pi);
24304 if (pi->use_int_tx_iqlo_cal_nphy
24305 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24307 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24308 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24309 mod_radio_reg(
24311 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24312 1, 1);
24313 mod_radio_reg(
24315 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24316 1, 1);
24317 } else {
24318 mod_radio_reg(
24320 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24321 1, 1);
24322 mod_radio_reg(
24324 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24325 1, 1);
24328 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24330 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24331 wlc_phy_rfctrl_override_nphy_rev7(
24333 (0x1 << 3), 0,
24334 0x3, 1,
24335 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24338 } else {
24339 mask = ((0x3 << 12) | (0x3 << 14));
24340 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24341 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24342 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24344 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24345 &pi->tx_rx_cal_phy_saveregs[3]);
24347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24348 &pi->tx_rx_cal_phy_saveregs[4]);
24350 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24351 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24355 void
24356 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24358 u16 tssi_reg;
24359 s32 temp, pwrindex[2];
24360 s32 idle_tssi[2];
24361 s32 rssi_buf[4];
24362 s32 tssival[2];
24363 u8 tssi_type;
24365 tssi_reg = read_phy_reg(pi, 0x1e9);
24367 temp = (s32) (tssi_reg & 0x3f);
24368 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24370 temp = (s32) ((tssi_reg >> 8) & 0x3f);
24371 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24373 tssi_type =
24374 CHSPEC_IS5G(pi->radio_chanspec) ?
24375 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24377 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24379 tssival[0] = rssi_buf[0] / ((s32) num_samps);
24380 tssival[1] = rssi_buf[2] / ((s32) num_samps);
24382 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24383 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24385 if (pwrindex[0] < 0)
24386 pwrindex[0] = 0;
24387 else if (pwrindex[0] > 63)
24388 pwrindex[0] = 63;
24390 if (pwrindex[1] < 0)
24391 pwrindex[1] = 0;
24392 else if (pwrindex[1] > 63)
24393 pwrindex[1] = 63;
24395 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24396 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24397 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24398 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24401 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24403 int index;
24404 u32 bbmult_scale;
24405 u16 bbmult;
24406 u16 tblentry;
24408 struct nphy_txiqcal_ladder ladder_lo[] = {
24409 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24410 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24411 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24414 struct nphy_txiqcal_ladder ladder_iq[] = {
24415 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24416 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24417 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24420 bbmult = (core == PHY_CORE_0) ?
24421 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24422 (pi->nphy_txcal_bbmult & 0xff);
24424 for (index = 0; index < 18; index++) {
24425 bbmult_scale = ladder_lo[index].percent * bbmult;
24426 bbmult_scale /= 100;
24428 tblentry =
24429 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24430 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24431 &tblentry);
24433 bbmult_scale = ladder_iq[index].percent * bbmult;
24434 bbmult_scale /= 100;
24436 tblentry =
24437 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24438 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24439 16, &tblentry);
24443 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24445 u16 tmp;
24446 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24448 tmp = (tmp & (0x7f << 8)) >> 8;
24449 return (u8) tmp;
24452 static void
24453 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24455 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24457 if (NREV_GT(pi->pubpi.phy_rev, 1))
24458 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24461 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24463 u16 m0m1;
24465 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24467 return m0m1;
24470 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24472 u16 m0m1 = (u16) ((m0 << 8) | m1);
24474 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24475 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24478 static void
24479 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24480 struct nphy_papd_restore_state *state, u8 core)
24482 s32 tone_freq;
24483 u8 off_core;
24484 u16 mixgain = 0;
24486 off_core = core ^ 0x1;
24487 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24489 if (NREV_IS(pi->pubpi.phy_rev, 7)
24490 || NREV_GE(pi->pubpi.phy_rev, 8))
24491 wlc_phy_rfctrl_override_nphy_rev7(
24492 pi, (0x1 << 7),
24493 wlc_phy_read_lpf_bw_ctl_nphy
24494 (pi,
24495 0), 0, 0,
24496 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24498 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24499 if (pi->pubpi.radiorev == 5)
24500 mixgain = (core == 0) ? 0x20 : 0x00;
24501 else if ((pi->pubpi.radiorev == 7)
24502 || (pi->pubpi.radiorev == 8))
24503 mixgain = 0x00;
24504 else if ((pi->pubpi.radiorev <= 4)
24505 || (pi->pubpi.radiorev == 6))
24506 mixgain = 0x00;
24507 } else {
24508 if ((pi->pubpi.radiorev == 4) ||
24509 (pi->pubpi.radiorev == 6))
24510 mixgain = 0x50;
24511 else if ((pi->pubpi.radiorev == 3)
24512 || (pi->pubpi.radiorev == 7)
24513 || (pi->pubpi.radiorev == 8))
24514 mixgain = 0x0;
24517 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24518 mixgain, (1 << core), 0,
24519 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24521 wlc_phy_rfctrl_override_1tomany_nphy(
24523 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24524 1, (1 << core), 0);
24525 wlc_phy_rfctrl_override_1tomany_nphy(
24527 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24528 0, (1 << off_core), 0);
24530 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24531 0, 0x3, 0,
24532 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24533 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24534 (1 << core), 0,
24535 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24536 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24537 (1 << core), 0,
24538 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24539 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24540 (1 << core), 0,
24541 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24542 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24543 (1 << core), 0,
24544 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24545 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24546 (1 << core), 0,
24547 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24548 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24549 (1 << core), 0,
24550 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24551 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24552 (1 << core), 0,
24553 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24555 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24556 0, (1 << core), 0,
24557 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24558 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24559 (1 << core), 0,
24560 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24562 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24563 0xa6 : 0xa7);
24564 state->afeoverride[core] =
24565 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24566 state->afectrl[off_core] =
24567 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24568 state->afeoverride[off_core] =
24569 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24571 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24572 (0x1 << 2), 0);
24573 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24574 0xa5), (0x1 << 2), (0x1 << 2));
24576 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24577 (0x1 << 2), (0x1 << 2));
24578 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24579 0x8f), (0x1 << 2), (0x1 << 2));
24581 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24582 state->pwrup[core] =
24583 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24584 TXRXCOUPLE_2G_PWRUP);
24585 state->atten[core] =
24586 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24587 TXRXCOUPLE_2G_ATTEN);
24588 state->pwrup[off_core] =
24589 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24590 TXRXCOUPLE_2G_PWRUP);
24591 state->atten[off_core] =
24592 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24593 TXRXCOUPLE_2G_ATTEN);
24595 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24596 TXRXCOUPLE_2G_PWRUP, 0xc);
24598 if ((pi->pubpi.radiorev == 3) ||
24599 (pi->pubpi.radiorev == 4) ||
24600 (pi->pubpi.radiorev == 6))
24601 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24602 TXRXCOUPLE_2G_ATTEN, 0xf0);
24603 else if (pi->pubpi.radiorev == 5)
24604 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24605 TXRXCOUPLE_2G_ATTEN,
24606 (core == 0) ? 0xf7 : 0xf2);
24607 else if ((pi->pubpi.radiorev == 7)
24608 || (pi->pubpi.radiorev == 8))
24609 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24610 TXRXCOUPLE_2G_ATTEN, 0xf0);
24612 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24613 TXRXCOUPLE_2G_PWRUP, 0x0);
24614 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24615 TXRXCOUPLE_2G_ATTEN, 0xff);
24616 } else {
24617 state->pwrup[core] =
24618 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24619 TXRXCOUPLE_5G_PWRUP);
24620 state->atten[core] =
24621 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24622 TXRXCOUPLE_5G_ATTEN);
24623 state->pwrup[off_core] =
24624 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24625 TXRXCOUPLE_5G_PWRUP);
24626 state->atten[off_core] =
24627 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24628 TXRXCOUPLE_5G_ATTEN);
24630 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24631 TXRXCOUPLE_5G_PWRUP, 0xc);
24633 if ((pi->pubpi.radiorev == 7)
24634 || (pi->pubpi.radiorev == 8))
24635 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24636 TXRXCOUPLE_5G_ATTEN, 0xf4);
24638 else
24639 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24640 TXRXCOUPLE_5G_ATTEN, 0xf0);
24642 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24643 TXRXCOUPLE_5G_PWRUP, 0x0);
24644 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24645 TXRXCOUPLE_5G_ATTEN, 0xff);
24648 tone_freq = 4000;
24650 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24652 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24653 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24655 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24656 0x2a4, (0x1 << 13), (1) << 13);
24658 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24659 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24661 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24662 0x2a4, (0x1 << 13), (0) << 13);
24664 } else {
24666 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24668 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24670 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24672 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24673 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24675 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24676 0xa6 : 0xa7);
24677 state->afeoverride[core] =
24678 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24680 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24681 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24682 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24683 0xa5),
24684 (0x1 << 0) |
24685 (0x1 << 1) |
24686 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24688 state->vga_master[core] =
24689 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24690 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24691 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24692 state->fbmix[core] =
24693 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24694 TXFBMIX_G);
24695 state->intpa_master[core] =
24696 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24697 INTPAG_MASTER);
24699 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24700 0x03);
24701 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24702 INTPAG_MASTER, 0x04);
24703 } else {
24704 state->fbmix[core] =
24705 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24706 TXFBMIX_A);
24707 state->intpa_master[core] =
24708 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24709 INTPAA_MASTER);
24711 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24712 0x03);
24713 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24714 INTPAA_MASTER, 0x04);
24718 tone_freq = 4000;
24720 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24722 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24723 0x29b, (0x1 << 0), (1) << 0);
24725 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24726 0x29b, (0x1 << 0), (0) << 0);
24728 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24732 static void
24733 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24734 struct nphy_papd_restore_state *state)
24736 u8 core;
24738 wlc_phy_stopplayback_nphy(pi);
24740 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24742 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24744 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24745 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24746 TXRXCOUPLE_2G_PWRUP, 0);
24747 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24748 TXRXCOUPLE_2G_ATTEN,
24749 state->atten[core]);
24750 } else {
24751 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24752 TXRXCOUPLE_5G_PWRUP, 0);
24753 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24754 TXRXCOUPLE_5G_ATTEN,
24755 state->atten[core]);
24759 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24760 wlc_phy_rfctrl_override_nphy_rev7(
24761 pi, (0x1 << 2),
24762 1, 0x3, 0,
24763 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24764 else
24765 wlc_phy_rfctrl_override_nphy_rev7(
24766 pi, (0x1 << 2),
24767 0, 0x3, 1,
24768 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24770 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24771 0, 0x3, 1,
24772 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24773 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24774 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24775 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24776 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24777 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24778 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24779 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24780 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24781 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24782 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24783 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24784 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24785 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24786 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24787 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24788 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24789 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24790 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24791 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24792 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24793 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24794 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24795 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24796 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24797 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24798 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24799 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24800 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24801 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24802 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24804 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24806 write_phy_reg(pi, (core == PHY_CORE_0) ?
24807 0xa6 : 0xa7, state->afectrl[core]);
24808 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24809 0xa5, state->afeoverride[core]);
24812 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24813 (state->mm & 0xff));
24815 if (NREV_IS(pi->pubpi.phy_rev, 7)
24816 || NREV_GE(pi->pubpi.phy_rev, 8))
24817 wlc_phy_rfctrl_override_nphy_rev7(
24818 pi, (0x1 << 7), 0, 0,
24820 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24821 } else {
24822 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24823 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24824 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24826 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24827 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24829 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24831 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24832 state->vga_master[core]);
24833 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24834 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24835 TXFBMIX_G, state->fbmix[core]);
24836 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24837 INTPAG_MASTER,
24838 state->intpa_master[core]);
24839 } else {
24840 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24841 TXFBMIX_A, state->fbmix[core]);
24842 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24843 INTPAA_MASTER,
24844 state->intpa_master[core]);
24847 write_phy_reg(pi, (core == PHY_CORE_0) ?
24848 0xa6 : 0xa7, state->afectrl[core]);
24849 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24850 0xa5, state->afeoverride[core]);
24853 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24854 (state->mm & 0xff));
24856 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24860 static void
24861 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24862 u32 end)
24864 u32 *buf, *src, *dst, sz;
24866 sz = end - start + 1;
24868 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24869 if (NULL == buf)
24870 return;
24872 src = buf;
24873 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24875 wlc_phy_table_read_nphy(pi,
24876 (core ==
24877 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24878 NPHY_TBL_ID_EPSILONTBL1),
24879 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24881 do {
24882 u32 phy_a1, phy_a2;
24883 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24885 phy_a1 = end - min(end, (winsz >> 1));
24886 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24887 end + (winsz >> 1));
24888 phy_a3 = phy_a2 - phy_a1 + 1;
24889 phy_a6 = 0;
24890 phy_a7 = 0;
24892 do {
24893 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24894 &phy_a5);
24895 phy_a6 += phy_a4;
24896 phy_a7 += phy_a5;
24897 } while (phy_a2-- != phy_a1);
24899 phy_a6 /= phy_a3;
24900 phy_a7 /= phy_a3;
24901 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24902 } while (end-- != start);
24904 wlc_phy_table_write_nphy(pi,
24905 (core ==
24906 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24907 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24909 kfree(buf);
24912 static void
24913 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24914 enum phy_cal_mode cal_mode, u8 core)
24916 u16 phy_a1, phy_a2, phy_a3;
24917 u16 phy_a4, phy_a5;
24918 bool phy_a6;
24919 u8 phy_a7, m[2];
24920 u32 phy_a8 = 0;
24921 struct nphy_txgains phy_a9;
24923 if (NREV_LT(pi->pubpi.phy_rev, 3))
24924 return;
24926 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24928 phy_a6 = ((cal_mode == CAL_GCTRL)
24929 || (cal_mode == CAL_SOFT)) ? true : false;
24931 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24933 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24935 if (CHSPEC_IS2G(pi->radio_chanspec))
24936 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24937 (phy_a9.txgm[core] << 12) |
24938 (phy_a9.pga[core] << 8) |
24939 (txgains->gains.pad[core] << 3) |
24940 (phy_a9.ipa[core]));
24941 else
24942 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24943 (phy_a9.txgm[core] << 12) |
24944 (txgains->gains.pga[core] << 8) |
24945 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24947 wlc_phy_rfctrl_override_1tomany_nphy(
24949 NPHY_REV7_RfctrlOverride_cmd_txgain,
24950 phy_a5, (1 << core), 0);
24952 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24953 if ((pi->pubpi.radiorev <= 4)
24954 || (pi->pubpi.radiorev == 6))
24955 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24956 60 : 79;
24957 else
24958 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24959 45 : 64;
24960 } else {
24961 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24964 m[phy_a7] = 0;
24965 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24967 phy_a2 = 63;
24969 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24970 if ((pi->pubpi.radiorev == 4)
24971 || (pi->pubpi.radiorev == 6)) {
24972 phy_a1 = 30;
24973 phy_a3 = 30;
24974 } else {
24975 phy_a1 = 25;
24976 phy_a3 = 25;
24978 } else {
24979 if ((pi->pubpi.radiorev == 5)
24980 || (pi->pubpi.radiorev == 7)
24981 || (pi->pubpi.radiorev == 8)) {
24982 phy_a1 = 25;
24983 phy_a3 = 25;
24984 } else {
24985 phy_a1 = 35;
24986 phy_a3 = 35;
24990 if (cal_mode == CAL_GCTRL) {
24991 if ((pi->pubpi.radiorev == 5)
24992 && (CHSPEC_IS2G(pi->radio_chanspec)))
24993 phy_a1 = 55;
24994 else if (((pi->pubpi.radiorev == 7) &&
24995 (CHSPEC_IS2G(pi->radio_chanspec))) ||
24996 ((pi->pubpi.radiorev == 8) &&
24997 (CHSPEC_IS2G(pi->radio_chanspec))))
24998 phy_a1 = 60;
24999 else
25000 phy_a1 = 63;
25002 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
25004 phy_a1 = 35;
25005 phy_a3 = 35;
25008 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25009 0x29b, (0x1 << 0), (1) << 0);
25011 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25012 0x29b, (0x1 << 0), (0) << 0);
25014 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25015 0x2a4, (0x1 << 13), (1) << 13);
25017 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25018 0x2a4, (0x1 << 13), (0) << 13);
25020 write_phy_reg(pi, 0x2a1, 0x80);
25021 write_phy_reg(pi, 0x2a2, 0x100);
25023 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25024 0x2a4, (0x7 << 4), (11) << 4);
25026 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25027 0x2a4, (0x7 << 8), (11) << 8);
25029 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25030 0x2a4, (0x7 << 0), (0x3) << 0);
25032 write_phy_reg(pi, 0x2e5, 0x20);
25034 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25036 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25038 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25040 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25041 1, ((core == 0) ? 1 : 2), 0,
25042 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25043 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25044 0, ((core == 0) ? 2 : 1), 0,
25045 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25047 write_phy_reg(pi, 0x2be, 1);
25048 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25050 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25051 0, 0x3, 0,
25052 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25054 wlc_phy_table_write_nphy(pi,
25055 (core ==
25056 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25057 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25058 32, &phy_a8);
25060 if (cal_mode != CAL_GCTRL) {
25061 if (CHSPEC_IS5G(pi->radio_chanspec))
25062 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
25065 wlc_phy_rfctrl_override_1tomany_nphy(
25067 NPHY_REV7_RfctrlOverride_cmd_txgain,
25068 phy_a5, (1 << core), 1);
25070 } else {
25072 if (txgains) {
25073 if (txgains->useindex) {
25074 phy_a4 = 15 - ((txgains->index) >> 3);
25075 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25076 if (NREV_GE(pi->pubpi.phy_rev, 6))
25077 phy_a5 = 0x00f7 | (phy_a4 << 8);
25079 else
25080 if (NREV_IS(pi->pubpi.phy_rev, 5))
25081 phy_a5 = 0x10f7 | (phy_a4 << 8);
25082 else
25083 phy_a5 = 0x50f7 | (phy_a4 << 8);
25084 } else {
25085 phy_a5 = 0x70f7 | (phy_a4 << 8);
25087 wlc_phy_rfctrl_override_nphy(pi,
25088 (0x1 << 13),
25089 phy_a5,
25090 (1 << core), 0);
25091 } else {
25092 wlc_phy_rfctrl_override_nphy(pi,
25093 (0x1 << 13),
25094 0x5bf7,
25095 (1 << core), 0);
25099 if (CHSPEC_IS2G(pi->radio_chanspec))
25100 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
25101 else
25102 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
25104 m[phy_a7] = 0;
25105 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
25107 phy_a2 = 63;
25109 if (cal_mode == CAL_FULL) {
25110 phy_a1 = 25;
25111 phy_a3 = 25;
25112 } else if (cal_mode == CAL_SOFT) {
25113 phy_a1 = 25;
25114 phy_a3 = 25;
25115 } else if (cal_mode == CAL_GCTRL) {
25116 phy_a1 = 63;
25117 phy_a3 = 25;
25118 } else {
25120 phy_a1 = 25;
25121 phy_a3 = 25;
25124 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25125 0x29b, (0x1 << 0), (1) << 0);
25127 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25128 0x29b, (0x1 << 0), (0) << 0);
25130 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25131 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25132 0x2a4, (0x1 << 13), (1) << 13);
25134 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25135 0x2a4, (0x1 << 13), (0) << 13);
25137 write_phy_reg(pi, 0x2a1, 0x20);
25138 write_phy_reg(pi, 0x2a2, 0x60);
25140 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25141 0x2a4, (0xf << 4), (9) << 4);
25143 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25144 0x2a4, (0xf << 8), (9) << 8);
25146 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25147 0x2a4, (0xf << 0), (0x2) << 0);
25149 write_phy_reg(pi, 0x2e5, 0x20);
25150 } else {
25151 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25152 0x2a4, (0x1 << 11), (1) << 11);
25154 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25155 0x2a4, (0x1 << 11), (0) << 11);
25157 write_phy_reg(pi, 0x2a1, 0x80);
25158 write_phy_reg(pi, 0x2a2, 0x600);
25160 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25161 0x2a4, (0x7 << 4), (0) << 4);
25163 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25164 0x2a4, (0x7 << 8), (0) << 8);
25166 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25167 0x2a4, (0x7 << 0), (0x3) << 0);
25169 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25173 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25175 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25177 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25179 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25181 write_phy_reg(pi, 0x2be, 1);
25182 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25184 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25186 wlc_phy_table_write_nphy(pi,
25187 (core ==
25188 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25189 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25190 32, &phy_a8);
25192 if (cal_mode != CAL_GCTRL)
25193 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25197 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25199 int phy_a1;
25200 int phy_a2;
25201 bool phy_a3;
25202 struct nphy_ipa_txcalgains phy_a4;
25203 bool phy_a5 = false;
25204 bool phy_a6 = true;
25205 s32 phy_a7, phy_a8;
25206 u32 phy_a9;
25207 int phy_a10;
25208 bool phy_a11 = false;
25209 int phy_a12;
25210 u8 phy_a13 = 0;
25211 u8 phy_a14;
25212 u8 *phy_a15 = NULL;
25214 phy_a4.useindex = true;
25215 phy_a12 = start_gain;
25217 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25219 phy_a2 = 20;
25220 phy_a1 = 1;
25222 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25223 if (pi->pubpi.radiorev == 5) {
25225 phy_a15 = pad_gain_codes_used_2057rev5;
25226 phy_a13 =
25227 sizeof(pad_gain_codes_used_2057rev5) /
25228 sizeof(pad_gain_codes_used_2057rev5
25229 [0]) - 1;
25231 } else if ((pi->pubpi.radiorev == 7)
25232 || (pi->pubpi.radiorev == 8)) {
25234 phy_a15 = pad_gain_codes_used_2057rev7;
25235 phy_a13 =
25236 sizeof(pad_gain_codes_used_2057rev7) /
25237 sizeof(pad_gain_codes_used_2057rev7
25238 [0]) - 1;
25240 } else {
25242 phy_a15 = pad_all_gain_codes_2057;
25243 phy_a13 = sizeof(pad_all_gain_codes_2057) /
25244 sizeof(pad_all_gain_codes_2057[0]) -
25248 } else {
25250 phy_a15 = pga_all_gain_codes_2057;
25251 phy_a13 = sizeof(pga_all_gain_codes_2057) /
25252 sizeof(pga_all_gain_codes_2057[0]) - 1;
25255 phy_a14 = 0;
25257 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25258 if (CHSPEC_IS2G(pi->radio_chanspec))
25259 phy_a4.gains.pad[core] =
25260 (u16) phy_a15[phy_a12];
25261 else
25262 phy_a4.gains.pga[core] =
25263 (u16) phy_a15[phy_a12];
25265 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25267 wlc_phy_table_read_nphy(pi,
25268 (core ==
25269 PHY_CORE_0 ?
25270 NPHY_TBL_ID_EPSILONTBL0 :
25271 NPHY_TBL_ID_EPSILONTBL1), 1,
25272 63, 32, &phy_a9);
25274 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25276 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25277 (phy_a8 == 4095) || (phy_a8 == -4096));
25279 if (!phy_a6 && (phy_a3 != phy_a5)) {
25280 if (!phy_a3)
25281 phy_a12 -= (u8) phy_a1;
25283 phy_a11 = true;
25284 break;
25287 if (phy_a3)
25288 phy_a12 += (u8) phy_a1;
25289 else
25290 phy_a12 -= (u8) phy_a1;
25292 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25293 if (phy_a12 < phy_a14)
25294 phy_a12 = phy_a14;
25295 else
25296 phy_a12 = phy_a13;
25298 phy_a11 = true;
25299 break;
25302 phy_a6 = false;
25303 phy_a5 = phy_a3;
25306 } else {
25307 phy_a2 = 10;
25308 phy_a1 = 8;
25309 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25310 phy_a4.index = (u8) phy_a12;
25311 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25313 wlc_phy_table_read_nphy(pi,
25314 (core ==
25315 PHY_CORE_0 ?
25316 NPHY_TBL_ID_EPSILONTBL0 :
25317 NPHY_TBL_ID_EPSILONTBL1), 1,
25318 63, 32, &phy_a9);
25320 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25322 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25323 (phy_a8 == 4095) || (phy_a8 == -4096));
25325 if (!phy_a6 && (phy_a3 != phy_a5)) {
25326 if (!phy_a3)
25327 phy_a12 -= (u8) phy_a1;
25329 phy_a11 = true;
25330 break;
25333 if (phy_a3)
25334 phy_a12 += (u8) phy_a1;
25335 else
25336 phy_a12 -= (u8) phy_a1;
25338 if ((phy_a12 < 0) || (phy_a12 > 127)) {
25339 if (phy_a12 < 0)
25340 phy_a12 = 0;
25341 else
25342 phy_a12 = 127;
25344 phy_a11 = true;
25345 break;
25348 phy_a6 = false;
25349 phy_a5 = phy_a3;
25354 if (NREV_GE(pi->pubpi.phy_rev, 7))
25355 return (u8) phy_a15[phy_a12];
25356 else
25357 return (u8) phy_a12;
25361 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25363 struct nphy_ipa_txcalgains phy_b1[2];
25364 struct nphy_papd_restore_state phy_b2;
25365 bool phy_b3;
25366 u8 phy_b4;
25367 u8 phy_b5;
25368 s16 phy_b6, phy_b7, phy_b8;
25369 u16 phy_b9;
25370 s16 phy_b10, phy_b11, phy_b12;
25372 phy_b11 = 0;
25373 phy_b12 = 0;
25374 phy_b7 = 0;
25375 phy_b8 = 0;
25376 phy_b6 = 0;
25378 if (pi->nphy_papd_skip == 1)
25379 return;
25381 phy_b3 = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
25382 MCTL_EN_MAC));
25383 if (!phy_b3)
25384 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25386 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25388 pi->nphy_force_papd_cal = false;
25390 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25391 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25392 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25394 pi->nphy_papd_last_cal = pi->sh->now;
25395 pi->nphy_papd_recal_counter++;
25397 phy_b4 = pi->nphy_txpwrctrl;
25398 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25401 nphy_papd_scaltbl);
25402 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25403 nphy_papd_scaltbl);
25405 phy_b9 = read_phy_reg(pi, 0x01);
25406 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25408 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25409 s32 i, val = 0;
25410 for (i = 0; i < 64; i++)
25411 wlc_phy_table_write_nphy(pi,
25412 ((phy_b5 ==
25413 PHY_CORE_0) ?
25414 NPHY_TBL_ID_EPSILONTBL0 :
25415 NPHY_TBL_ID_EPSILONTBL1), 1,
25416 i, 32, &val);
25419 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25421 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25422 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25423 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25425 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25426 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25427 if ((pi->pubpi.radiorev == 3)
25428 || (pi->pubpi.radiorev == 4)
25429 || (pi->pubpi.radiorev == 6)) {
25430 pi->nphy_papd_cal_gain_index[phy_b5] =
25432 } else if (pi->pubpi.radiorev == 5) {
25433 pi->nphy_papd_cal_gain_index[phy_b5] =
25435 pi->nphy_papd_cal_gain_index[phy_b5] =
25436 wlc_phy_a3_nphy(
25438 pi->
25439 nphy_papd_cal_gain_index
25440 [phy_b5],
25441 phy_b5);
25443 } else if ((pi->pubpi.radiorev == 7)
25444 || (pi->pubpi.radiorev == 8)) {
25446 pi->nphy_papd_cal_gain_index[phy_b5] =
25448 pi->nphy_papd_cal_gain_index[phy_b5] =
25449 wlc_phy_a3_nphy(
25451 pi->
25452 nphy_papd_cal_gain_index
25453 [phy_b5],
25454 phy_b5);
25458 phy_b1[phy_b5].gains.pad[phy_b5] =
25459 pi->nphy_papd_cal_gain_index[phy_b5];
25461 } else {
25462 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25463 pi->nphy_papd_cal_gain_index[phy_b5] =
25464 wlc_phy_a3_nphy(
25466 pi->
25467 nphy_papd_cal_gain_index
25468 [phy_b5], phy_b5);
25469 phy_b1[phy_b5].gains.pga[phy_b5] =
25470 pi->nphy_papd_cal_gain_index[phy_b5];
25472 } else {
25473 phy_b1[phy_b5].useindex = true;
25474 phy_b1[phy_b5].index = 16;
25475 phy_b1[phy_b5].index =
25476 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25477 phy_b5);
25479 pi->nphy_papd_cal_gain_index[phy_b5] =
25480 15 - ((phy_b1[phy_b5].index) >> 3);
25483 switch (pi->nphy_papd_cal_type) {
25484 case 0:
25485 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25486 break;
25487 case 1:
25488 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25489 break;
25492 if (NREV_GE(pi->pubpi.phy_rev, 7))
25493 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25496 if (NREV_LT(pi->pubpi.phy_rev, 7))
25497 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25499 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25500 int eps_offset = 0;
25502 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25503 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25504 if (pi->pubpi.radiorev == 3)
25505 eps_offset = -2;
25506 else if (pi->pubpi.radiorev == 5)
25507 eps_offset = 3;
25508 else
25509 eps_offset = -1;
25510 } else {
25511 eps_offset = 2;
25514 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25515 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25516 phy_b10 = 0;
25517 if ((pi->pubpi.radiorev == 3) ||
25518 (pi->pubpi.radiorev == 4) ||
25519 (pi->pubpi.radiorev == 6)) {
25520 phy_b12 = -(
25521 nphy_papd_padgain_dlt_2g_2057rev3n4
25522 [phy_b8] + 1) / 2;
25523 phy_b10 = -1;
25524 } else if (pi->pubpi.radiorev == 5) {
25525 phy_b12 = -(
25526 nphy_papd_padgain_dlt_2g_2057rev5
25527 [phy_b8] + 1) / 2;
25528 } else if ((pi->pubpi.radiorev == 7) ||
25529 (pi->pubpi.radiorev == 8)) {
25530 phy_b12 = -(
25531 nphy_papd_padgain_dlt_2g_2057rev7
25532 [phy_b8] + 1) / 2;
25534 } else {
25535 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25536 if ((pi->pubpi.radiorev == 3) ||
25537 (pi->pubpi.radiorev == 4) ||
25538 (pi->pubpi.radiorev == 6))
25539 phy_b11 =
25540 -(nphy_papd_pgagain_dlt_5g_2057
25541 [phy_b7]
25542 + 1) / 2;
25543 else if ((pi->pubpi.radiorev == 7)
25544 || (pi->pubpi.radiorev == 8))
25545 phy_b11 = -(
25546 nphy_papd_pgagain_dlt_5g_2057rev7
25547 [phy_b7] + 1) / 2;
25549 phy_b10 = -9;
25552 if (CHSPEC_IS2G(pi->radio_chanspec))
25553 phy_b6 =
25554 -60 + 27 + eps_offset + phy_b12 +
25555 phy_b10;
25556 else
25557 phy_b6 =
25558 -60 + 27 + eps_offset + phy_b11 +
25559 phy_b10;
25561 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25562 0x29c, (0x1ff << 7), (phy_b6) << 7);
25564 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25565 } else {
25566 if (NREV_LT(pi->pubpi.phy_rev, 5))
25567 eps_offset = 4;
25568 else
25569 eps_offset = 2;
25571 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25573 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25574 phy_b11 =
25575 -(nphy_papd_pga_gain_delta_ipa_2g[
25576 phy_b7] +
25577 1) / 2;
25578 phy_b10 = 0;
25579 } else {
25580 phy_b11 =
25581 -(nphy_papd_pga_gain_delta_ipa_5g[
25582 phy_b7] +
25583 1) / 2;
25584 phy_b10 = -9;
25587 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25589 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25590 0x29c, (0x1ff << 7), (phy_b6) << 7);
25592 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25596 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25597 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25599 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25600 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25602 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25603 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25604 0x2a4, (0x1 << 13), (0) << 13);
25606 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25607 0x2a4, (0x1 << 13), (0) << 13);
25609 } else {
25610 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25611 0x2a4, (0x1 << 11), (0) << 11);
25613 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25614 0x2a4, (0x1 << 11), (0) << 11);
25617 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25619 write_phy_reg(pi, 0x01, phy_b9);
25621 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25623 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25624 if (phy_b4 == PHY_TPC_HW_OFF) {
25625 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25626 (s8) (pi->nphy_txpwrindex[0].
25627 index_internal), false);
25628 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25629 (s8) (pi->nphy_txpwrindex[1].
25630 index_internal), false);
25633 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25635 if (!phy_b3)
25636 wlapi_enable_mac(pi->sh->physhim);
25639 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25641 struct nphy_txgains target_gain;
25642 u8 tx_pwr_ctrl_state;
25643 bool fullcal = true;
25644 bool restore_tx_gain = false;
25645 bool mphase;
25647 if (PHY_MUTED(pi))
25648 return;
25650 if (caltype == PHY_PERICAL_AUTO)
25651 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25652 else if (caltype == PHY_PERICAL_PARTIAL)
25653 fullcal = false;
25655 if (pi->cal_type_override != PHY_PERICAL_AUTO)
25656 fullcal =
25657 (pi->cal_type_override ==
25658 PHY_PERICAL_FULL) ? true : false;
25660 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25661 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25662 wlc_phy_cal_perical_mphase_restart(pi);
25665 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25666 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25668 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25670 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25672 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25673 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25674 pi->nphy_cal_orig_pwr_idx[0] =
25675 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25676 pi->nphy_cal_orig_pwr_idx[1] =
25677 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25679 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25680 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25681 0x110, 16,
25682 pi->nphy_cal_orig_tx_gain);
25683 } else {
25684 pi->nphy_cal_orig_tx_gain[0] = 0;
25685 pi->nphy_cal_orig_tx_gain[1] = 0;
25688 target_gain = wlc_phy_get_tx_gain_nphy(pi);
25689 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25690 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25692 if (pi->antsel_type == ANTSEL_2x3)
25693 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25695 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25696 if (!mphase) {
25698 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25699 wlc_phy_precal_txgain_nphy(pi);
25700 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25701 restore_tx_gain = true;
25703 target_gain = pi->nphy_cal_target_gain;
25705 if (0 ==
25706 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25707 mphase)) {
25708 if (PHY_IPA(pi))
25709 wlc_phy_a4(pi, true);
25711 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25712 wlapi_enable_mac(pi->sh->physhim);
25713 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25714 10000);
25715 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25716 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25718 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25719 (pi->first_cal_after_assoc ||
25720 (pi->cal_type_override ==
25721 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25722 wlc_phy_savecal_nphy(pi);
25724 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25726 pi->nphy_perical_last = pi->sh->now;
25729 if (caltype != PHY_PERICAL_AUTO)
25730 wlc_phy_rssi_cal_nphy(pi);
25732 if (pi->first_cal_after_assoc
25733 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25734 pi->first_cal_after_assoc = false;
25735 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25736 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25739 if (NREV_GE(pi->pubpi.phy_rev, 3))
25740 wlc_phy_radio205x_vcocal_nphy(pi);
25741 } else {
25742 switch (pi->mphase_cal_phase_id) {
25743 case MPHASE_CAL_STATE_INIT:
25744 pi->nphy_perical_last = pi->sh->now;
25745 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25747 if (NREV_GE(pi->pubpi.phy_rev, 3))
25748 wlc_phy_precal_txgain_nphy(pi);
25750 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25751 pi->mphase_cal_phase_id++;
25752 break;
25754 case MPHASE_CAL_STATE_TXPHASE0:
25755 case MPHASE_CAL_STATE_TXPHASE1:
25756 case MPHASE_CAL_STATE_TXPHASE2:
25757 case MPHASE_CAL_STATE_TXPHASE3:
25758 case MPHASE_CAL_STATE_TXPHASE4:
25759 case MPHASE_CAL_STATE_TXPHASE5:
25760 if ((pi->radar_percal_mask & 0x10) != 0)
25761 pi->nphy_rxcal_active = true;
25763 if (wlc_phy_cal_txiqlo_nphy
25764 (pi, pi->nphy_cal_target_gain, fullcal,
25765 true) != 0) {
25767 wlc_phy_cal_perical_mphase_reset(pi);
25768 break;
25771 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25772 (pi->mphase_cal_phase_id ==
25773 MPHASE_CAL_STATE_TXPHASE4))
25774 pi->mphase_cal_phase_id += 2;
25775 else
25776 pi->mphase_cal_phase_id++;
25777 break;
25779 case MPHASE_CAL_STATE_PAPDCAL:
25780 if ((pi->radar_percal_mask & 0x2) != 0)
25781 pi->nphy_rxcal_active = true;
25783 if (PHY_IPA(pi))
25784 wlc_phy_a4(pi, true);
25786 pi->mphase_cal_phase_id++;
25787 break;
25789 case MPHASE_CAL_STATE_RXCAL:
25790 if ((pi->radar_percal_mask & 0x1) != 0)
25791 pi->nphy_rxcal_active = true;
25792 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25793 (pi->first_cal_after_assoc ||
25794 (pi->cal_type_override ==
25795 PHY_PERICAL_FULL)) ? 2 : 0,
25796 false) == 0)
25797 wlc_phy_savecal_nphy(pi);
25799 pi->mphase_cal_phase_id++;
25800 break;
25802 case MPHASE_CAL_STATE_RSSICAL:
25803 if ((pi->radar_percal_mask & 0x4) != 0)
25804 pi->nphy_rxcal_active = true;
25805 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25806 wlc_phy_rssi_cal_nphy(pi);
25808 if (NREV_GE(pi->pubpi.phy_rev, 3))
25809 wlc_phy_radio205x_vcocal_nphy(pi);
25811 restore_tx_gain = true;
25813 if (pi->first_cal_after_assoc)
25814 pi->mphase_cal_phase_id++;
25815 else
25816 wlc_phy_cal_perical_mphase_reset(pi);
25818 break;
25820 case MPHASE_CAL_STATE_IDLETSSI:
25821 if ((pi->radar_percal_mask & 0x8) != 0)
25822 pi->nphy_rxcal_active = true;
25824 if (pi->first_cal_after_assoc) {
25825 pi->first_cal_after_assoc = false;
25826 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25827 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25830 wlc_phy_cal_perical_mphase_reset(pi);
25831 break;
25833 default:
25834 wlc_phy_cal_perical_mphase_reset(pi);
25835 break;
25839 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25840 if (restore_tx_gain) {
25841 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25843 wlc_phy_txpwr_index_nphy(pi, 1,
25844 pi->
25845 nphy_cal_orig_pwr_idx
25846 [0], false);
25847 wlc_phy_txpwr_index_nphy(pi, 2,
25848 pi->
25849 nphy_cal_orig_pwr_idx
25850 [1], false);
25852 pi->nphy_txpwrindex[0].index = -1;
25853 pi->nphy_txpwrindex[1].index = -1;
25854 } else {
25855 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25856 (s8) (pi->
25857 nphy_txpwrindex
25858 [0].
25859 index_internal),
25860 false);
25861 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25862 (s8) (pi->
25863 nphy_txpwrindex
25864 [1].
25865 index_internal),
25866 false);
25871 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25872 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25873 wlapi_enable_mac(pi->sh->physhim);
25877 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25878 bool fullcal, bool mphase)
25880 u16 val;
25881 u16 tbl_buf[11];
25882 u8 cal_cnt;
25883 u16 cal_cmd;
25884 u8 num_cals, max_cal_cmds;
25885 u16 core_no, cal_type;
25886 u16 diq_start = 0;
25887 u8 phy_bw;
25888 u16 max_val;
25889 u16 tone_freq;
25890 u16 gain_save[2];
25891 u16 cal_gain[2];
25892 struct nphy_iqcal_params cal_params[2];
25893 u32 tbl_len;
25894 void *tbl_ptr;
25895 bool ladder_updated[2];
25896 u8 mphase_cal_lastphase = 0;
25897 int bcmerror = 0;
25898 bool phyhang_avoid_state = false;
25900 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25901 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25902 0x1902,
25903 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25904 0x6407
25907 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25908 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25909 0x3200,
25910 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25911 0x6407
25914 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25915 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25916 0x1202,
25917 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25918 0x4707
25921 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25922 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25923 0x2300,
25924 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25925 0x4707
25928 u16 tbl_tx_iqlo_cal_startcoefs[] = {
25929 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25930 0x0000
25933 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25934 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25935 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25938 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25939 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25940 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25943 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25944 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25945 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25946 0x0000
25949 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25950 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25951 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25954 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25955 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25956 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25959 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25961 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25962 phyhang_avoid_state = pi->phyhang_avoid;
25963 pi->phyhang_avoid = false;
25966 if (CHSPEC_IS40(pi->radio_chanspec))
25967 phy_bw = 40;
25968 else
25969 phy_bw = 20;
25971 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25973 for (core_no = 0; core_no <= 1; core_no++) {
25974 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25975 &cal_params[core_no]);
25976 cal_gain[core_no] = cal_params[core_no].cal_gain;
25979 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25981 wlc_phy_txcal_radio_setup_nphy(pi);
25983 wlc_phy_txcal_physetup_nphy(pi);
25985 ladder_updated[0] = ladder_updated[1] = false;
25986 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
25987 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
25988 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
25990 if (phy_bw == 40) {
25991 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
25992 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
25993 } else {
25994 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
25995 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
25997 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
25998 16, tbl_ptr);
26000 if (phy_bw == 40) {
26001 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
26002 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
26003 } else {
26004 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
26005 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
26007 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
26008 16, tbl_ptr);
26011 if (NREV_GE(pi->pubpi.phy_rev, 7))
26012 write_phy_reg(pi, 0xc2, 0x8ad9);
26013 else
26014 write_phy_reg(pi, 0xc2, 0x8aa9);
26016 max_val = 250;
26017 tone_freq = (phy_bw == 20) ? 2500 : 5000;
26019 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26020 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
26021 bcmerror = 0;
26022 } else {
26023 bcmerror =
26024 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
26025 false);
26028 if (bcmerror == 0) {
26030 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26031 tbl_ptr = pi->mphase_txcal_bestcoeffs;
26032 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26033 if (NREV_LT(pi->pubpi.phy_rev, 3))
26034 tbl_len -= 2;
26035 } else {
26036 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
26038 tbl_ptr = pi->nphy_txiqlocal_bestc;
26039 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26040 if (NREV_LT(pi->pubpi.phy_rev, 3))
26041 tbl_len -= 2;
26042 } else {
26044 fullcal = true;
26046 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26047 tbl_ptr =
26048 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
26049 tbl_len = ARRAY_SIZE(
26050 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
26051 } else {
26052 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
26053 tbl_len = ARRAY_SIZE(
26054 tbl_tx_iqlo_cal_startcoefs);
26058 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
26059 16, tbl_ptr);
26061 if (fullcal) {
26062 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26063 ARRAY_SIZE(
26064 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
26065 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
26066 } else {
26067 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26068 ARRAY_SIZE(
26069 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
26070 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
26073 if (mphase) {
26074 cal_cnt = pi->mphase_txcal_cmdidx;
26075 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
26076 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
26077 else
26078 num_cals = max_cal_cmds;
26079 } else {
26080 cal_cnt = 0;
26081 num_cals = max_cal_cmds;
26084 for (; cal_cnt < num_cals; cal_cnt++) {
26086 if (fullcal) {
26087 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26088 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
26089 [cal_cnt] :
26090 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
26091 } else {
26092 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26093 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
26094 cal_cnt]
26095 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
26098 core_no = ((cal_cmd & 0x3000) >> 12);
26099 cal_type = ((cal_cmd & 0x0F00) >> 8);
26101 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
26102 (NREV_IS(pi->pubpi.phy_rev, 5) &&
26103 PHY_IPA(pi)
26104 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
26105 if (!ladder_updated[core_no]) {
26106 wlc_phy_update_txcal_ladder_nphy(
26108 core_no);
26109 ladder_updated[core_no] = true;
26113 val =
26114 (cal_params[core_no].
26115 ncorr[cal_type] << 8) | NPHY_N_GCTL;
26116 write_phy_reg(pi, 0xc1, val);
26118 if ((cal_type == 1) || (cal_type == 3)
26119 || (cal_type == 4)) {
26121 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26122 1, 69 + core_no, 16,
26123 tbl_buf);
26125 diq_start = tbl_buf[0];
26127 tbl_buf[0] = 0;
26128 wlc_phy_table_write_nphy(pi,
26129 NPHY_TBL_ID_IQLOCAL, 1,
26130 69 + core_no, 16,
26131 tbl_buf);
26134 write_phy_reg(pi, 0xc0, cal_cmd);
26136 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26137 20000);
26138 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26139 "HW error: txiq calib"))
26140 return -EIO;
26142 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26143 tbl_len, 96, 16, tbl_buf);
26144 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26145 tbl_len, 64, 16, tbl_buf);
26147 if ((cal_type == 1) || (cal_type == 3)
26148 || (cal_type == 4)) {
26150 tbl_buf[0] = diq_start;
26156 if (mphase) {
26157 pi->mphase_txcal_cmdidx = num_cals;
26158 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26159 pi->mphase_txcal_cmdidx = 0;
26162 mphase_cal_lastphase =
26163 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
26164 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
26166 if (!mphase
26167 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26169 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
26170 16, tbl_buf);
26171 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26172 16, tbl_buf);
26174 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26176 tbl_buf[0] = 0;
26177 tbl_buf[1] = 0;
26178 tbl_buf[2] = 0;
26179 tbl_buf[3] = 0;
26182 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26183 16, tbl_buf);
26185 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
26186 16, tbl_buf);
26187 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26188 16, tbl_buf);
26190 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26191 16, tbl_buf);
26193 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26194 if (NREV_LT(pi->pubpi.phy_rev, 3))
26195 tbl_len -= 2;
26197 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26198 tbl_len, 96, 16,
26199 pi->nphy_txiqlocal_bestc);
26201 pi->nphy_txiqlocal_coeffsvalid = true;
26202 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
26203 } else {
26204 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26205 if (NREV_LT(pi->pubpi.phy_rev, 3))
26206 tbl_len -= 2;
26208 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26209 tbl_len, 96, 16,
26210 pi->mphase_txcal_bestcoeffs);
26213 wlc_phy_stopplayback_nphy(pi);
26215 write_phy_reg(pi, 0xc2, 0x0000);
26219 wlc_phy_txcal_phycleanup_nphy(pi);
26221 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26222 gain_save);
26224 wlc_phy_txcal_radio_cleanup_nphy(pi);
26226 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26227 if (!mphase
26228 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26229 wlc_phy_tx_iq_war_nphy(pi);
26232 if (NREV_GE(pi->pubpi.phy_rev, 4))
26233 pi->phyhang_avoid = phyhang_avoid_state;
26235 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26237 return bcmerror;
26240 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26242 u16 tbl_buf[7];
26244 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26245 (pi->nphy_txiqlocal_coeffsvalid)) {
26246 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26247 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26249 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26250 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26251 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26252 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26254 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26255 16, pi->nphy_txiqlocal_bestc);
26257 tbl_buf[0] = 0;
26258 tbl_buf[1] = 0;
26259 tbl_buf[2] = 0;
26260 tbl_buf[3] = 0;
26261 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26262 16, tbl_buf);
26264 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26266 &pi->nphy_txiqlocal_bestc[5]);
26268 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26270 &pi->nphy_txiqlocal_bestc[5]);
26275 void
26276 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26277 struct nphy_iq_comp *pcomp)
26279 if (write) {
26280 write_phy_reg(pi, 0x9a, pcomp->a0);
26281 write_phy_reg(pi, 0x9b, pcomp->b0);
26282 write_phy_reg(pi, 0x9c, pcomp->a1);
26283 write_phy_reg(pi, 0x9d, pcomp->b1);
26284 } else {
26285 pcomp->a0 = read_phy_reg(pi, 0x9a);
26286 pcomp->b0 = read_phy_reg(pi, 0x9b);
26287 pcomp->a1 = read_phy_reg(pi, 0x9c);
26288 pcomp->b1 = read_phy_reg(pi, 0x9d);
26292 void
26293 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26294 u16 num_samps, u8 wait_time, u8 wait_for_crs)
26296 u8 core;
26298 write_phy_reg(pi, 0x12b, num_samps);
26299 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26300 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26301 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26303 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26305 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26306 10000);
26307 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26308 "HW error: rxiq est"))
26309 return;
26311 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26312 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26313 est[core].i_pwr =
26314 (read_phy_reg(pi,
26315 NPHY_IqestipwrAccHi(core)) << 16)
26316 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26317 est[core].q_pwr =
26318 (read_phy_reg(pi,
26319 NPHY_IqestqpwrAccHi(core)) << 16)
26320 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26321 est[core].iq_prod =
26322 (read_phy_reg(pi,
26323 NPHY_IqestIqAccHi(core)) << 16) |
26324 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26329 #define CAL_RETRY_CNT 2
26330 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26332 u8 curr_core;
26333 struct phy_iq_est est[PHY_CORE_MAX];
26334 struct nphy_iq_comp old_comp, new_comp;
26335 s32 iq = 0;
26336 u32 ii = 0, qq = 0;
26337 s16 iq_nbits, qq_nbits, brsh, arsh;
26338 s32 a, b, temp;
26339 int bcmerror = 0;
26340 uint cal_retry = 0;
26342 if (core_mask == 0x0)
26343 return;
26345 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26346 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26347 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26349 cal_try:
26350 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26352 new_comp = old_comp;
26354 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26356 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26357 iq = est[curr_core].iq_prod;
26358 ii = est[curr_core].i_pwr;
26359 qq = est[curr_core].q_pwr;
26360 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26361 iq = est[curr_core].iq_prod;
26362 ii = est[curr_core].i_pwr;
26363 qq = est[curr_core].q_pwr;
26364 } else {
26365 continue;
26368 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26369 bcmerror = -EBADE;
26370 break;
26373 iq_nbits = wlc_phy_nbits(iq);
26374 qq_nbits = wlc_phy_nbits(qq);
26376 arsh = 10 - (30 - iq_nbits);
26377 if (arsh >= 0) {
26378 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26379 temp = (s32) (ii >> arsh);
26380 if (temp == 0) {
26381 bcmerror = -EBADE;
26382 break;
26384 } else {
26385 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26386 temp = (s32) (ii << -arsh);
26387 if (temp == 0) {
26388 bcmerror = -EBADE;
26389 break;
26393 a /= temp;
26395 brsh = qq_nbits - 31 + 20;
26396 if (brsh >= 0) {
26397 b = (qq << (31 - qq_nbits));
26398 temp = (s32) (ii >> brsh);
26399 if (temp == 0) {
26400 bcmerror = -EBADE;
26401 break;
26403 } else {
26404 b = (qq << (31 - qq_nbits));
26405 temp = (s32) (ii << -brsh);
26406 if (temp == 0) {
26407 bcmerror = -EBADE;
26408 break;
26411 b /= temp;
26412 b -= a * a;
26413 b = (s32) int_sqrt((unsigned long) b);
26414 b -= (1 << 10);
26416 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26417 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26418 new_comp.a0 = (s16) a & 0x3ff;
26419 new_comp.b0 = (s16) b & 0x3ff;
26420 } else {
26422 new_comp.a0 = (s16) b & 0x3ff;
26423 new_comp.b0 = (s16) a & 0x3ff;
26426 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26427 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26428 new_comp.a1 = (s16) a & 0x3ff;
26429 new_comp.b1 = (s16) b & 0x3ff;
26430 } else {
26432 new_comp.a1 = (s16) b & 0x3ff;
26433 new_comp.b1 = (s16) a & 0x3ff;
26438 if (bcmerror != 0) {
26439 pr_debug("%s: Failed, cnt = %d\n", __func__, cal_retry);
26441 if (cal_retry < CAL_RETRY_CNT) {
26442 cal_retry++;
26443 goto cal_try;
26446 new_comp = old_comp;
26449 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26452 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26454 u16 offtune_val;
26455 u16 bias_g = 0;
26456 u16 bias_a = 0;
26458 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26459 if (rx_core == PHY_CORE_0) {
26460 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26461 pi->tx_rx_cal_radio_saveregs[0] =
26462 read_radio_reg(pi,
26463 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26464 pi->tx_rx_cal_radio_saveregs[1] =
26465 read_radio_reg(pi,
26466 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26468 write_radio_reg(pi,
26469 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26470 0x3);
26471 write_radio_reg(pi,
26472 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26473 0xaf);
26475 } else {
26476 pi->tx_rx_cal_radio_saveregs[0] =
26477 read_radio_reg(pi,
26478 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26479 pi->tx_rx_cal_radio_saveregs[1] =
26480 read_radio_reg(pi,
26481 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26483 write_radio_reg(
26485 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26486 0x3);
26487 write_radio_reg(
26489 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26490 0x7f);
26493 } else {
26494 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26495 pi->tx_rx_cal_radio_saveregs[0] =
26496 read_radio_reg(pi,
26497 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26498 pi->tx_rx_cal_radio_saveregs[1] =
26499 read_radio_reg(pi,
26500 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26502 write_radio_reg(
26504 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26505 0x3);
26506 write_radio_reg(
26508 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26509 0xaf);
26511 } else {
26512 pi->tx_rx_cal_radio_saveregs[0] =
26513 read_radio_reg(pi,
26514 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26515 pi->tx_rx_cal_radio_saveregs[1] =
26516 read_radio_reg(pi,
26517 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26519 write_radio_reg(pi,
26520 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26521 0x3);
26522 write_radio_reg(pi,
26523 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26524 0x7f);
26528 } else {
26529 if (rx_core == PHY_CORE_0) {
26530 pi->tx_rx_cal_radio_saveregs[0] =
26531 read_radio_reg(pi,
26532 RADIO_2056_TX_RXIQCAL_TXMUX |
26533 RADIO_2056_TX1);
26534 pi->tx_rx_cal_radio_saveregs[1] =
26535 read_radio_reg(pi,
26536 RADIO_2056_RX_RXIQCAL_RXMUX |
26537 RADIO_2056_RX0);
26539 if (pi->pubpi.radiorev >= 5) {
26540 pi->tx_rx_cal_radio_saveregs[2] =
26541 read_radio_reg(pi,
26542 RADIO_2056_RX_RXSPARE2 |
26543 RADIO_2056_RX0);
26544 pi->tx_rx_cal_radio_saveregs[3] =
26545 read_radio_reg(pi,
26546 RADIO_2056_TX_TXSPARE2 |
26547 RADIO_2056_TX1);
26550 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26552 if (pi->pubpi.radiorev >= 5) {
26553 pi->tx_rx_cal_radio_saveregs[4] =
26554 read_radio_reg(pi,
26555 RADIO_2056_RX_LNAA_MASTER
26556 | RADIO_2056_RX0);
26558 write_radio_reg(
26560 RADIO_2056_RX_LNAA_MASTER
26561 | RADIO_2056_RX0, 0x40);
26563 write_radio_reg(pi,
26564 RADIO_2056_TX_TXSPARE2 |
26565 RADIO_2056_TX1, bias_a);
26567 write_radio_reg(pi,
26568 RADIO_2056_RX_RXSPARE2 |
26569 RADIO_2056_RX0, bias_a);
26570 } else {
26571 pi->tx_rx_cal_radio_saveregs[4] =
26572 read_radio_reg(pi,
26573 RADIO_2056_RX_LNAA_TUNE
26574 | RADIO_2056_RX0);
26576 offtune_val =
26577 (pi->tx_rx_cal_radio_saveregs
26578 [2] & 0xF0) >> 8;
26579 offtune_val =
26580 (offtune_val <= 0x7) ? 0xF : 0;
26582 mod_radio_reg(pi,
26583 RADIO_2056_RX_LNAA_TUNE |
26584 RADIO_2056_RX0, 0xF0,
26585 (offtune_val << 8));
26588 write_radio_reg(pi,
26589 RADIO_2056_TX_RXIQCAL_TXMUX |
26590 RADIO_2056_TX1, 0x9);
26591 write_radio_reg(pi,
26592 RADIO_2056_RX_RXIQCAL_RXMUX |
26593 RADIO_2056_RX0, 0x9);
26594 } else {
26595 if (pi->pubpi.radiorev >= 5) {
26596 pi->tx_rx_cal_radio_saveregs[4] =
26597 read_radio_reg(
26599 RADIO_2056_RX_LNAG_MASTER
26600 | RADIO_2056_RX0);
26602 write_radio_reg(
26604 RADIO_2056_RX_LNAG_MASTER
26605 | RADIO_2056_RX0, 0x40);
26607 write_radio_reg(
26609 RADIO_2056_TX_TXSPARE2
26611 RADIO_2056_TX1, bias_g);
26613 write_radio_reg(
26615 RADIO_2056_RX_RXSPARE2
26617 RADIO_2056_RX0, bias_g);
26619 } else {
26620 pi->tx_rx_cal_radio_saveregs[4] =
26621 read_radio_reg(
26623 RADIO_2056_RX_LNAG_TUNE
26624 | RADIO_2056_RX0);
26626 offtune_val =
26627 (pi->
26628 tx_rx_cal_radio_saveregs[2] &
26629 0xF0) >> 8;
26630 offtune_val =
26631 (offtune_val <= 0x7) ? 0xF : 0;
26633 mod_radio_reg(pi,
26634 RADIO_2056_RX_LNAG_TUNE |
26635 RADIO_2056_RX0, 0xF0,
26636 (offtune_val << 8));
26639 write_radio_reg(pi,
26640 RADIO_2056_TX_RXIQCAL_TXMUX |
26641 RADIO_2056_TX1, 0x6);
26642 write_radio_reg(pi,
26643 RADIO_2056_RX_RXIQCAL_RXMUX |
26644 RADIO_2056_RX0, 0x6);
26647 } else {
26648 pi->tx_rx_cal_radio_saveregs[0] =
26649 read_radio_reg(pi,
26650 RADIO_2056_TX_RXIQCAL_TXMUX |
26651 RADIO_2056_TX0);
26652 pi->tx_rx_cal_radio_saveregs[1] =
26653 read_radio_reg(pi,
26654 RADIO_2056_RX_RXIQCAL_RXMUX |
26655 RADIO_2056_RX1);
26657 if (pi->pubpi.radiorev >= 5) {
26658 pi->tx_rx_cal_radio_saveregs[2] =
26659 read_radio_reg(pi,
26660 RADIO_2056_RX_RXSPARE2 |
26661 RADIO_2056_RX1);
26662 pi->tx_rx_cal_radio_saveregs[3] =
26663 read_radio_reg(pi,
26664 RADIO_2056_TX_TXSPARE2 |
26665 RADIO_2056_TX0);
26668 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26670 if (pi->pubpi.radiorev >= 5) {
26671 pi->tx_rx_cal_radio_saveregs[4] =
26672 read_radio_reg(
26674 RADIO_2056_RX_LNAA_MASTER
26675 | RADIO_2056_RX1);
26677 write_radio_reg(
26679 RADIO_2056_RX_LNAA_MASTER |
26680 RADIO_2056_RX1, 0x40);
26682 write_radio_reg(
26684 RADIO_2056_TX_TXSPARE2
26686 RADIO_2056_TX0, bias_a);
26688 write_radio_reg(
26690 RADIO_2056_RX_RXSPARE2
26692 RADIO_2056_RX1, bias_a);
26693 } else {
26694 pi->tx_rx_cal_radio_saveregs[4] =
26695 read_radio_reg(
26697 RADIO_2056_RX_LNAA_TUNE
26698 | RADIO_2056_RX1);
26700 offtune_val =
26701 (pi->
26702 tx_rx_cal_radio_saveregs[2] &
26703 0xF0) >> 8;
26704 offtune_val =
26705 (offtune_val <= 0x7) ? 0xF : 0;
26707 mod_radio_reg(pi,
26708 RADIO_2056_RX_LNAA_TUNE |
26709 RADIO_2056_RX1, 0xF0,
26710 (offtune_val << 8));
26713 write_radio_reg(pi,
26714 RADIO_2056_TX_RXIQCAL_TXMUX |
26715 RADIO_2056_TX0, 0x9);
26716 write_radio_reg(pi,
26717 RADIO_2056_RX_RXIQCAL_RXMUX |
26718 RADIO_2056_RX1, 0x9);
26719 } else {
26720 if (pi->pubpi.radiorev >= 5) {
26721 pi->tx_rx_cal_radio_saveregs[4] =
26722 read_radio_reg(
26724 RADIO_2056_RX_LNAG_MASTER
26725 | RADIO_2056_RX1);
26727 write_radio_reg(
26729 RADIO_2056_RX_LNAG_MASTER
26730 | RADIO_2056_RX1, 0x40);
26732 write_radio_reg(
26734 RADIO_2056_TX_TXSPARE2
26736 RADIO_2056_TX0, bias_g);
26738 write_radio_reg(
26740 RADIO_2056_RX_RXSPARE2
26742 RADIO_2056_RX1, bias_g);
26743 } else {
26744 pi->tx_rx_cal_radio_saveregs[4] =
26745 read_radio_reg(
26747 RADIO_2056_RX_LNAG_TUNE
26748 | RADIO_2056_RX1);
26750 offtune_val =
26751 (pi->
26752 tx_rx_cal_radio_saveregs[2] &
26753 0xF0) >> 8;
26754 offtune_val =
26755 (offtune_val <= 0x7) ? 0xF : 0;
26757 mod_radio_reg(pi,
26758 RADIO_2056_RX_LNAG_TUNE |
26759 RADIO_2056_RX1, 0xF0,
26760 (offtune_val << 8));
26763 write_radio_reg(pi,
26764 RADIO_2056_TX_RXIQCAL_TXMUX |
26765 RADIO_2056_TX0, 0x6);
26766 write_radio_reg(pi,
26767 RADIO_2056_RX_RXIQCAL_RXMUX |
26768 RADIO_2056_RX1, 0x6);
26774 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26776 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26777 if (rx_core == PHY_CORE_0) {
26778 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26779 write_radio_reg(
26781 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26782 pi->
26783 tx_rx_cal_radio_saveregs[0]);
26784 write_radio_reg(
26786 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26787 pi->
26788 tx_rx_cal_radio_saveregs[1]);
26790 } else {
26791 write_radio_reg(
26793 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26794 pi->
26795 tx_rx_cal_radio_saveregs[0]);
26796 write_radio_reg(
26798 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26799 pi->
26800 tx_rx_cal_radio_saveregs[1]);
26803 } else {
26804 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26805 write_radio_reg(
26807 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26808 pi->
26809 tx_rx_cal_radio_saveregs[0]);
26810 write_radio_reg(
26812 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26813 pi->
26814 tx_rx_cal_radio_saveregs[1]);
26816 } else {
26817 write_radio_reg(
26819 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26820 pi->
26821 tx_rx_cal_radio_saveregs[0]);
26822 write_radio_reg(
26824 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26825 pi->
26826 tx_rx_cal_radio_saveregs[1]);
26830 } else {
26831 if (rx_core == PHY_CORE_0) {
26832 write_radio_reg(pi,
26833 RADIO_2056_TX_RXIQCAL_TXMUX |
26834 RADIO_2056_TX1,
26835 pi->tx_rx_cal_radio_saveregs[0]);
26837 write_radio_reg(pi,
26838 RADIO_2056_RX_RXIQCAL_RXMUX |
26839 RADIO_2056_RX0,
26840 pi->tx_rx_cal_radio_saveregs[1]);
26842 if (pi->pubpi.radiorev >= 5) {
26843 write_radio_reg(pi,
26844 RADIO_2056_RX_RXSPARE2 |
26845 RADIO_2056_RX0,
26846 pi->
26847 tx_rx_cal_radio_saveregs[2]);
26849 write_radio_reg(pi,
26850 RADIO_2056_TX_TXSPARE2 |
26851 RADIO_2056_TX1,
26852 pi->
26853 tx_rx_cal_radio_saveregs[3]);
26856 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26857 if (pi->pubpi.radiorev >= 5)
26858 write_radio_reg(
26860 RADIO_2056_RX_LNAA_MASTER
26861 | RADIO_2056_RX0,
26862 pi->
26863 tx_rx_cal_radio_saveregs
26864 [4]);
26865 else
26866 write_radio_reg(
26868 RADIO_2056_RX_LNAA_TUNE
26869 | RADIO_2056_RX0,
26870 pi->
26871 tx_rx_cal_radio_saveregs
26872 [4]);
26873 } else {
26874 if (pi->pubpi.radiorev >= 5)
26875 write_radio_reg(
26877 RADIO_2056_RX_LNAG_MASTER
26878 | RADIO_2056_RX0,
26879 pi->
26880 tx_rx_cal_radio_saveregs
26881 [4]);
26882 else
26883 write_radio_reg(
26885 RADIO_2056_RX_LNAG_TUNE
26886 | RADIO_2056_RX0,
26887 pi->
26888 tx_rx_cal_radio_saveregs
26889 [4]);
26892 } else {
26893 write_radio_reg(pi,
26894 RADIO_2056_TX_RXIQCAL_TXMUX |
26895 RADIO_2056_TX0,
26896 pi->tx_rx_cal_radio_saveregs[0]);
26898 write_radio_reg(pi,
26899 RADIO_2056_RX_RXIQCAL_RXMUX |
26900 RADIO_2056_RX1,
26901 pi->tx_rx_cal_radio_saveregs[1]);
26903 if (pi->pubpi.radiorev >= 5) {
26904 write_radio_reg(pi,
26905 RADIO_2056_RX_RXSPARE2 |
26906 RADIO_2056_RX1,
26907 pi->
26908 tx_rx_cal_radio_saveregs[2]);
26910 write_radio_reg(pi,
26911 RADIO_2056_TX_TXSPARE2 |
26912 RADIO_2056_TX0,
26913 pi->
26914 tx_rx_cal_radio_saveregs[3]);
26917 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26918 if (pi->pubpi.radiorev >= 5)
26919 write_radio_reg(
26921 RADIO_2056_RX_LNAA_MASTER
26922 | RADIO_2056_RX1,
26923 pi->
26924 tx_rx_cal_radio_saveregs
26925 [4]);
26926 else
26927 write_radio_reg(
26929 RADIO_2056_RX_LNAA_TUNE
26930 | RADIO_2056_RX1,
26931 pi->
26932 tx_rx_cal_radio_saveregs
26933 [4]);
26934 } else {
26935 if (pi->pubpi.radiorev >= 5)
26936 write_radio_reg(
26938 RADIO_2056_RX_LNAG_MASTER
26939 | RADIO_2056_RX1,
26940 pi->
26941 tx_rx_cal_radio_saveregs
26942 [4]);
26943 else
26944 write_radio_reg(
26946 RADIO_2056_RX_LNAG_TUNE
26947 | RADIO_2056_RX1,
26948 pi->
26949 tx_rx_cal_radio_saveregs
26950 [4]);
26956 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26958 u8 tx_core;
26959 u16 rx_antval, tx_antval;
26961 if (NREV_GE(pi->pubpi.phy_rev, 7))
26962 tx_core = rx_core;
26963 else
26964 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26966 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26967 pi->tx_rx_cal_phy_saveregs[1] =
26968 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26969 pi->tx_rx_cal_phy_saveregs[2] =
26970 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26971 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
26972 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
26973 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
26974 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
26975 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
26976 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
26977 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26978 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
26979 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
26980 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
26981 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
26984 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
26985 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
26986 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
26987 0x29b, (0x1 << 0), (0) << 0);
26989 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
26990 0x29b, (0x1 << 0), (0) << 0);
26992 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26994 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26996 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
26998 } else {
27000 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27001 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27002 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
27003 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
27006 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
27007 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27008 (0x1 << 2), (0x1 << 2));
27009 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27010 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27011 (0x1 << 0) | (0x1 << 1), 0);
27012 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27013 0x8f : 0xa5,
27014 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
27017 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
27018 RADIO_MIMO_CORESEL_CORE1 |
27019 RADIO_MIMO_CORESEL_CORE2);
27021 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27022 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
27023 0, 0, 0,
27024 NPHY_REV7_RFCTRLOVERRIDE_ID0);
27025 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
27026 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27027 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
27028 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27029 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
27030 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27031 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
27032 NPHY_REV7_RFCTRLOVERRIDE_ID2);
27033 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
27034 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27035 if (CHSPEC_IS40(pi->radio_chanspec))
27036 wlc_phy_rfctrl_override_nphy_rev7(
27038 (0x1 << 7),
27039 2, 0, 0,
27040 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27041 else
27042 wlc_phy_rfctrl_override_nphy_rev7(
27044 (0x1 << 7),
27045 0, 0, 0,
27046 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27048 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
27049 0, 0, 0,
27050 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27051 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
27052 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27053 } else {
27054 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
27057 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
27059 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27061 wlc_phy_rfctrlintc_override_nphy(pi,
27062 NPHY_RfctrlIntc_override_TRSW,
27063 0x1, rx_core + 1);
27064 } else {
27066 if (rx_core == PHY_CORE_0) {
27067 rx_antval = 0x1;
27068 tx_antval = 0x8;
27069 } else {
27070 rx_antval = 0x4;
27071 tx_antval = 0x2;
27074 wlc_phy_rfctrlintc_override_nphy(pi,
27075 NPHY_RfctrlIntc_override_TRSW,
27076 rx_antval, rx_core + 1);
27077 wlc_phy_rfctrlintc_override_nphy(pi,
27078 NPHY_RfctrlIntc_override_TRSW,
27079 tx_antval, tx_core + 1);
27083 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
27086 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
27087 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
27088 pi->tx_rx_cal_phy_saveregs[1]);
27089 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27090 pi->tx_rx_cal_phy_saveregs[2]);
27091 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
27092 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
27094 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
27095 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
27096 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
27097 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
27098 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27099 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
27100 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
27101 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
27102 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
27105 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
27106 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
27109 static void
27110 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
27111 u16 *rxgain, u8 cal_type)
27114 u16 num_samps;
27115 struct phy_iq_est est[PHY_CORE_MAX];
27116 u8 tx_core;
27117 struct nphy_iq_comp save_comp, zero_comp;
27118 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
27119 thresh_pwr = 10000;
27120 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27121 bool gainctrl_done = false;
27122 u8 mix_tia_gain = 3;
27123 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27124 s8 curr_gaintbl_index = 3;
27125 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27126 const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27127 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
27128 int fine_gain_idx;
27129 s8 txpwrindex;
27130 u16 nphy_rxcal_txgain[2];
27132 if (NREV_GE(pi->pubpi.phy_rev, 7))
27133 tx_core = rx_core;
27134 else
27135 tx_core = 1 - rx_core;
27137 num_samps = 1024;
27138 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
27140 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27141 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27142 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27144 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27145 if (NREV_GE(pi->pubpi.phy_rev, 7))
27146 mix_tia_gain = 3;
27147 else if (NREV_GE(pi->pubpi.phy_rev, 4))
27148 mix_tia_gain = 4;
27149 else
27150 mix_tia_gain = 6;
27151 if (NREV_GE(pi->pubpi.phy_rev, 7))
27152 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27153 else
27154 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27155 } else {
27156 if (NREV_GE(pi->pubpi.phy_rev, 7))
27157 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27158 else
27159 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27162 do {
27164 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27165 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27166 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27167 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27168 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27169 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27170 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27172 if (NREV_GE(pi->pubpi.phy_rev, 7))
27173 wlc_phy_rfctrl_override_1tomany_nphy(
27175 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27176 ((lpf_biq1 << 12) |
27177 (lpf_biq0 << 8) |
27178 (mix_tia_gain << 4) | (lna2 << 2)
27179 | lna1), 0x3, 0);
27180 else
27181 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27182 ((hpvga << 12) |
27183 (lpf_biq1 << 10) |
27184 (lpf_biq0 << 8) |
27185 (mix_tia_gain << 4) |
27186 (lna2 << 2) | lna1), 0x3,
27189 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27191 if (txpwrindex == -1) {
27192 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27193 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27194 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
27195 2, 0x110, 16,
27196 nphy_rxcal_txgain);
27197 } else {
27198 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27199 false);
27202 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
27203 NPHY_RXCAL_TONEFREQ_40MHz :
27204 NPHY_RXCAL_TONEFREQ_20MHz,
27205 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27207 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27208 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27209 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27210 curr_pwr = i_pwr + q_pwr;
27212 switch (gainctrl_dirn) {
27213 case NPHY_RXCAL_GAIN_INIT:
27214 if (curr_pwr > thresh_pwr) {
27215 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27216 prev_gaintbl_index = curr_gaintbl_index;
27217 curr_gaintbl_index--;
27218 } else {
27219 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27220 prev_gaintbl_index = curr_gaintbl_index;
27221 curr_gaintbl_index++;
27223 break;
27225 case NPHY_RXCAL_GAIN_UP:
27226 if (curr_pwr > thresh_pwr) {
27227 gainctrl_done = true;
27228 optim_pwr = prev_pwr;
27229 optim_gaintbl_index = prev_gaintbl_index;
27230 } else {
27231 prev_gaintbl_index = curr_gaintbl_index;
27232 curr_gaintbl_index++;
27234 break;
27236 case NPHY_RXCAL_GAIN_DOWN:
27237 if (curr_pwr > thresh_pwr) {
27238 prev_gaintbl_index = curr_gaintbl_index;
27239 curr_gaintbl_index--;
27240 } else {
27241 gainctrl_done = true;
27242 optim_pwr = curr_pwr;
27243 optim_gaintbl_index = curr_gaintbl_index;
27245 break;
27247 default:
27248 break;
27251 if ((curr_gaintbl_index < 0) ||
27252 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27253 gainctrl_done = true;
27254 optim_pwr = curr_pwr;
27255 optim_gaintbl_index = prev_gaintbl_index;
27256 } else {
27257 prev_pwr = curr_pwr;
27260 wlc_phy_stopplayback_nphy(pi);
27261 } while (!gainctrl_done);
27263 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27264 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27265 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27266 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27267 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27268 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27270 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27271 delta_pwr = desired_log2_pwr - actual_log2_pwr;
27273 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27274 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27276 if (fine_gain_idx + (int)lpf_biq0 > 10)
27277 lpf_biq1 = 10 - lpf_biq0;
27278 else
27279 lpf_biq1 = (u16) max(fine_gain_idx, 0);
27281 wlc_phy_rfctrl_override_1tomany_nphy(
27283 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27284 ((lpf_biq1 << 12) |
27285 (lpf_biq0 << 8) |
27286 (mix_tia_gain << 4) |
27287 (lna2 << 2) | lna1), 0x3,
27289 } else {
27290 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27291 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27292 ((hpvga << 12) |
27293 (lpf_biq1 << 10) |
27294 (lpf_biq0 << 8) |
27295 (mix_tia_gain << 4) |
27296 (lna2 << 2) |
27297 lna1), 0x3, 0);
27300 if (rxgain != NULL) {
27301 *rxgain++ = lna1;
27302 *rxgain++ = lna2;
27303 *rxgain++ = mix_tia_gain;
27304 *rxgain++ = lpf_biq0;
27305 *rxgain++ = lpf_biq1;
27306 *rxgain = hpvga;
27309 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27312 static void
27313 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27314 u8 cal_type)
27316 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27319 static u8
27320 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27322 u32 target_bws[2] = { 9500, 21000 };
27323 u32 ref_tones[2] = { 3000, 6000 };
27324 u32 target_bw, ref_tone;
27326 u32 target_pwr_ratios[2] = { 28606, 18468 };
27327 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27329 u16 start_rccal_ovr_val = 128;
27330 u16 txlpf_rccal_lpc_ovr_val = 128;
27331 u16 rxlpf_rccal_hpc_ovr_val = 159;
27333 u16 orig_txlpf_rccal_lpc_ovr_val;
27334 u16 orig_rxlpf_rccal_hpc_ovr_val;
27335 u16 radio_addr_offset_rx;
27336 u16 radio_addr_offset_tx;
27337 u16 orig_dcBypass;
27338 u16 orig_RxStrnFilt40Num[6];
27339 u16 orig_RxStrnFilt40Den[4];
27340 u16 orig_rfctrloverride[2];
27341 u16 orig_rfctrlauxreg[2];
27342 u16 orig_rfctrlrssiothers;
27343 u16 tx_lpf_bw = 4;
27345 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27346 u16 lpf_hpc = 7, hpvga_hpc = 7;
27348 s8 rccal_stepsize;
27349 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27350 u32 ref_iq_vals = 0, target_iq_vals = 0;
27351 u16 num_samps, log_num_samps = 10;
27352 struct phy_iq_est est[PHY_CORE_MAX];
27354 if (NREV_GE(pi->pubpi.phy_rev, 7))
27355 return 0;
27357 num_samps = (1 << log_num_samps);
27359 if (CHSPEC_IS40(pi->radio_chanspec)) {
27360 target_bw = target_bws[1];
27361 target_pwr_ratio = target_pwr_ratios[1];
27362 ref_tone = ref_tones[1];
27363 rx_lpf_bw = rx_lpf_bws[1];
27364 } else {
27365 target_bw = target_bws[0];
27366 target_pwr_ratio = target_pwr_ratios[0];
27367 ref_tone = ref_tones[0];
27368 rx_lpf_bw = rx_lpf_bws[0];
27371 if (core_idx == 0) {
27372 radio_addr_offset_rx = RADIO_2056_RX0;
27373 radio_addr_offset_tx =
27374 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27375 } else {
27376 radio_addr_offset_rx = RADIO_2056_RX1;
27377 radio_addr_offset_tx =
27378 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27381 orig_txlpf_rccal_lpc_ovr_val =
27382 read_radio_reg(pi,
27383 (RADIO_2056_TX_TXLPF_RCCAL |
27384 radio_addr_offset_tx));
27385 orig_rxlpf_rccal_hpc_ovr_val =
27386 read_radio_reg(pi,
27387 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27388 radio_addr_offset_rx));
27390 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27392 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27393 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27394 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27395 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27396 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27397 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27398 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27399 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27400 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27401 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27403 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27404 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27405 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27406 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27407 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27409 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27410 txlpf_rccal_lpc_ovr_val);
27412 write_radio_reg(pi,
27413 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27414 rxlpf_rccal_hpc_ovr_val);
27416 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27418 write_phy_reg(pi, 0x267, 0x02d4);
27419 write_phy_reg(pi, 0x268, 0x0000);
27420 write_phy_reg(pi, 0x269, 0x0000);
27421 write_phy_reg(pi, 0x26a, 0x0000);
27422 write_phy_reg(pi, 0x26b, 0x0000);
27423 write_phy_reg(pi, 0x26c, 0x02d4);
27424 write_phy_reg(pi, 0x26d, 0x0000);
27425 write_phy_reg(pi, 0x26e, 0x0000);
27426 write_phy_reg(pi, 0x26f, 0x0000);
27427 write_phy_reg(pi, 0x270, 0x0000);
27429 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27430 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27431 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27432 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27434 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27435 (0x7 << 10), (tx_lpf_bw << 10));
27436 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27437 (0x7 << 0), (hpvga_hpc << 0));
27438 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27439 (0x7 << 4), (lpf_hpc << 4));
27440 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27441 (0x7 << 8), (rx_lpf_bw << 8));
27443 rccal_stepsize = 16;
27444 rccal_val = start_rccal_ovr_val + rccal_stepsize;
27446 while (rccal_stepsize >= 0) {
27447 write_radio_reg(pi,
27448 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27449 radio_addr_offset_rx), rccal_val);
27451 if (rccal_stepsize == 16) {
27453 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27454 0, 1, false);
27455 udelay(2);
27457 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27459 if (core_idx == 0)
27460 ref_iq_vals =
27461 max_t(u32, (est[0].i_pwr +
27462 est[0].q_pwr) >>
27463 (log_num_samps + 1),
27465 else
27466 ref_iq_vals =
27467 max_t(u32, (est[1].i_pwr +
27468 est[1].q_pwr) >>
27469 (log_num_samps + 1),
27472 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27473 0, 1, false);
27474 udelay(2);
27477 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27479 if (core_idx == 0)
27480 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27481 (log_num_samps + 1);
27482 else
27483 target_iq_vals =
27484 (est[1].i_pwr +
27485 est[1].q_pwr) >> (log_num_samps + 1);
27487 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27489 if (rccal_stepsize == 0)
27490 rccal_stepsize--;
27491 else if (rccal_stepsize == 1) {
27492 last_rccal_val = rccal_val;
27493 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27494 last_pwr_ratio = pwr_ratio;
27495 rccal_stepsize--;
27496 } else {
27497 rccal_stepsize = (rccal_stepsize >> 1);
27498 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27499 rccal_stepsize : (-rccal_stepsize));
27502 if (rccal_stepsize == -1) {
27503 best_rccal_val =
27504 (abs((int)last_pwr_ratio -
27505 (int)target_pwr_ratio) <
27506 abs((int)pwr_ratio -
27507 (int)target_pwr_ratio)) ? last_rccal_val :
27508 rccal_val;
27510 if (CHSPEC_IS40(pi->radio_chanspec)) {
27511 if ((best_rccal_val > 140)
27512 || (best_rccal_val < 135))
27513 best_rccal_val = 138;
27514 } else {
27515 if ((best_rccal_val > 142)
27516 || (best_rccal_val < 137))
27517 best_rccal_val = 140;
27520 write_radio_reg(pi,
27521 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27522 radio_addr_offset_rx), best_rccal_val);
27526 wlc_phy_stopplayback_nphy(pi);
27528 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27529 orig_txlpf_rccal_lpc_ovr_val);
27530 write_radio_reg(pi,
27531 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27532 orig_rxlpf_rccal_hpc_ovr_val);
27534 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27536 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27537 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27538 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27539 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27540 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27541 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27542 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27543 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27544 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27545 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27547 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27548 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27549 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27550 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27551 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27553 pi->nphy_anarxlpf_adjusted = false;
27555 return best_rccal_val - 0x80;
27558 #define WAIT_FOR_SCOPE 4000
27559 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27560 struct nphy_txgains target_gain,
27561 u8 cal_type, bool debug)
27563 u16 orig_BBConfig;
27564 u8 core_no, rx_core;
27565 u8 best_rccal[2];
27566 u16 gain_save[2];
27567 u16 cal_gain[2];
27568 struct nphy_iqcal_params cal_params[2];
27569 u8 rxcore_state;
27570 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27571 s8 txlpf_idac;
27572 bool phyhang_avoid_state = false;
27573 bool skip_rxiqcal = false;
27575 orig_BBConfig = read_phy_reg(pi, 0x01);
27576 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27578 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27580 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27581 phyhang_avoid_state = pi->phyhang_avoid;
27582 pi->phyhang_avoid = false;
27585 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27587 for (core_no = 0; core_no <= 1; core_no++) {
27588 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27589 &cal_params[core_no]);
27590 cal_gain[core_no] = cal_params[core_no].cal_gain;
27593 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27595 rxcore_state = wlc_phy_rxcore_getstate_nphy(
27596 (struct brcms_phy_pub *) pi);
27598 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27600 skip_rxiqcal =
27601 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27603 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27605 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27607 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27609 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27611 wlc_phy_tx_tone_nphy(pi,
27612 (CHSPEC_IS40(
27613 pi->radio_chanspec)) ?
27614 NPHY_RXCAL_TONEFREQ_40MHz :
27615 NPHY_RXCAL_TONEFREQ_20MHz,
27616 NPHY_RXCAL_TONEAMP, 0, cal_type,
27617 false);
27619 if (debug)
27620 mdelay(WAIT_FOR_SCOPE);
27622 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27623 wlc_phy_stopplayback_nphy(pi);
27626 if (((cal_type == 1) || (cal_type == 2))
27627 && NREV_LT(pi->pubpi.phy_rev, 7)) {
27629 if (rx_core == PHY_CORE_1) {
27631 if (rxcore_state == 1)
27632 wlc_phy_rxcore_setstate_nphy(
27633 (struct brcms_phy_pub *) pi, 3);
27635 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27638 best_rccal[rx_core] =
27639 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27640 pi->nphy_rccal_value = best_rccal[rx_core];
27642 if (rxcore_state == 1)
27643 wlc_phy_rxcore_setstate_nphy(
27644 (struct brcms_phy_pub *) pi,
27645 rxcore_state);
27649 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27651 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27652 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27655 if ((cal_type == 1) || (cal_type == 2)) {
27657 best_rccal[0] = best_rccal[1];
27658 write_radio_reg(pi,
27659 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27660 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27662 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27663 rxlpf_rccal_hpc =
27664 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
27665 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27667 if (PHY_IPA(pi)) {
27668 txlpf_rccal_lpc +=
27669 (pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27670 txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27671 0x0e : 0x13;
27672 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27673 TXLPF_IDAC_4, txlpf_idac);
27676 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27678 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27681 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27682 ((rx_core ==
27683 PHY_CORE_0) ? RADIO_2056_RX0 :
27684 RADIO_2056_RX1)),
27685 (rxlpf_rccal_hpc | 0x80));
27687 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27688 ((rx_core ==
27689 PHY_CORE_0) ? RADIO_2056_TX0 :
27690 RADIO_2056_TX1)),
27691 (txlpf_rccal_lpc | 0x80));
27695 write_phy_reg(pi, 0x01, orig_BBConfig);
27697 wlc_phy_resetcca_nphy(pi);
27699 if (NREV_GE(pi->pubpi.phy_rev, 7))
27700 wlc_phy_rfctrl_override_1tomany_nphy(
27702 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27703 0, 0x3, 1);
27704 else
27705 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27707 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27709 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27710 gain_save);
27712 if (NREV_GE(pi->pubpi.phy_rev, 4))
27713 pi->phyhang_avoid = phyhang_avoid_state;
27715 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27717 return 0;
27720 static int
27721 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27722 struct nphy_txgains target_gain, bool debug)
27724 struct phy_iq_est est[PHY_CORE_MAX];
27725 u8 core_num, rx_core, tx_core;
27726 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27727 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27728 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27729 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27730 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27731 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27732 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27733 u16 num_samps;
27734 u32 i_pwr, q_pwr, tot_pwr[3];
27735 u8 gain_pass, use_hpf_num;
27736 u16 mask, val1, val2;
27737 u16 core_no;
27738 u16 gain_save[2];
27739 u16 cal_gain[2];
27740 struct nphy_iqcal_params cal_params[2];
27741 u8 phy_bw;
27742 int bcmerror = 0;
27743 bool first_playtone = true;
27745 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27747 if (NREV_LT(pi->pubpi.phy_rev, 2))
27748 wlc_phy_reapply_txcal_coeffs_nphy(pi);
27750 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27752 for (core_no = 0; core_no <= 1; core_no++) {
27753 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27754 &cal_params[core_no]);
27755 cal_gain[core_no] = cal_params[core_no].cal_gain;
27758 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27760 num_samps = 1024;
27761 desired_log2_pwr = 13;
27763 for (core_num = 0; core_num < 2; core_num++) {
27765 rx_core = core_num;
27766 tx_core = 1 - core_num;
27768 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27769 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27770 0xa6 : 0xa7);
27771 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27772 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27773 0x91 : 0x92);
27774 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27775 0x91 : 0x92);
27777 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27778 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27780 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27781 ((0x1 << 1) | (0x1 << 2)));
27782 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27784 if (((pi->nphy_rxcalparams) & 0xff000000))
27785 write_phy_reg(pi,
27786 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27787 (CHSPEC_IS5G(pi->radio_chanspec) ?
27788 0x140 : 0x110));
27789 else
27790 write_phy_reg(pi,
27791 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27792 (CHSPEC_IS5G(pi->radio_chanspec) ?
27793 0x180 : 0x120));
27795 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27796 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27797 0x114));
27799 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27800 if (rx_core == PHY_CORE_0) {
27801 val1 = RADIO_2055_COUPLE_RX_MASK;
27802 val2 = RADIO_2055_COUPLE_TX_MASK;
27803 } else {
27804 val1 = RADIO_2055_COUPLE_TX_MASK;
27805 val2 = RADIO_2055_COUPLE_RX_MASK;
27808 if ((pi->nphy_rxcalparams & 0x10000)) {
27809 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27810 val1);
27811 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27812 val2);
27815 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27817 if (debug)
27818 mdelay(WAIT_FOR_SCOPE);
27820 if (gain_pass < 3) {
27821 curr_lna = lna_vals[gain_pass];
27822 curr_hpf1 = hpf1_vals[gain_pass];
27823 curr_hpf2 = hpf2_vals[gain_pass];
27824 } else {
27826 if (tot_pwr[1] > 10000) {
27827 curr_lna = lna_vals[2];
27828 curr_hpf1 = hpf1_vals[2];
27829 curr_hpf2 = hpf2_vals[2];
27830 use_hpf_num = 1;
27831 curr_hpf = curr_hpf1;
27832 actual_log2_pwr =
27833 wlc_phy_nbits(tot_pwr[2]);
27834 } else {
27835 if (tot_pwr[0] > 10000) {
27836 curr_lna = lna_vals[1];
27837 curr_hpf1 = hpf1_vals[1];
27838 curr_hpf2 = hpf2_vals[1];
27839 use_hpf_num = 1;
27840 curr_hpf = curr_hpf1;
27841 actual_log2_pwr =
27842 wlc_phy_nbits(
27843 tot_pwr[1]);
27844 } else {
27845 curr_lna = lna_vals[0];
27846 curr_hpf1 = hpf1_vals[0];
27847 curr_hpf2 = hpf2_vals[0];
27848 use_hpf_num = 2;
27849 curr_hpf = curr_hpf2;
27850 actual_log2_pwr =
27851 wlc_phy_nbits(
27852 tot_pwr[0]);
27856 hpf_change = desired_log2_pwr - actual_log2_pwr;
27857 curr_hpf += hpf_change;
27858 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27859 if (use_hpf_num == 1)
27860 curr_hpf1 = curr_hpf;
27861 else
27862 curr_hpf2 = curr_hpf;
27865 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27866 ((curr_hpf2 << 8) |
27867 (curr_hpf1 << 4) |
27868 (curr_lna << 2)), 0x3, 0);
27869 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27871 wlc_phy_stopplayback_nphy(pi);
27873 if (first_playtone) {
27874 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27875 (u16) (pi->nphy_rxcalparams &
27876 0xffff), 0, 0, true);
27877 first_playtone = false;
27878 } else {
27879 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27880 40 : 20;
27881 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27882 0, 0, 0, true);
27885 if (bcmerror == 0) {
27886 if (gain_pass < 3) {
27888 wlc_phy_rx_iq_est_nphy(pi, est,
27889 num_samps, 32,
27891 i_pwr = (est[rx_core].i_pwr +
27892 num_samps / 2) / num_samps;
27893 q_pwr = (est[rx_core].q_pwr +
27894 num_samps / 2) / num_samps;
27895 tot_pwr[gain_pass] = i_pwr + q_pwr;
27896 } else {
27898 wlc_phy_calc_rx_iq_comp_nphy(pi,
27899 (1 <<
27900 rx_core));
27903 wlc_phy_stopplayback_nphy(pi);
27906 if (bcmerror != 0)
27907 break;
27910 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27911 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27913 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27914 0x92, orig_RfctrlIntcTx);
27915 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27916 0x92, orig_RfctrlIntcRx);
27917 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27918 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27919 0xa7, orig_AfectrlCore);
27920 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27922 if (bcmerror != 0)
27923 break;
27926 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27927 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27929 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27930 gain_save);
27932 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27934 return bcmerror;
27938 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27939 u8 cal_type, bool debug)
27941 if (NREV_GE(pi->pubpi.phy_rev, 7))
27942 cal_type = 0;
27944 if (NREV_GE(pi->pubpi.phy_rev, 3))
27945 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27946 debug);
27947 else
27948 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27951 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27953 uint core;
27954 u32 txgain;
27955 u16 rad_gain, dac_gain, bbmult, m1m2;
27956 u8 txpi[2], chan_freq_range;
27957 s32 rfpwr_offset;
27959 if (pi->phyhang_avoid)
27960 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27962 if (pi->sh->sromrev < 4) {
27963 txpi[0] = txpi[1] = 72;
27964 } else {
27966 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27967 switch (chan_freq_range) {
27968 case WL_CHAN_FREQ_RANGE_2G:
27969 case WL_CHAN_FREQ_RANGE_5GL:
27970 case WL_CHAN_FREQ_RANGE_5GM:
27971 case WL_CHAN_FREQ_RANGE_5GH:
27972 txpi[0] = 0;
27973 txpi[1] = 0;
27974 break;
27975 default:
27976 txpi[0] = txpi[1] = 91;
27977 break;
27981 if (NREV_GE(pi->pubpi.phy_rev, 7))
27982 txpi[0] = txpi[1] = 30;
27983 else if (NREV_GE(pi->pubpi.phy_rev, 3))
27984 txpi[0] = txpi[1] = 40;
27986 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27988 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27989 (txpi[1] < 40) || (txpi[1] > 100))
27990 txpi[0] = txpi[1] = 91;
27993 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27994 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27995 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27996 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27998 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27999 uint phyrev = pi->pubpi.phy_rev;
28001 if (NREV_GE(phyrev, 3)) {
28002 if (PHY_IPA(pi)) {
28003 u32 *tx_gaintbl =
28004 wlc_phy_get_ipa_gaintbl_nphy(pi);
28005 txgain = tx_gaintbl[txpi[core]];
28006 } else {
28007 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28008 if (NREV_IS(phyrev, 3)) {
28009 txgain =
28010 nphy_tpc_5GHz_txgain_rev3
28011 [txpi[core]];
28012 } else if (NREV_IS(phyrev, 4)) {
28013 txgain = (
28014 pi->srom_fem5g.extpagain ==
28015 3) ?
28016 nphy_tpc_5GHz_txgain_HiPwrEPA
28017 [txpi[core]] :
28018 nphy_tpc_5GHz_txgain_rev4
28019 [txpi[core]];
28020 } else {
28021 txgain =
28022 nphy_tpc_5GHz_txgain_rev5
28023 [txpi[core]];
28025 } else {
28026 if (NREV_GE(phyrev, 5) &&
28027 (pi->srom_fem2g.extpagain == 3)) {
28028 txgain =
28029 nphy_tpc_txgain_HiPwrEPA
28030 [txpi[core]];
28031 } else {
28032 txgain = nphy_tpc_txgain_rev3
28033 [txpi[core]];
28037 } else {
28038 txgain = nphy_tpc_txgain[txpi[core]];
28041 if (NREV_GE(phyrev, 3))
28042 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
28043 else
28044 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
28046 if (NREV_GE(phyrev, 7))
28047 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
28048 else
28049 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28051 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28053 if (NREV_GE(phyrev, 3))
28054 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28055 0xa5), (0x1 << 8), (0x1 << 8));
28056 else
28057 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28059 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
28061 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28062 &rad_gain);
28064 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28065 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28066 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
28067 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28069 if (PHY_IPA(pi)) {
28070 wlc_phy_table_read_nphy(pi,
28071 (core ==
28072 PHY_CORE_0 ?
28073 NPHY_TBL_ID_CORE1TXPWRCTL :
28074 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
28075 576 + txpi[core], 32,
28076 &rfpwr_offset);
28078 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28079 0x29b, (0x1ff << 4),
28080 ((s16) rfpwr_offset) << 4);
28082 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28083 0x29b, (0x1 << 2), (1) << 2);
28088 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
28090 if (pi->phyhang_avoid)
28091 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28094 static void
28095 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
28096 u8 tmp_max_pwr, u8 rate_start,
28097 u8 rate_end)
28099 u8 rate;
28100 u8 word_num, nibble_num;
28101 u8 tmp_nibble;
28103 for (rate = rate_start; rate <= rate_end; rate++) {
28104 word_num = (rate - rate_start) >> 2;
28105 nibble_num = (rate - rate_start) & 0x3;
28106 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
28108 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
28112 static void
28113 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
28114 u8 rate_start, u8 rate_end)
28116 u8 rate;
28118 for (rate = rate_start; rate <= rate_end; rate++)
28119 srom_max[rate] -= 2 * pwr_offset;
28122 void
28123 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28124 u8 rate_mcs_end, u8 rate_ofdm_start)
28126 u8 rate1, rate2;
28128 rate2 = rate_ofdm_start;
28129 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28130 power[rate1] = power[rate2];
28131 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28133 power[rate_mcs_end] = power[rate_mcs_end - 1];
28136 void
28137 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28138 u8 rate_ofdm_end, u8 rate_mcs_start)
28140 u8 rate1, rate2;
28142 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28143 rate1 <= rate_ofdm_end; rate1++, rate2++) {
28144 power[rate1] = power[rate2];
28145 if (rate1 == rate_ofdm_start)
28146 power[++rate1] = power[rate2];
28150 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
28152 uint rate1, rate2, band_num;
28153 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28154 u8 tmp_max_pwr = 0;
28155 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28156 u8 *tx_srom_max_rate = NULL;
28158 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28159 band_num++) {
28160 switch (band_num) {
28161 case 0:
28163 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28164 pi->nphy_pwrctrl_info[1].max_pwr_2g);
28166 pwr_offsets1[0] = pi->cck2gpo;
28167 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28168 pwr_offsets1,
28169 tmp_max_pwr,
28170 TXP_FIRST_CCK,
28171 TXP_LAST_CCK);
28173 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28174 pwr_offsets1[1] =
28175 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
28177 pwr_offsets2 = pi->mcs2gpo;
28179 tmp_cddpo = pi->cdd2gpo;
28180 tmp_stbcpo = pi->stbc2gpo;
28181 tmp_bw40po = pi->bw402gpo;
28183 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28184 break;
28185 case 1:
28187 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28188 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28190 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28191 pwr_offsets1[1] =
28192 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
28194 pwr_offsets2 = pi->mcs5gpo;
28196 tmp_cddpo = pi->cdd5gpo;
28197 tmp_stbcpo = pi->stbc5gpo;
28198 tmp_bw40po = pi->bw405gpo;
28200 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28201 break;
28202 case 2:
28204 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28205 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28207 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28208 pwr_offsets1[1] =
28209 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
28211 pwr_offsets2 = pi->mcs5glpo;
28213 tmp_cddpo = pi->cdd5glpo;
28214 tmp_stbcpo = pi->stbc5glpo;
28215 tmp_bw40po = pi->bw405glpo;
28217 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28218 break;
28219 case 3:
28221 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28222 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28224 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28225 pwr_offsets1[1] =
28226 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28228 pwr_offsets2 = pi->mcs5ghpo;
28230 tmp_cddpo = pi->cdd5ghpo;
28231 tmp_stbcpo = pi->stbc5ghpo;
28232 tmp_bw40po = pi->bw405ghpo;
28234 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28235 break;
28238 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28239 tmp_max_pwr, TXP_FIRST_OFDM,
28240 TXP_LAST_OFDM);
28242 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28243 TXP_FIRST_MCS_20_SISO,
28244 TXP_LAST_MCS_20_SISO,
28245 TXP_FIRST_OFDM);
28247 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28248 tmp_max_pwr,
28249 TXP_FIRST_MCS_20_CDD,
28250 TXP_LAST_MCS_20_CDD);
28252 if (NREV_GE(pi->pubpi.phy_rev, 3))
28253 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28254 TXP_FIRST_MCS_20_CDD,
28255 TXP_LAST_MCS_20_CDD);
28257 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28258 TXP_FIRST_OFDM_20_CDD,
28259 TXP_LAST_OFDM_20_CDD,
28260 TXP_FIRST_MCS_20_CDD);
28262 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28263 tmp_max_pwr,
28264 TXP_FIRST_MCS_20_STBC,
28265 TXP_LAST_MCS_20_STBC);
28267 if (NREV_GE(pi->pubpi.phy_rev, 3))
28268 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28269 tmp_stbcpo,
28270 TXP_FIRST_MCS_20_STBC,
28271 TXP_LAST_MCS_20_STBC);
28273 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28274 &pwr_offsets2[2], tmp_max_pwr,
28275 TXP_FIRST_MCS_20_SDM,
28276 TXP_LAST_MCS_20_SDM);
28278 if (NPHY_IS_SROM_REINTERPRET) {
28280 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28281 &pwr_offsets2[4],
28282 tmp_max_pwr,
28283 TXP_FIRST_MCS_40_SISO,
28284 TXP_LAST_MCS_40_SISO);
28286 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28287 TXP_FIRST_OFDM_40_SISO,
28288 TXP_LAST_OFDM_40_SISO,
28289 TXP_FIRST_MCS_40_SISO);
28291 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28292 &pwr_offsets2[4],
28293 tmp_max_pwr,
28294 TXP_FIRST_MCS_40_CDD,
28295 TXP_LAST_MCS_40_CDD);
28297 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28298 TXP_FIRST_MCS_40_CDD,
28299 TXP_LAST_MCS_40_CDD);
28301 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28302 TXP_FIRST_OFDM_40_CDD,
28303 TXP_LAST_OFDM_40_CDD,
28304 TXP_FIRST_MCS_40_CDD);
28306 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28307 &pwr_offsets2[4],
28308 tmp_max_pwr,
28309 TXP_FIRST_MCS_40_STBC,
28310 TXP_LAST_MCS_40_STBC);
28312 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28313 tmp_stbcpo,
28314 TXP_FIRST_MCS_40_STBC,
28315 TXP_LAST_MCS_40_STBC);
28317 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28318 &pwr_offsets2[6],
28319 tmp_max_pwr,
28320 TXP_FIRST_MCS_40_SDM,
28321 TXP_LAST_MCS_40_SDM);
28322 } else {
28324 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28325 TXP_FIRST_OFDM;
28326 rate1 <= TXP_LAST_MCS_40_SDM;
28327 rate1++, rate2++)
28328 tx_srom_max_rate[rate1] =
28329 tx_srom_max_rate[rate2];
28332 if (NREV_GE(pi->pubpi.phy_rev, 3))
28333 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28334 tmp_bw40po,
28335 TXP_FIRST_OFDM_40_SISO,
28336 TXP_LAST_MCS_40_SDM);
28338 tx_srom_max_rate[TXP_MCS_32] =
28339 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28342 return;
28345 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28347 u8 tx_pwr_ctrl_state;
28348 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28349 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28351 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28353 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28354 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28355 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
28356 udelay(1);
28359 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28361 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28362 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28365 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28367 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28368 (0x1 << 14) | (0x1 << 13));
28371 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28373 u16 tmp;
28374 u16 pwr_idx[2];
28376 if (wlc_phy_txpwr_ison_nphy(pi)) {
28377 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28378 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28380 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28381 } else {
28382 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28383 << 8) |
28384 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28387 return tmp;
28390 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28392 if (PHY_IPA(pi)
28393 && (pi->nphy_force_papd_cal
28394 || (wlc_phy_txpwr_ison_nphy(pi)
28396 (((u32)
28397 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28398 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28399 || ((u32)
28400 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28401 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28402 wlc_phy_a4(pi, true);
28405 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28407 u16 mask = 0, val = 0, ishw = 0;
28408 u8 ctr;
28409 uint core;
28410 u32 tbl_offset;
28411 u32 tbl_len;
28412 u16 regval[84];
28414 if (pi->phyhang_avoid)
28415 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28417 switch (ctrl_type) {
28418 case PHY_TPC_HW_OFF:
28419 case PHY_TPC_HW_ON:
28420 pi->nphy_txpwrctrl = ctrl_type;
28421 break;
28422 default:
28423 break;
28426 if (ctrl_type == PHY_TPC_HW_OFF) {
28427 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28429 if (wlc_phy_txpwr_ison_nphy(pi)) {
28430 for (core = 0; core < pi->pubpi.phy_corenum;
28431 core++)
28432 pi->nphy_txpwr_idx[core] =
28433 wlc_phy_txpwr_idx_cur_get_nphy(
28435 (u8) core);
28440 tbl_len = 84;
28441 tbl_offset = 64;
28442 for (ctr = 0; ctr < tbl_len; ctr++)
28443 regval[ctr] = 0;
28444 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28445 regval);
28446 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28447 regval);
28449 if (NREV_GE(pi->pubpi.phy_rev, 3))
28450 and_phy_reg(pi, 0x1e7,
28451 (u16) (~((0x1 << 15) |
28452 (0x1 << 14) | (0x1 << 13))));
28453 else
28454 and_phy_reg(pi, 0x1e7,
28455 (u16) (~((0x1 << 14) | (0x1 << 13))));
28457 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28458 or_phy_reg(pi, 0x8f, (0x1 << 8));
28459 or_phy_reg(pi, 0xa5, (0x1 << 8));
28460 } else {
28461 or_phy_reg(pi, 0xa5, (0x1 << 14));
28464 if (NREV_IS(pi->pubpi.phy_rev, 2))
28465 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28466 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28467 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28469 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28470 pi->bw == WL_CHANSPEC_BW_40)
28471 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28472 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28474 } else {
28476 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28477 8, pi->adj_pwr_tbl_nphy);
28478 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28479 8, pi->adj_pwr_tbl_nphy);
28481 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28482 mask = (0x1 << 14) | (0x1 << 13);
28483 val = (ishw << 14) | (ishw << 13);
28485 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28486 mask |= (0x1 << 15);
28487 val |= (ishw << 15);
28490 mod_phy_reg(pi, 0x1e7, mask, val);
28492 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28493 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28494 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28495 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28496 } else {
28497 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28498 if (NREV_GT(pi->pubpi.phy_rev, 1))
28499 mod_phy_reg(pi, 0x222,
28500 (0xff << 0), 0x64);
28504 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28505 if ((pi->nphy_txpwr_idx[0] != 128)
28506 && (pi->nphy_txpwr_idx[1] != 128))
28507 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28508 pi->
28509 nphy_txpwr_idx
28510 [0],
28511 pi->
28512 nphy_txpwr_idx
28513 [1]);
28516 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28517 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28518 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28519 } else {
28520 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28523 if (NREV_IS(pi->pubpi.phy_rev, 2))
28524 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28525 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28526 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28528 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28529 pi->bw == WL_CHANSPEC_BW_40)
28530 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28531 0x0, BRCM_BAND_ALL);
28533 if (PHY_IPA(pi)) {
28534 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28535 0x29b, (0x1 << 2), (0) << 2);
28537 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28538 0x29b, (0x1 << 2), (0) << 2);
28544 if (pi->phyhang_avoid)
28545 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28548 void
28549 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28550 bool restore_cals)
28552 u8 core, txpwrctl_tbl;
28553 u16 tx_ind0, iq_ind0, lo_ind0;
28554 u16 m1m2;
28555 u32 txgain;
28556 u16 rad_gain, dac_gain;
28557 u8 bbmult;
28558 u32 iqcomp;
28559 u16 iqcomp_a, iqcomp_b;
28560 u32 locomp;
28561 u16 tmpval;
28562 u8 tx_pwr_ctrl_state;
28563 s32 rfpwr_offset;
28564 u16 regval[2];
28566 if (pi->phyhang_avoid)
28567 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28569 tx_ind0 = 192;
28570 iq_ind0 = 320;
28571 lo_ind0 = 448;
28573 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28575 if ((core_mask & (1 << core)) == 0)
28576 continue;
28578 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28580 if (txpwrindex < 0) {
28581 if (pi->nphy_txpwrindex[core].index < 0)
28582 continue;
28584 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28585 mod_phy_reg(pi, 0x8f,
28586 (0x1 << 8),
28587 pi->nphy_txpwrindex[core].
28588 AfectrlOverride);
28589 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28590 pi->nphy_txpwrindex[core].
28591 AfectrlOverride);
28592 } else {
28593 mod_phy_reg(pi, 0xa5,
28594 (0x1 << 14),
28595 pi->nphy_txpwrindex[core].
28596 AfectrlOverride);
28599 write_phy_reg(pi, (core == PHY_CORE_0) ?
28600 0xaa : 0xab,
28601 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28603 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28604 &pi->nphy_txpwrindex[core].
28605 rad_gain);
28607 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28608 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28609 m1m2 |= ((core == PHY_CORE_0) ?
28610 (pi->nphy_txpwrindex[core].bbmult << 8) :
28611 (pi->nphy_txpwrindex[core].bbmult << 0));
28612 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28614 if (restore_cals) {
28615 wlc_phy_table_write_nphy(
28616 pi, 15, 2, (80 + 2 * core), 16,
28617 &pi->nphy_txpwrindex[core].iqcomp_a);
28618 wlc_phy_table_write_nphy(
28619 pi, 15, 1, (85 + core), 16,
28620 &pi->nphy_txpwrindex[core].locomp);
28621 wlc_phy_table_write_nphy(
28622 pi, 15, 1, (93 + core), 16,
28623 &pi->nphy_txpwrindex[core].locomp);
28626 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28628 pi->nphy_txpwrindex[core].index_internal =
28629 pi->nphy_txpwrindex[core].index_internal_save;
28630 } else {
28632 if (pi->nphy_txpwrindex[core].index < 0) {
28634 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28635 mod_phy_reg(pi, 0x8f,
28636 (0x1 << 8),
28637 pi->nphy_txpwrindex[core].
28638 AfectrlOverride);
28639 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28640 pi->nphy_txpwrindex[core].
28641 AfectrlOverride);
28642 } else {
28643 pi->nphy_txpwrindex[core].
28644 AfectrlOverride =
28645 read_phy_reg(pi, 0xa5);
28648 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28649 read_phy_reg(pi, (core == PHY_CORE_0) ?
28650 0xaa : 0xab);
28652 wlc_phy_table_read_nphy(pi, 7, 1,
28653 (0x110 + core), 16,
28654 &pi->
28655 nphy_txpwrindex[core].
28656 rad_gain);
28658 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28659 &tmpval);
28660 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28661 tmpval &= 0xff;
28662 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28664 wlc_phy_table_read_nphy(pi, 15, 2,
28665 (80 + 2 * core), 16,
28666 &pi->
28667 nphy_txpwrindex[core].
28668 iqcomp_a);
28670 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28672 &pi->
28673 nphy_txpwrindex[core].
28674 locomp);
28676 pi->nphy_txpwrindex[core].index_internal_save =
28677 pi->nphy_txpwrindex[core].
28678 index_internal;
28681 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28682 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28684 if (NREV_IS(pi->pubpi.phy_rev, 1))
28685 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28687 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28688 (tx_ind0 + txpwrindex), 32,
28689 &txgain);
28691 if (NREV_GE(pi->pubpi.phy_rev, 3))
28692 rad_gain = (txgain >> 16) &
28693 ((1 << (32 - 16 + 1)) - 1);
28694 else
28695 rad_gain = (txgain >> 16) &
28696 ((1 << (28 - 16 + 1)) - 1);
28698 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28699 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28701 if (NREV_GE(pi->pubpi.phy_rev, 3))
28702 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28703 0xa5), (0x1 << 8), (0x1 << 8));
28704 else
28705 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28707 write_phy_reg(pi, (core == PHY_CORE_0) ?
28708 0xaa : 0xab, dac_gain);
28710 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28711 &rad_gain);
28713 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28714 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28715 m1m2 |= ((core == PHY_CORE_0) ?
28716 (bbmult << 8) : (bbmult << 0));
28718 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28720 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28721 (iq_ind0 + txpwrindex), 32,
28722 &iqcomp);
28723 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28724 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28726 if (restore_cals) {
28727 regval[0] = (u16) iqcomp_a;
28728 regval[1] = (u16) iqcomp_b;
28729 wlc_phy_table_write_nphy(pi, 15, 2,
28730 (80 + 2 * core), 16,
28731 regval);
28734 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28735 (lo_ind0 + txpwrindex), 32,
28736 &locomp);
28737 if (restore_cals)
28738 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28739 16, &locomp);
28741 if (NREV_IS(pi->pubpi.phy_rev, 1))
28742 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28744 if (PHY_IPA(pi)) {
28745 wlc_phy_table_read_nphy(pi,
28746 (core == PHY_CORE_0 ?
28747 NPHY_TBL_ID_CORE1TXPWRCTL :
28748 NPHY_TBL_ID_CORE2TXPWRCTL),
28749 1, 576 + txpwrindex, 32,
28750 &rfpwr_offset);
28752 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28753 0x29b, (0x1ff << 4),
28754 ((s16) rfpwr_offset) << 4);
28756 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28757 0x29b, (0x1 << 2), (1) << 2);
28761 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28764 pi->nphy_txpwrindex[core].index = txpwrindex;
28767 if (pi->phyhang_avoid)
28768 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28771 void
28772 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28773 u8 txp_rate_idx)
28775 u8 chan_freq_range;
28777 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28778 switch (chan_freq_range) {
28779 case WL_CHAN_FREQ_RANGE_2G:
28780 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28781 break;
28782 case WL_CHAN_FREQ_RANGE_5GM:
28783 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28784 break;
28785 case WL_CHAN_FREQ_RANGE_5GL:
28786 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28787 break;
28788 case WL_CHAN_FREQ_RANGE_5GH:
28789 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28790 break;
28791 default:
28792 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28793 break;
28796 return;
28799 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28801 u16 clip_off[] = { 0xffff, 0xffff };
28803 if (enable) {
28804 if (pi->nphy_deaf_count == 0) {
28805 pi->classifier_state =
28806 wlc_phy_classifier_nphy(pi, 0, 0);
28807 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28808 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28809 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28812 pi->nphy_deaf_count++;
28814 wlc_phy_resetcca_nphy(pi);
28816 } else {
28817 pi->nphy_deaf_count--;
28819 if (pi->nphy_deaf_count == 0) {
28820 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28821 pi->classifier_state);
28822 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28827 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28829 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28831 if (mode) {
28832 if (pi->nphy_deaf_count == 0)
28833 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28834 } else if (pi->nphy_deaf_count > 0) {
28835 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28838 wlapi_enable_mac(pi->sh->physhim);