Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / drivers / net / wireless / brcm80211 / brcmsmac / phy / phy_n.c
bloba16f1ab292fdb2c87e1d3c5c1a1ada25df897769
1 /*
2 * Copyright (c) 2010 Broadcom Corporation
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #include <linux/kernel.h>
18 #include <linux/delay.h>
19 #include <linux/cordic.h>
21 #include <brcm_hw_ids.h>
22 #include <aiutils.h>
23 #include <chipcommon.h>
24 #include <pmu.h>
25 #include <d11.h>
26 #include <phy_shim.h>
27 #include "phy_int.h"
28 #include "phy_hal.h"
29 #include "phy_radio.h"
30 #include "phyreg_n.h"
31 #include "phytbl_n.h"
32 #include "soc.h"
34 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
35 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
36 ((core == PHY_CORE_0) ? \
37 radio_type##_##jspace##0 : \
38 radio_type##_##jspace##1))
40 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
41 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
42 ((core == PHY_CORE_0) ? \
43 radio_type##_##jspace##0 : \
44 radio_type##_##jspace##1), value)
46 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
47 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value)
49 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
50 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
51 radio_type##_##jspace##0##_##reg_name : \
52 radio_type##_##jspace##1##_##reg_name))
54 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
55 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
56 radio_type##_##jspace##0##_##reg_name : \
57 radio_type##_##jspace##1##_##reg_name), \
58 value)
60 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
61 read_radio_reg(pi, ((core == PHY_CORE_0) ? \
62 radio_type##_##reg_name##_##jspace##0 : \
63 radio_type##_##reg_name##_##jspace##1))
65 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
66 write_radio_reg(pi, ((core == PHY_CORE_0) ? \
67 radio_type##_##reg_name##_##jspace##0 : \
68 radio_type##_##reg_name##_##jspace##1), \
69 value)
71 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
72 #define NPHY_ACI_CHANNEL_DELTA 5
73 #define NPHY_ACI_CHANNEL_SKIP 4
74 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
75 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
76 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
77 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
78 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
79 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
81 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
83 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
85 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
87 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
89 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
91 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
93 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
95 #define NPHY_NOISE_ASSOC_ENTER_TH 400
97 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
99 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
100 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
102 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
104 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
106 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
108 #define NPHY_RSSICAL_MAXREAD 31
110 #define NPHY_RSSICAL_NPOLL 8
111 #define NPHY_RSSICAL_MAXD (1<<20)
112 #define NPHY_MIN_RXIQ_PWR 2
114 #define NPHY_RSSICAL_W1_TARGET 25
115 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
116 #define NPHY_RSSICAL_NB_TARGET 0
118 #define NPHY_RSSICAL_W1_TARGET_REV3 29
119 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
121 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
122 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
123 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
124 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - \
125 NPHY_RSSICAL_MAXREAD)
126 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
127 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - \
128 NPHY_RSSICAL_MAXREAD)
129 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
130 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
131 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
132 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
133 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
134 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
135 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
137 #define NPHY_IQCAL_NUMGAINS 9
138 #define NPHY_N_GCTL 0x66
140 #define NPHY_PAPD_EPS_TBL_SIZE 64
141 #define NPHY_PAPD_SCL_TBL_SIZE 64
142 #define NPHY_NUM_DIG_FILT_COEFFS 15
144 #define NPHY_PAPD_COMP_OFF 0
145 #define NPHY_PAPD_COMP_ON 1
147 #define NPHY_SROM_TEMPSHIFT 32
148 #define NPHY_SROM_MAXTEMPOFFSET 16
149 #define NPHY_SROM_MINTEMPOFFSET -16
151 #define NPHY_CAL_MAXTEMPDELTA 64
153 #define NPHY_NOISEVAR_TBLLEN40 256
154 #define NPHY_NOISEVAR_TBLLEN20 128
156 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
158 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
160 /* 5357 Chip specific ChipControl register bits */
161 #define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
162 #define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
164 #define NPHY_CAL_TSSISAMPS 64
165 #define NPHY_TEST_TONE_FREQ_40MHz 4000
166 #define NPHY_TEST_TONE_FREQ_20MHz 2500
168 #define MAX_205x_RCAL_WAITLOOPS 10000
170 #define NPHY_RXCAL_TONEAMP 181
171 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
172 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
174 #define TXFILT_SHAPING_OFDM20 0
175 #define TXFILT_SHAPING_OFDM40 1
176 #define TXFILT_SHAPING_CCK 2
177 #define TXFILT_DEFAULT_OFDM20 3
178 #define TXFILT_DEFAULT_OFDM40 4
180 struct nphy_iqcal_params {
181 u16 txlpf;
182 u16 txgm;
183 u16 pga;
184 u16 pad;
185 u16 ipa;
186 u16 cal_gain;
187 u16 ncorr[5];
190 struct nphy_txiqcal_ladder {
191 u8 percent;
192 u8 g_env;
195 struct nphy_ipa_txcalgains {
196 struct nphy_txgains gains;
197 bool useindex;
198 u8 index;
201 struct nphy_papd_restore_state {
202 u16 fbmix[2];
203 u16 vga_master[2];
204 u16 intpa_master[2];
205 u16 afectrl[2];
206 u16 afeoverride[2];
207 u16 pwrup[2];
208 u16 atten[2];
209 u16 mm;
212 struct nphy_ipa_txrxgain {
213 u16 hpvga;
214 u16 lpf_biq1;
215 u16 lpf_biq0;
216 u16 lna2;
217 u16 lna1;
218 s8 txpwrindex;
221 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
223 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz[] = {
224 {0, 0, 0, 0, 0, 100},
225 {0, 0, 0, 0, 0, 50},
226 {0, 0, 0, 0, 0, -1},
227 {0, 0, 0, 3, 0, -1},
228 {0, 0, 3, 3, 0, -1},
229 {0, 2, 3, 3, 0, -1}
232 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz[] = {
233 {0, 0, 0, 0, 0, 128},
234 {0, 0, 0, 0, 0, 70},
235 {0, 0, 0, 0, 0, 20},
236 {0, 0, 0, 3, 0, 20},
237 {0, 0, 3, 3, 0, 20},
238 {0, 2, 3, 3, 0, 20}
241 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = {
242 {0, 0, 0, 0, 0, 100},
243 {0, 0, 0, 0, 0, 50},
244 {0, 0, 0, 0, 0, -1},
245 {0, 0, 0, 3, 0, -1},
246 {0, 0, 3, 3, 0, -1},
247 {0, 0, 5, 3, 0, -1}
250 static const struct nphy_ipa_txrxgain nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = {
251 {0, 0, 0, 0, 0, 10},
252 {0, 0, 0, 1, 0, 10},
253 {0, 0, 1, 2, 0, 10},
254 {0, 0, 1, 3, 0, 10},
255 {0, 0, 4, 3, 0, 10},
256 {0, 0, 6, 3, 0, 10}
259 enum {
260 NPHY_RXCAL_GAIN_INIT = 0,
261 NPHY_RXCAL_GAIN_UP,
262 NPHY_RXCAL_GAIN_DOWN
265 #define wlc_phy_get_papd_nphy(pi) \
266 (read_phy_reg((pi), 0x1e7) & \
267 ((0x1 << 15) | \
268 (0x1 << 14) | \
269 (0x1 << 13)))
271 static const u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
272 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
273 230, -44, 230, 201, -191, 201},
274 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
275 26, 34, -32, 34},
276 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
277 121, -73, 121, 91, 124, 91},
278 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
279 151, 301, 151, 602, -752, 602},
280 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
281 12, 25, 12, 13, 27, 13},
282 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
283 230, -44, 230, 201, -191, 201},
284 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
285 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
288 struct chan_info_nphy_2055 {
289 u16 chan;
290 u16 freq;
291 uint unknown;
292 u8 RF_pll_ref;
293 u8 RF_rf_pll_mod1;
294 u8 RF_rf_pll_mod0;
295 u8 RF_vco_cap_tail;
296 u8 RF_vco_cal1;
297 u8 RF_vco_cal2;
298 u8 RF_pll_lf_c1;
299 u8 RF_pll_lf_r1;
300 u8 RF_pll_lf_c2;
301 u8 RF_lgbuf_cen_buf;
302 u8 RF_lgen_tune1;
303 u8 RF_lgen_tune2;
304 u8 RF_core1_lgbuf_a_tune;
305 u8 RF_core1_lgbuf_g_tune;
306 u8 RF_core1_rxrf_reg1;
307 u8 RF_core1_tx_pga_pad_tn;
308 u8 RF_core1_tx_mx_bgtrim;
309 u8 RF_core2_lgbuf_a_tune;
310 u8 RF_core2_lgbuf_g_tune;
311 u8 RF_core2_rxrf_reg1;
312 u8 RF_core2_tx_pga_pad_tn;
313 u8 RF_core2_tx_mx_bgtrim;
314 u16 PHY_BW1a;
315 u16 PHY_BW2;
316 u16 PHY_BW3;
317 u16 PHY_BW4;
318 u16 PHY_BW5;
319 u16 PHY_BW6;
322 struct chan_info_nphy_radio205x {
323 u16 chan;
324 u16 freq;
325 u8 RF_SYN_pll_vcocal1;
326 u8 RF_SYN_pll_vcocal2;
327 u8 RF_SYN_pll_refdiv;
328 u8 RF_SYN_pll_mmd2;
329 u8 RF_SYN_pll_mmd1;
330 u8 RF_SYN_pll_loopfilter1;
331 u8 RF_SYN_pll_loopfilter2;
332 u8 RF_SYN_pll_loopfilter3;
333 u8 RF_SYN_pll_loopfilter4;
334 u8 RF_SYN_pll_loopfilter5;
335 u8 RF_SYN_reserved_addr27;
336 u8 RF_SYN_reserved_addr28;
337 u8 RF_SYN_reserved_addr29;
338 u8 RF_SYN_logen_VCOBUF1;
339 u8 RF_SYN_logen_MIXER2;
340 u8 RF_SYN_logen_BUF3;
341 u8 RF_SYN_logen_BUF4;
342 u8 RF_RX0_lnaa_tune;
343 u8 RF_RX0_lnag_tune;
344 u8 RF_TX0_intpaa_boost_tune;
345 u8 RF_TX0_intpag_boost_tune;
346 u8 RF_TX0_pada_boost_tune;
347 u8 RF_TX0_padg_boost_tune;
348 u8 RF_TX0_pgaa_boost_tune;
349 u8 RF_TX0_pgag_boost_tune;
350 u8 RF_TX0_mixa_boost_tune;
351 u8 RF_TX0_mixg_boost_tune;
352 u8 RF_RX1_lnaa_tune;
353 u8 RF_RX1_lnag_tune;
354 u8 RF_TX1_intpaa_boost_tune;
355 u8 RF_TX1_intpag_boost_tune;
356 u8 RF_TX1_pada_boost_tune;
357 u8 RF_TX1_padg_boost_tune;
358 u8 RF_TX1_pgaa_boost_tune;
359 u8 RF_TX1_pgag_boost_tune;
360 u8 RF_TX1_mixa_boost_tune;
361 u8 RF_TX1_mixg_boost_tune;
362 u16 PHY_BW1a;
363 u16 PHY_BW2;
364 u16 PHY_BW3;
365 u16 PHY_BW4;
366 u16 PHY_BW5;
367 u16 PHY_BW6;
370 struct chan_info_nphy_radio2057 {
371 u16 chan;
372 u16 freq;
373 u8 RF_vcocal_countval0;
374 u8 RF_vcocal_countval1;
375 u8 RF_rfpll_refmaster_sparextalsize;
376 u8 RF_rfpll_loopfilter_r1;
377 u8 RF_rfpll_loopfilter_c2;
378 u8 RF_rfpll_loopfilter_c1;
379 u8 RF_cp_kpd_idac;
380 u8 RF_rfpll_mmd0;
381 u8 RF_rfpll_mmd1;
382 u8 RF_vcobuf_tune;
383 u8 RF_logen_mx2g_tune;
384 u8 RF_logen_mx5g_tune;
385 u8 RF_logen_indbuf2g_tune;
386 u8 RF_logen_indbuf5g_tune;
387 u8 RF_txmix2g_tune_boost_pu_core0;
388 u8 RF_pad2g_tune_pus_core0;
389 u8 RF_pga_boost_tune_core0;
390 u8 RF_txmix5g_boost_tune_core0;
391 u8 RF_pad5g_tune_misc_pus_core0;
392 u8 RF_lna2g_tune_core0;
393 u8 RF_lna5g_tune_core0;
394 u8 RF_txmix2g_tune_boost_pu_core1;
395 u8 RF_pad2g_tune_pus_core1;
396 u8 RF_pga_boost_tune_core1;
397 u8 RF_txmix5g_boost_tune_core1;
398 u8 RF_pad5g_tune_misc_pus_core1;
399 u8 RF_lna2g_tune_core1;
400 u8 RF_lna5g_tune_core1;
401 u16 PHY_BW1a;
402 u16 PHY_BW2;
403 u16 PHY_BW3;
404 u16 PHY_BW4;
405 u16 PHY_BW5;
406 u16 PHY_BW6;
409 struct chan_info_nphy_radio2057_rev5 {
410 u16 chan;
411 u16 freq;
412 u8 RF_vcocal_countval0;
413 u8 RF_vcocal_countval1;
414 u8 RF_rfpll_refmaster_sparextalsize;
415 u8 RF_rfpll_loopfilter_r1;
416 u8 RF_rfpll_loopfilter_c2;
417 u8 RF_rfpll_loopfilter_c1;
418 u8 RF_cp_kpd_idac;
419 u8 RF_rfpll_mmd0;
420 u8 RF_rfpll_mmd1;
421 u8 RF_vcobuf_tune;
422 u8 RF_logen_mx2g_tune;
423 u8 RF_logen_indbuf2g_tune;
424 u8 RF_txmix2g_tune_boost_pu_core0;
425 u8 RF_pad2g_tune_pus_core0;
426 u8 RF_lna2g_tune_core0;
427 u8 RF_txmix2g_tune_boost_pu_core1;
428 u8 RF_pad2g_tune_pus_core1;
429 u8 RF_lna2g_tune_core1;
430 u16 PHY_BW1a;
431 u16 PHY_BW2;
432 u16 PHY_BW3;
433 u16 PHY_BW4;
434 u16 PHY_BW5;
435 u16 PHY_BW6;
438 struct nphy_sfo_cfg {
439 u16 PHY_BW1a;
440 u16 PHY_BW2;
441 u16 PHY_BW3;
442 u16 PHY_BW4;
443 u16 PHY_BW5;
444 u16 PHY_BW6;
447 static const struct chan_info_nphy_2055 chan_info_nphy_2055[] = {
449 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
450 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
451 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
453 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
454 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
455 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
457 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
458 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
459 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
461 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
462 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
463 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
465 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
466 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
467 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
469 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
470 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
471 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
473 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
474 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
475 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
477 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
478 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
479 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
481 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
482 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
483 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
485 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
486 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
487 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
489 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
490 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
491 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
493 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
494 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
495 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
497 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
498 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
499 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
501 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
502 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
503 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
505 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
506 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
507 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
509 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
510 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
511 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
513 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
514 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
515 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
517 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
518 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
519 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
521 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
522 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
523 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
525 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
526 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
527 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
529 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
530 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
531 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
533 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
534 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
535 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
537 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
538 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
539 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
541 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
542 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
543 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
545 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
546 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
547 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
549 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
550 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
551 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
553 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
554 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
555 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
557 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
558 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
559 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
561 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
562 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
563 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
565 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
566 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
567 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
569 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
570 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
571 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
573 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
574 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
575 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
577 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
578 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
579 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
581 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
582 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
583 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
585 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
586 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
587 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
589 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
590 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
591 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
593 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
594 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
595 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
597 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
598 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
599 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
601 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
602 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
603 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
605 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
606 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
607 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
609 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
610 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
611 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
613 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
614 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
615 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
617 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
618 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
619 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
621 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
622 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
623 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
625 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
626 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
627 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
629 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
630 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
631 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
633 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
634 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
635 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
637 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
638 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
639 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
641 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
642 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
643 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
645 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
646 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
647 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
649 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
650 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
651 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
653 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
654 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
655 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
657 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
658 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
659 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
661 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
662 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
663 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
665 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
666 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
667 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
669 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
670 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
671 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
673 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
674 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
675 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
677 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
678 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
679 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
681 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
682 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
683 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
685 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
686 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
687 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
689 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
690 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
691 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
693 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
694 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
695 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
697 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
698 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
699 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
701 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
702 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
703 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
705 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
706 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
707 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
709 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
710 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
711 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
713 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
714 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
715 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
717 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
718 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
719 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
721 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
722 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
723 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
725 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
726 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
727 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
729 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
730 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
731 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
733 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
734 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
735 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
737 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
739 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
741 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
742 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
743 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
745 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
746 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
747 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
749 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
750 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
751 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
753 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
754 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
757 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
758 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
759 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
761 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
762 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
763 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
765 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
766 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
767 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
769 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
770 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
771 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
773 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
774 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
775 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
777 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
778 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
779 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
781 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
782 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
783 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
785 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
786 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
787 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
789 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
790 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
791 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
793 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
794 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
795 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
797 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
798 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
799 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
801 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
802 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
803 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
805 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
806 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
807 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
809 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
810 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
811 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
813 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
814 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
815 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
817 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
818 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
819 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
821 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
822 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
823 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
825 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
826 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
827 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
829 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
830 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
831 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
833 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
834 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
835 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
837 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
838 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
839 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
841 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
842 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
843 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
845 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
846 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
847 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
849 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
850 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
851 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
853 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
854 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
855 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
857 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
858 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
859 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
861 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
862 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
863 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
865 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
866 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
867 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
869 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
870 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
871 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
873 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
874 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
875 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
877 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
878 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
879 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
881 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
882 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
883 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
885 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
886 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
887 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
889 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
890 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
891 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
893 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
894 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
895 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
897 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
898 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
899 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
901 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
902 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
903 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
905 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
906 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
907 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
909 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
910 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
911 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
913 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
914 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
915 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
917 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
918 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
919 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
921 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
922 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
923 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
925 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
926 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
927 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
929 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
930 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
931 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
933 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
934 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
935 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
937 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
938 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
939 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
941 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
942 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
943 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
946 static const struct chan_info_nphy_radio205x chan_info_nphyrev3_2056[] = {
948 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
949 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
950 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
951 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
953 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
954 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
955 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
956 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
958 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
959 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
960 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
961 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
963 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
964 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
965 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
966 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
968 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
969 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
970 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
971 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
973 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
974 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
975 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
976 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
978 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
979 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
980 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
981 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
983 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
984 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
985 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
986 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
988 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
989 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
990 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
991 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
993 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
994 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
995 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
996 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
998 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
999 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1000 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1001 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1003 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1004 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1005 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1006 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1008 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1009 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1010 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1011 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1013 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1014 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1015 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1016 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1018 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1019 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1020 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1021 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1023 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1024 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1025 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1026 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1028 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1029 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1030 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1031 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1033 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1034 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1035 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1036 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1038 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1039 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1040 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1041 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1043 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1044 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1045 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1046 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1048 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1049 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1050 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1051 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1053 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1054 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1055 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1056 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1058 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1059 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1060 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1061 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1063 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1064 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1065 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1066 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1068 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1069 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1070 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1071 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1073 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1074 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1075 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1076 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1078 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1079 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1080 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1081 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1083 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1084 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1085 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1086 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1088 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1089 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1090 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1091 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1093 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1094 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1095 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1096 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1098 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1099 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1100 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1101 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1103 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1104 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1105 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1106 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1108 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1109 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1110 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1111 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1113 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1114 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1115 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1116 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1118 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1119 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1120 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1121 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1123 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1124 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1125 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1126 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1128 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1129 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1130 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1131 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1133 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1134 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1135 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1136 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1138 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1139 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1140 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1141 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1143 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1144 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1145 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1146 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1148 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1149 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1150 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1151 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1153 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1154 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1155 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1156 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1158 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1159 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1160 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1161 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1163 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1164 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1165 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1166 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1168 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1169 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1170 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1171 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1173 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1174 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1175 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1176 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1178 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1179 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1180 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1181 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1183 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1184 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1185 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1186 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1188 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1189 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1190 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1191 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1193 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1194 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1195 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1196 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1198 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1199 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1200 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1201 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1203 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1204 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1205 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1206 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1208 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1209 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1210 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1211 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1213 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1214 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1215 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1216 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1218 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1219 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1220 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1221 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1223 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1224 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1225 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1226 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1228 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1229 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1230 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1231 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1233 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1234 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1235 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1236 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1238 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1239 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1240 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1241 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1243 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1244 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1245 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1246 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1248 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1249 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1250 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1251 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1253 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1254 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1255 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1256 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1258 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1259 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1260 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1261 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1263 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1264 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1265 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1266 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1268 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1269 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1270 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1271 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1273 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1274 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1275 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1276 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1278 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1279 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1280 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1281 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1283 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1284 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1285 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1286 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1288 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1289 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1290 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1291 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1293 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1294 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1295 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1296 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1298 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1299 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1300 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1301 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1303 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1304 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1305 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1306 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1308 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1309 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1310 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1311 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1313 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1314 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1315 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1316 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1318 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1319 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1320 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1321 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1323 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1324 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1325 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1326 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1328 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1329 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1330 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1331 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1333 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1334 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1335 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1336 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1338 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1339 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1340 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1341 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1343 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1344 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1345 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1346 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1348 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1349 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1350 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1351 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1353 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1354 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1355 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1356 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1358 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1359 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1360 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1361 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1363 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1364 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1365 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1366 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1368 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1369 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1370 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1371 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1373 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1374 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1375 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1376 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1378 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1379 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1380 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1381 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1383 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1384 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1385 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1386 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1388 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1389 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1390 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1391 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1393 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1394 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1395 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1396 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1398 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1399 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1400 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1401 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1403 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1404 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1405 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1406 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1408 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1409 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1410 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1411 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1413 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1414 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1415 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1416 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1418 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1419 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1420 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1421 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1423 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1424 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1425 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1426 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1428 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1429 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1430 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1431 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1433 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1434 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1435 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1436 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1438 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1439 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1440 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1441 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1443 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1444 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1445 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1446 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1448 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1449 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1450 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1451 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1453 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1454 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1455 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1456 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1458 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1459 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1460 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1461 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1463 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1464 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1465 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1466 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1468 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1469 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1470 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1471 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1473 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1474 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1475 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1476 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1478 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1479 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1480 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1481 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1483 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1484 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1485 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1486 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1488 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1489 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1490 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1491 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1493 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1494 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1495 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1496 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1498 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1499 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1500 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1501 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1503 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1504 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1505 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1506 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1508 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1509 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1510 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1511 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1513 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1514 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1515 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1516 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1518 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1519 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1520 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1521 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1523 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1524 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1525 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1526 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1528 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1529 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1530 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1531 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1533 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1534 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1535 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1536 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1538 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1539 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1540 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1541 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1543 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1544 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1545 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1546 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1548 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1549 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1550 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1551 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1553 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1554 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1555 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1556 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1558 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1559 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1560 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1561 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1563 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1564 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1565 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1566 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1569 static const struct chan_info_nphy_radio205x chan_info_nphyrev4_2056_A1[] = {
1571 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1572 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1573 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1574 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1576 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1577 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1578 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1579 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1581 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1582 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1583 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1584 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1586 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1587 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1588 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1589 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1591 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1592 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1593 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1594 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1596 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1597 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1598 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1599 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1601 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1602 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1603 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1604 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1606 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1607 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1608 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1609 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1611 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1612 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1613 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1614 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1616 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1617 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1618 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1619 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1621 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1622 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1623 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1624 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1626 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1627 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1628 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1629 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1631 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1632 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1633 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1634 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1636 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1637 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1638 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1639 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1641 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1642 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1643 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1644 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1646 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1647 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1648 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1649 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1651 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1652 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1653 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1654 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1656 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1657 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1658 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1659 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1661 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1662 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1663 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1664 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1666 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1667 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1668 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1669 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1671 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1672 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1673 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1674 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1676 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1677 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1678 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1679 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1681 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1682 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1683 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1684 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1686 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1687 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1688 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1689 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1691 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1692 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1693 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1694 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1696 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1697 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1698 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1699 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1701 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1702 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1703 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1704 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1706 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1707 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1708 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1709 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1711 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1712 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1713 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1714 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1716 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1717 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1718 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1719 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1721 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1722 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1723 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1724 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1726 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1727 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1728 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1729 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1731 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1732 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1733 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1734 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1736 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1737 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1738 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1739 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1741 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1742 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1743 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1744 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1746 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1747 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1748 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1749 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1751 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1752 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1753 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1754 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1756 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1757 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1758 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1759 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1761 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1762 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1763 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1764 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1766 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1767 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1768 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1769 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1771 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1772 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1773 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1774 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1776 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1777 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1778 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1779 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1781 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1782 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1783 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1784 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1786 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1787 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1788 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1789 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1791 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1792 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1793 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1794 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1796 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1797 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1798 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1799 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1801 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1802 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1803 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1804 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1806 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1807 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1808 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1809 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1811 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1812 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1813 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1814 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1816 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1817 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1818 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1819 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1821 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1822 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1823 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1824 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1826 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1827 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1828 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1829 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1831 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1832 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1833 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1834 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1836 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1837 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1838 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1839 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1841 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1842 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1843 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1844 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1846 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1847 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1848 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1849 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1851 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1852 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1853 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1854 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1856 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1857 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1858 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1859 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1861 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1862 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1863 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1864 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1866 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1867 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1868 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1869 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1871 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1872 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1873 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1874 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1876 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1877 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1878 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1879 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1881 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1882 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1883 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1884 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1886 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1887 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1888 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1889 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1891 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1892 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1893 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1894 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1896 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1897 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1898 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1899 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1901 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1902 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1903 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1904 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1906 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1907 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1908 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1909 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1911 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1912 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1913 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1914 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1916 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1917 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1918 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1919 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1921 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1922 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1923 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1924 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1926 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1927 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1928 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1929 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1931 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1932 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1933 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1934 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1936 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1937 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1938 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1939 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1941 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1942 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1943 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1944 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1946 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1947 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1948 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1949 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1951 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1952 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1953 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1954 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1956 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1957 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1958 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1959 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1961 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1962 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1963 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1964 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1966 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1967 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1968 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1969 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1971 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1972 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1973 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1974 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1976 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1977 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1978 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1979 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1981 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1982 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1983 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1984 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1986 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1987 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1988 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1989 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1991 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1992 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1993 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1994 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1996 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1997 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1998 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1999 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2001 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2002 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2003 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2004 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2006 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2007 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2008 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2009 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2011 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2012 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2013 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2014 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2016 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2017 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2018 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2019 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2021 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2022 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2023 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2024 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2026 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2027 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2028 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2029 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2031 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2032 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2033 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2034 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2036 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2037 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2038 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2039 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2041 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2042 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2043 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2044 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2046 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2047 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2048 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2049 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2051 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2052 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2053 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2054 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2056 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2057 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2058 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2059 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2061 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2062 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2063 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2064 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2066 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2067 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2068 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2069 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2071 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2072 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2073 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2074 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2076 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2077 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2078 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2079 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2081 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2082 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2083 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2084 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2086 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2087 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2088 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2089 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2091 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2092 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2093 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2094 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2096 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2097 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2098 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2099 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2101 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2102 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2103 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2104 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2106 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2107 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2108 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2109 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2111 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2112 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2113 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2114 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2116 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2117 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2118 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2119 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2121 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2122 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2123 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2124 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2126 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2127 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2128 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2129 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2131 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2132 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2133 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2134 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2136 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2137 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2138 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2139 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2141 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2142 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2143 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2144 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2146 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2147 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2148 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2149 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2151 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2152 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2153 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2154 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2156 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2157 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2158 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2159 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2161 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2162 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2163 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2164 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2166 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2167 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2168 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2169 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2171 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2172 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2173 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2174 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2176 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2177 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2178 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2179 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2181 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2182 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2183 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2184 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2186 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2187 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2188 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2189 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2192 static const struct chan_info_nphy_radio205x chan_info_nphyrev5_2056v5[] = {
2194 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2195 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2196 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2197 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2199 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2200 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2201 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2202 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2204 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2205 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2206 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2207 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2209 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2210 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2211 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2212 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2214 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2215 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2216 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2217 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2219 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2220 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2221 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2222 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2224 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2225 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2226 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2227 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2229 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2230 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2231 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2232 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2234 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2235 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2236 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2237 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2239 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2240 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2241 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2242 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2244 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2245 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2246 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2247 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2249 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2250 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2251 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2252 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2254 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2255 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2256 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2257 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2259 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2260 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2261 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2262 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2264 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2265 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2266 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2267 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2269 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2270 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2271 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2272 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2274 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2275 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2276 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2277 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2279 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2280 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2281 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2282 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2284 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2285 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2286 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2287 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2289 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2290 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2291 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2292 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2294 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2295 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2296 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2297 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2299 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2300 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2301 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2302 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2304 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2305 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2306 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2307 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2309 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2310 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2311 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2312 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2314 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2315 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2316 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2317 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2319 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2320 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2321 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2322 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2324 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2325 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2326 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2327 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2329 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2330 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2331 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2332 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2334 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2335 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2336 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2337 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2339 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2340 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2341 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2342 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2344 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2345 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2346 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2347 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2349 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2350 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2351 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2352 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2354 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2355 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2356 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2357 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2359 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2360 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2361 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2362 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2364 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2365 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2366 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2367 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2369 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2370 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2371 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2372 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2374 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2375 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2376 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2377 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2379 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2380 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2381 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2382 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2384 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2385 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2386 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2387 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2389 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2390 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2391 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2392 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2394 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2395 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2396 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2397 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2399 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2400 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2401 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2402 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2404 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2405 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2406 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2407 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2409 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2410 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2411 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2412 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2414 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2415 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2416 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2417 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2419 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2420 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2421 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2422 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2424 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2425 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2426 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2427 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2429 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2430 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2431 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2432 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2434 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2435 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2436 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2437 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2439 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2440 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2441 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2442 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2444 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2445 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2446 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2447 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2449 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2450 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2451 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2452 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2454 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2455 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2456 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2457 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2459 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2460 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2461 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2462 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2464 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2465 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2466 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2467 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2469 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2470 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2471 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2472 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2474 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2475 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2476 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2477 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2479 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2480 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2481 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2482 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2484 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2485 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2486 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2487 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2489 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2490 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2491 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2492 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2494 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2495 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2496 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2497 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2499 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2500 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2501 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2502 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2504 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2505 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2506 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2507 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2509 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2510 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2511 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2512 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2514 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2515 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2516 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2517 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2519 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2520 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2521 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2522 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2524 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2525 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2526 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2527 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2529 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2530 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2531 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2532 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2534 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2535 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2536 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2537 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2539 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2540 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2541 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2542 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2544 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2545 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2546 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2547 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2549 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2550 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2551 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2552 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2554 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2555 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2556 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2557 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2559 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2560 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2561 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2562 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2564 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2565 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2566 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2567 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2569 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2570 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2571 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2572 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2574 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2575 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2576 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2577 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2579 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2580 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2581 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2582 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2584 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2585 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2586 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2587 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2589 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2590 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2591 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2592 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2594 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2595 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2596 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2597 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2599 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2600 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2601 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2602 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2604 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2605 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2606 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2607 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2609 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2610 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2611 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2612 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2614 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2615 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2616 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2617 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2619 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2620 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2621 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2622 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2624 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2625 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2626 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2627 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2629 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2630 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2631 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2632 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2634 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2635 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2636 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2637 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2639 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2640 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2641 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2642 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2644 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2645 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2646 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2647 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2649 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2650 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2651 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2652 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2654 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2655 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2656 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2657 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2659 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2660 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2661 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2662 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2664 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2665 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2666 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2667 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2669 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2670 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2671 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2672 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2674 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2675 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2676 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2677 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2679 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2680 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2681 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2682 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2684 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2685 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2686 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2687 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2689 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2690 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2691 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2692 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2694 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2695 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2696 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2697 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2699 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2700 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2701 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2702 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2704 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2705 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2706 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2707 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2709 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2710 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2711 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2712 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2714 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2715 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2716 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2717 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2719 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2720 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2721 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2722 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2724 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2725 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2726 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2727 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2729 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2730 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2731 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2732 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2734 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2735 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2736 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2737 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2739 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2740 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2741 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2742 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2744 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2745 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2746 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2747 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2749 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2750 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2751 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2752 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2754 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2755 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2756 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2757 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2759 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2760 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2761 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2762 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2764 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2765 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2766 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2767 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2769 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2770 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2771 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2772 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2774 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2775 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2776 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2777 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2779 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2780 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2781 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2782 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2784 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2785 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2786 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2787 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2789 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2790 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2791 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2792 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2794 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2795 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2796 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2797 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2799 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2800 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2801 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2802 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2804 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2805 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2806 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2807 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2809 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2810 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2811 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2812 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2815 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v6[] = {
2817 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2818 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2819 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2820 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2822 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2823 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2824 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2825 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2827 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2828 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2829 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2830 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2832 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2833 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2834 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2835 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2837 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2838 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2839 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2840 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2842 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2843 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2844 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2845 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2847 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2848 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2849 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2850 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2852 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2853 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2854 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2855 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2857 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2858 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2859 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2860 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2862 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2863 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2864 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2865 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2867 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2868 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2869 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2870 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2872 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2873 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2874 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2875 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2877 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2878 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2879 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2880 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2882 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2883 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2884 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2885 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2887 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2888 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2889 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2890 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2892 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2893 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2894 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2895 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2897 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2898 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2899 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2900 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2902 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2903 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2904 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2905 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2907 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2908 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2909 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2910 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2912 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2913 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2914 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2915 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2917 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2918 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2919 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2920 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2922 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2923 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2924 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2925 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2927 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2928 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2929 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2930 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2932 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2933 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2934 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2935 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2937 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2938 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2939 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2940 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2942 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2943 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2944 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2945 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2947 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2948 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2949 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2950 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2952 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2953 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2954 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2955 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2957 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2958 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2959 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2960 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2962 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2963 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2964 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2965 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2967 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2968 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2969 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2970 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2972 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2973 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2974 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2975 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2977 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2978 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2979 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2980 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2982 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2983 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2984 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2985 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2987 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2988 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2989 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2990 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2992 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2993 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2994 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2995 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2997 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2998 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2999 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3000 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3002 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3003 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3004 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3005 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3007 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3008 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
3009 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3010 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3012 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3013 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
3014 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
3015 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3017 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3018 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
3019 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3020 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3022 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3023 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3024 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3025 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3027 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3028 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3029 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3030 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3032 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3033 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3034 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3035 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3037 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3038 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3039 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3040 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3042 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3043 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3044 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3045 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3047 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3048 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3049 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3050 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3052 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3053 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3054 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3055 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3057 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3058 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3059 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3060 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3062 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3063 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3064 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3065 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3067 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3068 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3069 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3070 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3072 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3073 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3074 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3075 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3077 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3078 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3079 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3080 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3082 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3083 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3084 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3085 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3087 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3088 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3089 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3090 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3092 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3093 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3094 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3095 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3097 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3098 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3099 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3100 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3102 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3103 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3104 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3105 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3107 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3108 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3109 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3110 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3112 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3113 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3114 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3115 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3117 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3118 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3119 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3120 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3122 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3123 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3124 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3125 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3127 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3128 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3129 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3130 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3132 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3133 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3134 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3135 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3137 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3138 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3139 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3140 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3142 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3143 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3144 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3145 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3147 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3148 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3149 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3150 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3152 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3153 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3154 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3155 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3157 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3158 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3159 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3160 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3162 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3163 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3164 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3165 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3167 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3168 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3169 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3170 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3172 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3173 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3174 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3175 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3177 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3178 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3179 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3180 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3182 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3183 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3184 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3185 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3187 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3188 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3189 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3190 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3192 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3193 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3194 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3195 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3197 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3198 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3199 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3200 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3202 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3203 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3204 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3205 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3207 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3208 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3209 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3210 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3212 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3213 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3214 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3215 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3217 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3218 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3219 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3220 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3222 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3223 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3224 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3225 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3227 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3228 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3229 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3230 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3232 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3233 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3234 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3235 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3237 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3238 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3239 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3240 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3242 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3243 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3244 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3245 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3247 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3248 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3249 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3250 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3252 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3253 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3254 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3255 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3257 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3258 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3259 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3260 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3262 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3263 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3264 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3265 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3267 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3268 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3269 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3270 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3272 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3273 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3274 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3275 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3277 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3278 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3279 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3280 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3282 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3283 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3284 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3285 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3287 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3288 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3289 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3290 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3292 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3293 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3294 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3295 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3297 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3298 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3299 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3300 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3302 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3303 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3304 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3305 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3307 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3308 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3309 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3310 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3312 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3313 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3314 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3315 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3317 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3318 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3319 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3320 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3322 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3323 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3324 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3325 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3327 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3328 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3329 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3330 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3332 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3333 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3334 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3335 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3337 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3338 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3339 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3340 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3342 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3343 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3344 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3345 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3347 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3348 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3349 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3350 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3352 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3353 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3354 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3355 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3357 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3358 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3359 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3360 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3362 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3363 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3364 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3365 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3367 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3368 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3369 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3370 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3372 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3373 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3374 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3375 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3377 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3378 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3379 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3380 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3382 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3383 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3384 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3385 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3387 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3388 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3389 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3390 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3392 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3393 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3394 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3395 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3397 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3398 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3399 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3400 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3402 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3403 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3404 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3405 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3407 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3408 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3409 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3410 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3412 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3413 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3414 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3415 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3417 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3418 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3419 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3420 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3422 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3423 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3424 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3425 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3427 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3428 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3429 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3430 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3432 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3433 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3434 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3435 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3438 static const struct chan_info_nphy_radio205x chan_info_nphyrev5n6_2056v7[] = {
3440 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3441 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3442 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3443 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3445 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3446 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3447 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3448 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3450 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3451 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3452 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3453 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3455 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3456 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3457 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3458 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3460 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3461 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3462 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3463 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3465 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3466 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3467 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3468 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3470 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3471 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3472 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3473 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3475 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3476 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3477 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3478 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3480 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3481 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3482 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3483 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3485 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3486 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3487 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3488 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3490 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3491 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3492 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3493 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3495 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3496 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3497 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3498 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3500 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3501 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3502 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3503 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3505 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3506 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3507 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3508 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3510 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3511 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3512 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3513 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3515 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3516 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3517 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3518 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3520 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3521 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3522 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3523 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3525 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3526 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3527 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3528 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3530 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3531 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3532 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3533 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3535 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3536 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3537 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3538 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3540 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3541 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3542 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3543 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3545 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3546 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3547 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3548 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3550 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3551 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3552 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3553 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3555 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3556 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3557 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3558 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3560 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3561 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3562 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3563 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3565 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3566 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3567 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3568 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3570 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3571 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3572 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3573 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3575 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3576 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3577 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3578 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3580 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3581 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3582 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3583 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3585 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3586 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3587 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3588 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3590 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3591 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3592 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3593 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3595 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3596 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3597 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3598 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3600 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3601 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3602 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3603 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3605 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3606 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3607 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3608 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3610 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3611 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3612 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3613 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3615 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3616 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3617 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3618 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3620 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3621 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3622 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3623 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3625 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3626 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3627 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3628 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3630 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3631 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3632 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3633 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3635 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3636 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3637 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3638 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3640 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3641 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3642 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3643 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3645 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3646 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3647 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3648 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3650 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3651 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3652 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3653 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3655 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3656 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3657 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3658 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3660 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3661 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3662 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3663 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3665 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3666 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3667 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3668 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3670 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3671 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3672 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3673 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3675 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3676 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3677 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3678 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3680 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3681 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3682 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3683 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3685 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3686 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3687 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3688 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3690 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3691 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3692 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3693 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3695 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3696 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3697 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3698 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3700 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3701 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3702 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3703 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3705 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3706 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3707 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3708 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3710 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3711 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3712 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3713 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3715 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3716 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3717 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3718 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3720 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3721 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3722 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3723 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3725 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3726 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3727 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3728 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3730 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3731 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3732 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3733 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3735 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3736 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3737 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3738 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3740 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3741 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3742 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3743 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3745 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3746 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3747 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3748 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3750 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3751 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3752 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3753 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3755 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3756 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3757 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3758 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3760 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3761 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3762 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3763 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3765 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3766 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3767 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3768 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3770 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3771 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3772 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3773 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3775 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3776 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3777 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3778 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3780 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3781 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3782 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3783 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3785 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3786 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3787 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3788 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3790 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3791 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3792 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3793 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3795 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3796 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3797 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3798 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3800 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3801 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3802 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3803 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3805 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3806 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3807 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3808 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3810 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3811 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3812 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3813 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3815 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3816 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3817 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3818 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3820 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3821 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3822 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3823 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3825 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3826 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3827 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3828 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3830 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3831 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3832 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3833 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3835 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3836 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3837 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3838 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3840 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3841 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3842 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3843 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3845 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3846 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3847 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3848 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3850 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3851 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3852 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3853 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3855 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3856 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3857 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3858 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3860 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3861 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3862 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3863 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3865 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3866 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3867 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3868 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3870 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3871 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3872 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3873 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3875 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3876 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3877 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3878 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3880 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3881 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3882 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3883 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3885 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3886 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3887 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3888 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3890 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3891 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3892 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3893 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3895 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3896 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3897 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3898 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3900 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3901 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3902 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3903 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3905 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3906 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3907 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3908 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3910 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3911 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3912 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3913 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3915 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3916 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3917 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3918 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3920 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3921 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3922 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3923 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3925 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3926 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3927 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3928 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3930 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3931 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3932 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3933 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3935 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3936 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3937 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3938 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3940 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3941 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3942 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3943 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3945 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3946 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3947 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3948 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3950 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3951 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3952 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3953 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3955 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3956 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3957 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3958 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3960 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3961 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3962 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3963 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3965 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3966 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3967 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3968 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3970 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3971 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3972 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3973 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3975 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3976 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3977 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3978 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3980 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3981 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3982 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3983 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3985 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3986 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3987 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3988 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3990 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3991 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3992 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3993 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3995 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3996 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3997 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3998 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4000 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4001 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
4002 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4003 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4005 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4006 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4007 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4008 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4010 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4011 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
4012 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4013 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4015 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4016 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
4017 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4018 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4020 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4021 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
4022 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
4023 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4025 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4026 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
4027 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4028 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4030 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4031 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4032 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4033 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4035 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4036 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4037 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4038 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4040 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4041 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4042 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4043 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4045 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4046 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4047 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4048 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4050 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4051 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4052 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4053 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4055 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4056 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4057 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4058 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4061 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v8[] = {
4063 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4064 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4065 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4066 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4068 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4069 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4070 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4071 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4073 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4074 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4075 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4076 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4078 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4079 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4080 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4081 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4083 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4084 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4085 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4086 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4088 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4089 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4090 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4091 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4093 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4094 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4095 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4096 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4098 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4099 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4100 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4101 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4103 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4104 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4105 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4106 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4108 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4109 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4110 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4111 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4113 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4114 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4115 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4116 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4118 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4119 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4120 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4121 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4123 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4124 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4125 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4126 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4128 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4129 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4130 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4131 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4133 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4134 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4135 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4136 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4138 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4139 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4140 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4141 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4143 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4144 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4145 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4146 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4148 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4149 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4150 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4151 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4153 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4154 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4155 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4156 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4158 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4159 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4160 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4161 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4163 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4164 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4165 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4166 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4168 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4169 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4170 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4171 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4173 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4174 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4175 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4176 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4178 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4179 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4180 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4181 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4183 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4184 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4185 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4186 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4188 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4189 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4190 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4191 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4193 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4194 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4195 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4196 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4198 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4199 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4200 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4201 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4203 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4204 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4205 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4206 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4208 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4209 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4210 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4211 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4213 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4214 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4215 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4216 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4218 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4219 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4220 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4221 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4223 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4224 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4225 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4226 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4228 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4229 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4230 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4231 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4233 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4234 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4235 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4236 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4238 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4239 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4240 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4241 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4243 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4244 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4245 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4246 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4248 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4249 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4250 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4251 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4253 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4254 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4255 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4256 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4258 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4259 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4260 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4261 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4263 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4264 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4265 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4266 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4268 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4269 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4270 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4271 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4273 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4274 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4275 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4276 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4278 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4279 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4280 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4281 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4283 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4284 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4285 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4286 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4288 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4289 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4290 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4291 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4293 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4294 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4295 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4296 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4298 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4299 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4300 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4301 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4303 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4304 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4305 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4306 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4308 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4309 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4310 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4311 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4313 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4314 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4315 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4316 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4318 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4319 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4320 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4321 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4323 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4324 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4325 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4326 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4328 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4329 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4330 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4331 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4333 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4334 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4335 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4336 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4338 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4339 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4340 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4341 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4343 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4344 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4345 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4346 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4348 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4349 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4350 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4351 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4353 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4354 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4355 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4356 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4358 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4359 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4360 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4361 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4363 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4364 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4365 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4366 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4368 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4369 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4370 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4371 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4373 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4374 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4375 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4376 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4378 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4379 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4380 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4381 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4383 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4384 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4385 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4386 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4388 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4389 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4390 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4391 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4393 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4394 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4395 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4396 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4398 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4399 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4400 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4401 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4403 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4404 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4405 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4406 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4408 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4409 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4410 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4411 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4413 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4414 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4415 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4416 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4418 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4419 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4420 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4421 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4423 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4424 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4425 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4426 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4428 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4429 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4430 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4431 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4433 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4434 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4435 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4436 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4438 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4439 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4440 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4441 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4443 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4444 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4445 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4446 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4448 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4449 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4450 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4451 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4453 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4454 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4455 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4456 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4458 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4459 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4460 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4461 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4463 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4464 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4465 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4466 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4468 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4469 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4470 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4471 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4473 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4474 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4475 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4476 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4478 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4479 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4480 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4481 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4483 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4484 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4485 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4486 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4488 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4489 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4490 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4491 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4493 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4494 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4495 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4496 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4498 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4499 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4500 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4501 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4503 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4504 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4505 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4506 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4508 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4509 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4510 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4511 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4513 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4514 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4515 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4516 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4518 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4519 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4520 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4521 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4523 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4524 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4525 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4526 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4528 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4529 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4530 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4531 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4533 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4534 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4535 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4536 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4538 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4539 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4540 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4541 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4543 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4544 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4545 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4546 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4548 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4549 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4550 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4551 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4553 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4554 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4555 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4556 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4558 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4559 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4560 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4561 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4563 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4564 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4565 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4566 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4568 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4569 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4570 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4571 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4573 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4574 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4575 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4576 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4578 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4579 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4580 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4581 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4583 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4584 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4585 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4586 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4588 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4589 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4590 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4591 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4593 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4594 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4595 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4596 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4598 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4599 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4600 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4601 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4603 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4604 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4605 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4606 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4608 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4609 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4610 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4611 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4613 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4614 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4615 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4616 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4618 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4619 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4620 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4621 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4623 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4624 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4625 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4626 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4628 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4629 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4630 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4631 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4633 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4634 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4635 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4636 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4638 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4639 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4640 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4641 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4643 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4644 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4645 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4646 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4648 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4649 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4650 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4651 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4653 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4654 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4655 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4656 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4658 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4659 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4660 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4661 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4663 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4664 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4665 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4666 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4668 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4669 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4670 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4671 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4673 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4674 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4675 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4676 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4678 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4679 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4680 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4681 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4684 static const struct chan_info_nphy_radio205x chan_info_nphyrev6_2056v11[] = {
4686 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4687 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4688 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4689 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4691 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4692 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4693 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4694 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4696 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4697 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4698 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4699 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4701 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4702 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4703 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4704 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4706 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4707 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4708 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4709 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4711 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4712 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4713 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4714 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4716 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4717 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4718 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4719 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4721 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4722 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4723 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4724 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4726 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4727 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4728 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4729 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4731 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4732 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4733 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4734 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4736 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4737 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4738 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4739 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4741 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4742 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4743 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4744 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4746 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4747 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4748 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4749 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4751 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4752 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4753 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4754 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4756 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4757 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4758 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4759 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4761 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4762 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4763 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4764 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4766 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4767 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4768 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4769 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4771 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4772 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4773 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4774 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4776 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4777 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4778 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4779 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4781 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4782 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4783 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4784 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4786 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4787 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4788 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4789 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4791 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4792 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4793 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4794 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4796 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4797 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4798 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4799 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4801 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4802 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4803 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4804 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4806 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4807 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4808 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4809 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4811 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4812 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4813 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4814 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4816 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4817 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4818 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4819 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4821 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4822 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4823 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4824 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4826 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4827 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4828 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4829 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4831 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4832 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4833 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4834 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4836 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4837 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4838 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4839 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4841 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4842 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4843 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4844 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4846 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4847 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4848 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4849 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4851 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4852 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4853 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4854 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4856 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4857 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4858 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4859 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4861 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4862 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4863 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4864 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4866 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4867 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4868 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4869 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4871 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4872 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4873 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4874 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4876 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4877 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4878 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4879 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4881 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4882 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4883 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4884 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4886 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4887 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4888 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4889 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4891 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4892 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4893 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4894 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4896 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4897 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4898 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4899 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4901 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4902 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4903 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4904 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4906 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4907 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4908 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4909 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4911 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4912 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4913 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4914 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4916 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4917 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4918 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4919 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4921 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4922 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4923 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4924 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4926 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4927 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4928 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4929 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4931 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4932 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4933 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4934 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4936 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4937 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4938 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4939 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4941 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4942 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4943 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4944 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4946 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4947 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4948 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4949 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4951 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4952 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4953 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4954 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4956 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4957 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4958 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4959 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4961 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4962 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4963 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4964 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4966 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4967 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4968 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4969 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4971 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4972 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4973 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4974 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4976 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4977 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4978 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4979 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4981 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4982 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4983 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4984 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4986 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4987 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4988 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4989 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4991 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4992 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4993 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4994 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4996 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4997 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4998 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4999 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
5001 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5002 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
5003 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5004 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
5006 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5007 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
5008 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
5009 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
5011 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5012 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
5013 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5014 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
5016 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5017 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
5018 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5019 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
5021 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
5022 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5023 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5024 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
5026 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
5027 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5028 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5029 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5031 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5032 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5033 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5034 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5036 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5037 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5038 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5039 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5041 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5042 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5043 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5044 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5046 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5047 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5048 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5049 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5051 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5052 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5053 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5054 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5056 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5057 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5058 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5059 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5061 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5062 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5063 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5064 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5066 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5067 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5068 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5069 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5071 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5072 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5073 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5074 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5076 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5077 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5078 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5079 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5081 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5082 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5083 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5084 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5086 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5087 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5088 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5089 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5091 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5092 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5093 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5094 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5096 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5097 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5098 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5099 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5101 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5102 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5103 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5104 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5106 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5107 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5108 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5109 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5111 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5112 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5113 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5114 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5116 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5117 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5118 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5119 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5121 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5122 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5123 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5124 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5126 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5127 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5128 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5129 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5131 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5132 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5133 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5134 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5136 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5137 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5138 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5139 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5141 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5142 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5143 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5144 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5146 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5147 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5148 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5149 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5151 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5152 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5153 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5154 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5156 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5157 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5158 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5159 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5161 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5162 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5163 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5164 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5166 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5167 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5168 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5169 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5171 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5172 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5173 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5174 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5176 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5177 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5178 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5179 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5181 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5182 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5183 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5184 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5186 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5187 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5188 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5189 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5191 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5192 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5193 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5194 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5196 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5197 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5198 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5199 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5201 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5202 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5203 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5204 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5206 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5207 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5208 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5209 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5211 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5212 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5213 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5214 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5216 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5217 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5218 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5219 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5221 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5222 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5223 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5224 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5226 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5227 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5228 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5229 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5231 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5232 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5233 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5234 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5236 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5237 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5238 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5239 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5241 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5242 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5243 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5244 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5246 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5247 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5248 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5249 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5251 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5252 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5253 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5254 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5256 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5257 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5258 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5259 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5261 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5262 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5263 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5264 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5266 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5267 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5268 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5269 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5271 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5272 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5273 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5274 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5276 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5277 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5278 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5279 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5281 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5282 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5283 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5284 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5286 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5287 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5288 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5289 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5291 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5292 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5293 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5294 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5296 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5297 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5298 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5299 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5301 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5302 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5303 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5304 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5307 static const struct chan_info_nphy_radio2057 chan_info_nphyrev7_2057_rev4[] = {
5309 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5311 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5312 0x0215,
5313 0x0216,
5316 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5318 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5319 0x0214,
5320 0x0215,
5323 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5324 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5325 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5326 0x0213,
5327 0x0214,
5330 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5332 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5333 0x0212,
5334 0x0213,
5337 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5338 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5339 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5340 0x0211,
5341 0x0212,
5344 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5345 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5346 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5347 0x020f,
5348 0x0211,
5351 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5352 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5353 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5354 0x020e,
5355 0x020f,
5358 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5359 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5360 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5361 0x020d,
5362 0x020e,
5365 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5366 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5367 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5368 0x020c,
5369 0x020d,
5372 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5373 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5374 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5375 0x020b,
5376 0x020c,
5379 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5380 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5381 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5382 0x020a,
5383 0x020b,
5386 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5387 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5388 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5389 0x0209,
5390 0x020a,
5393 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5394 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5395 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5396 0x0208,
5397 0x0209,
5400 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5401 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5402 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5403 0x0207,
5404 0x0208,
5407 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5408 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5409 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5410 0x0206,
5411 0x0207,
5414 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5415 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5416 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5417 0x0205,
5418 0x0206,
5421 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5422 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5423 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5424 0x0204,
5425 0x0205,
5428 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5429 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5430 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5431 0x0203,
5432 0x0204,
5435 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5436 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5437 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5438 0x0202,
5439 0x0203,
5442 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5443 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5444 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5445 0x0201,
5446 0x0202,
5449 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5450 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5451 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5452 0x0200,
5453 0x0201,
5456 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5457 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5458 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5459 0x01ff,
5460 0x0200,
5463 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5464 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5465 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5466 0x01fe,
5467 0x01ff,
5470 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5471 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5472 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5473 0x01fc,
5474 0x01fd,
5477 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5478 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5479 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5480 0x01fb,
5481 0x01fc,
5484 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5486 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5487 0x01fa,
5488 0x01fb,
5491 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5492 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5493 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5494 0x01f9,
5495 0x01fa,
5498 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5499 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5500 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5501 0x01f8,
5502 0x01f9,
5505 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5506 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5507 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5508 0x01f7,
5509 0x01f8,
5512 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5513 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5514 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5515 0x01f6,
5516 0x01f7,
5519 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5520 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5521 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5522 0x01f5,
5523 0x01f6,
5526 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5527 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5528 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5529 0x01f4,
5530 0x01f5,
5533 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5534 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5535 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5536 0x01f3,
5537 0x01f4,
5540 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5541 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5542 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5543 0x01f2,
5544 0x01f3,
5547 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5548 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5549 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5550 0x01f1,
5551 0x01f2,
5554 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5555 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5556 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5557 0x01f0,
5558 0x01f1,
5561 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5562 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5563 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5564 0x01f0,
5565 0x01f0,
5568 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5569 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5570 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5571 0x01ef,
5572 0x01f0,
5575 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5576 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5577 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5578 0x01ee,
5579 0x01ef,
5582 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5583 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5584 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5585 0x01ed,
5586 0x01ee,
5589 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5590 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5591 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5592 0x01ec,
5593 0x01ed,
5596 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5597 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5598 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5599 0x01eb,
5600 0x01ec,
5603 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5604 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5605 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5606 0x01ea,
5607 0x01eb,
5610 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5611 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5612 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5613 0x01e9,
5614 0x01ea,
5617 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5618 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5619 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5620 0x01e8,
5621 0x01e9,
5624 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5625 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5626 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5627 0x01e7,
5628 0x01e8,
5631 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5632 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5633 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5634 0x01e6,
5635 0x01e7,
5638 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5639 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5640 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5641 0x01e5,
5642 0x01e6,
5645 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5646 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5647 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5648 0x01e5,
5649 0x01e5,
5652 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5653 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5654 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5655 0x01e4,
5656 0x01e5,
5659 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5660 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5661 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5662 0x01e3,
5663 0x01e4,
5666 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5667 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5668 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5669 0x01e2,
5670 0x01e3,
5673 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5674 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5675 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5676 0x01e1,
5677 0x01e2,
5680 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5681 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5682 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5683 0x01e0,
5684 0x01e1,
5687 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5688 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5689 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5690 0x01df,
5691 0x01e0,
5694 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5695 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5696 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5697 0x01de,
5698 0x01df,
5701 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5702 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5703 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5704 0x01dd,
5705 0x01de,
5708 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5709 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5710 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5711 0x01dd,
5712 0x01dd,
5715 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5716 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5717 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5718 0x01dc,
5719 0x01dd,
5722 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5723 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5724 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5725 0x01db,
5726 0x01dc,
5729 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5730 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5731 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5732 0x01da,
5733 0x01db,
5736 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5737 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5738 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5739 0x01d9,
5740 0x01da,
5743 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5744 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5745 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5746 0x01d8,
5747 0x01d9,
5750 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5751 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5752 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5753 0x01d7,
5754 0x01d8,
5757 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5758 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5759 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5760 0x01d7,
5761 0x01d7,
5764 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5765 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5766 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5767 0x01d6,
5768 0x01d7,
5771 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5772 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5773 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5774 0x01d5,
5775 0x01d6,
5778 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5779 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5780 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5781 0x01d4,
5782 0x01d5,
5785 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5786 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5787 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5788 0x01d3,
5789 0x01d4,
5792 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5793 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5794 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5795 0x01d2,
5796 0x01d3,
5799 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5800 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5801 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5802 0x01d2,
5803 0x01d2,
5806 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5807 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5808 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5809 0x01d1,
5810 0x01d2,
5813 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5814 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5815 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5816 0x01d0,
5817 0x01d1,
5820 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5821 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5822 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5823 0x01cf,
5824 0x01d0,
5827 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5828 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5829 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5830 0x01ce,
5831 0x01cf,
5834 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5835 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5836 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5837 0x01ce,
5838 0x01ce,
5841 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5842 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5843 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5844 0x01cd,
5845 0x01ce,
5848 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5849 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5850 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5851 0x01cc,
5852 0x01cd,
5855 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5856 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5857 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5858 0x01cb,
5859 0x01cc,
5862 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5863 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5864 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5865 0x01ca,
5866 0x01cb,
5869 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5870 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5871 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5872 0x01ca,
5873 0x01cb,
5876 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5877 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5878 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5879 0x01c9,
5880 0x01ca,
5883 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5884 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5885 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5886 0x01c9,
5887 0x01ca,
5890 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5891 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5892 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5893 0x01c9,
5894 0x01c9,
5897 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5898 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5899 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5900 0x01c8,
5901 0x01c9,
5904 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5905 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5906 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5907 0x01c8,
5908 0x01c9,
5911 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5912 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5913 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5914 0x01c8,
5915 0x01c8,
5918 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5919 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5920 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5921 0x01c7,
5922 0x01c8,
5925 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5926 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5927 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5928 0x01c7,
5929 0x01c8,
5932 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5933 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5934 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5935 0x01c6,
5936 0x01c7,
5939 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5940 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5941 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5942 0x01c6,
5943 0x01c7,
5946 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5947 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5948 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5949 0x01c6,
5950 0x01c6,
5953 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5954 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5955 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5956 0x01c5,
5957 0x01c6,
5960 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5961 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5962 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5963 0x01c5,
5964 0x01c6,
5967 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5968 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5969 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5970 0x01c4,
5971 0x01c5,
5974 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5975 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5976 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5977 0x01c4,
5978 0x01c5,
5981 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5982 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5983 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5984 0x01c4,
5985 0x01c4,
5988 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5989 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5990 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5991 0x01c3,
5992 0x01c4,
5995 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5996 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5997 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5998 0x01c3,
5999 0x01c4,
6002 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6003 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6004 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6005 0x01c2,
6006 0x01c3,
6009 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6010 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6011 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6012 0x01c2,
6013 0x01c3,
6016 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6017 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6018 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6019 0x01c2,
6020 0x01c2,
6023 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6024 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6025 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6026 0x01c1,
6027 0x01c2,
6030 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6031 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6032 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6033 0x01c0,
6034 0x01c1,
6037 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6038 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6039 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6040 0x01bf,
6041 0x01c0,
6044 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6045 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6046 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6047 0x01bf,
6048 0x01bf,
6051 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6052 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6053 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6054 0x01be,
6055 0x01bf,
6058 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6059 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6060 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6061 0x01bd,
6062 0x01be,
6065 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6066 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6067 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6068 0x01bc,
6069 0x01bd,
6072 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6073 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6074 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6075 0x043f,
6076 0x0443,
6079 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6080 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6081 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6082 0x043d,
6083 0x0441,
6086 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6087 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6088 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6089 0x043a,
6090 0x043f,
6093 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6094 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6095 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6096 0x0438,
6097 0x043d,
6100 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6101 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6102 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6103 0x0436,
6104 0x043a,
6107 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6108 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6109 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6110 0x0434,
6111 0x0438,
6114 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6115 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6116 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6117 0x0431,
6118 0x0436,
6121 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6122 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6123 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6124 0x042f,
6125 0x0434,
6128 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6129 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6130 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6131 0x042d,
6132 0x0431,
6135 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6136 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6137 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6138 0x042b,
6139 0x042f,
6142 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6143 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6144 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6145 0x0429,
6146 0x042d,
6149 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6150 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6151 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6152 0x0427,
6153 0x042b,
6156 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6157 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6158 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6159 0x0424,
6160 0x0429,
6163 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6164 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6165 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6166 0x041f,
6167 0x0424}
6170 static const struct chan_info_nphy_radio2057_rev5
6171 chan_info_nphyrev8_2057_rev5[] = {
6173 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6174 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6175 0x043a, 0x043f, 0x0443},
6177 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6178 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6179 0x0438, 0x043d, 0x0441},
6181 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6182 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6183 0x0436, 0x043a, 0x043f},
6185 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6186 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6187 0x0434, 0x0438, 0x043d},
6189 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6190 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6191 0x0431, 0x0436, 0x043a},
6193 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6194 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6195 0x042f, 0x0434, 0x0438},
6197 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6198 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6199 0x042d, 0x0431, 0x0436},
6201 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6202 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6203 0x042b, 0x042f, 0x0434},
6205 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6206 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6207 0x0429, 0x042d, 0x0431},
6209 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6210 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6211 0x0427, 0x042b, 0x042f},
6213 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6214 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6215 0x0424, 0x0429, 0x042d},
6217 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6218 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6219 0x0422, 0x0427, 0x042b},
6221 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6222 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6223 0x0420, 0x0424, 0x0429},
6225 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6226 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6227 0x041b, 0x041f, 0x0424}
6230 static const struct chan_info_nphy_radio2057_rev5
6231 chan_info_nphyrev9_2057_rev5v1[] = {
6233 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6234 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6235 0x043a, 0x043f, 0x0443},
6237 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6238 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6239 0x0438, 0x043d, 0x0441},
6241 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6242 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6243 0x0436, 0x043a, 0x043f},
6245 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6246 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6247 0x0434, 0x0438, 0x043d},
6249 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6250 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6251 0x0431, 0x0436, 0x043a},
6253 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6254 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6255 0x042f, 0x0434, 0x0438},
6257 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6258 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6259 0x042d, 0x0431, 0x0436},
6261 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6262 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6263 0x042b, 0x042f, 0x0434},
6265 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6266 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6267 0x0429, 0x042d, 0x0431},
6269 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6270 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6271 0x0427, 0x042b, 0x042f},
6273 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6274 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6275 0x0424, 0x0429, 0x042d},
6277 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6278 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6279 0x0422, 0x0427, 0x042b},
6281 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6282 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6283 0x0420, 0x0424, 0x0429},
6285 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6286 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6287 0x041b, 0x041f, 0x0424}
6290 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev7[] = {
6292 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6293 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6294 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6295 0x0215,
6296 0x0216},
6298 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6299 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6300 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6301 0x0214,
6302 0x0215},
6304 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6305 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6306 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6307 0x0213,
6308 0x0214},
6310 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6311 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6312 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6313 0x0212,
6314 0x0213},
6316 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6318 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6319 0x0211,
6320 0x0212},
6322 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6323 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6324 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6325 0x020f,
6326 0x0211},
6328 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6329 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6330 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6331 0x020e,
6332 0x020f},
6334 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6335 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6336 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6337 0x020d,
6338 0x020e},
6340 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6341 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6342 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6343 0x020c,
6344 0x020d},
6346 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6347 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6348 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6349 0x020b,
6350 0x020c},
6352 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6353 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6354 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6355 0x020a,
6356 0x020b},
6358 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6360 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6361 0x0209,
6362 0x020a},
6364 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6365 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6366 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6367 0x0208,
6368 0x0209},
6370 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6371 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6372 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6373 0x0207,
6374 0x0208},
6376 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6377 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6378 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6379 0x0206,
6380 0x0207},
6382 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6383 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6384 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6385 0x0205,
6386 0x0206},
6388 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6389 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6390 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6391 0x0204,
6392 0x0205},
6394 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6395 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6396 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6397 0x0203,
6398 0x0204},
6400 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6401 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6402 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6403 0x0202,
6404 0x0203},
6406 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6407 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6408 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6409 0x0201,
6410 0x0202},
6412 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6413 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6414 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6415 0x0200,
6416 0x0201},
6418 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6419 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6420 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6421 0x01ff,
6422 0x0200},
6424 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6425 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6426 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6427 0x01fe,
6428 0x01ff},
6430 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6431 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6432 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6433 0x01fc,
6434 0x01fd},
6436 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6437 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6438 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6439 0x01fb,
6440 0x01fc},
6442 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6443 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6444 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6445 0x01fa,
6446 0x01fb},
6448 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6449 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6450 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6451 0x01f9,
6452 0x01fa},
6454 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6455 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6456 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6457 0x01f8,
6458 0x01f9},
6460 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6461 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6462 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6463 0x01f7,
6464 0x01f8},
6466 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6467 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6468 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6469 0x01f6,
6470 0x01f7},
6472 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6473 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6474 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6475 0x01f5,
6476 0x01f6},
6478 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6479 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6480 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6481 0x01f4,
6482 0x01f5},
6484 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6486 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6487 0x01f3,
6488 0x01f4},
6490 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6491 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6492 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6493 0x01f2,
6494 0x01f3},
6496 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6497 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6498 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6499 0x01f1,
6500 0x01f2},
6502 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6503 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6504 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6505 0x01f0,
6506 0x01f1},
6508 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6509 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6510 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6511 0x01f0,
6512 0x01f0},
6514 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6515 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6516 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6517 0x01ef,
6518 0x01f0},
6520 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6521 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6522 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6523 0x01ee,
6524 0x01ef},
6526 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6527 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6528 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6529 0x01ed,
6530 0x01ee},
6532 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6533 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6534 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6535 0x01ec,
6536 0x01ed},
6538 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6539 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6540 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6541 0x01eb,
6542 0x01ec},
6544 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6545 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6546 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6547 0x01ea,
6548 0x01eb},
6550 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6551 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6552 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6553 0x01e9,
6554 0x01ea},
6556 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6557 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6558 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6559 0x01e8,
6560 0x01e9},
6562 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6563 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6564 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6565 0x01e7,
6566 0x01e8},
6568 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6569 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6570 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6571 0x01e6,
6572 0x01e7},
6574 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6575 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6576 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6577 0x01e5,
6578 0x01e6},
6580 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6581 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6582 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6583 0x01e5,
6584 0x01e5},
6586 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6587 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6588 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6589 0x01e4,
6590 0x01e5},
6592 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6593 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6594 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6595 0x01e3,
6596 0x01e4},
6598 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6599 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6600 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6601 0x01e2,
6602 0x01e3},
6604 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6605 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6606 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6607 0x01e1,
6608 0x01e2},
6610 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6611 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6612 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6613 0x01e0,
6614 0x01e1},
6616 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6617 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6618 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6619 0x01df,
6620 0x01e0},
6622 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6623 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6624 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6625 0x01de,
6626 0x01df},
6628 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6629 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6630 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6631 0x01dd,
6632 0x01de},
6634 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6635 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6636 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6637 0x01dd,
6638 0x01dd},
6640 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6641 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6642 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6643 0x01dc,
6644 0x01dd},
6646 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6647 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6648 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6649 0x01db,
6650 0x01dc},
6652 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6653 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6654 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6655 0x01da,
6656 0x01db},
6658 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6659 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6660 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6661 0x01d9,
6662 0x01da},
6664 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6665 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6666 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6667 0x01d8,
6668 0x01d9},
6670 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6671 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6672 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6673 0x01d7,
6674 0x01d8},
6676 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6677 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6678 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6679 0x01d7,
6680 0x01d7},
6682 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6683 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6684 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6685 0x01d6,
6686 0x01d7},
6688 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6689 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6690 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6691 0x01d5,
6692 0x01d6},
6694 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6695 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6696 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6697 0x01d4,
6698 0x01d5},
6700 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6701 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6702 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6703 0x01d3,
6704 0x01d4},
6706 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6707 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6708 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6709 0x01d2,
6710 0x01d3},
6712 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6713 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6714 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6715 0x01d2,
6716 0x01d2},
6718 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6719 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6720 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6721 0x01d1,
6722 0x01d2},
6724 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6725 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6726 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6727 0x01d0,
6728 0x01d1},
6730 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6731 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6732 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6733 0x01cf,
6734 0x01d0},
6736 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6737 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6738 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6739 0x01ce,
6740 0x01cf},
6742 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6743 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6744 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6745 0x01ce,
6746 0x01ce},
6748 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6749 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6750 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6751 0x01cd,
6752 0x01ce},
6754 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6755 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6756 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6757 0x01cc,
6758 0x01cd},
6760 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6761 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6762 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6763 0x01cb,
6764 0x01cc},
6766 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6767 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6768 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6769 0x01ca,
6770 0x01cb},
6772 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6773 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6774 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6775 0x01ca,
6776 0x01cb},
6778 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6779 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6780 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6781 0x01c9,
6782 0x01ca},
6784 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6785 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6786 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6787 0x01c9,
6788 0x01ca},
6790 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6791 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6792 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6793 0x01c9,
6794 0x01c9},
6796 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6797 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6798 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6799 0x01c8,
6800 0x01c9},
6802 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6803 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6804 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6805 0x01c8,
6806 0x01c9},
6808 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6809 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6810 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6811 0x01c8,
6812 0x01c8},
6814 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6815 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6816 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6817 0x01c7,
6818 0x01c8},
6820 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6821 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6822 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6823 0x01c7,
6824 0x01c8},
6826 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6827 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6828 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6829 0x01c6,
6830 0x01c7},
6832 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6833 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6834 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6835 0x01c6,
6836 0x01c7},
6838 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6839 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6840 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6841 0x01c6,
6842 0x01c6},
6844 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6845 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6846 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6847 0x01c5,
6848 0x01c6},
6850 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6851 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6852 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6853 0x01c5,
6854 0x01c6},
6856 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6857 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6858 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6859 0x01c4,
6860 0x01c5},
6862 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6863 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6864 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6865 0x01c4,
6866 0x01c5},
6868 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6869 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6870 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6871 0x01c4,
6872 0x01c4},
6874 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6875 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6876 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6877 0x01c3,
6878 0x01c4},
6880 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6881 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6882 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6883 0x01c3,
6884 0x01c4},
6886 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6887 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6888 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6889 0x01c2,
6890 0x01c3},
6892 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6893 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6894 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6895 0x01c2,
6896 0x01c3},
6898 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6899 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6900 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6901 0x01c2,
6902 0x01c2},
6904 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6905 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6906 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6907 0x01c1,
6908 0x01c2},
6910 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6911 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6912 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6913 0x01c0,
6914 0x01c1},
6916 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6917 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6918 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6919 0x01bf,
6920 0x01c0},
6922 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6923 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6924 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6925 0x01bf,
6926 0x01bf},
6928 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6929 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6930 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6931 0x01be,
6932 0x01bf},
6934 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6935 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6936 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6937 0x01bd,
6938 0x01be},
6940 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6941 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6942 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6943 0x01bc,
6944 0x01bd},
6946 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6947 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6948 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6949 0x043f,
6950 0x0443},
6952 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6953 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6954 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6955 0x043d,
6956 0x0441},
6958 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6959 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6960 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6961 0x043a,
6962 0x043f},
6964 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6965 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6966 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6967 0x0438,
6968 0x043d},
6970 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6971 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6972 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6973 0x0436,
6974 0x043a},
6976 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6977 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6978 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6979 0x0434,
6980 0x0438},
6982 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6983 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6984 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6985 0x0431,
6986 0x0436},
6988 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6989 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6990 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6991 0x042f,
6992 0x0434},
6994 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6995 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6996 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6997 0x042d,
6998 0x0431},
7000 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7001 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7002 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7003 0x042b,
7004 0x042f},
7006 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7007 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7008 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7009 0x0429,
7010 0x042d},
7012 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7013 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7014 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7015 0x0427,
7016 0x042b},
7018 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7019 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7020 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7021 0x0424,
7022 0x0429},
7024 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7025 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7026 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7027 0x041f,
7028 0x0424}
7031 static const struct chan_info_nphy_radio2057 chan_info_nphyrev8_2057_rev8[] = {
7033 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7034 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7035 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7036 0x0214,
7037 0x0215},
7039 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7040 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7041 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7042 0x0213,
7043 0x0214},
7045 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7046 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7047 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7048 0x0212,
7049 0x0213},
7051 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7052 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7053 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7054 0x0211,
7055 0x0212},
7057 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7058 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7059 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7060 0x020f,
7061 0x0211},
7063 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7064 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7065 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7066 0x020e,
7067 0x020f},
7069 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7070 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7071 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7072 0x020d,
7073 0x020e},
7075 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7076 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7077 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7078 0x020c,
7079 0x020d},
7081 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7082 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7083 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7084 0x020b,
7085 0x020c},
7087 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7088 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7089 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7090 0x020a,
7091 0x020b},
7093 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7094 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7095 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7096 0x0209,
7097 0x020a},
7099 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7100 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7101 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7102 0x0208,
7103 0x0209},
7105 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7106 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7107 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7108 0x0207,
7109 0x0208},
7111 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7112 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7113 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7114 0x0206,
7115 0x0207},
7117 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7118 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7119 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7120 0x0205,
7121 0x0206},
7123 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7124 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7125 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7126 0x0204,
7127 0x0205},
7129 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7130 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7131 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7132 0x0203,
7133 0x0204},
7135 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7136 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7137 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7138 0x0202,
7139 0x0203},
7141 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7142 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7143 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7144 0x0201,
7145 0x0202},
7147 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7148 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7149 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7150 0x0200,
7151 0x0201},
7153 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7154 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7155 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7156 0x01ff,
7157 0x0200},
7159 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7160 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7161 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7162 0x01fe,
7163 0x01ff},
7165 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7166 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7167 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7168 0x01fc,
7169 0x01fd},
7171 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7172 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7173 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7174 0x01fb,
7175 0x01fc},
7177 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7178 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7179 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7180 0x01fa,
7181 0x01fb},
7183 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7184 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7185 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7186 0x01f9,
7187 0x01fa},
7189 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7190 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7191 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7192 0x01f8,
7193 0x01f9},
7195 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7196 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7197 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7198 0x01f7,
7199 0x01f8},
7201 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7202 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7203 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7204 0x01f6,
7205 0x01f7},
7207 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7208 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7209 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7210 0x01f5,
7211 0x01f6},
7213 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7214 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7215 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7216 0x01f4,
7217 0x01f5},
7219 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7220 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7221 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7222 0x01f3,
7223 0x01f4},
7225 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7226 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7227 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7228 0x01f2,
7229 0x01f3},
7231 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7232 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7233 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7234 0x01f1,
7235 0x01f2},
7237 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7238 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7239 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7240 0x01f0,
7241 0x01f1},
7243 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7244 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7245 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7246 0x01f0,
7247 0x01f0},
7249 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7250 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7251 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7252 0x01ef,
7253 0x01f0},
7255 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7256 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7257 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7258 0x01ee,
7259 0x01ef},
7261 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7262 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7263 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7264 0x01ed,
7265 0x01ee},
7267 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7268 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7269 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7270 0x01ec,
7271 0x01ed},
7273 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7274 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7275 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7276 0x01eb,
7277 0x01ec},
7279 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7280 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7281 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7282 0x01ea,
7283 0x01eb},
7285 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7286 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7287 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7288 0x01e9,
7289 0x01ea},
7291 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7292 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7293 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7294 0x01e8,
7295 0x01e9},
7297 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7298 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7299 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7300 0x01e7,
7301 0x01e8},
7303 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7304 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7305 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7306 0x01e6,
7307 0x01e7},
7309 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7310 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7311 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7312 0x01e5,
7313 0x01e6},
7315 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7316 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7317 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7318 0x01e5,
7319 0x01e5},
7321 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7322 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7323 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7324 0x01e4,
7325 0x01e5},
7327 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7328 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7329 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7330 0x01e3,
7331 0x01e4},
7333 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7334 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7335 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7336 0x01e2,
7337 0x01e3},
7339 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7340 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7341 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7342 0x01e1,
7343 0x01e2},
7345 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7346 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7347 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7348 0x01e0,
7349 0x01e1},
7351 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7352 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7353 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7354 0x01df,
7355 0x01e0},
7357 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7358 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7359 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7360 0x01de,
7361 0x01df},
7363 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7364 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7365 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7366 0x01dd,
7367 0x01de},
7369 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7370 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7371 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7372 0x01dd,
7373 0x01dd},
7375 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7376 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7377 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7378 0x01dc,
7379 0x01dd},
7381 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7382 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7383 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7384 0x01db,
7385 0x01dc},
7387 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7388 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7389 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7390 0x01da,
7391 0x01db},
7393 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7394 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7395 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7396 0x01d9,
7397 0x01da},
7399 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7400 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7401 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7402 0x01d8,
7403 0x01d9},
7405 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7406 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7407 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7408 0x01d7,
7409 0x01d8},
7411 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7412 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7413 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7414 0x01d7,
7415 0x01d7},
7417 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7418 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7419 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7420 0x01d6,
7421 0x01d7},
7423 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7424 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7425 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7426 0x01d5,
7427 0x01d6},
7429 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7430 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7431 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7432 0x01d4,
7433 0x01d5},
7435 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7436 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7437 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7438 0x01d3,
7439 0x01d4},
7441 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7442 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7443 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7444 0x01d2,
7445 0x01d3},
7447 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7448 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7449 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7450 0x01d2,
7451 0x01d2},
7453 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7454 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7455 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7456 0x01d1,
7457 0x01d2},
7459 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7460 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7461 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7462 0x01d0,
7463 0x01d1},
7465 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7466 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7467 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7468 0x01cf,
7469 0x01d0},
7471 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7472 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7473 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7474 0x01ce,
7475 0x01cf},
7477 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7478 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7479 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7480 0x01ce,
7481 0x01ce},
7483 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7484 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7485 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7486 0x01cd,
7487 0x01ce},
7489 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7490 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7491 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7492 0x01cc,
7493 0x01cd},
7495 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7496 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7497 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7498 0x01cb,
7499 0x01cc},
7501 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7502 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7503 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7504 0x01ca,
7505 0x01cb},
7507 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7508 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7509 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7510 0x01ca,
7511 0x01cb},
7513 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7514 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7515 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7516 0x01c9,
7517 0x01ca},
7519 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7520 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7521 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7522 0x01c9,
7523 0x01ca},
7525 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7526 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7527 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7528 0x01c9,
7529 0x01c9},
7531 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7532 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7533 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7534 0x01c8,
7535 0x01c9},
7537 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7538 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7539 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7540 0x01c8,
7541 0x01c9},
7543 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7544 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7545 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7546 0x01c8,
7547 0x01c8},
7549 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7550 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7551 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7552 0x01c7,
7553 0x01c8},
7555 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7556 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7557 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7558 0x01c7,
7559 0x01c8},
7561 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7562 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7563 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7564 0x01c6,
7565 0x01c7},
7567 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7568 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7569 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7570 0x01c6,
7571 0x01c7},
7573 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7574 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7575 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7576 0x01c6,
7577 0x01c6},
7579 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7580 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7581 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7582 0x01c5,
7583 0x01c6},
7585 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7586 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7587 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7588 0x01c5,
7589 0x01c6},
7591 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7592 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7593 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7594 0x01c4,
7595 0x01c5},
7597 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7598 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7599 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7600 0x01c4,
7601 0x01c5},
7603 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7604 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7605 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7606 0x01c4,
7607 0x01c4},
7609 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7610 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7611 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7612 0x01c3,
7613 0x01c4},
7615 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7616 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7617 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7618 0x01c3,
7619 0x01c4},
7621 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7622 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7623 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7624 0x01c2,
7625 0x01c3},
7627 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7628 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7629 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7630 0x01c2,
7631 0x01c3},
7633 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7634 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7635 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7636 0x01c2,
7637 0x01c2},
7639 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7640 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7641 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7642 0x01c1,
7643 0x01c2},
7645 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7646 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7647 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7648 0x01c0,
7649 0x01c1},
7651 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7652 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7653 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7654 0x01bf,
7655 0x01c0},
7657 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7658 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7659 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7660 0x01bf,
7661 0x01bf},
7663 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7664 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7665 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7666 0x01be,
7667 0x01bf},
7669 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7670 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7671 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7672 0x01bd,
7673 0x01be},
7675 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7676 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7677 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7678 0x01bc,
7679 0x01bd},
7681 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7682 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7683 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7684 0x043f,
7685 0x0443},
7687 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7688 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7689 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7690 0x043d,
7691 0x0441},
7693 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7694 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7695 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7696 0x043a,
7697 0x043f},
7699 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7700 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7701 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7702 0x0438,
7703 0x043d},
7705 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7706 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7707 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7708 0x0436,
7709 0x043a},
7711 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7712 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7713 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7714 0x0434,
7715 0x0438},
7717 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7718 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7719 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7720 0x0431,
7721 0x0436},
7723 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7724 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7725 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7726 0x042f,
7727 0x0434},
7729 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7730 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7731 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7732 0x042d,
7733 0x0431},
7735 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7736 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7737 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7738 0x042b,
7739 0x042f},
7741 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7742 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7743 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7744 0x0429,
7745 0x042d},
7747 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7748 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7749 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7750 0x0427,
7751 0x042b},
7753 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7754 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7755 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7756 0x0424,
7757 0x0429},
7759 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7760 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7761 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7762 0x041f,
7763 0x0424}
7766 static struct radio_regs regs_2055[] = {
7767 {0x02, 0x80, 0x80, 0, 0},
7768 {0x03, 0, 0, 0, 0},
7769 {0x04, 0x27, 0x27, 0, 0},
7770 {0x05, 0, 0, 0, 0},
7771 {0x06, 0x27, 0x27, 0, 0},
7772 {0x07, 0x7f, 0x7f, 1, 1},
7773 {0x08, 0x7, 0x7, 1, 1},
7774 {0x09, 0x7f, 0x7f, 1, 1},
7775 {0x0A, 0x7, 0x7, 1, 1},
7776 {0x0B, 0x15, 0x15, 0, 0},
7777 {0x0C, 0x15, 0x15, 0, 0},
7778 {0x0D, 0x4f, 0x4f, 1, 1},
7779 {0x0E, 0x5, 0x5, 1, 1},
7780 {0x0F, 0x4f, 0x4f, 1, 1},
7781 {0x10, 0x5, 0x5, 1, 1},
7782 {0x11, 0xd0, 0xd0, 0, 0},
7783 {0x12, 0x2, 0x2, 0, 0},
7784 {0x13, 0, 0, 0, 0},
7785 {0x14, 0x40, 0x40, 0, 0},
7786 {0x15, 0, 0, 0, 0},
7787 {0x16, 0, 0, 0, 0},
7788 {0x17, 0, 0, 0, 0},
7789 {0x18, 0, 0, 0, 0},
7790 {0x19, 0, 0, 0, 0},
7791 {0x1A, 0, 0, 0, 0},
7792 {0x1B, 0, 0, 0, 0},
7793 {0x1C, 0, 0, 0, 0},
7794 {0x1D, 0xc0, 0xc0, 0, 0},
7795 {0x1E, 0xff, 0xff, 0, 0},
7796 {0x1F, 0xc0, 0xc0, 0, 0},
7797 {0x20, 0xff, 0xff, 0, 0},
7798 {0x21, 0xc0, 0xc0, 0, 0},
7799 {0x22, 0, 0, 0, 0},
7800 {0x23, 0x2c, 0x2c, 0, 0},
7801 {0x24, 0, 0, 0, 0},
7802 {0x25, 0, 0, 0, 0},
7803 {0x26, 0, 0, 0, 0},
7804 {0x27, 0, 0, 0, 0},
7805 {0x28, 0, 0, 0, 0},
7806 {0x29, 0, 0, 0, 0},
7807 {0x2A, 0, 0, 0, 0},
7808 {0x2B, 0, 0, 0, 0},
7809 {0x2C, 0, 0, 0, 0},
7810 {0x2D, 0xa4, 0xa4, 0, 0},
7811 {0x2E, 0x38, 0x38, 0, 0},
7812 {0x2F, 0, 0, 0, 0},
7813 {0x30, 0x4, 0x4, 1, 1},
7814 {0x31, 0, 0, 0, 0},
7815 {0x32, 0xa, 0xa, 0, 0},
7816 {0x33, 0x87, 0x87, 0, 0},
7817 {0x34, 0x9, 0x9, 0, 0},
7818 {0x35, 0x70, 0x70, 0, 0},
7819 {0x36, 0x11, 0x11, 0, 0},
7820 {0x37, 0x18, 0x18, 1, 1},
7821 {0x38, 0x6, 0x6, 0, 0},
7822 {0x39, 0x4, 0x4, 1, 1},
7823 {0x3A, 0x6, 0x6, 0, 0},
7824 {0x3B, 0x9e, 0x9e, 0, 0},
7825 {0x3C, 0x9, 0x9, 0, 0},
7826 {0x3D, 0xc8, 0xc8, 1, 1},
7827 {0x3E, 0x88, 0x88, 0, 0},
7828 {0x3F, 0, 0, 0, 0},
7829 {0x40, 0, 0, 0, 0},
7830 {0x41, 0, 0, 0, 0},
7831 {0x42, 0x1, 0x1, 0, 0},
7832 {0x43, 0x2, 0x2, 0, 0},
7833 {0x44, 0x96, 0x96, 0, 0},
7834 {0x45, 0x3e, 0x3e, 0, 0},
7835 {0x46, 0x3e, 0x3e, 0, 0},
7836 {0x47, 0x13, 0x13, 0, 0},
7837 {0x48, 0x2, 0x2, 0, 0},
7838 {0x49, 0x15, 0x15, 0, 0},
7839 {0x4A, 0x7, 0x7, 0, 0},
7840 {0x4B, 0, 0, 0, 0},
7841 {0x4C, 0, 0, 0, 0},
7842 {0x4D, 0, 0, 0, 0},
7843 {0x4E, 0, 0, 0, 0},
7844 {0x4F, 0, 0, 0, 0},
7845 {0x50, 0x8, 0x8, 0, 0},
7846 {0x51, 0x8, 0x8, 0, 0},
7847 {0x52, 0x6, 0x6, 0, 0},
7848 {0x53, 0x84, 0x84, 1, 1},
7849 {0x54, 0xc3, 0xc3, 0, 0},
7850 {0x55, 0x8f, 0x8f, 0, 0},
7851 {0x56, 0xff, 0xff, 0, 0},
7852 {0x57, 0xff, 0xff, 0, 0},
7853 {0x58, 0x88, 0x88, 0, 0},
7854 {0x59, 0x88, 0x88, 0, 0},
7855 {0x5A, 0, 0, 0, 0},
7856 {0x5B, 0xcc, 0xcc, 0, 0},
7857 {0x5C, 0x6, 0x6, 0, 0},
7858 {0x5D, 0x80, 0x80, 0, 0},
7859 {0x5E, 0x80, 0x80, 0, 0},
7860 {0x5F, 0xf8, 0xf8, 0, 0},
7861 {0x60, 0x88, 0x88, 0, 0},
7862 {0x61, 0x88, 0x88, 0, 0},
7863 {0x62, 0x88, 0x8, 1, 1},
7864 {0x63, 0x88, 0x88, 0, 0},
7865 {0x64, 0, 0, 0, 0},
7866 {0x65, 0x1, 0x1, 1, 1},
7867 {0x66, 0x8a, 0x8a, 0, 0},
7868 {0x67, 0x8, 0x8, 0, 0},
7869 {0x68, 0x83, 0x83, 0, 0},
7870 {0x69, 0x6, 0x6, 0, 0},
7871 {0x6A, 0xa0, 0xa0, 0, 0},
7872 {0x6B, 0xa, 0xa, 0, 0},
7873 {0x6C, 0x87, 0x87, 1, 1},
7874 {0x6D, 0x2a, 0x2a, 0, 0},
7875 {0x6E, 0x2a, 0x2a, 0, 0},
7876 {0x6F, 0x2a, 0x2a, 0, 0},
7877 {0x70, 0x2a, 0x2a, 0, 0},
7878 {0x71, 0x18, 0x18, 0, 0},
7879 {0x72, 0x6a, 0x6a, 1, 1},
7880 {0x73, 0xab, 0xab, 1, 1},
7881 {0x74, 0x13, 0x13, 1, 1},
7882 {0x75, 0xc1, 0xc1, 1, 1},
7883 {0x76, 0xaa, 0xaa, 1, 1},
7884 {0x77, 0x87, 0x87, 1, 1},
7885 {0x78, 0, 0, 0, 0},
7886 {0x79, 0x6, 0x6, 0, 0},
7887 {0x7A, 0x7, 0x7, 0, 0},
7888 {0x7B, 0x7, 0x7, 0, 0},
7889 {0x7C, 0x15, 0x15, 0, 0},
7890 {0x7D, 0x55, 0x55, 0, 0},
7891 {0x7E, 0x97, 0x97, 1, 1},
7892 {0x7F, 0x8, 0x8, 0, 0},
7893 {0x80, 0x14, 0x14, 1, 1},
7894 {0x81, 0x33, 0x33, 0, 0},
7895 {0x82, 0x88, 0x88, 0, 0},
7896 {0x83, 0x6, 0x6, 0, 0},
7897 {0x84, 0x3, 0x3, 1, 1},
7898 {0x85, 0xa, 0xa, 0, 0},
7899 {0x86, 0x3, 0x3, 1, 1},
7900 {0x87, 0x2a, 0x2a, 0, 0},
7901 {0x88, 0xa4, 0xa4, 0, 0},
7902 {0x89, 0x18, 0x18, 0, 0},
7903 {0x8A, 0x28, 0x28, 0, 0},
7904 {0x8B, 0, 0, 0, 0},
7905 {0x8C, 0x4a, 0x4a, 0, 0},
7906 {0x8D, 0, 0, 0, 0},
7907 {0x8E, 0xf8, 0xf8, 0, 0},
7908 {0x8F, 0x88, 0x88, 0, 0},
7909 {0x90, 0x88, 0x88, 0, 0},
7910 {0x91, 0x88, 0x8, 1, 1},
7911 {0x92, 0x88, 0x88, 0, 0},
7912 {0x93, 0, 0, 0, 0},
7913 {0x94, 0x1, 0x1, 1, 1},
7914 {0x95, 0x8a, 0x8a, 0, 0},
7915 {0x96, 0x8, 0x8, 0, 0},
7916 {0x97, 0x83, 0x83, 0, 0},
7917 {0x98, 0x6, 0x6, 0, 0},
7918 {0x99, 0xa0, 0xa0, 0, 0},
7919 {0x9A, 0xa, 0xa, 0, 0},
7920 {0x9B, 0x87, 0x87, 1, 1},
7921 {0x9C, 0x2a, 0x2a, 0, 0},
7922 {0x9D, 0x2a, 0x2a, 0, 0},
7923 {0x9E, 0x2a, 0x2a, 0, 0},
7924 {0x9F, 0x2a, 0x2a, 0, 0},
7925 {0xA0, 0x18, 0x18, 0, 0},
7926 {0xA1, 0x6a, 0x6a, 1, 1},
7927 {0xA2, 0xab, 0xab, 1, 1},
7928 {0xA3, 0x13, 0x13, 1, 1},
7929 {0xA4, 0xc1, 0xc1, 1, 1},
7930 {0xA5, 0xaa, 0xaa, 1, 1},
7931 {0xA6, 0x87, 0x87, 1, 1},
7932 {0xA7, 0, 0, 0, 0},
7933 {0xA8, 0x6, 0x6, 0, 0},
7934 {0xA9, 0x7, 0x7, 0, 0},
7935 {0xAA, 0x7, 0x7, 0, 0},
7936 {0xAB, 0x15, 0x15, 0, 0},
7937 {0xAC, 0x55, 0x55, 0, 0},
7938 {0xAD, 0x97, 0x97, 1, 1},
7939 {0xAE, 0x8, 0x8, 0, 0},
7940 {0xAF, 0x14, 0x14, 1, 1},
7941 {0xB0, 0x33, 0x33, 0, 0},
7942 {0xB1, 0x88, 0x88, 0, 0},
7943 {0xB2, 0x6, 0x6, 0, 0},
7944 {0xB3, 0x3, 0x3, 1, 1},
7945 {0xB4, 0xa, 0xa, 0, 0},
7946 {0xB5, 0x3, 0x3, 1, 1},
7947 {0xB6, 0x2a, 0x2a, 0, 0},
7948 {0xB7, 0xa4, 0xa4, 0, 0},
7949 {0xB8, 0x18, 0x18, 0, 0},
7950 {0xB9, 0x28, 0x28, 0, 0},
7951 {0xBA, 0, 0, 0, 0},
7952 {0xBB, 0x4a, 0x4a, 0, 0},
7953 {0xBC, 0, 0, 0, 0},
7954 {0xBD, 0x71, 0x71, 0, 0},
7955 {0xBE, 0x72, 0x72, 0, 0},
7956 {0xBF, 0x73, 0x73, 0, 0},
7957 {0xC0, 0x74, 0x74, 0, 0},
7958 {0xC1, 0x75, 0x75, 0, 0},
7959 {0xC2, 0x76, 0x76, 0, 0},
7960 {0xC3, 0x77, 0x77, 0, 0},
7961 {0xC4, 0x78, 0x78, 0, 0},
7962 {0xC5, 0x79, 0x79, 0, 0},
7963 {0xC6, 0x7a, 0x7a, 0, 0},
7964 {0xC7, 0, 0, 0, 0},
7965 {0xC8, 0, 0, 0, 0},
7966 {0xC9, 0, 0, 0, 0},
7967 {0xCA, 0, 0, 0, 0},
7968 {0xCB, 0, 0, 0, 0},
7969 {0xCC, 0, 0, 0, 0},
7970 {0xCD, 0, 0, 0, 0},
7971 {0xCE, 0x6, 0x6, 0, 0},
7972 {0xCF, 0, 0, 0, 0},
7973 {0xD0, 0, 0, 0, 0},
7974 {0xD1, 0x18, 0x18, 0, 0},
7975 {0xD2, 0x88, 0x88, 0, 0},
7976 {0xD3, 0, 0, 0, 0},
7977 {0xD4, 0, 0, 0, 0},
7978 {0xD5, 0, 0, 0, 0},
7979 {0xD6, 0, 0, 0, 0},
7980 {0xD7, 0, 0, 0, 0},
7981 {0xD8, 0, 0, 0, 0},
7982 {0xD9, 0, 0, 0, 0},
7983 {0xDA, 0x6, 0x6, 0, 0},
7984 {0xDB, 0, 0, 0, 0},
7985 {0xDC, 0, 0, 0, 0},
7986 {0xDD, 0x18, 0x18, 0, 0},
7987 {0xDE, 0x88, 0x88, 0, 0},
7988 {0xDF, 0, 0, 0, 0},
7989 {0xE0, 0, 0, 0, 0},
7990 {0xE1, 0, 0, 0, 0},
7991 {0xE2, 0, 0, 0, 0},
7992 {0xFFFF, 0, 0, 0, 0},
7995 static struct radio_regs regs_SYN_2056[] = {
7996 {0x02, 0, 0, 0, 0},
7997 {0x03, 0, 0, 0, 0},
7998 {0x04, 0, 0, 0, 0},
7999 {0x05, 0, 0, 0, 0},
8000 {0x06, 0, 0, 0, 0},
8001 {0x07, 0, 0, 0, 0},
8002 {0x08, 0, 0, 0, 0},
8003 {0x09, 0x1, 0x1, 0, 0},
8004 {0x0A, 0, 0, 0, 0},
8005 {0x0B, 0, 0, 0, 0},
8006 {0x0C, 0, 0, 0, 0},
8007 {0x0D, 0, 0, 0, 0},
8008 {0x0E, 0, 0, 0, 0},
8009 {0x0F, 0, 0, 0, 0},
8010 {0x10, 0, 0, 0, 0},
8011 {0x11, 0, 0, 0, 0},
8012 {0x12, 0, 0, 0, 0},
8013 {0x13, 0, 0, 0, 0},
8014 {0x14, 0, 0, 0, 0},
8015 {0x15, 0, 0, 0, 0},
8016 {0x16, 0, 0, 0, 0},
8017 {0x17, 0, 0, 0, 0},
8018 {0x18, 0, 0, 0, 0},
8019 {0x19, 0, 0, 0, 0},
8020 {0x1A, 0, 0, 0, 0},
8021 {0x1B, 0, 0, 0, 0},
8022 {0x1C, 0, 0, 0, 0},
8023 {0x1D, 0, 0, 0, 0},
8024 {0x1E, 0, 0, 0, 0},
8025 {0x1F, 0, 0, 0, 0},
8026 {0x20, 0, 0, 0, 0},
8027 {0x21, 0, 0, 0, 0},
8028 {0x22, 0x60, 0x60, 0, 0},
8029 {0x23, 0x6, 0x6, 0, 0},
8030 {0x24, 0xc, 0xc, 0, 0},
8031 {0x25, 0, 0, 0, 0},
8032 {0x26, 0, 0, 0, 0},
8033 {0x27, 0, 0, 0, 0},
8034 {0x28, 0x1, 0x1, 0, 0},
8035 {0x29, 0, 0, 0, 0},
8036 {0x2A, 0, 0, 0, 0},
8037 {0x2B, 0, 0, 0, 0},
8038 {0x2C, 0, 0, 0, 0},
8039 {0x2D, 0, 0, 0, 0},
8040 {0x2E, 0xd, 0xd, 0, 0},
8041 {0x2F, 0x1f, 0x1f, 0, 0},
8042 {0x30, 0x15, 0x15, 0, 0},
8043 {0x31, 0xf, 0xf, 0, 0},
8044 {0x32, 0, 0, 0, 0},
8045 {0x33, 0, 0, 0, 0},
8046 {0x34, 0, 0, 0, 0},
8047 {0x35, 0, 0, 0, 0},
8048 {0x36, 0, 0, 0, 0},
8049 {0x37, 0, 0, 0, 0},
8050 {0x38, 0, 0, 0, 0},
8051 {0x39, 0, 0, 0, 0},
8052 {0x3A, 0, 0, 0, 0},
8053 {0x3B, 0, 0, 0, 0},
8054 {0x3C, 0x13, 0x13, 0, 0},
8055 {0x3D, 0xf, 0xf, 0, 0},
8056 {0x3E, 0x18, 0x18, 0, 0},
8057 {0x3F, 0, 0, 0, 0},
8058 {0x40, 0, 0, 0, 0},
8059 {0x41, 0x20, 0x20, 0, 0},
8060 {0x42, 0x20, 0x20, 0, 0},
8061 {0x43, 0, 0, 0, 0},
8062 {0x44, 0x77, 0x77, 0, 0},
8063 {0x45, 0x7, 0x7, 0, 0},
8064 {0x46, 0x1, 0x1, 0, 0},
8065 {0x47, 0x4, 0x4, 0, 0},
8066 {0x48, 0xf, 0xf, 0, 0},
8067 {0x49, 0x30, 0x30, 0, 0},
8068 {0x4A, 0x32, 0x32, 0, 0},
8069 {0x4B, 0xd, 0xd, 0, 0},
8070 {0x4C, 0xd, 0xd, 0, 0},
8071 {0x4D, 0x4, 0x4, 0, 0},
8072 {0x4E, 0x6, 0x6, 0, 0},
8073 {0x4F, 0x1, 0x1, 0, 0},
8074 {0x50, 0x1c, 0x1c, 0, 0},
8075 {0x51, 0x2, 0x2, 0, 0},
8076 {0x52, 0x2, 0x2, 0, 0},
8077 {0x53, 0xf7, 0xf7, 1, 1},
8078 {0x54, 0xb4, 0xb4, 0, 0},
8079 {0x55, 0xd2, 0xd2, 0, 0},
8080 {0x56, 0, 0, 0, 0},
8081 {0x57, 0, 0, 0, 0},
8082 {0x58, 0x4, 0x4, 0, 0},
8083 {0x59, 0x96, 0x96, 0, 0},
8084 {0x5A, 0x3e, 0x3e, 0, 0},
8085 {0x5B, 0x3e, 0x3e, 0, 0},
8086 {0x5C, 0x13, 0x13, 0, 0},
8087 {0x5D, 0x2, 0x2, 0, 0},
8088 {0x5E, 0, 0, 0, 0},
8089 {0x5F, 0x7, 0x7, 0, 0},
8090 {0x60, 0x7, 0x7, 1, 1},
8091 {0x61, 0x8, 0x8, 0, 0},
8092 {0x62, 0x3, 0x3, 0, 0},
8093 {0x63, 0, 0, 0, 0},
8094 {0x64, 0, 0, 0, 0},
8095 {0x65, 0, 0, 0, 0},
8096 {0x66, 0, 0, 0, 0},
8097 {0x67, 0, 0, 0, 0},
8098 {0x68, 0x40, 0x40, 0, 0},
8099 {0x69, 0, 0, 0, 0},
8100 {0x6A, 0, 0, 0, 0},
8101 {0x6B, 0, 0, 0, 0},
8102 {0x6C, 0, 0, 0, 0},
8103 {0x6D, 0x1, 0x1, 0, 0},
8104 {0x6E, 0, 0, 0, 0},
8105 {0x6F, 0, 0, 0, 0},
8106 {0x70, 0x60, 0x60, 0, 0},
8107 {0x71, 0x66, 0x66, 0, 0},
8108 {0x72, 0xc, 0xc, 0, 0},
8109 {0x73, 0x66, 0x66, 0, 0},
8110 {0x74, 0x8f, 0x8f, 1, 1},
8111 {0x75, 0, 0, 0, 0},
8112 {0x76, 0xcc, 0xcc, 0, 0},
8113 {0x77, 0x1, 0x1, 0, 0},
8114 {0x78, 0x66, 0x66, 0, 0},
8115 {0x79, 0x66, 0x66, 0, 0},
8116 {0x7A, 0, 0, 0, 0},
8117 {0x7B, 0, 0, 0, 0},
8118 {0x7C, 0, 0, 0, 0},
8119 {0x7D, 0, 0, 0, 0},
8120 {0x7E, 0, 0, 0, 0},
8121 {0x7F, 0, 0, 0, 0},
8122 {0x80, 0, 0, 0, 0},
8123 {0x81, 0, 0, 0, 0},
8124 {0x82, 0, 0, 0, 0},
8125 {0x83, 0, 0, 0, 0},
8126 {0x84, 0, 0, 0, 0},
8127 {0x85, 0xff, 0xff, 0, 0},
8128 {0x86, 0, 0, 0, 0},
8129 {0x87, 0, 0, 0, 0},
8130 {0x88, 0, 0, 0, 0},
8131 {0x89, 0, 0, 0, 0},
8132 {0x8A, 0, 0, 0, 0},
8133 {0x8B, 0, 0, 0, 0},
8134 {0x8C, 0, 0, 0, 0},
8135 {0x8D, 0, 0, 0, 0},
8136 {0x8E, 0, 0, 0, 0},
8137 {0x8F, 0, 0, 0, 0},
8138 {0x90, 0, 0, 0, 0},
8139 {0x91, 0, 0, 0, 0},
8140 {0x92, 0, 0, 0, 0},
8141 {0x93, 0, 0, 0, 0},
8142 {0x94, 0, 0, 0, 0},
8143 {0x95, 0, 0, 0, 0},
8144 {0x96, 0, 0, 0, 0},
8145 {0x97, 0, 0, 0, 0},
8146 {0x98, 0, 0, 0, 0},
8147 {0x99, 0, 0, 0, 0},
8148 {0x9A, 0, 0, 0, 0},
8149 {0x9B, 0, 0, 0, 0},
8150 {0x9C, 0, 0, 0, 0},
8151 {0x9D, 0, 0, 0, 0},
8152 {0x9E, 0, 0, 0, 0},
8153 {0x9F, 0x6, 0x6, 0, 0},
8154 {0xA0, 0x66, 0x66, 0, 0},
8155 {0xA1, 0x66, 0x66, 0, 0},
8156 {0xA2, 0x66, 0x66, 0, 0},
8157 {0xA3, 0x66, 0x66, 0, 0},
8158 {0xA4, 0x66, 0x66, 0, 0},
8159 {0xA5, 0x66, 0x66, 0, 0},
8160 {0xA6, 0x66, 0x66, 0, 0},
8161 {0xA7, 0x66, 0x66, 0, 0},
8162 {0xA8, 0x66, 0x66, 0, 0},
8163 {0xA9, 0x66, 0x66, 0, 0},
8164 {0xAA, 0x66, 0x66, 0, 0},
8165 {0xAB, 0x66, 0x66, 0, 0},
8166 {0xAC, 0x66, 0x66, 0, 0},
8167 {0xAD, 0x66, 0x66, 0, 0},
8168 {0xAE, 0x66, 0x66, 0, 0},
8169 {0xAF, 0x66, 0x66, 0, 0},
8170 {0xB0, 0x66, 0x66, 0, 0},
8171 {0xB1, 0x66, 0x66, 0, 0},
8172 {0xB2, 0x66, 0x66, 0, 0},
8173 {0xB3, 0xa, 0xa, 0, 0},
8174 {0xB4, 0, 0, 0, 0},
8175 {0xB5, 0, 0, 0, 0},
8176 {0xB6, 0, 0, 0, 0},
8177 {0xFFFF, 0, 0, 0, 0}
8180 static struct radio_regs regs_TX_2056[] = {
8181 {0x02, 0, 0, 0, 0},
8182 {0x03, 0, 0, 0, 0},
8183 {0x04, 0, 0, 0, 0},
8184 {0x05, 0, 0, 0, 0},
8185 {0x06, 0, 0, 0, 0},
8186 {0x07, 0, 0, 0, 0},
8187 {0x08, 0, 0, 0, 0},
8188 {0x09, 0, 0, 0, 0},
8189 {0x0A, 0, 0, 0, 0},
8190 {0x0B, 0, 0, 0, 0},
8191 {0x0C, 0, 0, 0, 0},
8192 {0x0D, 0, 0, 0, 0},
8193 {0x0E, 0, 0, 0, 0},
8194 {0x0F, 0, 0, 0, 0},
8195 {0x10, 0, 0, 0, 0},
8196 {0x11, 0, 0, 0, 0},
8197 {0x12, 0, 0, 0, 0},
8198 {0x13, 0, 0, 0, 0},
8199 {0x14, 0, 0, 0, 0},
8200 {0x15, 0, 0, 0, 0},
8201 {0x16, 0, 0, 0, 0},
8202 {0x17, 0, 0, 0, 0},
8203 {0x18, 0, 0, 0, 0},
8204 {0x19, 0, 0, 0, 0},
8205 {0x1A, 0, 0, 0, 0},
8206 {0x1B, 0, 0, 0, 0},
8207 {0x1C, 0, 0, 0, 0},
8208 {0x1D, 0, 0, 0, 0},
8209 {0x1E, 0, 0, 0, 0},
8210 {0x1F, 0, 0, 0, 0},
8211 {0x20, 0, 0, 0, 0},
8212 {0x21, 0x88, 0x88, 0, 0},
8213 {0x22, 0x88, 0x88, 0, 0},
8214 {0x23, 0x88, 0x88, 0, 0},
8215 {0x24, 0x88, 0x88, 0, 0},
8216 {0x25, 0xc, 0xc, 0, 0},
8217 {0x26, 0, 0, 0, 0},
8218 {0x27, 0x3, 0x3, 0, 0},
8219 {0x28, 0, 0, 0, 0},
8220 {0x29, 0x3, 0x3, 0, 0},
8221 {0x2A, 0x37, 0x37, 0, 0},
8222 {0x2B, 0x3, 0x3, 0, 0},
8223 {0x2C, 0, 0, 0, 0},
8224 {0x2D, 0, 0, 0, 0},
8225 {0x2E, 0x1, 0x1, 0, 0},
8226 {0x2F, 0x1, 0x1, 0, 0},
8227 {0x30, 0, 0, 0, 0},
8228 {0x31, 0, 0, 0, 0},
8229 {0x32, 0, 0, 0, 0},
8230 {0x33, 0x11, 0x11, 0, 0},
8231 {0x34, 0x11, 0x11, 0, 0},
8232 {0x35, 0, 0, 0, 0},
8233 {0x36, 0, 0, 0, 0},
8234 {0x37, 0x3, 0x3, 0, 0},
8235 {0x38, 0xf, 0xf, 0, 0},
8236 {0x39, 0, 0, 0, 0},
8237 {0x3A, 0x2d, 0x2d, 0, 0},
8238 {0x3B, 0, 0, 0, 0},
8239 {0x3C, 0x6e, 0x6e, 0, 0},
8240 {0x3D, 0xf0, 0xf0, 1, 1},
8241 {0x3E, 0, 0, 0, 0},
8242 {0x3F, 0, 0, 0, 0},
8243 {0x40, 0, 0, 0, 0},
8244 {0x41, 0x3, 0x3, 0, 0},
8245 {0x42, 0x3, 0x3, 0, 0},
8246 {0x43, 0, 0, 0, 0},
8247 {0x44, 0x1e, 0x1e, 0, 0},
8248 {0x45, 0, 0, 0, 0},
8249 {0x46, 0x6e, 0x6e, 0, 0},
8250 {0x47, 0xf0, 0xf0, 1, 1},
8251 {0x48, 0, 0, 0, 0},
8252 {0x49, 0x2, 0x2, 0, 0},
8253 {0x4A, 0xff, 0xff, 1, 1},
8254 {0x4B, 0xc, 0xc, 0, 0},
8255 {0x4C, 0, 0, 0, 0},
8256 {0x4D, 0x38, 0x38, 0, 0},
8257 {0x4E, 0x70, 0x70, 1, 1},
8258 {0x4F, 0x2, 0x2, 0, 0},
8259 {0x50, 0x88, 0x88, 0, 0},
8260 {0x51, 0xc, 0xc, 0, 0},
8261 {0x52, 0, 0, 0, 0},
8262 {0x53, 0x8, 0x8, 0, 0},
8263 {0x54, 0x70, 0x70, 1, 1},
8264 {0x55, 0x2, 0x2, 0, 0},
8265 {0x56, 0xff, 0xff, 1, 1},
8266 {0x57, 0, 0, 0, 0},
8267 {0x58, 0x83, 0x83, 0, 0},
8268 {0x59, 0x77, 0x77, 1, 1},
8269 {0x5A, 0, 0, 0, 0},
8270 {0x5B, 0x2, 0x2, 0, 0},
8271 {0x5C, 0x88, 0x88, 0, 0},
8272 {0x5D, 0, 0, 0, 0},
8273 {0x5E, 0x8, 0x8, 0, 0},
8274 {0x5F, 0x77, 0x77, 1, 1},
8275 {0x60, 0x1, 0x1, 0, 0},
8276 {0x61, 0, 0, 0, 0},
8277 {0x62, 0x7, 0x7, 0, 0},
8278 {0x63, 0, 0, 0, 0},
8279 {0x64, 0x7, 0x7, 0, 0},
8280 {0x65, 0, 0, 0, 0},
8281 {0x66, 0, 0, 0, 0},
8282 {0x67, 0x74, 0x74, 1, 1},
8283 {0x68, 0, 0, 0, 0},
8284 {0x69, 0xa, 0xa, 0, 0},
8285 {0x6A, 0, 0, 0, 0},
8286 {0x6B, 0, 0, 0, 0},
8287 {0x6C, 0, 0, 0, 0},
8288 {0x6D, 0, 0, 0, 0},
8289 {0x6E, 0, 0, 0, 0},
8290 {0x6F, 0, 0, 0, 0},
8291 {0x70, 0, 0, 0, 0},
8292 {0x71, 0x2, 0x2, 0, 0},
8293 {0x72, 0, 0, 0, 0},
8294 {0x73, 0, 0, 0, 0},
8295 {0x74, 0xe, 0xe, 0, 0},
8296 {0x75, 0xe, 0xe, 0, 0},
8297 {0x76, 0xe, 0xe, 0, 0},
8298 {0x77, 0x13, 0x13, 0, 0},
8299 {0x78, 0x13, 0x13, 0, 0},
8300 {0x79, 0x1b, 0x1b, 0, 0},
8301 {0x7A, 0x1b, 0x1b, 0, 0},
8302 {0x7B, 0x55, 0x55, 0, 0},
8303 {0x7C, 0x5b, 0x5b, 0, 0},
8304 {0x7D, 0, 0, 0, 0},
8305 {0x7E, 0, 0, 0, 0},
8306 {0x7F, 0, 0, 0, 0},
8307 {0x80, 0, 0, 0, 0},
8308 {0x81, 0, 0, 0, 0},
8309 {0x82, 0, 0, 0, 0},
8310 {0x83, 0, 0, 0, 0},
8311 {0x84, 0, 0, 0, 0},
8312 {0x85, 0, 0, 0, 0},
8313 {0x86, 0, 0, 0, 0},
8314 {0x87, 0, 0, 0, 0},
8315 {0x88, 0, 0, 0, 0},
8316 {0x89, 0, 0, 0, 0},
8317 {0x8A, 0, 0, 0, 0},
8318 {0x8B, 0, 0, 0, 0},
8319 {0x8C, 0, 0, 0, 0},
8320 {0x8D, 0, 0, 0, 0},
8321 {0x8E, 0, 0, 0, 0},
8322 {0x8F, 0, 0, 0, 0},
8323 {0x90, 0, 0, 0, 0},
8324 {0x91, 0, 0, 0, 0},
8325 {0x92, 0, 0, 0, 0},
8326 {0xFFFF, 0, 0, 0, 0}
8329 static struct radio_regs regs_RX_2056[] = {
8330 {0x02, 0, 0, 0, 0},
8331 {0x03, 0, 0, 0, 0},
8332 {0x04, 0, 0, 0, 0},
8333 {0x05, 0, 0, 0, 0},
8334 {0x06, 0, 0, 0, 0},
8335 {0x07, 0, 0, 0, 0},
8336 {0x08, 0, 0, 0, 0},
8337 {0x09, 0, 0, 0, 0},
8338 {0x0A, 0, 0, 0, 0},
8339 {0x0B, 0, 0, 0, 0},
8340 {0x0C, 0, 0, 0, 0},
8341 {0x0D, 0, 0, 0, 0},
8342 {0x0E, 0, 0, 0, 0},
8343 {0x0F, 0, 0, 0, 0},
8344 {0x10, 0, 0, 0, 0},
8345 {0x11, 0, 0, 0, 0},
8346 {0x12, 0, 0, 0, 0},
8347 {0x13, 0, 0, 0, 0},
8348 {0x14, 0, 0, 0, 0},
8349 {0x15, 0, 0, 0, 0},
8350 {0x16, 0, 0, 0, 0},
8351 {0x17, 0, 0, 0, 0},
8352 {0x18, 0, 0, 0, 0},
8353 {0x19, 0, 0, 0, 0},
8354 {0x1A, 0, 0, 0, 0},
8355 {0x1B, 0, 0, 0, 0},
8356 {0x1C, 0, 0, 0, 0},
8357 {0x1D, 0, 0, 0, 0},
8358 {0x1E, 0, 0, 0, 0},
8359 {0x1F, 0, 0, 0, 0},
8360 {0x20, 0x3, 0x3, 0, 0},
8361 {0x21, 0, 0, 0, 0},
8362 {0x22, 0, 0, 0, 0},
8363 {0x23, 0x90, 0x90, 0, 0},
8364 {0x24, 0x55, 0x55, 0, 0},
8365 {0x25, 0x15, 0x15, 0, 0},
8366 {0x26, 0x5, 0x5, 0, 0},
8367 {0x27, 0x15, 0x15, 0, 0},
8368 {0x28, 0x5, 0x5, 0, 0},
8369 {0x29, 0x20, 0x20, 0, 0},
8370 {0x2A, 0x11, 0x11, 0, 0},
8371 {0x2B, 0x90, 0x90, 0, 0},
8372 {0x2C, 0, 0, 0, 0},
8373 {0x2D, 0x88, 0x88, 0, 0},
8374 {0x2E, 0x32, 0x32, 0, 0},
8375 {0x2F, 0x77, 0x77, 0, 0},
8376 {0x30, 0x17, 0x17, 1, 1},
8377 {0x31, 0xff, 0xff, 1, 1},
8378 {0x32, 0x20, 0x20, 0, 0},
8379 {0x33, 0, 0, 0, 0},
8380 {0x34, 0x88, 0x88, 0, 0},
8381 {0x35, 0x32, 0x32, 0, 0},
8382 {0x36, 0x77, 0x77, 0, 0},
8383 {0x37, 0x17, 0x17, 1, 1},
8384 {0x38, 0xf0, 0xf0, 1, 1},
8385 {0x39, 0x20, 0x20, 0, 0},
8386 {0x3A, 0x8, 0x8, 0, 0},
8387 {0x3B, 0x99, 0x99, 0, 0},
8388 {0x3C, 0, 0, 0, 0},
8389 {0x3D, 0x44, 0x44, 1, 1},
8390 {0x3E, 0, 0, 0, 0},
8391 {0x3F, 0x44, 0x44, 0, 0},
8392 {0x40, 0xf, 0xf, 1, 1},
8393 {0x41, 0x6, 0x6, 0, 0},
8394 {0x42, 0x4, 0x4, 0, 0},
8395 {0x43, 0x50, 0x50, 1, 1},
8396 {0x44, 0x8, 0x8, 0, 0},
8397 {0x45, 0x99, 0x99, 0, 0},
8398 {0x46, 0, 0, 0, 0},
8399 {0x47, 0x11, 0x11, 0, 0},
8400 {0x48, 0, 0, 0, 0},
8401 {0x49, 0x44, 0x44, 0, 0},
8402 {0x4A, 0x7, 0x7, 0, 0},
8403 {0x4B, 0x6, 0x6, 0, 0},
8404 {0x4C, 0x4, 0x4, 0, 0},
8405 {0x4D, 0, 0, 0, 0},
8406 {0x4E, 0, 0, 0, 0},
8407 {0x4F, 0x66, 0x66, 0, 0},
8408 {0x50, 0x66, 0x66, 0, 0},
8409 {0x51, 0x57, 0x57, 0, 0},
8410 {0x52, 0x57, 0x57, 0, 0},
8411 {0x53, 0x44, 0x44, 0, 0},
8412 {0x54, 0, 0, 0, 0},
8413 {0x55, 0, 0, 0, 0},
8414 {0x56, 0x8, 0x8, 0, 0},
8415 {0x57, 0x8, 0x8, 0, 0},
8416 {0x58, 0x7, 0x7, 0, 0},
8417 {0x59, 0x22, 0x22, 0, 0},
8418 {0x5A, 0x22, 0x22, 0, 0},
8419 {0x5B, 0x2, 0x2, 0, 0},
8420 {0x5C, 0x23, 0x23, 0, 0},
8421 {0x5D, 0x7, 0x7, 0, 0},
8422 {0x5E, 0x55, 0x55, 0, 0},
8423 {0x5F, 0x23, 0x23, 0, 0},
8424 {0x60, 0x41, 0x41, 0, 0},
8425 {0x61, 0x1, 0x1, 0, 0},
8426 {0x62, 0xa, 0xa, 0, 0},
8427 {0x63, 0, 0, 0, 0},
8428 {0x64, 0, 0, 0, 0},
8429 {0x65, 0, 0, 0, 0},
8430 {0x66, 0, 0, 0, 0},
8431 {0x67, 0, 0, 0, 0},
8432 {0x68, 0, 0, 0, 0},
8433 {0x69, 0, 0, 0, 0},
8434 {0x6A, 0, 0, 0, 0},
8435 {0x6B, 0xc, 0xc, 0, 0},
8436 {0x6C, 0, 0, 0, 0},
8437 {0x6D, 0, 0, 0, 0},
8438 {0x6E, 0, 0, 0, 0},
8439 {0x6F, 0, 0, 0, 0},
8440 {0x70, 0, 0, 0, 0},
8441 {0x71, 0, 0, 0, 0},
8442 {0x72, 0x22, 0x22, 0, 0},
8443 {0x73, 0x22, 0x22, 0, 0},
8444 {0x74, 0x2, 0x2, 0, 0},
8445 {0x75, 0xa, 0xa, 0, 0},
8446 {0x76, 0x1, 0x1, 0, 0},
8447 {0x77, 0x22, 0x22, 0, 0},
8448 {0x78, 0x30, 0x30, 0, 0},
8449 {0x79, 0, 0, 0, 0},
8450 {0x7A, 0, 0, 0, 0},
8451 {0x7B, 0, 0, 0, 0},
8452 {0x7C, 0, 0, 0, 0},
8453 {0x7D, 0, 0, 0, 0},
8454 {0x7E, 0, 0, 0, 0},
8455 {0x7F, 0, 0, 0, 0},
8456 {0x80, 0, 0, 0, 0},
8457 {0x81, 0, 0, 0, 0},
8458 {0x82, 0, 0, 0, 0},
8459 {0x83, 0, 0, 0, 0},
8460 {0x84, 0, 0, 0, 0},
8461 {0x85, 0, 0, 0, 0},
8462 {0x86, 0, 0, 0, 0},
8463 {0x87, 0, 0, 0, 0},
8464 {0x88, 0, 0, 0, 0},
8465 {0x89, 0, 0, 0, 0},
8466 {0x8A, 0, 0, 0, 0},
8467 {0x8B, 0, 0, 0, 0},
8468 {0x8C, 0, 0, 0, 0},
8469 {0x8D, 0, 0, 0, 0},
8470 {0x8E, 0, 0, 0, 0},
8471 {0x8F, 0, 0, 0, 0},
8472 {0x90, 0, 0, 0, 0},
8473 {0x91, 0, 0, 0, 0},
8474 {0x92, 0, 0, 0, 0},
8475 {0x93, 0, 0, 0, 0},
8476 {0x94, 0, 0, 0, 0},
8477 {0xFFFF, 0, 0, 0, 0}
8480 static struct radio_regs regs_SYN_2056_A1[] = {
8481 {0x02, 0, 0, 0, 0},
8482 {0x03, 0, 0, 0, 0},
8483 {0x04, 0, 0, 0, 0},
8484 {0x05, 0, 0, 0, 0},
8485 {0x06, 0, 0, 0, 0},
8486 {0x07, 0, 0, 0, 0},
8487 {0x08, 0, 0, 0, 0},
8488 {0x09, 0x1, 0x1, 0, 0},
8489 {0x0A, 0, 0, 0, 0},
8490 {0x0B, 0, 0, 0, 0},
8491 {0x0C, 0, 0, 0, 0},
8492 {0x0D, 0, 0, 0, 0},
8493 {0x0E, 0, 0, 0, 0},
8494 {0x0F, 0, 0, 0, 0},
8495 {0x10, 0, 0, 0, 0},
8496 {0x11, 0, 0, 0, 0},
8497 {0x12, 0, 0, 0, 0},
8498 {0x13, 0, 0, 0, 0},
8499 {0x14, 0, 0, 0, 0},
8500 {0x15, 0, 0, 0, 0},
8501 {0x16, 0, 0, 0, 0},
8502 {0x17, 0, 0, 0, 0},
8503 {0x18, 0, 0, 0, 0},
8504 {0x19, 0, 0, 0, 0},
8505 {0x1A, 0, 0, 0, 0},
8506 {0x1B, 0, 0, 0, 0},
8507 {0x1C, 0, 0, 0, 0},
8508 {0x1D, 0, 0, 0, 0},
8509 {0x1E, 0, 0, 0, 0},
8510 {0x1F, 0, 0, 0, 0},
8511 {0x20, 0, 0, 0, 0},
8512 {0x21, 0, 0, 0, 0},
8513 {0x22, 0x60, 0x60, 0, 0},
8514 {0x23, 0x6, 0x6, 0, 0},
8515 {0x24, 0xc, 0xc, 0, 0},
8516 {0x25, 0, 0, 0, 0},
8517 {0x26, 0, 0, 0, 0},
8518 {0x27, 0, 0, 0, 0},
8519 {0x28, 0x1, 0x1, 0, 0},
8520 {0x29, 0, 0, 0, 0},
8521 {0x2A, 0, 0, 0, 0},
8522 {0x2B, 0, 0, 0, 0},
8523 {0x2C, 0, 0, 0, 0},
8524 {0x2D, 0, 0, 0, 0},
8525 {0x2E, 0xd, 0xd, 0, 0},
8526 {0x2F, 0x1f, 0x1f, 0, 0},
8527 {0x30, 0x15, 0x15, 0, 0},
8528 {0x31, 0xf, 0xf, 0, 0},
8529 {0x32, 0, 0, 0, 0},
8530 {0x33, 0, 0, 0, 0},
8531 {0x34, 0, 0, 0, 0},
8532 {0x35, 0, 0, 0, 0},
8533 {0x36, 0, 0, 0, 0},
8534 {0x37, 0, 0, 0, 0},
8535 {0x38, 0, 0, 0, 0},
8536 {0x39, 0, 0, 0, 0},
8537 {0x3A, 0, 0, 0, 0},
8538 {0x3B, 0, 0, 0, 0},
8539 {0x3C, 0x13, 0x13, 0, 0},
8540 {0x3D, 0xf, 0xf, 0, 0},
8541 {0x3E, 0x18, 0x18, 0, 0},
8542 {0x3F, 0, 0, 0, 0},
8543 {0x40, 0, 0, 0, 0},
8544 {0x41, 0x20, 0x20, 0, 0},
8545 {0x42, 0x20, 0x20, 0, 0},
8546 {0x43, 0, 0, 0, 0},
8547 {0x44, 0x77, 0x77, 0, 0},
8548 {0x45, 0x7, 0x7, 0, 0},
8549 {0x46, 0x1, 0x1, 0, 0},
8550 {0x47, 0x4, 0x4, 0, 0},
8551 {0x48, 0xf, 0xf, 0, 0},
8552 {0x49, 0x30, 0x30, 0, 0},
8553 {0x4A, 0x32, 0x32, 0, 0},
8554 {0x4B, 0xd, 0xd, 0, 0},
8555 {0x4C, 0xd, 0xd, 0, 0},
8556 {0x4D, 0x4, 0x4, 0, 0},
8557 {0x4E, 0x6, 0x6, 0, 0},
8558 {0x4F, 0x1, 0x1, 0, 0},
8559 {0x50, 0x1c, 0x1c, 0, 0},
8560 {0x51, 0x2, 0x2, 0, 0},
8561 {0x52, 0x2, 0x2, 0, 0},
8562 {0x53, 0xf7, 0xf7, 1, 1},
8563 {0x54, 0xb4, 0xb4, 0, 0},
8564 {0x55, 0xd2, 0xd2, 0, 0},
8565 {0x56, 0, 0, 0, 0},
8566 {0x57, 0, 0, 0, 0},
8567 {0x58, 0x4, 0x4, 0, 0},
8568 {0x59, 0x96, 0x96, 0, 0},
8569 {0x5A, 0x3e, 0x3e, 0, 0},
8570 {0x5B, 0x3e, 0x3e, 0, 0},
8571 {0x5C, 0x13, 0x13, 0, 0},
8572 {0x5D, 0x2, 0x2, 0, 0},
8573 {0x5E, 0, 0, 0, 0},
8574 {0x5F, 0x7, 0x7, 0, 0},
8575 {0x60, 0x7, 0x7, 1, 1},
8576 {0x61, 0x8, 0x8, 0, 0},
8577 {0x62, 0x3, 0x3, 0, 0},
8578 {0x63, 0, 0, 0, 0},
8579 {0x64, 0, 0, 0, 0},
8580 {0x65, 0, 0, 0, 0},
8581 {0x66, 0, 0, 0, 0},
8582 {0x67, 0, 0, 0, 0},
8583 {0x68, 0x40, 0x40, 0, 0},
8584 {0x69, 0, 0, 0, 0},
8585 {0x6A, 0, 0, 0, 0},
8586 {0x6B, 0, 0, 0, 0},
8587 {0x6C, 0, 0, 0, 0},
8588 {0x6D, 0x1, 0x1, 0, 0},
8589 {0x6E, 0, 0, 0, 0},
8590 {0x6F, 0, 0, 0, 0},
8591 {0x70, 0x60, 0x60, 0, 0},
8592 {0x71, 0x66, 0x66, 0, 0},
8593 {0x72, 0xc, 0xc, 0, 0},
8594 {0x73, 0x66, 0x66, 0, 0},
8595 {0x74, 0x8f, 0x8f, 1, 1},
8596 {0x75, 0, 0, 0, 0},
8597 {0x76, 0xcc, 0xcc, 0, 0},
8598 {0x77, 0x1, 0x1, 0, 0},
8599 {0x78, 0x66, 0x66, 0, 0},
8600 {0x79, 0x66, 0x66, 0, 0},
8601 {0x7A, 0, 0, 0, 0},
8602 {0x7B, 0, 0, 0, 0},
8603 {0x7C, 0, 0, 0, 0},
8604 {0x7D, 0, 0, 0, 0},
8605 {0x7E, 0, 0, 0, 0},
8606 {0x7F, 0, 0, 0, 0},
8607 {0x80, 0, 0, 0, 0},
8608 {0x81, 0, 0, 0, 0},
8609 {0x82, 0, 0, 0, 0},
8610 {0x83, 0, 0, 0, 0},
8611 {0x84, 0, 0, 0, 0},
8612 {0x85, 0xff, 0xff, 0, 0},
8613 {0x86, 0, 0, 0, 0},
8614 {0x87, 0, 0, 0, 0},
8615 {0x88, 0, 0, 0, 0},
8616 {0x89, 0, 0, 0, 0},
8617 {0x8A, 0, 0, 0, 0},
8618 {0x8B, 0, 0, 0, 0},
8619 {0x8C, 0, 0, 0, 0},
8620 {0x8D, 0, 0, 0, 0},
8621 {0x8E, 0, 0, 0, 0},
8622 {0x8F, 0, 0, 0, 0},
8623 {0x90, 0, 0, 0, 0},
8624 {0x91, 0, 0, 0, 0},
8625 {0x92, 0, 0, 0, 0},
8626 {0x93, 0, 0, 0, 0},
8627 {0x94, 0, 0, 0, 0},
8628 {0x95, 0, 0, 0, 0},
8629 {0x96, 0, 0, 0, 0},
8630 {0x97, 0, 0, 0, 0},
8631 {0x98, 0, 0, 0, 0},
8632 {0x99, 0, 0, 0, 0},
8633 {0x9A, 0, 0, 0, 0},
8634 {0x9B, 0, 0, 0, 0},
8635 {0x9C, 0, 0, 0, 0},
8636 {0x9D, 0, 0, 0, 0},
8637 {0x9E, 0, 0, 0, 0},
8638 {0x9F, 0x6, 0x6, 0, 0},
8639 {0xA0, 0x66, 0x66, 0, 0},
8640 {0xA1, 0x66, 0x66, 0, 0},
8641 {0xA2, 0x66, 0x66, 0, 0},
8642 {0xA3, 0x66, 0x66, 0, 0},
8643 {0xA4, 0x66, 0x66, 0, 0},
8644 {0xA5, 0x66, 0x66, 0, 0},
8645 {0xA6, 0x66, 0x66, 0, 0},
8646 {0xA7, 0x66, 0x66, 0, 0},
8647 {0xA8, 0x66, 0x66, 0, 0},
8648 {0xA9, 0x66, 0x66, 0, 0},
8649 {0xAA, 0x66, 0x66, 0, 0},
8650 {0xAB, 0x66, 0x66, 0, 0},
8651 {0xAC, 0x66, 0x66, 0, 0},
8652 {0xAD, 0x66, 0x66, 0, 0},
8653 {0xAE, 0x66, 0x66, 0, 0},
8654 {0xAF, 0x66, 0x66, 0, 0},
8655 {0xB0, 0x66, 0x66, 0, 0},
8656 {0xB1, 0x66, 0x66, 0, 0},
8657 {0xB2, 0x66, 0x66, 0, 0},
8658 {0xB3, 0xa, 0xa, 0, 0},
8659 {0xB4, 0, 0, 0, 0},
8660 {0xB5, 0, 0, 0, 0},
8661 {0xB6, 0, 0, 0, 0},
8662 {0xFFFF, 0, 0, 0, 0}
8665 static struct radio_regs regs_TX_2056_A1[] = {
8666 {0x02, 0, 0, 0, 0},
8667 {0x03, 0, 0, 0, 0},
8668 {0x04, 0, 0, 0, 0},
8669 {0x05, 0, 0, 0, 0},
8670 {0x06, 0, 0, 0, 0},
8671 {0x07, 0, 0, 0, 0},
8672 {0x08, 0, 0, 0, 0},
8673 {0x09, 0, 0, 0, 0},
8674 {0x0A, 0, 0, 0, 0},
8675 {0x0B, 0, 0, 0, 0},
8676 {0x0C, 0, 0, 0, 0},
8677 {0x0D, 0, 0, 0, 0},
8678 {0x0E, 0, 0, 0, 0},
8679 {0x0F, 0, 0, 0, 0},
8680 {0x10, 0, 0, 0, 0},
8681 {0x11, 0, 0, 0, 0},
8682 {0x12, 0, 0, 0, 0},
8683 {0x13, 0, 0, 0, 0},
8684 {0x14, 0, 0, 0, 0},
8685 {0x15, 0, 0, 0, 0},
8686 {0x16, 0, 0, 0, 0},
8687 {0x17, 0, 0, 0, 0},
8688 {0x18, 0, 0, 0, 0},
8689 {0x19, 0, 0, 0, 0},
8690 {0x1A, 0, 0, 0, 0},
8691 {0x1B, 0, 0, 0, 0},
8692 {0x1C, 0, 0, 0, 0},
8693 {0x1D, 0, 0, 0, 0},
8694 {0x1E, 0, 0, 0, 0},
8695 {0x1F, 0, 0, 0, 0},
8696 {0x20, 0, 0, 0, 0},
8697 {0x21, 0x88, 0x88, 0, 0},
8698 {0x22, 0x88, 0x88, 0, 0},
8699 {0x23, 0x88, 0x88, 0, 0},
8700 {0x24, 0x88, 0x88, 0, 0},
8701 {0x25, 0xc, 0xc, 0, 0},
8702 {0x26, 0, 0, 0, 0},
8703 {0x27, 0x3, 0x3, 0, 0},
8704 {0x28, 0, 0, 0, 0},
8705 {0x29, 0x3, 0x3, 0, 0},
8706 {0x2A, 0x37, 0x37, 0, 0},
8707 {0x2B, 0x3, 0x3, 0, 0},
8708 {0x2C, 0, 0, 0, 0},
8709 {0x2D, 0, 0, 0, 0},
8710 {0x2E, 0x1, 0x1, 0, 0},
8711 {0x2F, 0x1, 0x1, 0, 0},
8712 {0x30, 0, 0, 0, 0},
8713 {0x31, 0, 0, 0, 0},
8714 {0x32, 0, 0, 0, 0},
8715 {0x33, 0x11, 0x11, 0, 0},
8716 {0x34, 0x11, 0x11, 0, 0},
8717 {0x35, 0, 0, 0, 0},
8718 {0x36, 0, 0, 0, 0},
8719 {0x37, 0x3, 0x3, 0, 0},
8720 {0x38, 0xf, 0xf, 0, 0},
8721 {0x39, 0, 0, 0, 0},
8722 {0x3A, 0x2d, 0x2d, 0, 0},
8723 {0x3B, 0, 0, 0, 0},
8724 {0x3C, 0x6e, 0x6e, 0, 0},
8725 {0x3D, 0xf0, 0xf0, 1, 1},
8726 {0x3E, 0, 0, 0, 0},
8727 {0x3F, 0, 0, 0, 0},
8728 {0x40, 0, 0, 0, 0},
8729 {0x41, 0x3, 0x3, 0, 0},
8730 {0x42, 0x3, 0x3, 0, 0},
8731 {0x43, 0, 0, 0, 0},
8732 {0x44, 0x1e, 0x1e, 0, 0},
8733 {0x45, 0, 0, 0, 0},
8734 {0x46, 0x6e, 0x6e, 0, 0},
8735 {0x47, 0xf0, 0xf0, 1, 1},
8736 {0x48, 0, 0, 0, 0},
8737 {0x49, 0x2, 0x2, 0, 0},
8738 {0x4A, 0xff, 0xff, 1, 1},
8739 {0x4B, 0xc, 0xc, 0, 0},
8740 {0x4C, 0, 0, 0, 0},
8741 {0x4D, 0x38, 0x38, 0, 0},
8742 {0x4E, 0x70, 0x70, 1, 1},
8743 {0x4F, 0x2, 0x2, 0, 0},
8744 {0x50, 0x88, 0x88, 0, 0},
8745 {0x51, 0xc, 0xc, 0, 0},
8746 {0x52, 0, 0, 0, 0},
8747 {0x53, 0x8, 0x8, 0, 0},
8748 {0x54, 0x70, 0x70, 1, 1},
8749 {0x55, 0x2, 0x2, 0, 0},
8750 {0x56, 0xff, 0xff, 1, 1},
8751 {0x57, 0, 0, 0, 0},
8752 {0x58, 0x83, 0x83, 0, 0},
8753 {0x59, 0x77, 0x77, 1, 1},
8754 {0x5A, 0, 0, 0, 0},
8755 {0x5B, 0x2, 0x2, 0, 0},
8756 {0x5C, 0x88, 0x88, 0, 0},
8757 {0x5D, 0, 0, 0, 0},
8758 {0x5E, 0x8, 0x8, 0, 0},
8759 {0x5F, 0x77, 0x77, 1, 1},
8760 {0x60, 0x1, 0x1, 0, 0},
8761 {0x61, 0, 0, 0, 0},
8762 {0x62, 0x7, 0x7, 0, 0},
8763 {0x63, 0, 0, 0, 0},
8764 {0x64, 0x7, 0x7, 0, 0},
8765 {0x65, 0, 0, 0, 0},
8766 {0x66, 0, 0, 0, 0},
8767 {0x67, 0x72, 0x72, 1, 1},
8768 {0x68, 0, 0, 0, 0},
8769 {0x69, 0xa, 0xa, 0, 0},
8770 {0x6A, 0, 0, 0, 0},
8771 {0x6B, 0, 0, 0, 0},
8772 {0x6C, 0, 0, 0, 0},
8773 {0x6D, 0, 0, 0, 0},
8774 {0x6E, 0, 0, 0, 0},
8775 {0x6F, 0, 0, 0, 0},
8776 {0x70, 0, 0, 0, 0},
8777 {0x71, 0x2, 0x2, 0, 0},
8778 {0x72, 0, 0, 0, 0},
8779 {0x73, 0, 0, 0, 0},
8780 {0x74, 0xe, 0xe, 0, 0},
8781 {0x75, 0xe, 0xe, 0, 0},
8782 {0x76, 0xe, 0xe, 0, 0},
8783 {0x77, 0x13, 0x13, 0, 0},
8784 {0x78, 0x13, 0x13, 0, 0},
8785 {0x79, 0x1b, 0x1b, 0, 0},
8786 {0x7A, 0x1b, 0x1b, 0, 0},
8787 {0x7B, 0x55, 0x55, 0, 0},
8788 {0x7C, 0x5b, 0x5b, 0, 0},
8789 {0x7D, 0, 0, 0, 0},
8790 {0x7E, 0, 0, 0, 0},
8791 {0x7F, 0, 0, 0, 0},
8792 {0x80, 0, 0, 0, 0},
8793 {0x81, 0, 0, 0, 0},
8794 {0x82, 0, 0, 0, 0},
8795 {0x83, 0, 0, 0, 0},
8796 {0x84, 0, 0, 0, 0},
8797 {0x85, 0, 0, 0, 0},
8798 {0x86, 0, 0, 0, 0},
8799 {0x87, 0, 0, 0, 0},
8800 {0x88, 0, 0, 0, 0},
8801 {0x89, 0, 0, 0, 0},
8802 {0x8A, 0, 0, 0, 0},
8803 {0x8B, 0, 0, 0, 0},
8804 {0x8C, 0, 0, 0, 0},
8805 {0x8D, 0, 0, 0, 0},
8806 {0x8E, 0, 0, 0, 0},
8807 {0x8F, 0, 0, 0, 0},
8808 {0x90, 0, 0, 0, 0},
8809 {0x91, 0, 0, 0, 0},
8810 {0x92, 0, 0, 0, 0},
8811 {0xFFFF, 0, 0, 0, 0}
8814 static struct radio_regs regs_RX_2056_A1[] = {
8815 {0x02, 0, 0, 0, 0},
8816 {0x03, 0, 0, 0, 0},
8817 {0x04, 0, 0, 0, 0},
8818 {0x05, 0, 0, 0, 0},
8819 {0x06, 0, 0, 0, 0},
8820 {0x07, 0, 0, 0, 0},
8821 {0x08, 0, 0, 0, 0},
8822 {0x09, 0, 0, 0, 0},
8823 {0x0A, 0, 0, 0, 0},
8824 {0x0B, 0, 0, 0, 0},
8825 {0x0C, 0, 0, 0, 0},
8826 {0x0D, 0, 0, 0, 0},
8827 {0x0E, 0, 0, 0, 0},
8828 {0x0F, 0, 0, 0, 0},
8829 {0x10, 0, 0, 0, 0},
8830 {0x11, 0, 0, 0, 0},
8831 {0x12, 0, 0, 0, 0},
8832 {0x13, 0, 0, 0, 0},
8833 {0x14, 0, 0, 0, 0},
8834 {0x15, 0, 0, 0, 0},
8835 {0x16, 0, 0, 0, 0},
8836 {0x17, 0, 0, 0, 0},
8837 {0x18, 0, 0, 0, 0},
8838 {0x19, 0, 0, 0, 0},
8839 {0x1A, 0, 0, 0, 0},
8840 {0x1B, 0, 0, 0, 0},
8841 {0x1C, 0, 0, 0, 0},
8842 {0x1D, 0, 0, 0, 0},
8843 {0x1E, 0, 0, 0, 0},
8844 {0x1F, 0, 0, 0, 0},
8845 {0x20, 0x3, 0x3, 0, 0},
8846 {0x21, 0, 0, 0, 0},
8847 {0x22, 0, 0, 0, 0},
8848 {0x23, 0x90, 0x90, 0, 0},
8849 {0x24, 0x55, 0x55, 0, 0},
8850 {0x25, 0x15, 0x15, 0, 0},
8851 {0x26, 0x5, 0x5, 0, 0},
8852 {0x27, 0x15, 0x15, 0, 0},
8853 {0x28, 0x5, 0x5, 0, 0},
8854 {0x29, 0x20, 0x20, 0, 0},
8855 {0x2A, 0x11, 0x11, 0, 0},
8856 {0x2B, 0x90, 0x90, 0, 0},
8857 {0x2C, 0, 0, 0, 0},
8858 {0x2D, 0x88, 0x88, 0, 0},
8859 {0x2E, 0x32, 0x32, 0, 0},
8860 {0x2F, 0x77, 0x77, 0, 0},
8861 {0x30, 0x17, 0x17, 1, 1},
8862 {0x31, 0xff, 0xff, 1, 1},
8863 {0x32, 0x20, 0x20, 0, 0},
8864 {0x33, 0, 0, 0, 0},
8865 {0x34, 0x88, 0x88, 0, 0},
8866 {0x35, 0x32, 0x32, 0, 0},
8867 {0x36, 0x77, 0x77, 0, 0},
8868 {0x37, 0x17, 0x17, 1, 1},
8869 {0x38, 0xf0, 0xf0, 1, 1},
8870 {0x39, 0x20, 0x20, 0, 0},
8871 {0x3A, 0x8, 0x8, 0, 0},
8872 {0x3B, 0x55, 0x55, 1, 1},
8873 {0x3C, 0, 0, 0, 0},
8874 {0x3D, 0x44, 0x44, 1, 1},
8875 {0x3E, 0, 0, 0, 0},
8876 {0x3F, 0x44, 0x44, 0, 0},
8877 {0x40, 0xf, 0xf, 1, 1},
8878 {0x41, 0x6, 0x6, 0, 0},
8879 {0x42, 0x4, 0x4, 0, 0},
8880 {0x43, 0x50, 0x50, 1, 1},
8881 {0x44, 0x8, 0x8, 0, 0},
8882 {0x45, 0x55, 0x55, 1, 1},
8883 {0x46, 0, 0, 0, 0},
8884 {0x47, 0x11, 0x11, 0, 0},
8885 {0x48, 0, 0, 0, 0},
8886 {0x49, 0x44, 0x44, 0, 0},
8887 {0x4A, 0x7, 0x7, 0, 0},
8888 {0x4B, 0x6, 0x6, 0, 0},
8889 {0x4C, 0x4, 0x4, 0, 0},
8890 {0x4D, 0, 0, 0, 0},
8891 {0x4E, 0, 0, 0, 0},
8892 {0x4F, 0x26, 0x26, 1, 1},
8893 {0x50, 0x26, 0x26, 1, 1},
8894 {0x51, 0xf, 0xf, 1, 1},
8895 {0x52, 0xf, 0xf, 1, 1},
8896 {0x53, 0x44, 0x44, 0, 0},
8897 {0x54, 0, 0, 0, 0},
8898 {0x55, 0, 0, 0, 0},
8899 {0x56, 0x8, 0x8, 0, 0},
8900 {0x57, 0x8, 0x8, 0, 0},
8901 {0x58, 0x7, 0x7, 0, 0},
8902 {0x59, 0x22, 0x22, 0, 0},
8903 {0x5A, 0x22, 0x22, 0, 0},
8904 {0x5B, 0x2, 0x2, 0, 0},
8905 {0x5C, 0x2f, 0x2f, 1, 1},
8906 {0x5D, 0x7, 0x7, 0, 0},
8907 {0x5E, 0x55, 0x55, 0, 0},
8908 {0x5F, 0x23, 0x23, 0, 0},
8909 {0x60, 0x41, 0x41, 0, 0},
8910 {0x61, 0x1, 0x1, 0, 0},
8911 {0x62, 0xa, 0xa, 0, 0},
8912 {0x63, 0, 0, 0, 0},
8913 {0x64, 0, 0, 0, 0},
8914 {0x65, 0, 0, 0, 0},
8915 {0x66, 0, 0, 0, 0},
8916 {0x67, 0, 0, 0, 0},
8917 {0x68, 0, 0, 0, 0},
8918 {0x69, 0, 0, 0, 0},
8919 {0x6A, 0, 0, 0, 0},
8920 {0x6B, 0xc, 0xc, 0, 0},
8921 {0x6C, 0, 0, 0, 0},
8922 {0x6D, 0, 0, 0, 0},
8923 {0x6E, 0, 0, 0, 0},
8924 {0x6F, 0, 0, 0, 0},
8925 {0x70, 0, 0, 0, 0},
8926 {0x71, 0, 0, 0, 0},
8927 {0x72, 0x22, 0x22, 0, 0},
8928 {0x73, 0x22, 0x22, 0, 0},
8929 {0x74, 0, 0, 1, 1},
8930 {0x75, 0xa, 0xa, 0, 0},
8931 {0x76, 0x1, 0x1, 0, 0},
8932 {0x77, 0x22, 0x22, 0, 0},
8933 {0x78, 0x30, 0x30, 0, 0},
8934 {0x79, 0, 0, 0, 0},
8935 {0x7A, 0, 0, 0, 0},
8936 {0x7B, 0, 0, 0, 0},
8937 {0x7C, 0, 0, 0, 0},
8938 {0x7D, 0, 0, 0, 0},
8939 {0x7E, 0, 0, 0, 0},
8940 {0x7F, 0, 0, 0, 0},
8941 {0x80, 0, 0, 0, 0},
8942 {0x81, 0, 0, 0, 0},
8943 {0x82, 0, 0, 0, 0},
8944 {0x83, 0, 0, 0, 0},
8945 {0x84, 0, 0, 0, 0},
8946 {0x85, 0, 0, 0, 0},
8947 {0x86, 0, 0, 0, 0},
8948 {0x87, 0, 0, 0, 0},
8949 {0x88, 0, 0, 0, 0},
8950 {0x89, 0, 0, 0, 0},
8951 {0x8A, 0, 0, 0, 0},
8952 {0x8B, 0, 0, 0, 0},
8953 {0x8C, 0, 0, 0, 0},
8954 {0x8D, 0, 0, 0, 0},
8955 {0x8E, 0, 0, 0, 0},
8956 {0x8F, 0, 0, 0, 0},
8957 {0x90, 0, 0, 0, 0},
8958 {0x91, 0, 0, 0, 0},
8959 {0x92, 0, 0, 0, 0},
8960 {0x93, 0, 0, 0, 0},
8961 {0x94, 0, 0, 0, 0},
8962 {0xFFFF, 0, 0, 0, 0}
8965 static struct radio_regs regs_SYN_2056_rev5[] = {
8966 {0x02, 0, 0, 0, 0},
8967 {0x03, 0, 0, 0, 0},
8968 {0x04, 0, 0, 0, 0},
8969 {0x05, 0, 0, 0, 0},
8970 {0x06, 0, 0, 0, 0},
8971 {0x07, 0, 0, 0, 0},
8972 {0x08, 0, 0, 0, 0},
8973 {0x09, 0x1, 0x1, 0, 0},
8974 {0x0A, 0, 0, 0, 0},
8975 {0x0B, 0, 0, 0, 0},
8976 {0x0C, 0, 0, 0, 0},
8977 {0x0D, 0, 0, 0, 0},
8978 {0x0E, 0, 0, 0, 0},
8979 {0x0F, 0, 0, 0, 0},
8980 {0x10, 0, 0, 0, 0},
8981 {0x11, 0, 0, 0, 0},
8982 {0x12, 0, 0, 0, 0},
8983 {0x13, 0, 0, 0, 0},
8984 {0x14, 0, 0, 0, 0},
8985 {0x15, 0, 0, 0, 0},
8986 {0x16, 0, 0, 0, 0},
8987 {0x17, 0, 0, 0, 0},
8988 {0x18, 0, 0, 0, 0},
8989 {0x19, 0, 0, 0, 0},
8990 {0x1A, 0, 0, 0, 0},
8991 {0x1B, 0, 0, 0, 0},
8992 {0x1C, 0, 0, 0, 0},
8993 {0x1D, 0, 0, 0, 0},
8994 {0x1E, 0, 0, 0, 0},
8995 {0x1F, 0, 0, 0, 0},
8996 {0x20, 0, 0, 0, 0},
8997 {0x21, 0, 0, 0, 0},
8998 {0x22, 0x60, 0x60, 0, 0},
8999 {0x23, 0x6, 0x6, 0, 0},
9000 {0x24, 0xc, 0xc, 0, 0},
9001 {0x25, 0, 0, 0, 0},
9002 {0x26, 0, 0, 0, 0},
9003 {0x27, 0, 0, 0, 0},
9004 {0x28, 0x1, 0x1, 0, 0},
9005 {0x29, 0, 0, 0, 0},
9006 {0x2A, 0, 0, 0, 0},
9007 {0x2B, 0, 0, 0, 0},
9008 {0x2C, 0, 0, 0, 0},
9009 {0x2D, 0, 0, 0, 0},
9010 {0x2E, 0, 0, 0, 0},
9011 {0x2F, 0x1f, 0x1f, 0, 0},
9012 {0x30, 0x15, 0x15, 0, 0},
9013 {0x31, 0xf, 0xf, 0, 0},
9014 {0x32, 0, 0, 0, 0},
9015 {0x33, 0, 0, 0, 0},
9016 {0x34, 0, 0, 0, 0},
9017 {0x35, 0, 0, 0, 0},
9018 {0x36, 0, 0, 0, 0},
9019 {0x37, 0, 0, 0, 0},
9020 {0x38, 0, 0, 0, 0},
9021 {0x39, 0, 0, 0, 0},
9022 {0x3A, 0, 0, 0, 0},
9023 {0x3B, 0, 0, 0, 0},
9024 {0x3C, 0x13, 0x13, 0, 0},
9025 {0x3D, 0xf, 0xf, 0, 0},
9026 {0x3E, 0x18, 0x18, 0, 0},
9027 {0x3F, 0, 0, 0, 0},
9028 {0x40, 0, 0, 0, 0},
9029 {0x41, 0x20, 0x20, 0, 0},
9030 {0x42, 0x20, 0x20, 0, 0},
9031 {0x43, 0, 0, 0, 0},
9032 {0x44, 0x77, 0x77, 0, 0},
9033 {0x45, 0x7, 0x7, 0, 0},
9034 {0x46, 0x1, 0x1, 0, 0},
9035 {0x47, 0x4, 0x4, 0, 0},
9036 {0x48, 0xf, 0xf, 0, 0},
9037 {0x49, 0x30, 0x30, 0, 0},
9038 {0x4A, 0x32, 0x32, 0, 0},
9039 {0x4B, 0xd, 0xd, 0, 0},
9040 {0x4C, 0xd, 0xd, 0, 0},
9041 {0x4D, 0x4, 0x4, 0, 0},
9042 {0x4E, 0x6, 0x6, 0, 0},
9043 {0x4F, 0x1, 0x1, 0, 0},
9044 {0x50, 0x1c, 0x1c, 0, 0},
9045 {0x51, 0x2, 0x2, 0, 0},
9046 {0x52, 0x2, 0x2, 0, 0},
9047 {0x53, 0xf7, 0xf7, 1, 1},
9048 {0x54, 0xb4, 0xb4, 0, 0},
9049 {0x55, 0xd2, 0xd2, 0, 0},
9050 {0x56, 0, 0, 0, 0},
9051 {0x57, 0, 0, 0, 0},
9052 {0x58, 0x4, 0x4, 0, 0},
9053 {0x59, 0x96, 0x96, 0, 0},
9054 {0x5A, 0x3e, 0x3e, 0, 0},
9055 {0x5B, 0x3e, 0x3e, 0, 0},
9056 {0x5C, 0x13, 0x13, 0, 0},
9057 {0x5D, 0x2, 0x2, 0, 0},
9058 {0x5E, 0, 0, 0, 0},
9059 {0x5F, 0x7, 0x7, 0, 0},
9060 {0x60, 0x7, 0x7, 1, 1},
9061 {0x61, 0x8, 0x8, 0, 0},
9062 {0x62, 0x3, 0x3, 0, 0},
9063 {0x63, 0, 0, 0, 0},
9064 {0x64, 0, 0, 0, 0},
9065 {0x65, 0, 0, 0, 0},
9066 {0x66, 0, 0, 0, 0},
9067 {0x67, 0, 0, 0, 0},
9068 {0x68, 0x40, 0x40, 0, 0},
9069 {0x69, 0, 0, 0, 0},
9070 {0x6A, 0, 0, 0, 0},
9071 {0x6B, 0, 0, 0, 0},
9072 {0x6C, 0, 0, 0, 0},
9073 {0x6D, 0x1, 0x1, 0, 0},
9074 {0x6E, 0, 0, 0, 0},
9075 {0x6F, 0, 0, 0, 0},
9076 {0x70, 0x60, 0x60, 0, 0},
9077 {0x71, 0x66, 0x66, 0, 0},
9078 {0x72, 0xc, 0xc, 0, 0},
9079 {0x73, 0x66, 0x66, 0, 0},
9080 {0x74, 0x8f, 0x8f, 1, 1},
9081 {0x75, 0, 0, 0, 0},
9082 {0x76, 0xcc, 0xcc, 0, 0},
9083 {0x77, 0x1, 0x1, 0, 0},
9084 {0x78, 0x66, 0x66, 0, 0},
9085 {0x79, 0x66, 0x66, 0, 0},
9086 {0x7A, 0, 0, 0, 0},
9087 {0x7B, 0, 0, 0, 0},
9088 {0x7C, 0, 0, 0, 0},
9089 {0x7D, 0, 0, 0, 0},
9090 {0x7E, 0, 0, 0, 0},
9091 {0x7F, 0, 0, 0, 0},
9092 {0x80, 0, 0, 0, 0},
9093 {0x81, 0, 0, 0, 0},
9094 {0x82, 0, 0, 0, 0},
9095 {0x83, 0, 0, 0, 0},
9096 {0x84, 0, 0, 0, 0},
9097 {0x85, 0xff, 0xff, 0, 0},
9098 {0x86, 0, 0, 0, 0},
9099 {0x87, 0, 0, 0, 0},
9100 {0x88, 0, 0, 0, 0},
9101 {0x89, 0, 0, 0, 0},
9102 {0x8A, 0, 0, 0, 0},
9103 {0x8B, 0, 0, 0, 0},
9104 {0x8C, 0, 0, 0, 0},
9105 {0x8D, 0, 0, 0, 0},
9106 {0x8E, 0, 0, 0, 0},
9107 {0x8F, 0, 0, 0, 0},
9108 {0x90, 0, 0, 0, 0},
9109 {0x91, 0, 0, 0, 0},
9110 {0x92, 0, 0, 0, 0},
9111 {0x93, 0, 0, 0, 0},
9112 {0x94, 0, 0, 0, 0},
9113 {0x95, 0, 0, 0, 0},
9114 {0x96, 0, 0, 0, 0},
9115 {0x97, 0, 0, 0, 0},
9116 {0x98, 0, 0, 0, 0},
9117 {0x99, 0, 0, 0, 0},
9118 {0x9A, 0, 0, 0, 0},
9119 {0x9B, 0, 0, 0, 0},
9120 {0x9C, 0, 0, 0, 0},
9121 {0x9D, 0, 0, 0, 0},
9122 {0x9E, 0, 0, 0, 0},
9123 {0x9F, 0x6, 0x6, 0, 0},
9124 {0xA0, 0x66, 0x66, 0, 0},
9125 {0xA1, 0x66, 0x66, 0, 0},
9126 {0xA2, 0x66, 0x66, 0, 0},
9127 {0xA3, 0x66, 0x66, 0, 0},
9128 {0xA4, 0x66, 0x66, 0, 0},
9129 {0xA5, 0x66, 0x66, 0, 0},
9130 {0xA6, 0x66, 0x66, 0, 0},
9131 {0xA7, 0x66, 0x66, 0, 0},
9132 {0xA8, 0x66, 0x66, 0, 0},
9133 {0xA9, 0x66, 0x66, 0, 0},
9134 {0xAA, 0x66, 0x66, 0, 0},
9135 {0xAB, 0x66, 0x66, 0, 0},
9136 {0xAC, 0x66, 0x66, 0, 0},
9137 {0xAD, 0x66, 0x66, 0, 0},
9138 {0xAE, 0x66, 0x66, 0, 0},
9139 {0xAF, 0x66, 0x66, 0, 0},
9140 {0xB0, 0x66, 0x66, 0, 0},
9141 {0xB1, 0x66, 0x66, 0, 0},
9142 {0xB2, 0x66, 0x66, 0, 0},
9143 {0xB3, 0xa, 0xa, 0, 0},
9144 {0xB4, 0, 0, 0, 0},
9145 {0xB5, 0, 0, 0, 0},
9146 {0xB6, 0, 0, 0, 0},
9147 {0xFFFF, 0, 0, 0, 0}
9150 static struct radio_regs regs_TX_2056_rev5[] = {
9151 {0x02, 0, 0, 0, 0},
9152 {0x03, 0, 0, 0, 0},
9153 {0x04, 0, 0, 0, 0},
9154 {0x05, 0, 0, 0, 0},
9155 {0x06, 0, 0, 0, 0},
9156 {0x07, 0, 0, 0, 0},
9157 {0x08, 0, 0, 0, 0},
9158 {0x09, 0, 0, 0, 0},
9159 {0x0A, 0, 0, 0, 0},
9160 {0x0B, 0, 0, 0, 0},
9161 {0x0C, 0, 0, 0, 0},
9162 {0x0D, 0, 0, 0, 0},
9163 {0x0E, 0, 0, 0, 0},
9164 {0x0F, 0, 0, 0, 0},
9165 {0x10, 0, 0, 0, 0},
9166 {0x11, 0, 0, 0, 0},
9167 {0x12, 0, 0, 0, 0},
9168 {0x13, 0, 0, 0, 0},
9169 {0x14, 0, 0, 0, 0},
9170 {0x15, 0, 0, 0, 0},
9171 {0x16, 0, 0, 0, 0},
9172 {0x17, 0, 0, 0, 0},
9173 {0x18, 0, 0, 0, 0},
9174 {0x19, 0, 0, 0, 0},
9175 {0x1A, 0, 0, 0, 0},
9176 {0x1B, 0, 0, 0, 0},
9177 {0x1C, 0, 0, 0, 0},
9178 {0x1D, 0, 0, 0, 0},
9179 {0x1E, 0, 0, 0, 0},
9180 {0x1F, 0, 0, 0, 0},
9181 {0x20, 0, 0, 0, 0},
9182 {0x21, 0x88, 0x88, 0, 0},
9183 {0x22, 0x88, 0x88, 0, 0},
9184 {0x23, 0x88, 0x88, 0, 0},
9185 {0x24, 0x88, 0x88, 0, 0},
9186 {0x25, 0xc, 0xc, 0, 0},
9187 {0x26, 0, 0, 0, 0},
9188 {0x27, 0x3, 0x3, 0, 0},
9189 {0x28, 0, 0, 0, 0},
9190 {0x29, 0x3, 0x3, 0, 0},
9191 {0x2A, 0x37, 0x37, 0, 0},
9192 {0x2B, 0x3, 0x3, 0, 0},
9193 {0x2C, 0, 0, 0, 0},
9194 {0x2D, 0, 0, 0, 0},
9195 {0x2E, 0x1, 0x1, 0, 0},
9196 {0x2F, 0x1, 0x1, 0, 0},
9197 {0x30, 0, 0, 0, 0},
9198 {0x31, 0, 0, 0, 0},
9199 {0x32, 0, 0, 0, 0},
9200 {0x33, 0x11, 0x11, 0, 0},
9201 {0x34, 0x11, 0x11, 0, 0},
9202 {0x35, 0, 0, 0, 0},
9203 {0x36, 0, 0, 0, 0},
9204 {0x37, 0x3, 0x3, 0, 0},
9205 {0x38, 0xf, 0xf, 0, 0},
9206 {0x39, 0, 0, 0, 0},
9207 {0x3A, 0x2d, 0x2d, 0, 0},
9208 {0x3B, 0, 0, 0, 0},
9209 {0x3C, 0x6e, 0x6e, 0, 0},
9210 {0x3D, 0xf0, 0xf0, 1, 1},
9211 {0x3E, 0, 0, 0, 0},
9212 {0x3F, 0, 0, 0, 0},
9213 {0x40, 0, 0, 0, 0},
9214 {0x41, 0x3, 0x3, 0, 0},
9215 {0x42, 0x3, 0x3, 0, 0},
9216 {0x43, 0, 0, 0, 0},
9217 {0x44, 0x1e, 0x1e, 0, 0},
9218 {0x45, 0, 0, 0, 0},
9219 {0x46, 0x6e, 0x6e, 0, 0},
9220 {0x47, 0xf0, 0xf0, 1, 1},
9221 {0x48, 0, 0, 0, 0},
9222 {0x49, 0x2, 0x2, 0, 0},
9223 {0x4A, 0xff, 0xff, 1, 1},
9224 {0x4B, 0xc, 0xc, 0, 0},
9225 {0x4C, 0, 0, 0, 0},
9226 {0x4D, 0x38, 0x38, 0, 0},
9227 {0x4E, 0x70, 0x70, 1, 1},
9228 {0x4F, 0x2, 0x2, 0, 0},
9229 {0x50, 0x88, 0x88, 0, 0},
9230 {0x51, 0xc, 0xc, 0, 0},
9231 {0x52, 0, 0, 0, 0},
9232 {0x53, 0x8, 0x8, 0, 0},
9233 {0x54, 0x70, 0x70, 1, 1},
9234 {0x55, 0x2, 0x2, 0, 0},
9235 {0x56, 0xff, 0xff, 1, 1},
9236 {0x57, 0, 0, 0, 0},
9237 {0x58, 0x83, 0x83, 0, 0},
9238 {0x59, 0x77, 0x77, 1, 1},
9239 {0x5A, 0, 0, 0, 0},
9240 {0x5B, 0x2, 0x2, 0, 0},
9241 {0x5C, 0x88, 0x88, 0, 0},
9242 {0x5D, 0, 0, 0, 0},
9243 {0x5E, 0x8, 0x8, 0, 0},
9244 {0x5F, 0x77, 0x77, 1, 1},
9245 {0x60, 0x1, 0x1, 0, 0},
9246 {0x61, 0, 0, 0, 0},
9247 {0x62, 0x7, 0x7, 0, 0},
9248 {0x63, 0, 0, 0, 0},
9249 {0x64, 0x7, 0x7, 0, 0},
9250 {0x65, 0, 0, 0, 0},
9251 {0x66, 0, 0, 0, 0},
9252 {0x67, 0, 0, 1, 1},
9253 {0x68, 0, 0, 0, 0},
9254 {0x69, 0xa, 0xa, 0, 0},
9255 {0x6A, 0, 0, 0, 0},
9256 {0x6B, 0, 0, 0, 0},
9257 {0x6C, 0, 0, 0, 0},
9258 {0x6D, 0, 0, 0, 0},
9259 {0x6E, 0, 0, 0, 0},
9260 {0x6F, 0, 0, 0, 0},
9261 {0x70, 0, 0, 0, 0},
9262 {0x71, 0x2, 0x2, 0, 0},
9263 {0x72, 0, 0, 0, 0},
9264 {0x73, 0, 0, 0, 0},
9265 {0x74, 0xe, 0xe, 0, 0},
9266 {0x75, 0xe, 0xe, 0, 0},
9267 {0x76, 0xe, 0xe, 0, 0},
9268 {0x77, 0x13, 0x13, 0, 0},
9269 {0x78, 0x13, 0x13, 0, 0},
9270 {0x79, 0x1b, 0x1b, 0, 0},
9271 {0x7A, 0x1b, 0x1b, 0, 0},
9272 {0x7B, 0x55, 0x55, 0, 0},
9273 {0x7C, 0x5b, 0x5b, 0, 0},
9274 {0x7D, 0, 0, 0, 0},
9275 {0x7E, 0, 0, 0, 0},
9276 {0x7F, 0, 0, 0, 0},
9277 {0x80, 0, 0, 0, 0},
9278 {0x81, 0, 0, 0, 0},
9279 {0x82, 0, 0, 0, 0},
9280 {0x83, 0, 0, 0, 0},
9281 {0x84, 0, 0, 0, 0},
9282 {0x85, 0, 0, 0, 0},
9283 {0x86, 0, 0, 0, 0},
9284 {0x87, 0, 0, 0, 0},
9285 {0x88, 0, 0, 0, 0},
9286 {0x89, 0, 0, 0, 0},
9287 {0x8A, 0, 0, 0, 0},
9288 {0x8B, 0, 0, 0, 0},
9289 {0x8C, 0, 0, 0, 0},
9290 {0x8D, 0, 0, 0, 0},
9291 {0x8E, 0, 0, 0, 0},
9292 {0x8F, 0, 0, 0, 0},
9293 {0x90, 0, 0, 0, 0},
9294 {0x91, 0, 0, 0, 0},
9295 {0x92, 0, 0, 0, 0},
9296 {0x93, 0x70, 0x70, 0, 0},
9297 {0x94, 0x70, 0x70, 0, 0},
9298 {0x95, 0x71, 0x71, 1, 1},
9299 {0x96, 0x71, 0x71, 1, 1},
9300 {0x97, 0x72, 0x72, 1, 1},
9301 {0x98, 0x73, 0x73, 1, 1},
9302 {0x99, 0x74, 0x74, 1, 1},
9303 {0x9A, 0x75, 0x75, 1, 1},
9304 {0xFFFF, 0, 0, 0, 0}
9307 static struct radio_regs regs_RX_2056_rev5[] = {
9308 {0x02, 0, 0, 0, 0},
9309 {0x03, 0, 0, 0, 0},
9310 {0x04, 0, 0, 0, 0},
9311 {0x05, 0, 0, 0, 0},
9312 {0x06, 0, 0, 0, 0},
9313 {0x07, 0, 0, 0, 0},
9314 {0x08, 0, 0, 0, 0},
9315 {0x09, 0, 0, 0, 0},
9316 {0x0A, 0, 0, 0, 0},
9317 {0x0B, 0, 0, 0, 0},
9318 {0x0C, 0, 0, 0, 0},
9319 {0x0D, 0, 0, 0, 0},
9320 {0x0E, 0, 0, 0, 0},
9321 {0x0F, 0, 0, 0, 0},
9322 {0x10, 0, 0, 0, 0},
9323 {0x11, 0, 0, 0, 0},
9324 {0x12, 0, 0, 0, 0},
9325 {0x13, 0, 0, 0, 0},
9326 {0x14, 0, 0, 0, 0},
9327 {0x15, 0, 0, 0, 0},
9328 {0x16, 0, 0, 0, 0},
9329 {0x17, 0, 0, 0, 0},
9330 {0x18, 0, 0, 0, 0},
9331 {0x19, 0, 0, 0, 0},
9332 {0x1A, 0, 0, 0, 0},
9333 {0x1B, 0, 0, 0, 0},
9334 {0x1C, 0, 0, 0, 0},
9335 {0x1D, 0, 0, 0, 0},
9336 {0x1E, 0, 0, 0, 0},
9337 {0x1F, 0, 0, 0, 0},
9338 {0x20, 0x3, 0x3, 0, 0},
9339 {0x21, 0, 0, 0, 0},
9340 {0x22, 0, 0, 0, 0},
9341 {0x23, 0x90, 0x90, 0, 0},
9342 {0x24, 0x55, 0x55, 0, 0},
9343 {0x25, 0x15, 0x15, 0, 0},
9344 {0x26, 0x5, 0x5, 0, 0},
9345 {0x27, 0x15, 0x15, 0, 0},
9346 {0x28, 0x5, 0x5, 0, 0},
9347 {0x29, 0x20, 0x20, 0, 0},
9348 {0x2A, 0x11, 0x11, 0, 0},
9349 {0x2B, 0x90, 0x90, 0, 0},
9350 {0x2C, 0, 0, 0, 0},
9351 {0x2D, 0x88, 0x88, 0, 0},
9352 {0x2E, 0x32, 0x32, 0, 0},
9353 {0x2F, 0x77, 0x77, 0, 0},
9354 {0x30, 0x17, 0x17, 1, 1},
9355 {0x31, 0xff, 0xff, 1, 1},
9356 {0x32, 0x20, 0x20, 0, 0},
9357 {0x33, 0, 0, 0, 0},
9358 {0x34, 0x88, 0x88, 0, 0},
9359 {0x35, 0x32, 0x32, 0, 0},
9360 {0x36, 0x77, 0x77, 0, 0},
9361 {0x37, 0x17, 0x17, 1, 1},
9362 {0x38, 0xf0, 0xf0, 1, 1},
9363 {0x39, 0x20, 0x20, 0, 0},
9364 {0x3A, 0x8, 0x8, 0, 0},
9365 {0x3B, 0x55, 0x55, 1, 1},
9366 {0x3C, 0, 0, 0, 0},
9367 {0x3D, 0x88, 0x88, 1, 1},
9368 {0x3E, 0, 0, 0, 0},
9369 {0x3F, 0, 0, 1, 1},
9370 {0x40, 0x7, 0x7, 1, 1},
9371 {0x41, 0x6, 0x6, 0, 0},
9372 {0x42, 0x4, 0x4, 0, 0},
9373 {0x43, 0, 0, 0, 0},
9374 {0x44, 0x8, 0x8, 0, 0},
9375 {0x45, 0x55, 0x55, 1, 1},
9376 {0x46, 0, 0, 0, 0},
9377 {0x47, 0x11, 0x11, 0, 0},
9378 {0x48, 0, 0, 0, 0},
9379 {0x49, 0, 0, 1, 1},
9380 {0x4A, 0x7, 0x7, 0, 0},
9381 {0x4B, 0x6, 0x6, 0, 0},
9382 {0x4C, 0x4, 0x4, 0, 0},
9383 {0x4D, 0, 0, 0, 0},
9384 {0x4E, 0, 0, 0, 0},
9385 {0x4F, 0x26, 0x26, 1, 1},
9386 {0x50, 0x26, 0x26, 1, 1},
9387 {0x51, 0xf, 0xf, 1, 1},
9388 {0x52, 0xf, 0xf, 1, 1},
9389 {0x53, 0x44, 0x44, 0, 0},
9390 {0x54, 0, 0, 0, 0},
9391 {0x55, 0, 0, 0, 0},
9392 {0x56, 0x8, 0x8, 0, 0},
9393 {0x57, 0x8, 0x8, 0, 0},
9394 {0x58, 0x7, 0x7, 0, 0},
9395 {0x59, 0x22, 0x22, 0, 0},
9396 {0x5A, 0x22, 0x22, 0, 0},
9397 {0x5B, 0x2, 0x2, 0, 0},
9398 {0x5C, 0x4, 0x4, 1, 1},
9399 {0x5D, 0x7, 0x7, 0, 0},
9400 {0x5E, 0x55, 0x55, 0, 0},
9401 {0x5F, 0x23, 0x23, 0, 0},
9402 {0x60, 0x41, 0x41, 0, 0},
9403 {0x61, 0x1, 0x1, 0, 0},
9404 {0x62, 0xa, 0xa, 0, 0},
9405 {0x63, 0, 0, 0, 0},
9406 {0x64, 0, 0, 0, 0},
9407 {0x65, 0, 0, 0, 0},
9408 {0x66, 0, 0, 0, 0},
9409 {0x67, 0, 0, 0, 0},
9410 {0x68, 0, 0, 0, 0},
9411 {0x69, 0, 0, 0, 0},
9412 {0x6A, 0, 0, 0, 0},
9413 {0x6B, 0xc, 0xc, 0, 0},
9414 {0x6C, 0, 0, 0, 0},
9415 {0x6D, 0, 0, 0, 0},
9416 {0x6E, 0, 0, 0, 0},
9417 {0x6F, 0, 0, 0, 0},
9418 {0x70, 0, 0, 0, 0},
9419 {0x71, 0, 0, 0, 0},
9420 {0x72, 0x22, 0x22, 0, 0},
9421 {0x73, 0x22, 0x22, 0, 0},
9422 {0x74, 0, 0, 1, 1},
9423 {0x75, 0xa, 0xa, 0, 0},
9424 {0x76, 0x1, 0x1, 0, 0},
9425 {0x77, 0x22, 0x22, 0, 0},
9426 {0x78, 0x30, 0x30, 0, 0},
9427 {0x79, 0, 0, 0, 0},
9428 {0x7A, 0, 0, 0, 0},
9429 {0x7B, 0, 0, 0, 0},
9430 {0x7C, 0, 0, 0, 0},
9431 {0x7D, 0, 0, 0, 0},
9432 {0x7E, 0, 0, 0, 0},
9433 {0x7F, 0, 0, 0, 0},
9434 {0x80, 0, 0, 0, 0},
9435 {0x81, 0, 0, 0, 0},
9436 {0x82, 0, 0, 0, 0},
9437 {0x83, 0, 0, 0, 0},
9438 {0x84, 0, 0, 0, 0},
9439 {0x85, 0, 0, 0, 0},
9440 {0x86, 0, 0, 0, 0},
9441 {0x87, 0, 0, 0, 0},
9442 {0x88, 0, 0, 0, 0},
9443 {0x89, 0, 0, 0, 0},
9444 {0x8A, 0, 0, 0, 0},
9445 {0x8B, 0, 0, 0, 0},
9446 {0x8C, 0, 0, 0, 0},
9447 {0x8D, 0, 0, 0, 0},
9448 {0x8E, 0, 0, 0, 0},
9449 {0x8F, 0, 0, 0, 0},
9450 {0x90, 0, 0, 0, 0},
9451 {0x91, 0, 0, 0, 0},
9452 {0x92, 0, 0, 0, 0},
9453 {0x93, 0, 0, 0, 0},
9454 {0x94, 0, 0, 0, 0},
9455 {0xFFFF, 0, 0, 0, 0}
9458 static struct radio_regs regs_SYN_2056_rev6[] = {
9459 {0x02, 0, 0, 0, 0},
9460 {0x03, 0, 0, 0, 0},
9461 {0x04, 0, 0, 0, 0},
9462 {0x05, 0, 0, 0, 0},
9463 {0x06, 0, 0, 0, 0},
9464 {0x07, 0, 0, 0, 0},
9465 {0x08, 0, 0, 0, 0},
9466 {0x09, 0x1, 0x1, 0, 0},
9467 {0x0A, 0, 0, 0, 0},
9468 {0x0B, 0, 0, 0, 0},
9469 {0x0C, 0, 0, 0, 0},
9470 {0x0D, 0, 0, 0, 0},
9471 {0x0E, 0, 0, 0, 0},
9472 {0x0F, 0, 0, 0, 0},
9473 {0x10, 0, 0, 0, 0},
9474 {0x11, 0, 0, 0, 0},
9475 {0x12, 0, 0, 0, 0},
9476 {0x13, 0, 0, 0, 0},
9477 {0x14, 0, 0, 0, 0},
9478 {0x15, 0, 0, 0, 0},
9479 {0x16, 0, 0, 0, 0},
9480 {0x17, 0, 0, 0, 0},
9481 {0x18, 0, 0, 0, 0},
9482 {0x19, 0, 0, 0, 0},
9483 {0x1A, 0, 0, 0, 0},
9484 {0x1B, 0, 0, 0, 0},
9485 {0x1C, 0, 0, 0, 0},
9486 {0x1D, 0, 0, 0, 0},
9487 {0x1E, 0, 0, 0, 0},
9488 {0x1F, 0, 0, 0, 0},
9489 {0x20, 0, 0, 0, 0},
9490 {0x21, 0, 0, 0, 0},
9491 {0x22, 0x60, 0x60, 0, 0},
9492 {0x23, 0x6, 0x6, 0, 0},
9493 {0x24, 0xc, 0xc, 0, 0},
9494 {0x25, 0, 0, 0, 0},
9495 {0x26, 0, 0, 0, 0},
9496 {0x27, 0, 0, 0, 0},
9497 {0x28, 0x1, 0x1, 0, 0},
9498 {0x29, 0, 0, 0, 0},
9499 {0x2A, 0, 0, 0, 0},
9500 {0x2B, 0, 0, 0, 0},
9501 {0x2C, 0, 0, 0, 0},
9502 {0x2D, 0, 0, 0, 0},
9503 {0x2E, 0, 0, 0, 0},
9504 {0x2F, 0x1f, 0x1f, 0, 0},
9505 {0x30, 0x15, 0x15, 0, 0},
9506 {0x31, 0xf, 0xf, 0, 0},
9507 {0x32, 0, 0, 0, 0},
9508 {0x33, 0, 0, 0, 0},
9509 {0x34, 0, 0, 0, 0},
9510 {0x35, 0, 0, 0, 0},
9511 {0x36, 0, 0, 0, 0},
9512 {0x37, 0, 0, 0, 0},
9513 {0x38, 0, 0, 0, 0},
9514 {0x39, 0, 0, 0, 0},
9515 {0x3A, 0, 0, 0, 0},
9516 {0x3B, 0, 0, 0, 0},
9517 {0x3C, 0x13, 0x13, 0, 0},
9518 {0x3D, 0xf, 0xf, 0, 0},
9519 {0x3E, 0x18, 0x18, 0, 0},
9520 {0x3F, 0, 0, 0, 0},
9521 {0x40, 0, 0, 0, 0},
9522 {0x41, 0x20, 0x20, 0, 0},
9523 {0x42, 0x20, 0x20, 0, 0},
9524 {0x43, 0, 0, 0, 0},
9525 {0x44, 0x77, 0x77, 0, 0},
9526 {0x45, 0x7, 0x7, 0, 0},
9527 {0x46, 0x1, 0x1, 0, 0},
9528 {0x47, 0x4, 0x4, 0, 0},
9529 {0x48, 0xf, 0xf, 0, 0},
9530 {0x49, 0x30, 0x30, 0, 0},
9531 {0x4A, 0x32, 0x32, 0, 0},
9532 {0x4B, 0xd, 0xd, 0, 0},
9533 {0x4C, 0xd, 0xd, 0, 0},
9534 {0x4D, 0x4, 0x4, 0, 0},
9535 {0x4E, 0x6, 0x6, 0, 0},
9536 {0x4F, 0x1, 0x1, 0, 0},
9537 {0x50, 0x1c, 0x1c, 0, 0},
9538 {0x51, 0x2, 0x2, 0, 0},
9539 {0x52, 0x2, 0x2, 0, 0},
9540 {0x53, 0xf7, 0xf7, 1, 1},
9541 {0x54, 0xb4, 0xb4, 0, 0},
9542 {0x55, 0xd2, 0xd2, 0, 0},
9543 {0x56, 0, 0, 0, 0},
9544 {0x57, 0, 0, 0, 0},
9545 {0x58, 0x4, 0x4, 0, 0},
9546 {0x59, 0x96, 0x96, 0, 0},
9547 {0x5A, 0x3e, 0x3e, 0, 0},
9548 {0x5B, 0x3e, 0x3e, 0, 0},
9549 {0x5C, 0x13, 0x13, 0, 0},
9550 {0x5D, 0x2, 0x2, 0, 0},
9551 {0x5E, 0, 0, 0, 0},
9552 {0x5F, 0x7, 0x7, 0, 0},
9553 {0x60, 0x7, 0x7, 1, 1},
9554 {0x61, 0x8, 0x8, 0, 0},
9555 {0x62, 0x3, 0x3, 0, 0},
9556 {0x63, 0, 0, 0, 0},
9557 {0x64, 0, 0, 0, 0},
9558 {0x65, 0, 0, 0, 0},
9559 {0x66, 0, 0, 0, 0},
9560 {0x67, 0, 0, 0, 0},
9561 {0x68, 0x40, 0x40, 0, 0},
9562 {0x69, 0, 0, 0, 0},
9563 {0x6A, 0, 0, 0, 0},
9564 {0x6B, 0, 0, 0, 0},
9565 {0x6C, 0, 0, 0, 0},
9566 {0x6D, 0x1, 0x1, 0, 0},
9567 {0x6E, 0, 0, 0, 0},
9568 {0x6F, 0, 0, 0, 0},
9569 {0x70, 0x60, 0x60, 0, 0},
9570 {0x71, 0x66, 0x66, 0, 0},
9571 {0x72, 0xc, 0xc, 0, 0},
9572 {0x73, 0x66, 0x66, 0, 0},
9573 {0x74, 0x8f, 0x8f, 1, 1},
9574 {0x75, 0, 0, 0, 0},
9575 {0x76, 0xcc, 0xcc, 0, 0},
9576 {0x77, 0x1, 0x1, 0, 0},
9577 {0x78, 0x66, 0x66, 0, 0},
9578 {0x79, 0x66, 0x66, 0, 0},
9579 {0x7A, 0, 0, 0, 0},
9580 {0x7B, 0, 0, 0, 0},
9581 {0x7C, 0, 0, 0, 0},
9582 {0x7D, 0, 0, 0, 0},
9583 {0x7E, 0, 0, 0, 0},
9584 {0x7F, 0, 0, 0, 0},
9585 {0x80, 0, 0, 0, 0},
9586 {0x81, 0, 0, 0, 0},
9587 {0x82, 0, 0, 0, 0},
9588 {0x83, 0, 0, 0, 0},
9589 {0x84, 0, 0, 0, 0},
9590 {0x85, 0xff, 0xff, 0, 0},
9591 {0x86, 0, 0, 0, 0},
9592 {0x87, 0, 0, 0, 0},
9593 {0x88, 0, 0, 0, 0},
9594 {0x89, 0, 0, 0, 0},
9595 {0x8A, 0, 0, 0, 0},
9596 {0x8B, 0, 0, 0, 0},
9597 {0x8C, 0, 0, 0, 0},
9598 {0x8D, 0, 0, 0, 0},
9599 {0x8E, 0, 0, 0, 0},
9600 {0x8F, 0, 0, 0, 0},
9601 {0x90, 0, 0, 0, 0},
9602 {0x91, 0, 0, 0, 0},
9603 {0x92, 0, 0, 0, 0},
9604 {0x93, 0, 0, 0, 0},
9605 {0x94, 0, 0, 0, 0},
9606 {0x95, 0, 0, 0, 0},
9607 {0x96, 0, 0, 0, 0},
9608 {0x97, 0, 0, 0, 0},
9609 {0x98, 0, 0, 0, 0},
9610 {0x99, 0, 0, 0, 0},
9611 {0x9A, 0, 0, 0, 0},
9612 {0x9B, 0, 0, 0, 0},
9613 {0x9C, 0, 0, 0, 0},
9614 {0x9D, 0, 0, 0, 0},
9615 {0x9E, 0, 0, 0, 0},
9616 {0x9F, 0x6, 0x6, 0, 0},
9617 {0xA0, 0x66, 0x66, 0, 0},
9618 {0xA1, 0x66, 0x66, 0, 0},
9619 {0xA2, 0x66, 0x66, 0, 0},
9620 {0xA3, 0x66, 0x66, 0, 0},
9621 {0xA4, 0x66, 0x66, 0, 0},
9622 {0xA5, 0x66, 0x66, 0, 0},
9623 {0xA6, 0x66, 0x66, 0, 0},
9624 {0xA7, 0x66, 0x66, 0, 0},
9625 {0xA8, 0x66, 0x66, 0, 0},
9626 {0xA9, 0x66, 0x66, 0, 0},
9627 {0xAA, 0x66, 0x66, 0, 0},
9628 {0xAB, 0x66, 0x66, 0, 0},
9629 {0xAC, 0x66, 0x66, 0, 0},
9630 {0xAD, 0x66, 0x66, 0, 0},
9631 {0xAE, 0x66, 0x66, 0, 0},
9632 {0xAF, 0x66, 0x66, 0, 0},
9633 {0xB0, 0x66, 0x66, 0, 0},
9634 {0xB1, 0x66, 0x66, 0, 0},
9635 {0xB2, 0x66, 0x66, 0, 0},
9636 {0xB3, 0xa, 0xa, 0, 0},
9637 {0xB4, 0, 0, 0, 0},
9638 {0xB5, 0, 0, 0, 0},
9639 {0xB6, 0, 0, 0, 0},
9640 {0xFFFF, 0, 0, 0, 0}
9643 static struct radio_regs regs_TX_2056_rev6[] = {
9644 {0x02, 0, 0, 0, 0},
9645 {0x03, 0, 0, 0, 0},
9646 {0x04, 0, 0, 0, 0},
9647 {0x05, 0, 0, 0, 0},
9648 {0x06, 0, 0, 0, 0},
9649 {0x07, 0, 0, 0, 0},
9650 {0x08, 0, 0, 0, 0},
9651 {0x09, 0, 0, 0, 0},
9652 {0x0A, 0, 0, 0, 0},
9653 {0x0B, 0, 0, 0, 0},
9654 {0x0C, 0, 0, 0, 0},
9655 {0x0D, 0, 0, 0, 0},
9656 {0x0E, 0, 0, 0, 0},
9657 {0x0F, 0, 0, 0, 0},
9658 {0x10, 0, 0, 0, 0},
9659 {0x11, 0, 0, 0, 0},
9660 {0x12, 0, 0, 0, 0},
9661 {0x13, 0, 0, 0, 0},
9662 {0x14, 0, 0, 0, 0},
9663 {0x15, 0, 0, 0, 0},
9664 {0x16, 0, 0, 0, 0},
9665 {0x17, 0, 0, 0, 0},
9666 {0x18, 0, 0, 0, 0},
9667 {0x19, 0, 0, 0, 0},
9668 {0x1A, 0, 0, 0, 0},
9669 {0x1B, 0, 0, 0, 0},
9670 {0x1C, 0, 0, 0, 0},
9671 {0x1D, 0, 0, 0, 0},
9672 {0x1E, 0, 0, 0, 0},
9673 {0x1F, 0, 0, 0, 0},
9674 {0x20, 0, 0, 0, 0},
9675 {0x21, 0x88, 0x88, 0, 0},
9676 {0x22, 0x88, 0x88, 0, 0},
9677 {0x23, 0x88, 0x88, 0, 0},
9678 {0x24, 0x88, 0x88, 0, 0},
9679 {0x25, 0xc, 0xc, 0, 0},
9680 {0x26, 0, 0, 0, 0},
9681 {0x27, 0x3, 0x3, 0, 0},
9682 {0x28, 0, 0, 0, 0},
9683 {0x29, 0x3, 0x3, 0, 0},
9684 {0x2A, 0x37, 0x37, 0, 0},
9685 {0x2B, 0x3, 0x3, 0, 0},
9686 {0x2C, 0, 0, 0, 0},
9687 {0x2D, 0, 0, 0, 0},
9688 {0x2E, 0x1, 0x1, 0, 0},
9689 {0x2F, 0x1, 0x1, 0, 0},
9690 {0x30, 0, 0, 0, 0},
9691 {0x31, 0, 0, 0, 0},
9692 {0x32, 0, 0, 0, 0},
9693 {0x33, 0x11, 0x11, 0, 0},
9694 {0x34, 0xee, 0xee, 1, 1},
9695 {0x35, 0, 0, 0, 0},
9696 {0x36, 0, 0, 0, 0},
9697 {0x37, 0x3, 0x3, 0, 0},
9698 {0x38, 0x50, 0x50, 1, 1},
9699 {0x39, 0, 0, 0, 0},
9700 {0x3A, 0x50, 0x50, 1, 1},
9701 {0x3B, 0, 0, 0, 0},
9702 {0x3C, 0x6e, 0x6e, 0, 0},
9703 {0x3D, 0xf0, 0xf0, 1, 1},
9704 {0x3E, 0, 0, 0, 0},
9705 {0x3F, 0, 0, 0, 0},
9706 {0x40, 0, 0, 0, 0},
9707 {0x41, 0x3, 0x3, 0, 0},
9708 {0x42, 0x3, 0x3, 0, 0},
9709 {0x43, 0, 0, 0, 0},
9710 {0x44, 0x1e, 0x1e, 0, 0},
9711 {0x45, 0, 0, 0, 0},
9712 {0x46, 0x6e, 0x6e, 0, 0},
9713 {0x47, 0xf0, 0xf0, 1, 1},
9714 {0x48, 0, 0, 0, 0},
9715 {0x49, 0x2, 0x2, 0, 0},
9716 {0x4A, 0xff, 0xff, 1, 1},
9717 {0x4B, 0xc, 0xc, 0, 0},
9718 {0x4C, 0, 0, 0, 0},
9719 {0x4D, 0x38, 0x38, 0, 0},
9720 {0x4E, 0x70, 0x70, 1, 1},
9721 {0x4F, 0x2, 0x2, 0, 0},
9722 {0x50, 0x88, 0x88, 0, 0},
9723 {0x51, 0xc, 0xc, 0, 0},
9724 {0x52, 0, 0, 0, 0},
9725 {0x53, 0x8, 0x8, 0, 0},
9726 {0x54, 0x70, 0x70, 1, 1},
9727 {0x55, 0x2, 0x2, 0, 0},
9728 {0x56, 0xff, 0xff, 1, 1},
9729 {0x57, 0, 0, 0, 0},
9730 {0x58, 0x83, 0x83, 0, 0},
9731 {0x59, 0x77, 0x77, 1, 1},
9732 {0x5A, 0, 0, 0, 0},
9733 {0x5B, 0x2, 0x2, 0, 0},
9734 {0x5C, 0x88, 0x88, 0, 0},
9735 {0x5D, 0, 0, 0, 0},
9736 {0x5E, 0x8, 0x8, 0, 0},
9737 {0x5F, 0x77, 0x77, 1, 1},
9738 {0x60, 0x1, 0x1, 0, 0},
9739 {0x61, 0, 0, 0, 0},
9740 {0x62, 0x7, 0x7, 0, 0},
9741 {0x63, 0, 0, 0, 0},
9742 {0x64, 0x7, 0x7, 0, 0},
9743 {0x65, 0, 0, 0, 0},
9744 {0x66, 0, 0, 0, 0},
9745 {0x67, 0, 0, 1, 1},
9746 {0x68, 0, 0, 0, 0},
9747 {0x69, 0xa, 0xa, 0, 0},
9748 {0x6A, 0, 0, 0, 0},
9749 {0x6B, 0, 0, 0, 0},
9750 {0x6C, 0, 0, 0, 0},
9751 {0x6D, 0, 0, 0, 0},
9752 {0x6E, 0, 0, 0, 0},
9753 {0x6F, 0, 0, 0, 0},
9754 {0x70, 0, 0, 0, 0},
9755 {0x71, 0x2, 0x2, 0, 0},
9756 {0x72, 0, 0, 0, 0},
9757 {0x73, 0, 0, 0, 0},
9758 {0x74, 0xe, 0xe, 0, 0},
9759 {0x75, 0xe, 0xe, 0, 0},
9760 {0x76, 0xe, 0xe, 0, 0},
9761 {0x77, 0x13, 0x13, 0, 0},
9762 {0x78, 0x13, 0x13, 0, 0},
9763 {0x79, 0x1b, 0x1b, 0, 0},
9764 {0x7A, 0x1b, 0x1b, 0, 0},
9765 {0x7B, 0x55, 0x55, 0, 0},
9766 {0x7C, 0x5b, 0x5b, 0, 0},
9767 {0x7D, 0x30, 0x30, 1, 1},
9768 {0x7E, 0, 0, 0, 0},
9769 {0x7F, 0, 0, 0, 0},
9770 {0x80, 0, 0, 0, 0},
9771 {0x81, 0, 0, 0, 0},
9772 {0x82, 0, 0, 0, 0},
9773 {0x83, 0, 0, 0, 0},
9774 {0x84, 0, 0, 0, 0},
9775 {0x85, 0, 0, 0, 0},
9776 {0x86, 0, 0, 0, 0},
9777 {0x87, 0, 0, 0, 0},
9778 {0x88, 0, 0, 0, 0},
9779 {0x89, 0, 0, 0, 0},
9780 {0x8A, 0, 0, 0, 0},
9781 {0x8B, 0, 0, 0, 0},
9782 {0x8C, 0, 0, 0, 0},
9783 {0x8D, 0, 0, 0, 0},
9784 {0x8E, 0, 0, 0, 0},
9785 {0x8F, 0, 0, 0, 0},
9786 {0x90, 0, 0, 0, 0},
9787 {0x91, 0, 0, 0, 0},
9788 {0x92, 0, 0, 0, 0},
9789 {0x93, 0x70, 0x70, 0, 0},
9790 {0x94, 0x70, 0x70, 0, 0},
9791 {0x95, 0x70, 0x70, 0, 0},
9792 {0x96, 0x70, 0x70, 0, 0},
9793 {0x97, 0x70, 0x70, 0, 0},
9794 {0x98, 0x70, 0x70, 0, 0},
9795 {0x99, 0x70, 0x70, 0, 0},
9796 {0x9A, 0x70, 0x70, 0, 0},
9797 {0xFFFF, 0, 0, 0, 0}
9800 static struct radio_regs regs_RX_2056_rev6[] = {
9801 {0x02, 0, 0, 0, 0},
9802 {0x03, 0, 0, 0, 0},
9803 {0x04, 0, 0, 0, 0},
9804 {0x05, 0, 0, 0, 0},
9805 {0x06, 0, 0, 0, 0},
9806 {0x07, 0, 0, 0, 0},
9807 {0x08, 0, 0, 0, 0},
9808 {0x09, 0, 0, 0, 0},
9809 {0x0A, 0, 0, 0, 0},
9810 {0x0B, 0, 0, 0, 0},
9811 {0x0C, 0, 0, 0, 0},
9812 {0x0D, 0, 0, 0, 0},
9813 {0x0E, 0, 0, 0, 0},
9814 {0x0F, 0, 0, 0, 0},
9815 {0x10, 0, 0, 0, 0},
9816 {0x11, 0, 0, 0, 0},
9817 {0x12, 0, 0, 0, 0},
9818 {0x13, 0, 0, 0, 0},
9819 {0x14, 0, 0, 0, 0},
9820 {0x15, 0, 0, 0, 0},
9821 {0x16, 0, 0, 0, 0},
9822 {0x17, 0, 0, 0, 0},
9823 {0x18, 0, 0, 0, 0},
9824 {0x19, 0, 0, 0, 0},
9825 {0x1A, 0, 0, 0, 0},
9826 {0x1B, 0, 0, 0, 0},
9827 {0x1C, 0, 0, 0, 0},
9828 {0x1D, 0, 0, 0, 0},
9829 {0x1E, 0, 0, 0, 0},
9830 {0x1F, 0, 0, 0, 0},
9831 {0x20, 0x3, 0x3, 0, 0},
9832 {0x21, 0, 0, 0, 0},
9833 {0x22, 0, 0, 0, 0},
9834 {0x23, 0x90, 0x90, 0, 0},
9835 {0x24, 0x55, 0x55, 0, 0},
9836 {0x25, 0x15, 0x15, 0, 0},
9837 {0x26, 0x5, 0x5, 0, 0},
9838 {0x27, 0x15, 0x15, 0, 0},
9839 {0x28, 0x5, 0x5, 0, 0},
9840 {0x29, 0x20, 0x20, 0, 0},
9841 {0x2A, 0x11, 0x11, 0, 0},
9842 {0x2B, 0x90, 0x90, 0, 0},
9843 {0x2C, 0, 0, 0, 0},
9844 {0x2D, 0x88, 0x88, 0, 0},
9845 {0x2E, 0x32, 0x32, 0, 0},
9846 {0x2F, 0x77, 0x77, 0, 0},
9847 {0x30, 0x17, 0x17, 1, 1},
9848 {0x31, 0xff, 0xff, 1, 1},
9849 {0x32, 0x20, 0x20, 0, 0},
9850 {0x33, 0, 0, 0, 0},
9851 {0x34, 0x88, 0x88, 0, 0},
9852 {0x35, 0x32, 0x32, 0, 0},
9853 {0x36, 0x77, 0x77, 0, 0},
9854 {0x37, 0x17, 0x17, 1, 1},
9855 {0x38, 0xf0, 0xf0, 1, 1},
9856 {0x39, 0x20, 0x20, 0, 0},
9857 {0x3A, 0x8, 0x8, 0, 0},
9858 {0x3B, 0x55, 0x55, 1, 1},
9859 {0x3C, 0, 0, 0, 0},
9860 {0x3D, 0x88, 0x88, 1, 1},
9861 {0x3E, 0, 0, 0, 0},
9862 {0x3F, 0x44, 0x44, 0, 0},
9863 {0x40, 0x7, 0x7, 1, 1},
9864 {0x41, 0x6, 0x6, 0, 0},
9865 {0x42, 0x4, 0x4, 0, 0},
9866 {0x43, 0, 0, 0, 0},
9867 {0x44, 0x8, 0x8, 0, 0},
9868 {0x45, 0x55, 0x55, 1, 1},
9869 {0x46, 0, 0, 0, 0},
9870 {0x47, 0x11, 0x11, 0, 0},
9871 {0x48, 0, 0, 0, 0},
9872 {0x49, 0x44, 0x44, 0, 0},
9873 {0x4A, 0x7, 0x7, 0, 0},
9874 {0x4B, 0x6, 0x6, 0, 0},
9875 {0x4C, 0x4, 0x4, 0, 0},
9876 {0x4D, 0, 0, 0, 0},
9877 {0x4E, 0, 0, 0, 0},
9878 {0x4F, 0x26, 0x26, 1, 1},
9879 {0x50, 0x26, 0x26, 1, 1},
9880 {0x51, 0xf, 0xf, 1, 1},
9881 {0x52, 0xf, 0xf, 1, 1},
9882 {0x53, 0x44, 0x44, 0, 0},
9883 {0x54, 0, 0, 0, 0},
9884 {0x55, 0, 0, 0, 0},
9885 {0x56, 0x8, 0x8, 0, 0},
9886 {0x57, 0x8, 0x8, 0, 0},
9887 {0x58, 0x7, 0x7, 0, 0},
9888 {0x59, 0x22, 0x22, 0, 0},
9889 {0x5A, 0x22, 0x22, 0, 0},
9890 {0x5B, 0x2, 0x2, 0, 0},
9891 {0x5C, 0x4, 0x4, 1, 1},
9892 {0x5D, 0x7, 0x7, 0, 0},
9893 {0x5E, 0x55, 0x55, 0, 0},
9894 {0x5F, 0x23, 0x23, 0, 0},
9895 {0x60, 0x41, 0x41, 0, 0},
9896 {0x61, 0x1, 0x1, 0, 0},
9897 {0x62, 0xa, 0xa, 0, 0},
9898 {0x63, 0, 0, 0, 0},
9899 {0x64, 0, 0, 0, 0},
9900 {0x65, 0, 0, 0, 0},
9901 {0x66, 0, 0, 0, 0},
9902 {0x67, 0, 0, 0, 0},
9903 {0x68, 0, 0, 0, 0},
9904 {0x69, 0, 0, 0, 0},
9905 {0x6A, 0, 0, 0, 0},
9906 {0x6B, 0xc, 0xc, 0, 0},
9907 {0x6C, 0, 0, 0, 0},
9908 {0x6D, 0, 0, 0, 0},
9909 {0x6E, 0, 0, 0, 0},
9910 {0x6F, 0, 0, 0, 0},
9911 {0x70, 0, 0, 0, 0},
9912 {0x71, 0, 0, 0, 0},
9913 {0x72, 0x22, 0x22, 0, 0},
9914 {0x73, 0x22, 0x22, 0, 0},
9915 {0x74, 0, 0, 1, 1},
9916 {0x75, 0xa, 0xa, 0, 0},
9917 {0x76, 0x1, 0x1, 0, 0},
9918 {0x77, 0x22, 0x22, 0, 0},
9919 {0x78, 0x30, 0x30, 0, 0},
9920 {0x79, 0, 0, 0, 0},
9921 {0x7A, 0, 0, 0, 0},
9922 {0x7B, 0, 0, 0, 0},
9923 {0x7C, 0, 0, 0, 0},
9924 {0x7D, 0x5, 0x5, 1, 1},
9925 {0x7E, 0, 0, 0, 0},
9926 {0x7F, 0, 0, 0, 0},
9927 {0x80, 0, 0, 0, 0},
9928 {0x81, 0, 0, 0, 0},
9929 {0x82, 0, 0, 0, 0},
9930 {0x83, 0, 0, 0, 0},
9931 {0x84, 0, 0, 0, 0},
9932 {0x85, 0, 0, 0, 0},
9933 {0x86, 0, 0, 0, 0},
9934 {0x87, 0, 0, 0, 0},
9935 {0x88, 0, 0, 0, 0},
9936 {0x89, 0, 0, 0, 0},
9937 {0x8A, 0, 0, 0, 0},
9938 {0x8B, 0, 0, 0, 0},
9939 {0x8C, 0, 0, 0, 0},
9940 {0x8D, 0, 0, 0, 0},
9941 {0x8E, 0, 0, 0, 0},
9942 {0x8F, 0, 0, 0, 0},
9943 {0x90, 0, 0, 0, 0},
9944 {0x91, 0, 0, 0, 0},
9945 {0x92, 0, 0, 0, 0},
9946 {0x93, 0, 0, 0, 0},
9947 {0x94, 0, 0, 0, 0},
9948 {0xFFFF, 0, 0, 0, 0}
9951 static struct radio_regs regs_SYN_2056_rev7[] = {
9952 {0x02, 0, 0, 0, 0},
9953 {0x03, 0, 0, 0, 0},
9954 {0x04, 0, 0, 0, 0},
9955 {0x05, 0, 0, 0, 0},
9956 {0x06, 0, 0, 0, 0},
9957 {0x07, 0, 0, 0, 0},
9958 {0x08, 0, 0, 0, 0},
9959 {0x09, 0x1, 0x1, 0, 0},
9960 {0x0A, 0, 0, 0, 0},
9961 {0x0B, 0, 0, 0, 0},
9962 {0x0C, 0, 0, 0, 0},
9963 {0x0D, 0, 0, 0, 0},
9964 {0x0E, 0, 0, 0, 0},
9965 {0x0F, 0, 0, 0, 0},
9966 {0x10, 0, 0, 0, 0},
9967 {0x11, 0, 0, 0, 0},
9968 {0x12, 0, 0, 0, 0},
9969 {0x13, 0, 0, 0, 0},
9970 {0x14, 0, 0, 0, 0},
9971 {0x15, 0, 0, 0, 0},
9972 {0x16, 0, 0, 0, 0},
9973 {0x17, 0, 0, 0, 0},
9974 {0x18, 0, 0, 0, 0},
9975 {0x19, 0, 0, 0, 0},
9976 {0x1A, 0, 0, 0, 0},
9977 {0x1B, 0, 0, 0, 0},
9978 {0x1C, 0, 0, 0, 0},
9979 {0x1D, 0, 0, 0, 0},
9980 {0x1E, 0, 0, 0, 0},
9981 {0x1F, 0, 0, 0, 0},
9982 {0x20, 0, 0, 0, 0},
9983 {0x21, 0, 0, 0, 0},
9984 {0x22, 0x60, 0x60, 0, 0},
9985 {0x23, 0x6, 0x6, 0, 0},
9986 {0x24, 0xc, 0xc, 0, 0},
9987 {0x25, 0, 0, 0, 0},
9988 {0x26, 0, 0, 0, 0},
9989 {0x27, 0, 0, 0, 0},
9990 {0x28, 0x1, 0x1, 0, 0},
9991 {0x29, 0, 0, 0, 0},
9992 {0x2A, 0, 0, 0, 0},
9993 {0x2B, 0, 0, 0, 0},
9994 {0x2C, 0, 0, 0, 0},
9995 {0x2D, 0, 0, 0, 0},
9996 {0x2E, 0, 0, 0, 0},
9997 {0x2F, 0x1f, 0x1f, 0, 0},
9998 {0x30, 0x15, 0x15, 0, 0},
9999 {0x31, 0xf, 0xf, 0, 0},
10000 {0x32, 0, 0, 0, 0},
10001 {0x33, 0, 0, 0, 0},
10002 {0x34, 0, 0, 0, 0},
10003 {0x35, 0, 0, 0, 0},
10004 {0x36, 0, 0, 0, 0},
10005 {0x37, 0, 0, 0, 0},
10006 {0x38, 0, 0, 0, 0},
10007 {0x39, 0, 0, 0, 0},
10008 {0x3A, 0, 0, 0, 0},
10009 {0x3B, 0, 0, 0, 0},
10010 {0x3C, 0x13, 0x13, 0, 0},
10011 {0x3D, 0xf, 0xf, 0, 0},
10012 {0x3E, 0x18, 0x18, 0, 0},
10013 {0x3F, 0, 0, 0, 0},
10014 {0x40, 0, 0, 0, 0},
10015 {0x41, 0x20, 0x20, 0, 0},
10016 {0x42, 0x20, 0x20, 0, 0},
10017 {0x43, 0, 0, 0, 0},
10018 {0x44, 0x77, 0x77, 0, 0},
10019 {0x45, 0x7, 0x7, 0, 0},
10020 {0x46, 0x1, 0x1, 0, 0},
10021 {0x47, 0x4, 0x4, 0, 0},
10022 {0x48, 0xf, 0xf, 0, 0},
10023 {0x49, 0x30, 0x30, 0, 0},
10024 {0x4A, 0x32, 0x32, 0, 0},
10025 {0x4B, 0xd, 0xd, 0, 0},
10026 {0x4C, 0xd, 0xd, 0, 0},
10027 {0x4D, 0x4, 0x4, 0, 0},
10028 {0x4E, 0x6, 0x6, 0, 0},
10029 {0x4F, 0x1, 0x1, 0, 0},
10030 {0x50, 0x1c, 0x1c, 0, 0},
10031 {0x51, 0x2, 0x2, 0, 0},
10032 {0x52, 0x2, 0x2, 0, 0},
10033 {0x53, 0xf7, 0xf7, 1, 1},
10034 {0x54, 0xb4, 0xb4, 0, 0},
10035 {0x55, 0xd2, 0xd2, 0, 0},
10036 {0x56, 0, 0, 0, 0},
10037 {0x57, 0, 0, 0, 0},
10038 {0x58, 0x4, 0x4, 0, 0},
10039 {0x59, 0x96, 0x96, 0, 0},
10040 {0x5A, 0x3e, 0x3e, 0, 0},
10041 {0x5B, 0x3e, 0x3e, 0, 0},
10042 {0x5C, 0x13, 0x13, 0, 0},
10043 {0x5D, 0x2, 0x2, 0, 0},
10044 {0x5E, 0, 0, 0, 0},
10045 {0x5F, 0x7, 0x7, 0, 0},
10046 {0x60, 0x7, 0x7, 1, 1},
10047 {0x61, 0x8, 0x8, 0, 0},
10048 {0x62, 0x3, 0x3, 0, 0},
10049 {0x63, 0, 0, 0, 0},
10050 {0x64, 0, 0, 0, 0},
10051 {0x65, 0, 0, 0, 0},
10052 {0x66, 0, 0, 0, 0},
10053 {0x67, 0, 0, 0, 0},
10054 {0x68, 0x40, 0x40, 0, 0},
10055 {0x69, 0, 0, 0, 0},
10056 {0x6A, 0, 0, 0, 0},
10057 {0x6B, 0, 0, 0, 0},
10058 {0x6C, 0, 0, 0, 0},
10059 {0x6D, 0x1, 0x1, 0, 0},
10060 {0x6E, 0, 0, 0, 0},
10061 {0x6F, 0, 0, 0, 0},
10062 {0x70, 0x60, 0x60, 0, 0},
10063 {0x71, 0x66, 0x66, 0, 0},
10064 {0x72, 0xc, 0xc, 0, 0},
10065 {0x73, 0x66, 0x66, 0, 0},
10066 {0x74, 0x8f, 0x8f, 1, 1},
10067 {0x75, 0, 0, 0, 0},
10068 {0x76, 0xcc, 0xcc, 0, 0},
10069 {0x77, 0x1, 0x1, 0, 0},
10070 {0x78, 0x66, 0x66, 0, 0},
10071 {0x79, 0x66, 0x66, 0, 0},
10072 {0x7A, 0, 0, 0, 0},
10073 {0x7B, 0, 0, 0, 0},
10074 {0x7C, 0, 0, 0, 0},
10075 {0x7D, 0, 0, 0, 0},
10076 {0x7E, 0, 0, 0, 0},
10077 {0x7F, 0, 0, 0, 0},
10078 {0x80, 0, 0, 0, 0},
10079 {0x81, 0, 0, 0, 0},
10080 {0x82, 0, 0, 0, 0},
10081 {0x83, 0, 0, 0, 0},
10082 {0x84, 0, 0, 0, 0},
10083 {0x85, 0xff, 0xff, 0, 0},
10084 {0x86, 0, 0, 0, 0},
10085 {0x87, 0, 0, 0, 0},
10086 {0x88, 0, 0, 0, 0},
10087 {0x89, 0, 0, 0, 0},
10088 {0x8A, 0, 0, 0, 0},
10089 {0x8B, 0, 0, 0, 0},
10090 {0x8C, 0, 0, 0, 0},
10091 {0x8D, 0, 0, 0, 0},
10092 {0x8E, 0, 0, 0, 0},
10093 {0x8F, 0, 0, 0, 0},
10094 {0x90, 0, 0, 0, 0},
10095 {0x91, 0, 0, 0, 0},
10096 {0x92, 0, 0, 0, 0},
10097 {0x93, 0, 0, 0, 0},
10098 {0x94, 0, 0, 0, 0},
10099 {0x95, 0, 0, 0, 0},
10100 {0x96, 0, 0, 0, 0},
10101 {0x97, 0, 0, 0, 0},
10102 {0x98, 0, 0, 0, 0},
10103 {0x99, 0, 0, 0, 0},
10104 {0x9A, 0, 0, 0, 0},
10105 {0x9B, 0, 0, 0, 0},
10106 {0x9C, 0, 0, 0, 0},
10107 {0x9D, 0, 0, 0, 0},
10108 {0x9E, 0, 0, 0, 0},
10109 {0x9F, 0x6, 0x6, 0, 0},
10110 {0xA0, 0x66, 0x66, 0, 0},
10111 {0xA1, 0x66, 0x66, 0, 0},
10112 {0xA2, 0x66, 0x66, 0, 0},
10113 {0xA3, 0x66, 0x66, 0, 0},
10114 {0xA4, 0x66, 0x66, 0, 0},
10115 {0xA5, 0x66, 0x66, 0, 0},
10116 {0xA6, 0x66, 0x66, 0, 0},
10117 {0xA7, 0x66, 0x66, 0, 0},
10118 {0xA8, 0x66, 0x66, 0, 0},
10119 {0xA9, 0x66, 0x66, 0, 0},
10120 {0xAA, 0x66, 0x66, 0, 0},
10121 {0xAB, 0x66, 0x66, 0, 0},
10122 {0xAC, 0x66, 0x66, 0, 0},
10123 {0xAD, 0x66, 0x66, 0, 0},
10124 {0xAE, 0x66, 0x66, 0, 0},
10125 {0xAF, 0x66, 0x66, 0, 0},
10126 {0xB0, 0x66, 0x66, 0, 0},
10127 {0xB1, 0x66, 0x66, 0, 0},
10128 {0xB2, 0x66, 0x66, 0, 0},
10129 {0xB3, 0xa, 0xa, 0, 0},
10130 {0xB4, 0, 0, 0, 0},
10131 {0xB5, 0, 0, 0, 0},
10132 {0xB6, 0, 0, 0, 0},
10133 {0xFFFF, 0, 0, 0, 0},
10136 static struct radio_regs regs_TX_2056_rev7[] = {
10137 {0x02, 0, 0, 0, 0},
10138 {0x03, 0, 0, 0, 0},
10139 {0x04, 0, 0, 0, 0},
10140 {0x05, 0, 0, 0, 0},
10141 {0x06, 0, 0, 0, 0},
10142 {0x07, 0, 0, 0, 0},
10143 {0x08, 0, 0, 0, 0},
10144 {0x09, 0, 0, 0, 0},
10145 {0x0A, 0, 0, 0, 0},
10146 {0x0B, 0, 0, 0, 0},
10147 {0x0C, 0, 0, 0, 0},
10148 {0x0D, 0, 0, 0, 0},
10149 {0x0E, 0, 0, 0, 0},
10150 {0x0F, 0, 0, 0, 0},
10151 {0x10, 0, 0, 0, 0},
10152 {0x11, 0, 0, 0, 0},
10153 {0x12, 0, 0, 0, 0},
10154 {0x13, 0, 0, 0, 0},
10155 {0x14, 0, 0, 0, 0},
10156 {0x15, 0, 0, 0, 0},
10157 {0x16, 0, 0, 0, 0},
10158 {0x17, 0, 0, 0, 0},
10159 {0x18, 0, 0, 0, 0},
10160 {0x19, 0, 0, 0, 0},
10161 {0x1A, 0, 0, 0, 0},
10162 {0x1B, 0, 0, 0, 0},
10163 {0x1C, 0, 0, 0, 0},
10164 {0x1D, 0, 0, 0, 0},
10165 {0x1E, 0, 0, 0, 0},
10166 {0x1F, 0, 0, 0, 0},
10167 {0x20, 0, 0, 0, 0},
10168 {0x21, 0x88, 0x88, 0, 0},
10169 {0x22, 0x88, 0x88, 0, 0},
10170 {0x23, 0x88, 0x88, 0, 0},
10171 {0x24, 0x88, 0x88, 0, 0},
10172 {0x25, 0xc, 0xc, 0, 0},
10173 {0x26, 0, 0, 0, 0},
10174 {0x27, 0x3, 0x3, 0, 0},
10175 {0x28, 0, 0, 0, 0},
10176 {0x29, 0x3, 0x3, 0, 0},
10177 {0x2A, 0x37, 0x37, 0, 0},
10178 {0x2B, 0x3, 0x3, 0, 0},
10179 {0x2C, 0, 0, 0, 0},
10180 {0x2D, 0, 0, 0, 0},
10181 {0x2E, 0x1, 0x1, 0, 0},
10182 {0x2F, 0x1, 0x1, 0, 0},
10183 {0x30, 0, 0, 0, 0},
10184 {0x31, 0, 0, 0, 0},
10185 {0x32, 0, 0, 0, 0},
10186 {0x33, 0x11, 0x11, 0, 0},
10187 {0x34, 0xee, 0xee, 1, 1},
10188 {0x35, 0, 0, 0, 0},
10189 {0x36, 0, 0, 0, 0},
10190 {0x37, 0x3, 0x3, 0, 0},
10191 {0x38, 0x50, 0x50, 1, 1},
10192 {0x39, 0, 0, 0, 0},
10193 {0x3A, 0x50, 0x50, 1, 1},
10194 {0x3B, 0, 0, 0, 0},
10195 {0x3C, 0x6e, 0x6e, 0, 0},
10196 {0x3D, 0xf0, 0xf0, 1, 1},
10197 {0x3E, 0, 0, 0, 0},
10198 {0x3F, 0, 0, 0, 0},
10199 {0x40, 0, 0, 0, 0},
10200 {0x41, 0x3, 0x3, 0, 0},
10201 {0x42, 0x3, 0x3, 0, 0},
10202 {0x43, 0, 0, 0, 0},
10203 {0x44, 0x1e, 0x1e, 0, 0},
10204 {0x45, 0, 0, 0, 0},
10205 {0x46, 0x6e, 0x6e, 0, 0},
10206 {0x47, 0xf0, 0xf0, 1, 1},
10207 {0x48, 0, 0, 0, 0},
10208 {0x49, 0x2, 0x2, 0, 0},
10209 {0x4A, 0xff, 0xff, 1, 1},
10210 {0x4B, 0xc, 0xc, 0, 0},
10211 {0x4C, 0, 0, 0, 0},
10212 {0x4D, 0x38, 0x38, 0, 0},
10213 {0x4E, 0x70, 0x70, 1, 1},
10214 {0x4F, 0x2, 0x2, 0, 0},
10215 {0x50, 0x88, 0x88, 0, 0},
10216 {0x51, 0xc, 0xc, 0, 0},
10217 {0x52, 0, 0, 0, 0},
10218 {0x53, 0x8, 0x8, 0, 0},
10219 {0x54, 0x70, 0x70, 1, 1},
10220 {0x55, 0x2, 0x2, 0, 0},
10221 {0x56, 0xff, 0xff, 1, 1},
10222 {0x57, 0, 0, 0, 0},
10223 {0x58, 0x83, 0x83, 0, 0},
10224 {0x59, 0x77, 0x77, 1, 1},
10225 {0x5A, 0, 0, 0, 0},
10226 {0x5B, 0x2, 0x2, 0, 0},
10227 {0x5C, 0x88, 0x88, 0, 0},
10228 {0x5D, 0, 0, 0, 0},
10229 {0x5E, 0x8, 0x8, 0, 0},
10230 {0x5F, 0x77, 0x77, 1, 1},
10231 {0x60, 0x1, 0x1, 0, 0},
10232 {0x61, 0, 0, 0, 0},
10233 {0x62, 0x7, 0x7, 0, 0},
10234 {0x63, 0, 0, 0, 0},
10235 {0x64, 0x7, 0x7, 0, 0},
10236 {0x65, 0, 0, 0, 0},
10237 {0x66, 0, 0, 0, 0},
10238 {0x67, 0, 0, 1, 1},
10239 {0x68, 0, 0, 0, 0},
10240 {0x69, 0xa, 0xa, 0, 0},
10241 {0x6A, 0, 0, 0, 0},
10242 {0x6B, 0, 0, 0, 0},
10243 {0x6C, 0, 0, 0, 0},
10244 {0x6D, 0, 0, 0, 0},
10245 {0x6E, 0, 0, 0, 0},
10246 {0x6F, 0, 0, 0, 0},
10247 {0x70, 0, 0, 0, 0},
10248 {0x71, 0x2, 0x2, 0, 0},
10249 {0x72, 0, 0, 0, 0},
10250 {0x73, 0, 0, 0, 0},
10251 {0x74, 0xe, 0xe, 0, 0},
10252 {0x75, 0xe, 0xe, 0, 0},
10253 {0x76, 0xe, 0xe, 0, 0},
10254 {0x77, 0x13, 0x13, 0, 0},
10255 {0x78, 0x13, 0x13, 0, 0},
10256 {0x79, 0x1b, 0x1b, 0, 0},
10257 {0x7A, 0x1b, 0x1b, 0, 0},
10258 {0x7B, 0x55, 0x55, 0, 0},
10259 {0x7C, 0x5b, 0x5b, 0, 0},
10260 {0x7D, 0x30, 0x30, 1, 1},
10261 {0x7E, 0, 0, 0, 0},
10262 {0x7F, 0, 0, 0, 0},
10263 {0x80, 0, 0, 0, 0},
10264 {0x81, 0, 0, 0, 0},
10265 {0x82, 0, 0, 0, 0},
10266 {0x83, 0, 0, 0, 0},
10267 {0x84, 0, 0, 0, 0},
10268 {0x85, 0, 0, 0, 0},
10269 {0x86, 0, 0, 0, 0},
10270 {0x87, 0, 0, 0, 0},
10271 {0x88, 0, 0, 0, 0},
10272 {0x89, 0, 0, 0, 0},
10273 {0x8A, 0, 0, 0, 0},
10274 {0x8B, 0, 0, 0, 0},
10275 {0x8C, 0, 0, 0, 0},
10276 {0x8D, 0, 0, 0, 0},
10277 {0x8E, 0, 0, 0, 0},
10278 {0x8F, 0, 0, 0, 0},
10279 {0x90, 0, 0, 0, 0},
10280 {0x91, 0, 0, 0, 0},
10281 {0x92, 0, 0, 0, 0},
10282 {0x93, 0x70, 0x70, 0, 0},
10283 {0x94, 0x70, 0x70, 0, 0},
10284 {0x95, 0x71, 0x71, 1, 1},
10285 {0x96, 0x71, 0x71, 1, 1},
10286 {0x97, 0x72, 0x72, 1, 1},
10287 {0x98, 0x73, 0x73, 1, 1},
10288 {0x99, 0x74, 0x74, 1, 1},
10289 {0x9A, 0x75, 0x75, 1, 1},
10290 {0xFFFF, 0, 0, 0, 0},
10293 static struct radio_regs regs_RX_2056_rev7[] = {
10294 {0x02, 0, 0, 0, 0},
10295 {0x03, 0, 0, 0, 0},
10296 {0x04, 0, 0, 0, 0},
10297 {0x05, 0, 0, 0, 0},
10298 {0x06, 0, 0, 0, 0},
10299 {0x07, 0, 0, 0, 0},
10300 {0x08, 0, 0, 0, 0},
10301 {0x09, 0, 0, 0, 0},
10302 {0x0A, 0, 0, 0, 0},
10303 {0x0B, 0, 0, 0, 0},
10304 {0x0C, 0, 0, 0, 0},
10305 {0x0D, 0, 0, 0, 0},
10306 {0x0E, 0, 0, 0, 0},
10307 {0x0F, 0, 0, 0, 0},
10308 {0x10, 0, 0, 0, 0},
10309 {0x11, 0, 0, 0, 0},
10310 {0x12, 0, 0, 0, 0},
10311 {0x13, 0, 0, 0, 0},
10312 {0x14, 0, 0, 0, 0},
10313 {0x15, 0, 0, 0, 0},
10314 {0x16, 0, 0, 0, 0},
10315 {0x17, 0, 0, 0, 0},
10316 {0x18, 0, 0, 0, 0},
10317 {0x19, 0, 0, 0, 0},
10318 {0x1A, 0, 0, 0, 0},
10319 {0x1B, 0, 0, 0, 0},
10320 {0x1C, 0, 0, 0, 0},
10321 {0x1D, 0, 0, 0, 0},
10322 {0x1E, 0, 0, 0, 0},
10323 {0x1F, 0, 0, 0, 0},
10324 {0x20, 0x3, 0x3, 0, 0},
10325 {0x21, 0, 0, 0, 0},
10326 {0x22, 0, 0, 0, 0},
10327 {0x23, 0x90, 0x90, 0, 0},
10328 {0x24, 0x55, 0x55, 0, 0},
10329 {0x25, 0x15, 0x15, 0, 0},
10330 {0x26, 0x5, 0x5, 0, 0},
10331 {0x27, 0x15, 0x15, 0, 0},
10332 {0x28, 0x5, 0x5, 0, 0},
10333 {0x29, 0x20, 0x20, 0, 0},
10334 {0x2A, 0x11, 0x11, 0, 0},
10335 {0x2B, 0x90, 0x90, 0, 0},
10336 {0x2C, 0, 0, 0, 0},
10337 {0x2D, 0x88, 0x88, 0, 0},
10338 {0x2E, 0x32, 0x32, 0, 0},
10339 {0x2F, 0x77, 0x77, 0, 0},
10340 {0x30, 0x17, 0x17, 1, 1},
10341 {0x31, 0xff, 0xff, 1, 1},
10342 {0x32, 0x20, 0x20, 0, 0},
10343 {0x33, 0, 0, 0, 0},
10344 {0x34, 0x88, 0x88, 0, 0},
10345 {0x35, 0x32, 0x32, 0, 0},
10346 {0x36, 0x77, 0x77, 0, 0},
10347 {0x37, 0x17, 0x17, 1, 1},
10348 {0x38, 0xf0, 0xf0, 1, 1},
10349 {0x39, 0x20, 0x20, 0, 0},
10350 {0x3A, 0x8, 0x8, 0, 0},
10351 {0x3B, 0x55, 0x55, 1, 1},
10352 {0x3C, 0, 0, 0, 0},
10353 {0x3D, 0x88, 0x88, 1, 1},
10354 {0x3E, 0, 0, 0, 0},
10355 {0x3F, 0, 0, 1, 1},
10356 {0x40, 0x7, 0x7, 1, 1},
10357 {0x41, 0x6, 0x6, 0, 0},
10358 {0x42, 0x4, 0x4, 0, 0},
10359 {0x43, 0, 0, 0, 0},
10360 {0x44, 0x8, 0x8, 0, 0},
10361 {0x45, 0x55, 0x55, 1, 1},
10362 {0x46, 0, 0, 0, 0},
10363 {0x47, 0x11, 0x11, 0, 0},
10364 {0x48, 0, 0, 0, 0},
10365 {0x49, 0, 0, 1, 1},
10366 {0x4A, 0x7, 0x7, 0, 0},
10367 {0x4B, 0x6, 0x6, 0, 0},
10368 {0x4C, 0x4, 0x4, 0, 0},
10369 {0x4D, 0, 0, 0, 0},
10370 {0x4E, 0, 0, 0, 0},
10371 {0x4F, 0x26, 0x26, 1, 1},
10372 {0x50, 0x26, 0x26, 1, 1},
10373 {0x51, 0xf, 0xf, 1, 1},
10374 {0x52, 0xf, 0xf, 1, 1},
10375 {0x53, 0x44, 0x44, 0, 0},
10376 {0x54, 0, 0, 0, 0},
10377 {0x55, 0, 0, 0, 0},
10378 {0x56, 0x8, 0x8, 0, 0},
10379 {0x57, 0x8, 0x8, 0, 0},
10380 {0x58, 0x7, 0x7, 0, 0},
10381 {0x59, 0x22, 0x22, 0, 0},
10382 {0x5A, 0x22, 0x22, 0, 0},
10383 {0x5B, 0x2, 0x2, 0, 0},
10384 {0x5C, 0x4, 0x4, 1, 1},
10385 {0x5D, 0x7, 0x7, 0, 0},
10386 {0x5E, 0x55, 0x55, 0, 0},
10387 {0x5F, 0x23, 0x23, 0, 0},
10388 {0x60, 0x41, 0x41, 0, 0},
10389 {0x61, 0x1, 0x1, 0, 0},
10390 {0x62, 0xa, 0xa, 0, 0},
10391 {0x63, 0, 0, 0, 0},
10392 {0x64, 0, 0, 0, 0},
10393 {0x65, 0, 0, 0, 0},
10394 {0x66, 0, 0, 0, 0},
10395 {0x67, 0, 0, 0, 0},
10396 {0x68, 0, 0, 0, 0},
10397 {0x69, 0, 0, 0, 0},
10398 {0x6A, 0, 0, 0, 0},
10399 {0x6B, 0xc, 0xc, 0, 0},
10400 {0x6C, 0, 0, 0, 0},
10401 {0x6D, 0, 0, 0, 0},
10402 {0x6E, 0, 0, 0, 0},
10403 {0x6F, 0, 0, 0, 0},
10404 {0x70, 0, 0, 0, 0},
10405 {0x71, 0, 0, 0, 0},
10406 {0x72, 0x22, 0x22, 0, 0},
10407 {0x73, 0x22, 0x22, 0, 0},
10408 {0x74, 0, 0, 1, 1},
10409 {0x75, 0xa, 0xa, 0, 0},
10410 {0x76, 0x1, 0x1, 0, 0},
10411 {0x77, 0x22, 0x22, 0, 0},
10412 {0x78, 0x30, 0x30, 0, 0},
10413 {0x79, 0, 0, 0, 0},
10414 {0x7A, 0, 0, 0, 0},
10415 {0x7B, 0, 0, 0, 0},
10416 {0x7C, 0, 0, 0, 0},
10417 {0x7D, 0, 0, 0, 0},
10418 {0x7E, 0, 0, 0, 0},
10419 {0x7F, 0, 0, 0, 0},
10420 {0x80, 0, 0, 0, 0},
10421 {0x81, 0, 0, 0, 0},
10422 {0x82, 0, 0, 0, 0},
10423 {0x83, 0, 0, 0, 0},
10424 {0x84, 0, 0, 0, 0},
10425 {0x85, 0, 0, 0, 0},
10426 {0x86, 0, 0, 0, 0},
10427 {0x87, 0, 0, 0, 0},
10428 {0x88, 0, 0, 0, 0},
10429 {0x89, 0, 0, 0, 0},
10430 {0x8A, 0, 0, 0, 0},
10431 {0x8B, 0, 0, 0, 0},
10432 {0x8C, 0, 0, 0, 0},
10433 {0x8D, 0, 0, 0, 0},
10434 {0x8E, 0, 0, 0, 0},
10435 {0x8F, 0, 0, 0, 0},
10436 {0x90, 0, 0, 0, 0},
10437 {0x91, 0, 0, 0, 0},
10438 {0x92, 0, 0, 0, 0},
10439 {0x93, 0, 0, 0, 0},
10440 {0x94, 0, 0, 0, 0},
10441 {0xFFFF, 0, 0, 0, 0},
10444 static struct radio_regs regs_SYN_2056_rev8[] = {
10445 {0x02, 0, 0, 0, 0},
10446 {0x03, 0, 0, 0, 0},
10447 {0x04, 0, 0, 0, 0},
10448 {0x05, 0, 0, 0, 0},
10449 {0x06, 0, 0, 0, 0},
10450 {0x07, 0, 0, 0, 0},
10451 {0x08, 0, 0, 0, 0},
10452 {0x09, 0x1, 0x1, 0, 0},
10453 {0x0A, 0, 0, 0, 0},
10454 {0x0B, 0, 0, 0, 0},
10455 {0x0C, 0, 0, 0, 0},
10456 {0x0D, 0, 0, 0, 0},
10457 {0x0E, 0, 0, 0, 0},
10458 {0x0F, 0, 0, 0, 0},
10459 {0x10, 0, 0, 0, 0},
10460 {0x11, 0, 0, 0, 0},
10461 {0x12, 0, 0, 0, 0},
10462 {0x13, 0, 0, 0, 0},
10463 {0x14, 0, 0, 0, 0},
10464 {0x15, 0, 0, 0, 0},
10465 {0x16, 0, 0, 0, 0},
10466 {0x17, 0, 0, 0, 0},
10467 {0x18, 0, 0, 0, 0},
10468 {0x19, 0, 0, 0, 0},
10469 {0x1A, 0, 0, 0, 0},
10470 {0x1B, 0, 0, 0, 0},
10471 {0x1C, 0, 0, 0, 0},
10472 {0x1D, 0, 0, 0, 0},
10473 {0x1E, 0, 0, 0, 0},
10474 {0x1F, 0, 0, 0, 0},
10475 {0x20, 0, 0, 0, 0},
10476 {0x21, 0, 0, 0, 0},
10477 {0x22, 0x60, 0x60, 0, 0},
10478 {0x23, 0x6, 0x6, 0, 0},
10479 {0x24, 0xc, 0xc, 0, 0},
10480 {0x25, 0, 0, 0, 0},
10481 {0x26, 0, 0, 0, 0},
10482 {0x27, 0, 0, 0, 0},
10483 {0x28, 0x1, 0x1, 0, 0},
10484 {0x29, 0, 0, 0, 0},
10485 {0x2A, 0, 0, 0, 0},
10486 {0x2B, 0, 0, 0, 0},
10487 {0x2C, 0, 0, 0, 0},
10488 {0x2D, 0, 0, 0, 0},
10489 {0x2E, 0, 0, 0, 0},
10490 {0x2F, 0x1f, 0x1f, 0, 0},
10491 {0x30, 0x15, 0x15, 0, 0},
10492 {0x31, 0xf, 0xf, 0, 0},
10493 {0x32, 0, 0, 0, 0},
10494 {0x33, 0, 0, 0, 0},
10495 {0x34, 0, 0, 0, 0},
10496 {0x35, 0, 0, 0, 0},
10497 {0x36, 0, 0, 0, 0},
10498 {0x37, 0, 0, 0, 0},
10499 {0x38, 0, 0, 0, 0},
10500 {0x39, 0, 0, 0, 0},
10501 {0x3A, 0, 0, 0, 0},
10502 {0x3B, 0, 0, 0, 0},
10503 {0x3C, 0x13, 0x13, 0, 0},
10504 {0x3D, 0xf, 0xf, 0, 0},
10505 {0x3E, 0x18, 0x18, 0, 0},
10506 {0x3F, 0, 0, 0, 0},
10507 {0x40, 0, 0, 0, 0},
10508 {0x41, 0x20, 0x20, 0, 0},
10509 {0x42, 0x20, 0x20, 0, 0},
10510 {0x43, 0, 0, 0, 0},
10511 {0x44, 0x77, 0x77, 0, 0},
10512 {0x45, 0x7, 0x7, 0, 0},
10513 {0x46, 0x1, 0x1, 0, 0},
10514 {0x47, 0x4, 0x4, 0, 0},
10515 {0x48, 0xf, 0xf, 0, 0},
10516 {0x49, 0x30, 0x30, 0, 0},
10517 {0x4A, 0x32, 0x32, 0, 0},
10518 {0x4B, 0xd, 0xd, 0, 0},
10519 {0x4C, 0xd, 0xd, 0, 0},
10520 {0x4D, 0x4, 0x4, 0, 0},
10521 {0x4E, 0x6, 0x6, 0, 0},
10522 {0x4F, 0x1, 0x1, 0, 0},
10523 {0x50, 0x1c, 0x1c, 0, 0},
10524 {0x51, 0x2, 0x2, 0, 0},
10525 {0x52, 0x2, 0x2, 0, 0},
10526 {0x53, 0xf7, 0xf7, 1, 1},
10527 {0x54, 0xb4, 0xb4, 0, 0},
10528 {0x55, 0xd2, 0xd2, 0, 0},
10529 {0x56, 0, 0, 0, 0},
10530 {0x57, 0, 0, 0, 0},
10531 {0x58, 0x4, 0x4, 0, 0},
10532 {0x59, 0x96, 0x96, 0, 0},
10533 {0x5A, 0x3e, 0x3e, 0, 0},
10534 {0x5B, 0x3e, 0x3e, 0, 0},
10535 {0x5C, 0x13, 0x13, 0, 0},
10536 {0x5D, 0x2, 0x2, 0, 0},
10537 {0x5E, 0, 0, 0, 0},
10538 {0x5F, 0x7, 0x7, 0, 0},
10539 {0x60, 0x7, 0x7, 1, 1},
10540 {0x61, 0x8, 0x8, 0, 0},
10541 {0x62, 0x3, 0x3, 0, 0},
10542 {0x63, 0, 0, 0, 0},
10543 {0x64, 0, 0, 0, 0},
10544 {0x65, 0, 0, 0, 0},
10545 {0x66, 0, 0, 0, 0},
10546 {0x67, 0, 0, 0, 0},
10547 {0x68, 0x40, 0x40, 0, 0},
10548 {0x69, 0, 0, 0, 0},
10549 {0x6A, 0, 0, 0, 0},
10550 {0x6B, 0, 0, 0, 0},
10551 {0x6C, 0, 0, 0, 0},
10552 {0x6D, 0x1, 0x1, 0, 0},
10553 {0x6E, 0, 0, 0, 0},
10554 {0x6F, 0, 0, 0, 0},
10555 {0x70, 0x60, 0x60, 0, 0},
10556 {0x71, 0x66, 0x66, 0, 0},
10557 {0x72, 0xc, 0xc, 0, 0},
10558 {0x73, 0x66, 0x66, 0, 0},
10559 {0x74, 0x8f, 0x8f, 1, 1},
10560 {0x75, 0, 0, 0, 0},
10561 {0x76, 0xcc, 0xcc, 0, 0},
10562 {0x77, 0x1, 0x1, 0, 0},
10563 {0x78, 0x66, 0x66, 0, 0},
10564 {0x79, 0x66, 0x66, 0, 0},
10565 {0x7A, 0, 0, 0, 0},
10566 {0x7B, 0, 0, 0, 0},
10567 {0x7C, 0, 0, 0, 0},
10568 {0x7D, 0, 0, 0, 0},
10569 {0x7E, 0, 0, 0, 0},
10570 {0x7F, 0, 0, 0, 0},
10571 {0x80, 0, 0, 0, 0},
10572 {0x81, 0, 0, 0, 0},
10573 {0x82, 0, 0, 0, 0},
10574 {0x83, 0, 0, 0, 0},
10575 {0x84, 0, 0, 0, 0},
10576 {0x85, 0xff, 0xff, 0, 0},
10577 {0x86, 0, 0, 0, 0},
10578 {0x87, 0, 0, 0, 0},
10579 {0x88, 0, 0, 0, 0},
10580 {0x89, 0, 0, 0, 0},
10581 {0x8A, 0, 0, 0, 0},
10582 {0x8B, 0, 0, 0, 0},
10583 {0x8C, 0, 0, 0, 0},
10584 {0x8D, 0, 0, 0, 0},
10585 {0x8E, 0, 0, 0, 0},
10586 {0x8F, 0, 0, 0, 0},
10587 {0x90, 0, 0, 0, 0},
10588 {0x91, 0, 0, 0, 0},
10589 {0x92, 0, 0, 0, 0},
10590 {0x93, 0, 0, 0, 0},
10591 {0x94, 0, 0, 0, 0},
10592 {0x95, 0, 0, 0, 0},
10593 {0x96, 0, 0, 0, 0},
10594 {0x97, 0, 0, 0, 0},
10595 {0x98, 0, 0, 0, 0},
10596 {0x99, 0, 0, 0, 0},
10597 {0x9A, 0, 0, 0, 0},
10598 {0x9B, 0, 0, 0, 0},
10599 {0x9C, 0, 0, 0, 0},
10600 {0x9D, 0, 0, 0, 0},
10601 {0x9E, 0, 0, 0, 0},
10602 {0x9F, 0x6, 0x6, 0, 0},
10603 {0xA0, 0x66, 0x66, 0, 0},
10604 {0xA1, 0x66, 0x66, 0, 0},
10605 {0xA2, 0x66, 0x66, 0, 0},
10606 {0xA3, 0x66, 0x66, 0, 0},
10607 {0xA4, 0x66, 0x66, 0, 0},
10608 {0xA5, 0x66, 0x66, 0, 0},
10609 {0xA6, 0x66, 0x66, 0, 0},
10610 {0xA7, 0x66, 0x66, 0, 0},
10611 {0xA8, 0x66, 0x66, 0, 0},
10612 {0xA9, 0x66, 0x66, 0, 0},
10613 {0xAA, 0x66, 0x66, 0, 0},
10614 {0xAB, 0x66, 0x66, 0, 0},
10615 {0xAC, 0x66, 0x66, 0, 0},
10616 {0xAD, 0x66, 0x66, 0, 0},
10617 {0xAE, 0x66, 0x66, 0, 0},
10618 {0xAF, 0x66, 0x66, 0, 0},
10619 {0xB0, 0x66, 0x66, 0, 0},
10620 {0xB1, 0x66, 0x66, 0, 0},
10621 {0xB2, 0x66, 0x66, 0, 0},
10622 {0xB3, 0xa, 0xa, 0, 0},
10623 {0xB4, 0, 0, 0, 0},
10624 {0xB5, 0, 0, 0, 0},
10625 {0xB6, 0, 0, 0, 0},
10626 {0xFFFF, 0, 0, 0, 0},
10629 static struct radio_regs regs_TX_2056_rev8[] = {
10630 {0x02, 0, 0, 0, 0},
10631 {0x03, 0, 0, 0, 0},
10632 {0x04, 0, 0, 0, 0},
10633 {0x05, 0, 0, 0, 0},
10634 {0x06, 0, 0, 0, 0},
10635 {0x07, 0, 0, 0, 0},
10636 {0x08, 0, 0, 0, 0},
10637 {0x09, 0, 0, 0, 0},
10638 {0x0A, 0, 0, 0, 0},
10639 {0x0B, 0, 0, 0, 0},
10640 {0x0C, 0, 0, 0, 0},
10641 {0x0D, 0, 0, 0, 0},
10642 {0x0E, 0, 0, 0, 0},
10643 {0x0F, 0, 0, 0, 0},
10644 {0x10, 0, 0, 0, 0},
10645 {0x11, 0, 0, 0, 0},
10646 {0x12, 0, 0, 0, 0},
10647 {0x13, 0, 0, 0, 0},
10648 {0x14, 0, 0, 0, 0},
10649 {0x15, 0, 0, 0, 0},
10650 {0x16, 0, 0, 0, 0},
10651 {0x17, 0, 0, 0, 0},
10652 {0x18, 0, 0, 0, 0},
10653 {0x19, 0, 0, 0, 0},
10654 {0x1A, 0, 0, 0, 0},
10655 {0x1B, 0, 0, 0, 0},
10656 {0x1C, 0, 0, 0, 0},
10657 {0x1D, 0, 0, 0, 0},
10658 {0x1E, 0, 0, 0, 0},
10659 {0x1F, 0, 0, 0, 0},
10660 {0x20, 0, 0, 0, 0},
10661 {0x21, 0x88, 0x88, 0, 0},
10662 {0x22, 0x88, 0x88, 0, 0},
10663 {0x23, 0x88, 0x88, 0, 0},
10664 {0x24, 0x88, 0x88, 0, 0},
10665 {0x25, 0xc, 0xc, 0, 0},
10666 {0x26, 0, 0, 0, 0},
10667 {0x27, 0x3, 0x3, 0, 0},
10668 {0x28, 0, 0, 0, 0},
10669 {0x29, 0x3, 0x3, 0, 0},
10670 {0x2A, 0x37, 0x37, 0, 0},
10671 {0x2B, 0x3, 0x3, 0, 0},
10672 {0x2C, 0, 0, 0, 0},
10673 {0x2D, 0, 0, 0, 0},
10674 {0x2E, 0x1, 0x1, 0, 0},
10675 {0x2F, 0x1, 0x1, 0, 0},
10676 {0x30, 0, 0, 0, 0},
10677 {0x31, 0, 0, 0, 0},
10678 {0x32, 0, 0, 0, 0},
10679 {0x33, 0x11, 0x11, 0, 0},
10680 {0x34, 0xee, 0xee, 1, 1},
10681 {0x35, 0, 0, 0, 0},
10682 {0x36, 0, 0, 0, 0},
10683 {0x37, 0x3, 0x3, 0, 0},
10684 {0x38, 0x50, 0x50, 1, 1},
10685 {0x39, 0, 0, 0, 0},
10686 {0x3A, 0x50, 0x50, 1, 1},
10687 {0x3B, 0, 0, 0, 0},
10688 {0x3C, 0x6e, 0x6e, 0, 0},
10689 {0x3D, 0xf0, 0xf0, 1, 1},
10690 {0x3E, 0, 0, 0, 0},
10691 {0x3F, 0, 0, 0, 0},
10692 {0x40, 0, 0, 0, 0},
10693 {0x41, 0x3, 0x3, 0, 0},
10694 {0x42, 0x3, 0x3, 0, 0},
10695 {0x43, 0, 0, 0, 0},
10696 {0x44, 0x1e, 0x1e, 0, 0},
10697 {0x45, 0, 0, 0, 0},
10698 {0x46, 0x6e, 0x6e, 0, 0},
10699 {0x47, 0xf0, 0xf0, 1, 1},
10700 {0x48, 0, 0, 0, 0},
10701 {0x49, 0x2, 0x2, 0, 0},
10702 {0x4A, 0xff, 0xff, 1, 1},
10703 {0x4B, 0xc, 0xc, 0, 0},
10704 {0x4C, 0, 0, 0, 0},
10705 {0x4D, 0x38, 0x38, 0, 0},
10706 {0x4E, 0x70, 0x70, 1, 1},
10707 {0x4F, 0x2, 0x2, 0, 0},
10708 {0x50, 0x88, 0x88, 0, 0},
10709 {0x51, 0xc, 0xc, 0, 0},
10710 {0x52, 0, 0, 0, 0},
10711 {0x53, 0x8, 0x8, 0, 0},
10712 {0x54, 0x70, 0x70, 1, 1},
10713 {0x55, 0x2, 0x2, 0, 0},
10714 {0x56, 0xff, 0xff, 1, 1},
10715 {0x57, 0, 0, 0, 0},
10716 {0x58, 0x83, 0x83, 0, 0},
10717 {0x59, 0x77, 0x77, 1, 1},
10718 {0x5A, 0, 0, 0, 0},
10719 {0x5B, 0x2, 0x2, 0, 0},
10720 {0x5C, 0x88, 0x88, 0, 0},
10721 {0x5D, 0, 0, 0, 0},
10722 {0x5E, 0x8, 0x8, 0, 0},
10723 {0x5F, 0x77, 0x77, 1, 1},
10724 {0x60, 0x1, 0x1, 0, 0},
10725 {0x61, 0, 0, 0, 0},
10726 {0x62, 0x7, 0x7, 0, 0},
10727 {0x63, 0, 0, 0, 0},
10728 {0x64, 0x7, 0x7, 0, 0},
10729 {0x65, 0, 0, 0, 0},
10730 {0x66, 0, 0, 0, 0},
10731 {0x67, 0, 0, 1, 1},
10732 {0x68, 0, 0, 0, 0},
10733 {0x69, 0xa, 0xa, 0, 0},
10734 {0x6A, 0, 0, 0, 0},
10735 {0x6B, 0, 0, 0, 0},
10736 {0x6C, 0, 0, 0, 0},
10737 {0x6D, 0, 0, 0, 0},
10738 {0x6E, 0, 0, 0, 0},
10739 {0x6F, 0, 0, 0, 0},
10740 {0x70, 0, 0, 0, 0},
10741 {0x71, 0x2, 0x2, 0, 0},
10742 {0x72, 0, 0, 0, 0},
10743 {0x73, 0, 0, 0, 0},
10744 {0x74, 0xe, 0xe, 0, 0},
10745 {0x75, 0xe, 0xe, 0, 0},
10746 {0x76, 0xe, 0xe, 0, 0},
10747 {0x77, 0x13, 0x13, 0, 0},
10748 {0x78, 0x13, 0x13, 0, 0},
10749 {0x79, 0x1b, 0x1b, 0, 0},
10750 {0x7A, 0x1b, 0x1b, 0, 0},
10751 {0x7B, 0x55, 0x55, 0, 0},
10752 {0x7C, 0x5b, 0x5b, 0, 0},
10753 {0x7D, 0x30, 0x30, 1, 1},
10754 {0x7E, 0, 0, 0, 0},
10755 {0x7F, 0, 0, 0, 0},
10756 {0x80, 0, 0, 0, 0},
10757 {0x81, 0, 0, 0, 0},
10758 {0x82, 0, 0, 0, 0},
10759 {0x83, 0, 0, 0, 0},
10760 {0x84, 0, 0, 0, 0},
10761 {0x85, 0, 0, 0, 0},
10762 {0x86, 0, 0, 0, 0},
10763 {0x87, 0, 0, 0, 0},
10764 {0x88, 0, 0, 0, 0},
10765 {0x89, 0, 0, 0, 0},
10766 {0x8A, 0, 0, 0, 0},
10767 {0x8B, 0, 0, 0, 0},
10768 {0x8C, 0, 0, 0, 0},
10769 {0x8D, 0, 0, 0, 0},
10770 {0x8E, 0, 0, 0, 0},
10771 {0x8F, 0, 0, 0, 0},
10772 {0x90, 0, 0, 0, 0},
10773 {0x91, 0, 0, 0, 0},
10774 {0x92, 0, 0, 0, 0},
10775 {0x93, 0x70, 0x70, 0, 0},
10776 {0x94, 0x70, 0x70, 0, 0},
10777 {0x95, 0x70, 0x70, 0, 0},
10778 {0x96, 0x70, 0x70, 0, 0},
10779 {0x97, 0x70, 0x70, 0, 0},
10780 {0x98, 0x70, 0x70, 0, 0},
10781 {0x99, 0x70, 0x70, 0, 0},
10782 {0x9A, 0x70, 0x70, 0, 0},
10783 {0xFFFF, 0, 0, 0, 0},
10786 static struct radio_regs regs_RX_2056_rev8[] = {
10787 {0x02, 0, 0, 0, 0},
10788 {0x03, 0, 0, 0, 0},
10789 {0x04, 0, 0, 0, 0},
10790 {0x05, 0, 0, 0, 0},
10791 {0x06, 0, 0, 0, 0},
10792 {0x07, 0, 0, 0, 0},
10793 {0x08, 0, 0, 0, 0},
10794 {0x09, 0, 0, 0, 0},
10795 {0x0A, 0, 0, 0, 0},
10796 {0x0B, 0, 0, 0, 0},
10797 {0x0C, 0, 0, 0, 0},
10798 {0x0D, 0, 0, 0, 0},
10799 {0x0E, 0, 0, 0, 0},
10800 {0x0F, 0, 0, 0, 0},
10801 {0x10, 0, 0, 0, 0},
10802 {0x11, 0, 0, 0, 0},
10803 {0x12, 0, 0, 0, 0},
10804 {0x13, 0, 0, 0, 0},
10805 {0x14, 0, 0, 0, 0},
10806 {0x15, 0, 0, 0, 0},
10807 {0x16, 0, 0, 0, 0},
10808 {0x17, 0, 0, 0, 0},
10809 {0x18, 0, 0, 0, 0},
10810 {0x19, 0, 0, 0, 0},
10811 {0x1A, 0, 0, 0, 0},
10812 {0x1B, 0, 0, 0, 0},
10813 {0x1C, 0, 0, 0, 0},
10814 {0x1D, 0, 0, 0, 0},
10815 {0x1E, 0, 0, 0, 0},
10816 {0x1F, 0, 0, 0, 0},
10817 {0x20, 0x3, 0x3, 0, 0},
10818 {0x21, 0, 0, 0, 0},
10819 {0x22, 0, 0, 0, 0},
10820 {0x23, 0x90, 0x90, 0, 0},
10821 {0x24, 0x55, 0x55, 0, 0},
10822 {0x25, 0x15, 0x15, 0, 0},
10823 {0x26, 0x5, 0x5, 0, 0},
10824 {0x27, 0x15, 0x15, 0, 0},
10825 {0x28, 0x5, 0x5, 0, 0},
10826 {0x29, 0x20, 0x20, 0, 0},
10827 {0x2A, 0x11, 0x11, 0, 0},
10828 {0x2B, 0x90, 0x90, 0, 0},
10829 {0x2C, 0, 0, 0, 0},
10830 {0x2D, 0x88, 0x88, 0, 0},
10831 {0x2E, 0x32, 0x32, 0, 0},
10832 {0x2F, 0x77, 0x77, 0, 0},
10833 {0x30, 0x17, 0x17, 1, 1},
10834 {0x31, 0xff, 0xff, 1, 1},
10835 {0x32, 0x20, 0x20, 0, 0},
10836 {0x33, 0, 0, 0, 0},
10837 {0x34, 0x88, 0x88, 0, 0},
10838 {0x35, 0x32, 0x32, 0, 0},
10839 {0x36, 0x77, 0x77, 0, 0},
10840 {0x37, 0x17, 0x17, 1, 1},
10841 {0x38, 0xf0, 0xf0, 1, 1},
10842 {0x39, 0x20, 0x20, 0, 0},
10843 {0x3A, 0x8, 0x8, 0, 0},
10844 {0x3B, 0x55, 0x55, 1, 1},
10845 {0x3C, 0, 0, 0, 0},
10846 {0x3D, 0x88, 0x88, 1, 1},
10847 {0x3E, 0, 0, 0, 0},
10848 {0x3F, 0x44, 0x44, 0, 0},
10849 {0x40, 0x7, 0x7, 1, 1},
10850 {0x41, 0x6, 0x6, 0, 0},
10851 {0x42, 0x4, 0x4, 0, 0},
10852 {0x43, 0, 0, 0, 0},
10853 {0x44, 0x8, 0x8, 0, 0},
10854 {0x45, 0x55, 0x55, 1, 1},
10855 {0x46, 0, 0, 0, 0},
10856 {0x47, 0x11, 0x11, 0, 0},
10857 {0x48, 0, 0, 0, 0},
10858 {0x49, 0x44, 0x44, 0, 0},
10859 {0x4A, 0x7, 0x7, 0, 0},
10860 {0x4B, 0x6, 0x6, 0, 0},
10861 {0x4C, 0x4, 0x4, 0, 0},
10862 {0x4D, 0, 0, 0, 0},
10863 {0x4E, 0, 0, 0, 0},
10864 {0x4F, 0x26, 0x26, 1, 1},
10865 {0x50, 0x26, 0x26, 1, 1},
10866 {0x51, 0xf, 0xf, 1, 1},
10867 {0x52, 0xf, 0xf, 1, 1},
10868 {0x53, 0x44, 0x44, 0, 0},
10869 {0x54, 0, 0, 0, 0},
10870 {0x55, 0, 0, 0, 0},
10871 {0x56, 0x8, 0x8, 0, 0},
10872 {0x57, 0x8, 0x8, 0, 0},
10873 {0x58, 0x7, 0x7, 0, 0},
10874 {0x59, 0x22, 0x22, 0, 0},
10875 {0x5A, 0x22, 0x22, 0, 0},
10876 {0x5B, 0x2, 0x2, 0, 0},
10877 {0x5C, 0x4, 0x4, 1, 1},
10878 {0x5D, 0x7, 0x7, 0, 0},
10879 {0x5E, 0x55, 0x55, 0, 0},
10880 {0x5F, 0x23, 0x23, 0, 0},
10881 {0x60, 0x41, 0x41, 0, 0},
10882 {0x61, 0x1, 0x1, 0, 0},
10883 {0x62, 0xa, 0xa, 0, 0},
10884 {0x63, 0, 0, 0, 0},
10885 {0x64, 0, 0, 0, 0},
10886 {0x65, 0, 0, 0, 0},
10887 {0x66, 0, 0, 0, 0},
10888 {0x67, 0, 0, 0, 0},
10889 {0x68, 0, 0, 0, 0},
10890 {0x69, 0, 0, 0, 0},
10891 {0x6A, 0, 0, 0, 0},
10892 {0x6B, 0xc, 0xc, 0, 0},
10893 {0x6C, 0, 0, 0, 0},
10894 {0x6D, 0, 0, 0, 0},
10895 {0x6E, 0, 0, 0, 0},
10896 {0x6F, 0, 0, 0, 0},
10897 {0x70, 0, 0, 0, 0},
10898 {0x71, 0, 0, 0, 0},
10899 {0x72, 0x22, 0x22, 0, 0},
10900 {0x73, 0x22, 0x22, 0, 0},
10901 {0x74, 0, 0, 1, 1},
10902 {0x75, 0xa, 0xa, 0, 0},
10903 {0x76, 0x1, 0x1, 0, 0},
10904 {0x77, 0x22, 0x22, 0, 0},
10905 {0x78, 0x30, 0x30, 0, 0},
10906 {0x79, 0, 0, 0, 0},
10907 {0x7A, 0, 0, 0, 0},
10908 {0x7B, 0, 0, 0, 0},
10909 {0x7C, 0, 0, 0, 0},
10910 {0x7D, 0x5, 0x5, 1, 1},
10911 {0x7E, 0, 0, 0, 0},
10912 {0x7F, 0, 0, 0, 0},
10913 {0x80, 0, 0, 0, 0},
10914 {0x81, 0, 0, 0, 0},
10915 {0x82, 0, 0, 0, 0},
10916 {0x83, 0, 0, 0, 0},
10917 {0x84, 0, 0, 0, 0},
10918 {0x85, 0, 0, 0, 0},
10919 {0x86, 0, 0, 0, 0},
10920 {0x87, 0, 0, 0, 0},
10921 {0x88, 0, 0, 0, 0},
10922 {0x89, 0, 0, 0, 0},
10923 {0x8A, 0, 0, 0, 0},
10924 {0x8B, 0, 0, 0, 0},
10925 {0x8C, 0, 0, 0, 0},
10926 {0x8D, 0, 0, 0, 0},
10927 {0x8E, 0, 0, 0, 0},
10928 {0x8F, 0, 0, 0, 0},
10929 {0x90, 0, 0, 0, 0},
10930 {0x91, 0, 0, 0, 0},
10931 {0x92, 0, 0, 0, 0},
10932 {0x93, 0, 0, 0, 0},
10933 {0x94, 0, 0, 0, 0},
10934 {0xFFFF, 0, 0, 0, 0},
10937 static const struct radio_regs regs_SYN_2056_rev11[] = {
10938 {0x02, 0, 0, 0, 0},
10939 {0x03, 0, 0, 0, 0},
10940 {0x04, 0, 0, 0, 0},
10941 {0x05, 0, 0, 0, 0},
10942 {0x06, 0, 0, 0, 0},
10943 {0x07, 0, 0, 0, 0},
10944 {0x08, 0, 0, 0, 0},
10945 {0x09, 0x1, 0x1, 0, 0},
10946 {0x0A, 0, 0, 0, 0},
10947 {0x0B, 0, 0, 0, 0},
10948 {0x0C, 0, 0, 0, 0},
10949 {0x0D, 0, 0, 0, 0},
10950 {0x0E, 0, 0, 0, 0},
10951 {0x0F, 0, 0, 0, 0},
10952 {0x10, 0, 0, 0, 0},
10953 {0x11, 0, 0, 0, 0},
10954 {0x12, 0, 0, 0, 0},
10955 {0x13, 0, 0, 0, 0},
10956 {0x14, 0, 0, 0, 0},
10957 {0x15, 0, 0, 0, 0},
10958 {0x16, 0, 0, 0, 0},
10959 {0x17, 0, 0, 0, 0},
10960 {0x18, 0, 0, 0, 0},
10961 {0x19, 0, 0, 0, 0},
10962 {0x1A, 0, 0, 0, 0},
10963 {0x1B, 0, 0, 0, 0},
10964 {0x1C, 0, 0, 0, 0},
10965 {0x1D, 0, 0, 0, 0},
10966 {0x1E, 0, 0, 0, 0},
10967 {0x1F, 0, 0, 0, 0},
10968 {0x20, 0, 0, 0, 0},
10969 {0x21, 0, 0, 0, 0},
10970 {0x22, 0x60, 0x60, 0, 0},
10971 {0x23, 0x6, 0x6, 0, 0},
10972 {0x24, 0xc, 0xc, 0, 0},
10973 {0x25, 0, 0, 0, 0},
10974 {0x26, 0, 0, 0, 0},
10975 {0x27, 0, 0, 0, 0},
10976 {0x28, 0x1, 0x1, 0, 0},
10977 {0x29, 0, 0, 0, 0},
10978 {0x2A, 0, 0, 0, 0},
10979 {0x2B, 0, 0, 0, 0},
10980 {0x2C, 0, 0, 0, 0},
10981 {0x2D, 0, 0, 0, 0},
10982 {0x2E, 0, 0, 0, 0},
10983 {0x2F, 0x1f, 0x1f, 0, 0},
10984 {0x30, 0x15, 0x15, 0, 0},
10985 {0x31, 0xf, 0xf, 0, 0},
10986 {0x32, 0, 0, 0, 0},
10987 {0x33, 0, 0, 0, 0},
10988 {0x34, 0, 0, 0, 0},
10989 {0x35, 0, 0, 0, 0},
10990 {0x36, 0, 0, 0, 0},
10991 {0x37, 0, 0, 0, 0},
10992 {0x38, 0, 0, 0, 0},
10993 {0x39, 0, 0, 0, 0},
10994 {0x3A, 0, 0, 0, 0},
10995 {0x3B, 0, 0, 0, 0},
10996 {0x3C, 0x13, 0x13, 0, 0},
10997 {0x3D, 0xf, 0xf, 0, 0},
10998 {0x3E, 0x18, 0x18, 0, 0},
10999 {0x3F, 0, 0, 0, 0},
11000 {0x40, 0, 0, 0, 0},
11001 {0x41, 0x20, 0x20, 0, 0},
11002 {0x42, 0x20, 0x20, 0, 0},
11003 {0x43, 0, 0, 0, 0},
11004 {0x44, 0x77, 0x77, 0, 0},
11005 {0x45, 0x7, 0x7, 0, 0},
11006 {0x46, 0x1, 0x1, 0, 0},
11007 {0x47, 0x6, 0x6, 1, 1},
11008 {0x48, 0xf, 0xf, 0, 0},
11009 {0x49, 0x3f, 0x3f, 1, 1},
11010 {0x4A, 0x32, 0x32, 0, 0},
11011 {0x4B, 0x6, 0x6, 1, 1},
11012 {0x4C, 0x6, 0x6, 1, 1},
11013 {0x4D, 0x4, 0x4, 0, 0},
11014 {0x4E, 0x2b, 0x2b, 1, 1},
11015 {0x4F, 0x1, 0x1, 0, 0},
11016 {0x50, 0x1c, 0x1c, 0, 0},
11017 {0x51, 0x2, 0x2, 0, 0},
11018 {0x52, 0x2, 0x2, 0, 0},
11019 {0x53, 0xf7, 0xf7, 1, 1},
11020 {0x54, 0xb4, 0xb4, 0, 0},
11021 {0x55, 0xd2, 0xd2, 0, 0},
11022 {0x56, 0, 0, 0, 0},
11023 {0x57, 0, 0, 0, 0},
11024 {0x58, 0x4, 0x4, 0, 0},
11025 {0x59, 0x96, 0x96, 0, 0},
11026 {0x5A, 0x3e, 0x3e, 0, 0},
11027 {0x5B, 0x3e, 0x3e, 0, 0},
11028 {0x5C, 0x13, 0x13, 0, 0},
11029 {0x5D, 0x2, 0x2, 0, 0},
11030 {0x5E, 0, 0, 0, 0},
11031 {0x5F, 0x7, 0x7, 0, 0},
11032 {0x60, 0x7, 0x7, 1, 1},
11033 {0x61, 0x8, 0x8, 0, 0},
11034 {0x62, 0x3, 0x3, 0, 0},
11035 {0x63, 0, 0, 0, 0},
11036 {0x64, 0, 0, 0, 0},
11037 {0x65, 0, 0, 0, 0},
11038 {0x66, 0, 0, 0, 0},
11039 {0x67, 0, 0, 0, 0},
11040 {0x68, 0x40, 0x40, 0, 0},
11041 {0x69, 0, 0, 0, 0},
11042 {0x6A, 0, 0, 0, 0},
11043 {0x6B, 0, 0, 0, 0},
11044 {0x6C, 0, 0, 0, 0},
11045 {0x6D, 0x1, 0x1, 0, 0},
11046 {0x6E, 0, 0, 0, 0},
11047 {0x6F, 0, 0, 0, 0},
11048 {0x70, 0x60, 0x60, 0, 0},
11049 {0x71, 0x66, 0x66, 0, 0},
11050 {0x72, 0xc, 0xc, 0, 0},
11051 {0x73, 0x66, 0x66, 0, 0},
11052 {0x74, 0x8f, 0x8f, 1, 1},
11053 {0x75, 0, 0, 0, 0},
11054 {0x76, 0xcc, 0xcc, 0, 0},
11055 {0x77, 0x1, 0x1, 0, 0},
11056 {0x78, 0x66, 0x66, 0, 0},
11057 {0x79, 0x66, 0x66, 0, 0},
11058 {0x7A, 0, 0, 0, 0},
11059 {0x7B, 0, 0, 0, 0},
11060 {0x7C, 0, 0, 0, 0},
11061 {0x7D, 0, 0, 0, 0},
11062 {0x7E, 0, 0, 0, 0},
11063 {0x7F, 0, 0, 0, 0},
11064 {0x80, 0, 0, 0, 0},
11065 {0x81, 0, 0, 0, 0},
11066 {0x82, 0, 0, 0, 0},
11067 {0x83, 0, 0, 0, 0},
11068 {0x84, 0, 0, 0, 0},
11069 {0x85, 0xff, 0xff, 0, 0},
11070 {0x86, 0, 0, 0, 0},
11071 {0x87, 0, 0, 0, 0},
11072 {0x88, 0, 0, 0, 0},
11073 {0x89, 0, 0, 0, 0},
11074 {0x8A, 0, 0, 0, 0},
11075 {0x8B, 0, 0, 0, 0},
11076 {0x8C, 0, 0, 0, 0},
11077 {0x8D, 0, 0, 0, 0},
11078 {0x8E, 0, 0, 0, 0},
11079 {0x8F, 0, 0, 0, 0},
11080 {0x90, 0, 0, 0, 0},
11081 {0x91, 0, 0, 0, 0},
11082 {0x92, 0, 0, 0, 0},
11083 {0x93, 0, 0, 0, 0},
11084 {0x94, 0, 0, 0, 0},
11085 {0x95, 0, 0, 0, 0},
11086 {0x96, 0, 0, 0, 0},
11087 {0x97, 0, 0, 0, 0},
11088 {0x98, 0, 0, 0, 0},
11089 {0x99, 0, 0, 0, 0},
11090 {0x9A, 0, 0, 0, 0},
11091 {0x9B, 0, 0, 0, 0},
11092 {0x9C, 0, 0, 0, 0},
11093 {0x9D, 0, 0, 0, 0},
11094 {0x9E, 0, 0, 0, 0},
11095 {0x9F, 0x6, 0x6, 0, 0},
11096 {0xA0, 0x66, 0x66, 0, 0},
11097 {0xA1, 0x66, 0x66, 0, 0},
11098 {0xA2, 0x66, 0x66, 0, 0},
11099 {0xA3, 0x66, 0x66, 0, 0},
11100 {0xA4, 0x66, 0x66, 0, 0},
11101 {0xA5, 0x66, 0x66, 0, 0},
11102 {0xA6, 0x66, 0x66, 0, 0},
11103 {0xA7, 0x66, 0x66, 0, 0},
11104 {0xA8, 0x66, 0x66, 0, 0},
11105 {0xA9, 0x66, 0x66, 0, 0},
11106 {0xAA, 0x66, 0x66, 0, 0},
11107 {0xAB, 0x66, 0x66, 0, 0},
11108 {0xAC, 0x66, 0x66, 0, 0},
11109 {0xAD, 0x66, 0x66, 0, 0},
11110 {0xAE, 0x66, 0x66, 0, 0},
11111 {0xAF, 0x66, 0x66, 0, 0},
11112 {0xB0, 0x66, 0x66, 0, 0},
11113 {0xB1, 0x66, 0x66, 0, 0},
11114 {0xB2, 0x66, 0x66, 0, 0},
11115 {0xB3, 0xa, 0xa, 0, 0},
11116 {0xB4, 0, 0, 0, 0},
11117 {0xB5, 0, 0, 0, 0},
11118 {0xB6, 0, 0, 0, 0},
11119 {0xFFFF, 0, 0, 0, 0},
11122 static const struct radio_regs regs_TX_2056_rev11[] = {
11123 {0x02, 0, 0, 0, 0},
11124 {0x03, 0, 0, 0, 0},
11125 {0x04, 0, 0, 0, 0},
11126 {0x05, 0, 0, 0, 0},
11127 {0x06, 0, 0, 0, 0},
11128 {0x07, 0, 0, 0, 0},
11129 {0x08, 0, 0, 0, 0},
11130 {0x09, 0, 0, 0, 0},
11131 {0x0A, 0, 0, 0, 0},
11132 {0x0B, 0, 0, 0, 0},
11133 {0x0C, 0, 0, 0, 0},
11134 {0x0D, 0, 0, 0, 0},
11135 {0x0E, 0, 0, 0, 0},
11136 {0x0F, 0, 0, 0, 0},
11137 {0x10, 0, 0, 0, 0},
11138 {0x11, 0, 0, 0, 0},
11139 {0x12, 0, 0, 0, 0},
11140 {0x13, 0, 0, 0, 0},
11141 {0x14, 0, 0, 0, 0},
11142 {0x15, 0, 0, 0, 0},
11143 {0x16, 0, 0, 0, 0},
11144 {0x17, 0, 0, 0, 0},
11145 {0x18, 0, 0, 0, 0},
11146 {0x19, 0, 0, 0, 0},
11147 {0x1A, 0, 0, 0, 0},
11148 {0x1B, 0, 0, 0, 0},
11149 {0x1C, 0, 0, 0, 0},
11150 {0x1D, 0, 0, 0, 0},
11151 {0x1E, 0, 0, 0, 0},
11152 {0x1F, 0, 0, 0, 0},
11153 {0x20, 0, 0, 0, 0},
11154 {0x21, 0x88, 0x88, 0, 0},
11155 {0x22, 0x88, 0x88, 0, 0},
11156 {0x23, 0x88, 0x88, 0, 0},
11157 {0x24, 0x88, 0x88, 0, 0},
11158 {0x25, 0xc, 0xc, 0, 0},
11159 {0x26, 0, 0, 0, 0},
11160 {0x27, 0x3, 0x3, 0, 0},
11161 {0x28, 0, 0, 0, 0},
11162 {0x29, 0x3, 0x3, 0, 0},
11163 {0x2A, 0x37, 0x37, 0, 0},
11164 {0x2B, 0x3, 0x3, 0, 0},
11165 {0x2C, 0, 0, 0, 0},
11166 {0x2D, 0, 0, 0, 0},
11167 {0x2E, 0x1, 0x1, 0, 0},
11168 {0x2F, 0x1, 0x1, 0, 0},
11169 {0x30, 0, 0, 0, 0},
11170 {0x31, 0, 0, 0, 0},
11171 {0x32, 0, 0, 0, 0},
11172 {0x33, 0x11, 0x11, 0, 0},
11173 {0x34, 0xee, 0xee, 1, 1},
11174 {0x35, 0, 0, 0, 0},
11175 {0x36, 0, 0, 0, 0},
11176 {0x37, 0x3, 0x3, 0, 0},
11177 {0x38, 0x50, 0x50, 1, 1},
11178 {0x39, 0, 0, 0, 0},
11179 {0x3A, 0x50, 0x50, 1, 1},
11180 {0x3B, 0, 0, 0, 0},
11181 {0x3C, 0x6e, 0x6e, 0, 0},
11182 {0x3D, 0xf0, 0xf0, 1, 1},
11183 {0x3E, 0, 0, 0, 0},
11184 {0x3F, 0, 0, 0, 0},
11185 {0x40, 0, 0, 0, 0},
11186 {0x41, 0x3, 0x3, 0, 0},
11187 {0x42, 0x3, 0x3, 0, 0},
11188 {0x43, 0, 0, 0, 0},
11189 {0x44, 0x1e, 0x1e, 0, 0},
11190 {0x45, 0, 0, 0, 0},
11191 {0x46, 0x6e, 0x6e, 0, 0},
11192 {0x47, 0xf0, 0xf0, 1, 1},
11193 {0x48, 0, 0, 0, 0},
11194 {0x49, 0x2, 0x2, 0, 0},
11195 {0x4A, 0xff, 0xff, 1, 1},
11196 {0x4B, 0xc, 0xc, 0, 0},
11197 {0x4C, 0, 0, 0, 0},
11198 {0x4D, 0x38, 0x38, 0, 0},
11199 {0x4E, 0x70, 0x70, 1, 1},
11200 {0x4F, 0x2, 0x2, 0, 0},
11201 {0x50, 0x88, 0x88, 0, 0},
11202 {0x51, 0xc, 0xc, 0, 0},
11203 {0x52, 0, 0, 0, 0},
11204 {0x53, 0x8, 0x8, 0, 0},
11205 {0x54, 0x70, 0x70, 1, 1},
11206 {0x55, 0x2, 0x2, 0, 0},
11207 {0x56, 0xff, 0xff, 1, 1},
11208 {0x57, 0, 0, 0, 0},
11209 {0x58, 0x83, 0x83, 0, 0},
11210 {0x59, 0x77, 0x77, 1, 1},
11211 {0x5A, 0, 0, 0, 0},
11212 {0x5B, 0x2, 0x2, 0, 0},
11213 {0x5C, 0x88, 0x88, 0, 0},
11214 {0x5D, 0, 0, 0, 0},
11215 {0x5E, 0x8, 0x8, 0, 0},
11216 {0x5F, 0x77, 0x77, 1, 1},
11217 {0x60, 0x1, 0x1, 0, 0},
11218 {0x61, 0, 0, 0, 0},
11219 {0x62, 0x7, 0x7, 0, 0},
11220 {0x63, 0, 0, 0, 0},
11221 {0x64, 0x7, 0x7, 0, 0},
11222 {0x65, 0, 0, 0, 0},
11223 {0x66, 0, 0, 0, 0},
11224 {0x67, 0, 0, 1, 1},
11225 {0x68, 0, 0, 0, 0},
11226 {0x69, 0xa, 0xa, 0, 0},
11227 {0x6A, 0, 0, 0, 0},
11228 {0x6B, 0, 0, 0, 0},
11229 {0x6C, 0, 0, 0, 0},
11230 {0x6D, 0, 0, 0, 0},
11231 {0x6E, 0, 0, 0, 0},
11232 {0x6F, 0, 0, 0, 0},
11233 {0x70, 0, 0, 0, 0},
11234 {0x71, 0x2, 0x2, 0, 0},
11235 {0x72, 0, 0, 0, 0},
11236 {0x73, 0, 0, 0, 0},
11237 {0x74, 0xe, 0xe, 0, 0},
11238 {0x75, 0xe, 0xe, 0, 0},
11239 {0x76, 0xe, 0xe, 0, 0},
11240 {0x77, 0x13, 0x13, 0, 0},
11241 {0x78, 0x13, 0x13, 0, 0},
11242 {0x79, 0x1b, 0x1b, 0, 0},
11243 {0x7A, 0x1b, 0x1b, 0, 0},
11244 {0x7B, 0x55, 0x55, 0, 0},
11245 {0x7C, 0x5b, 0x5b, 0, 0},
11246 {0x7D, 0x30, 0x30, 1, 1},
11247 {0x7E, 0, 0, 0, 0},
11248 {0x7F, 0, 0, 0, 0},
11249 {0x80, 0, 0, 0, 0},
11250 {0x81, 0, 0, 0, 0},
11251 {0x82, 0, 0, 0, 0},
11252 {0x83, 0, 0, 0, 0},
11253 {0x84, 0, 0, 0, 0},
11254 {0x85, 0, 0, 0, 0},
11255 {0x86, 0, 0, 0, 0},
11256 {0x87, 0, 0, 0, 0},
11257 {0x88, 0, 0, 0, 0},
11258 {0x89, 0, 0, 0, 0},
11259 {0x8A, 0, 0, 0, 0},
11260 {0x8B, 0, 0, 0, 0},
11261 {0x8C, 0, 0, 0, 0},
11262 {0x8D, 0, 0, 0, 0},
11263 {0x8E, 0, 0, 0, 0},
11264 {0x8F, 0, 0, 0, 0},
11265 {0x90, 0, 0, 0, 0},
11266 {0x91, 0, 0, 0, 0},
11267 {0x92, 0, 0, 0, 0},
11268 {0x93, 0x70, 0x70, 0, 0},
11269 {0x94, 0x70, 0x70, 0, 0},
11270 {0x95, 0x70, 0x70, 0, 0},
11271 {0x96, 0x70, 0x70, 0, 0},
11272 {0x97, 0x70, 0x70, 0, 0},
11273 {0x98, 0x70, 0x70, 0, 0},
11274 {0x99, 0x70, 0x70, 0, 0},
11275 {0x9A, 0x70, 0x70, 0, 0},
11276 {0xFFFF, 0, 0, 0, 0},
11279 static const struct radio_regs regs_RX_2056_rev11[] = {
11280 {0x02, 0, 0, 0, 0},
11281 {0x03, 0, 0, 0, 0},
11282 {0x04, 0, 0, 0, 0},
11283 {0x05, 0, 0, 0, 0},
11284 {0x06, 0, 0, 0, 0},
11285 {0x07, 0, 0, 0, 0},
11286 {0x08, 0, 0, 0, 0},
11287 {0x09, 0, 0, 0, 0},
11288 {0x0A, 0, 0, 0, 0},
11289 {0x0B, 0, 0, 0, 0},
11290 {0x0C, 0, 0, 0, 0},
11291 {0x0D, 0, 0, 0, 0},
11292 {0x0E, 0, 0, 0, 0},
11293 {0x0F, 0, 0, 0, 0},
11294 {0x10, 0, 0, 0, 0},
11295 {0x11, 0, 0, 0, 0},
11296 {0x12, 0, 0, 0, 0},
11297 {0x13, 0, 0, 0, 0},
11298 {0x14, 0, 0, 0, 0},
11299 {0x15, 0, 0, 0, 0},
11300 {0x16, 0, 0, 0, 0},
11301 {0x17, 0, 0, 0, 0},
11302 {0x18, 0, 0, 0, 0},
11303 {0x19, 0, 0, 0, 0},
11304 {0x1A, 0, 0, 0, 0},
11305 {0x1B, 0, 0, 0, 0},
11306 {0x1C, 0, 0, 0, 0},
11307 {0x1D, 0, 0, 0, 0},
11308 {0x1E, 0, 0, 0, 0},
11309 {0x1F, 0, 0, 0, 0},
11310 {0x20, 0x3, 0x3, 0, 0},
11311 {0x21, 0, 0, 0, 0},
11312 {0x22, 0, 0, 0, 0},
11313 {0x23, 0x90, 0x90, 0, 0},
11314 {0x24, 0x55, 0x55, 0, 0},
11315 {0x25, 0x15, 0x15, 0, 0},
11316 {0x26, 0x5, 0x5, 0, 0},
11317 {0x27, 0x15, 0x15, 0, 0},
11318 {0x28, 0x5, 0x5, 0, 0},
11319 {0x29, 0x20, 0x20, 0, 0},
11320 {0x2A, 0x11, 0x11, 0, 0},
11321 {0x2B, 0x90, 0x90, 0, 0},
11322 {0x2C, 0, 0, 0, 0},
11323 {0x2D, 0x88, 0x88, 0, 0},
11324 {0x2E, 0x32, 0x32, 0, 0},
11325 {0x2F, 0x77, 0x77, 0, 0},
11326 {0x30, 0x17, 0x17, 1, 1},
11327 {0x31, 0xff, 0xff, 1, 1},
11328 {0x32, 0x20, 0x20, 0, 0},
11329 {0x33, 0, 0, 0, 0},
11330 {0x34, 0x88, 0x88, 0, 0},
11331 {0x35, 0x32, 0x32, 0, 0},
11332 {0x36, 0x77, 0x77, 0, 0},
11333 {0x37, 0x17, 0x17, 1, 1},
11334 {0x38, 0xf0, 0xf0, 1, 1},
11335 {0x39, 0x20, 0x20, 0, 0},
11336 {0x3A, 0x8, 0x8, 0, 0},
11337 {0x3B, 0x55, 0x55, 1, 1},
11338 {0x3C, 0, 0, 0, 0},
11339 {0x3D, 0x88, 0x88, 1, 1},
11340 {0x3E, 0, 0, 0, 0},
11341 {0x3F, 0x44, 0x44, 0, 0},
11342 {0x40, 0x7, 0x7, 1, 1},
11343 {0x41, 0x6, 0x6, 0, 0},
11344 {0x42, 0x4, 0x4, 0, 0},
11345 {0x43, 0, 0, 0, 0},
11346 {0x44, 0x8, 0x8, 0, 0},
11347 {0x45, 0x55, 0x55, 1, 1},
11348 {0x46, 0, 0, 0, 0},
11349 {0x47, 0x11, 0x11, 0, 0},
11350 {0x48, 0, 0, 0, 0},
11351 {0x49, 0x44, 0x44, 0, 0},
11352 {0x4A, 0x7, 0x7, 0, 0},
11353 {0x4B, 0x6, 0x6, 0, 0},
11354 {0x4C, 0x4, 0x4, 0, 0},
11355 {0x4D, 0, 0, 0, 0},
11356 {0x4E, 0, 0, 0, 0},
11357 {0x4F, 0x26, 0x26, 1, 1},
11358 {0x50, 0x26, 0x26, 1, 1},
11359 {0x51, 0xf, 0xf, 1, 1},
11360 {0x52, 0xf, 0xf, 1, 1},
11361 {0x53, 0x44, 0x44, 0, 0},
11362 {0x54, 0, 0, 0, 0},
11363 {0x55, 0, 0, 0, 0},
11364 {0x56, 0x8, 0x8, 0, 0},
11365 {0x57, 0x8, 0x8, 0, 0},
11366 {0x58, 0x7, 0x7, 0, 0},
11367 {0x59, 0x22, 0x22, 0, 0},
11368 {0x5A, 0x22, 0x22, 0, 0},
11369 {0x5B, 0x2, 0x2, 0, 0},
11370 {0x5C, 0x4, 0x4, 1, 1},
11371 {0x5D, 0x7, 0x7, 0, 0},
11372 {0x5E, 0x55, 0x55, 0, 0},
11373 {0x5F, 0x23, 0x23, 0, 0},
11374 {0x60, 0x41, 0x41, 0, 0},
11375 {0x61, 0x1, 0x1, 0, 0},
11376 {0x62, 0xa, 0xa, 0, 0},
11377 {0x63, 0, 0, 0, 0},
11378 {0x64, 0, 0, 0, 0},
11379 {0x65, 0, 0, 0, 0},
11380 {0x66, 0, 0, 0, 0},
11381 {0x67, 0, 0, 0, 0},
11382 {0x68, 0, 0, 0, 0},
11383 {0x69, 0, 0, 0, 0},
11384 {0x6A, 0, 0, 0, 0},
11385 {0x6B, 0xc, 0xc, 0, 0},
11386 {0x6C, 0, 0, 0, 0},
11387 {0x6D, 0, 0, 0, 0},
11388 {0x6E, 0, 0, 0, 0},
11389 {0x6F, 0, 0, 0, 0},
11390 {0x70, 0, 0, 0, 0},
11391 {0x71, 0, 0, 0, 0},
11392 {0x72, 0x22, 0x22, 0, 0},
11393 {0x73, 0x22, 0x22, 0, 0},
11394 {0x74, 0, 0, 1, 1},
11395 {0x75, 0xa, 0xa, 0, 0},
11396 {0x76, 0x1, 0x1, 0, 0},
11397 {0x77, 0x22, 0x22, 0, 0},
11398 {0x78, 0x30, 0x30, 0, 0},
11399 {0x79, 0, 0, 0, 0},
11400 {0x7A, 0, 0, 0, 0},
11401 {0x7B, 0, 0, 0, 0},
11402 {0x7C, 0, 0, 0, 0},
11403 {0x7D, 0x5, 0x5, 1, 1},
11404 {0x7E, 0, 0, 0, 0},
11405 {0x7F, 0, 0, 0, 0},
11406 {0x80, 0, 0, 0, 0},
11407 {0x81, 0, 0, 0, 0},
11408 {0x82, 0, 0, 0, 0},
11409 {0x83, 0, 0, 0, 0},
11410 {0x84, 0, 0, 0, 0},
11411 {0x85, 0, 0, 0, 0},
11412 {0x86, 0, 0, 0, 0},
11413 {0x87, 0, 0, 0, 0},
11414 {0x88, 0, 0, 0, 0},
11415 {0x89, 0, 0, 0, 0},
11416 {0x8A, 0, 0, 0, 0},
11417 {0x8B, 0, 0, 0, 0},
11418 {0x8C, 0, 0, 0, 0},
11419 {0x8D, 0, 0, 0, 0},
11420 {0x8E, 0, 0, 0, 0},
11421 {0x8F, 0, 0, 0, 0},
11422 {0x90, 0, 0, 0, 0},
11423 {0x91, 0, 0, 0, 0},
11424 {0x92, 0, 0, 0, 0},
11425 {0x93, 0, 0, 0, 0},
11426 {0x94, 0, 0, 0, 0},
11427 {0xFFFF, 0, 0, 0, 0},
11430 static struct radio_20xx_regs regs_2057_rev4[] = {
11431 {0x00, 0x84, 0},
11432 {0x01, 0, 0},
11433 {0x02, 0x60, 0},
11434 {0x03, 0x1f, 0},
11435 {0x04, 0x4, 0},
11436 {0x05, 0x2, 0},
11437 {0x06, 0x1, 0},
11438 {0x07, 0x1, 0},
11439 {0x08, 0x1, 0},
11440 {0x09, 0x69, 0},
11441 {0x0A, 0x66, 0},
11442 {0x0B, 0x6, 0},
11443 {0x0C, 0x18, 0},
11444 {0x0D, 0x3, 0},
11445 {0x0E, 0x20, 1},
11446 {0x0F, 0x20, 0},
11447 {0x10, 0, 0},
11448 {0x11, 0x7c, 0},
11449 {0x12, 0x42, 0},
11450 {0x13, 0xbd, 0},
11451 {0x14, 0x7, 0},
11452 {0x15, 0xf7, 0},
11453 {0x16, 0x8, 0},
11454 {0x17, 0x17, 0},
11455 {0x18, 0x7, 0},
11456 {0x19, 0, 0},
11457 {0x1A, 0x2, 0},
11458 {0x1B, 0x13, 0},
11459 {0x1C, 0x3e, 0},
11460 {0x1D, 0x3e, 0},
11461 {0x1E, 0x96, 0},
11462 {0x1F, 0x4, 0},
11463 {0x20, 0, 0},
11464 {0x21, 0, 0},
11465 {0x22, 0x17, 0},
11466 {0x23, 0x4, 0},
11467 {0x24, 0x1, 0},
11468 {0x25, 0x6, 0},
11469 {0x26, 0x4, 0},
11470 {0x27, 0xd, 0},
11471 {0x28, 0xd, 0},
11472 {0x29, 0x30, 0},
11473 {0x2A, 0x32, 0},
11474 {0x2B, 0x8, 0},
11475 {0x2C, 0x1c, 0},
11476 {0x2D, 0x2, 0},
11477 {0x2E, 0x4, 0},
11478 {0x2F, 0x7f, 0},
11479 {0x30, 0x27, 0},
11480 {0x31, 0, 1},
11481 {0x32, 0, 1},
11482 {0x33, 0, 1},
11483 {0x34, 0, 0},
11484 {0x35, 0x26, 1},
11485 {0x36, 0x18, 0},
11486 {0x37, 0x7, 0},
11487 {0x38, 0x66, 0},
11488 {0x39, 0x66, 0},
11489 {0x3A, 0x66, 0},
11490 {0x3B, 0x66, 0},
11491 {0x3C, 0xff, 1},
11492 {0x3D, 0xff, 1},
11493 {0x3E, 0xff, 1},
11494 {0x3F, 0xff, 1},
11495 {0x40, 0x16, 0},
11496 {0x41, 0x7, 0},
11497 {0x42, 0x19, 0},
11498 {0x43, 0x7, 0},
11499 {0x44, 0x6, 0},
11500 {0x45, 0x3, 0},
11501 {0x46, 0x1, 0},
11502 {0x47, 0x7, 0},
11503 {0x48, 0x33, 0},
11504 {0x49, 0x5, 0},
11505 {0x4A, 0x77, 0},
11506 {0x4B, 0x66, 0},
11507 {0x4C, 0x66, 0},
11508 {0x4D, 0, 0},
11509 {0x4E, 0x4, 0},
11510 {0x4F, 0xc, 0},
11511 {0x50, 0, 0},
11512 {0x51, 0x75, 0},
11513 {0x56, 0x7, 0},
11514 {0x57, 0, 0},
11515 {0x58, 0, 0},
11516 {0x59, 0xa8, 0},
11517 {0x5A, 0, 0},
11518 {0x5B, 0x1f, 0},
11519 {0x5C, 0x30, 0},
11520 {0x5D, 0x1, 0},
11521 {0x5E, 0x30, 0},
11522 {0x5F, 0x70, 0},
11523 {0x60, 0, 0},
11524 {0x61, 0, 0},
11525 {0x62, 0x33, 1},
11526 {0x63, 0x19, 0},
11527 {0x64, 0x62, 0},
11528 {0x65, 0, 0},
11529 {0x66, 0x11, 0},
11530 {0x69, 0, 0},
11531 {0x6A, 0x7e, 0},
11532 {0x6B, 0x3f, 0},
11533 {0x6C, 0x7f, 0},
11534 {0x6D, 0x78, 0},
11535 {0x6E, 0xc8, 0},
11536 {0x6F, 0x88, 0},
11537 {0x70, 0x8, 0},
11538 {0x71, 0xf, 0},
11539 {0x72, 0xbc, 0},
11540 {0x73, 0x8, 0},
11541 {0x74, 0x60, 0},
11542 {0x75, 0x1e, 0},
11543 {0x76, 0x70, 0},
11544 {0x77, 0, 0},
11545 {0x78, 0, 0},
11546 {0x79, 0, 0},
11547 {0x7A, 0x33, 0},
11548 {0x7B, 0x1e, 0},
11549 {0x7C, 0x62, 0},
11550 {0x7D, 0x11, 0},
11551 {0x80, 0x3c, 0},
11552 {0x81, 0x9c, 0},
11553 {0x82, 0xa, 0},
11554 {0x83, 0x9d, 0},
11555 {0x84, 0xa, 0},
11556 {0x85, 0, 0},
11557 {0x86, 0x40, 0},
11558 {0x87, 0x40, 0},
11559 {0x88, 0x88, 0},
11560 {0x89, 0x10, 0},
11561 {0x8A, 0xf0, 1},
11562 {0x8B, 0x10, 1},
11563 {0x8C, 0xf0, 1},
11564 {0x8D, 0, 0},
11565 {0x8E, 0, 0},
11566 {0x8F, 0x10, 0},
11567 {0x90, 0x55, 0},
11568 {0x91, 0x3f, 1},
11569 {0x92, 0x36, 1},
11570 {0x93, 0, 0},
11571 {0x94, 0, 0},
11572 {0x95, 0, 0},
11573 {0x96, 0x87, 0},
11574 {0x97, 0x11, 0},
11575 {0x98, 0, 0},
11576 {0x99, 0x33, 0},
11577 {0x9A, 0x88, 0},
11578 {0x9B, 0, 0},
11579 {0x9C, 0x87, 0},
11580 {0x9D, 0x11, 0},
11581 {0x9E, 0, 0},
11582 {0x9F, 0x33, 0},
11583 {0xA0, 0x88, 0},
11584 {0xA1, 0xe1, 0},
11585 {0xA2, 0x3f, 0},
11586 {0xA3, 0x44, 0},
11587 {0xA4, 0x8c, 1},
11588 {0xA5, 0x6d, 0},
11589 {0xA6, 0x22, 0},
11590 {0xA7, 0xbe, 0},
11591 {0xA8, 0x55, 1},
11592 {0xA9, 0xc, 0},
11593 {0xAA, 0xc, 0},
11594 {0xAB, 0xaa, 0},
11595 {0xAC, 0x2, 0},
11596 {0xAD, 0, 0},
11597 {0xAE, 0x10, 0},
11598 {0xAF, 0x1, 1},
11599 {0xB0, 0, 0},
11600 {0xB1, 0, 0},
11601 {0xB2, 0x80, 0},
11602 {0xB3, 0x60, 0},
11603 {0xB4, 0x44, 0},
11604 {0xB5, 0x55, 0},
11605 {0xB6, 0x1, 0},
11606 {0xB7, 0x55, 0},
11607 {0xB8, 0x1, 0},
11608 {0xB9, 0x5, 0},
11609 {0xBA, 0x55, 0},
11610 {0xBB, 0x55, 0},
11611 {0xC1, 0, 0},
11612 {0xC2, 0, 0},
11613 {0xC3, 0, 0},
11614 {0xC4, 0, 0},
11615 {0xC5, 0, 0},
11616 {0xC6, 0, 0},
11617 {0xC7, 0, 0},
11618 {0xC8, 0, 0},
11619 {0xC9, 0, 0},
11620 {0xCA, 0, 0},
11621 {0xCB, 0, 0},
11622 {0xCC, 0, 0},
11623 {0xCD, 0, 0},
11624 {0xCE, 0x5e, 0},
11625 {0xCF, 0xc, 0},
11626 {0xD0, 0xc, 0},
11627 {0xD1, 0xc, 0},
11628 {0xD2, 0, 0},
11629 {0xD3, 0x2b, 0},
11630 {0xD4, 0xc, 0},
11631 {0xD5, 0, 0},
11632 {0xD6, 0x75, 0},
11633 {0xDB, 0x7, 0},
11634 {0xDC, 0, 0},
11635 {0xDD, 0, 0},
11636 {0xDE, 0xa8, 0},
11637 {0xDF, 0, 0},
11638 {0xE0, 0x1f, 0},
11639 {0xE1, 0x30, 0},
11640 {0xE2, 0x1, 0},
11641 {0xE3, 0x30, 0},
11642 {0xE4, 0x70, 0},
11643 {0xE5, 0, 0},
11644 {0xE6, 0, 0},
11645 {0xE7, 0x33, 0},
11646 {0xE8, 0x19, 0},
11647 {0xE9, 0x62, 0},
11648 {0xEA, 0, 0},
11649 {0xEB, 0x11, 0},
11650 {0xEE, 0, 0},
11651 {0xEF, 0x7e, 0},
11652 {0xF0, 0x3f, 0},
11653 {0xF1, 0x7f, 0},
11654 {0xF2, 0x78, 0},
11655 {0xF3, 0xc8, 0},
11656 {0xF4, 0x88, 0},
11657 {0xF5, 0x8, 0},
11658 {0xF6, 0xf, 0},
11659 {0xF7, 0xbc, 0},
11660 {0xF8, 0x8, 0},
11661 {0xF9, 0x60, 0},
11662 {0xFA, 0x1e, 0},
11663 {0xFB, 0x70, 0},
11664 {0xFC, 0, 0},
11665 {0xFD, 0, 0},
11666 {0xFE, 0, 0},
11667 {0xFF, 0x33, 0},
11668 {0x100, 0x1e, 0},
11669 {0x101, 0x62, 0},
11670 {0x102, 0x11, 0},
11671 {0x105, 0x3c, 0},
11672 {0x106, 0x9c, 0},
11673 {0x107, 0xa, 0},
11674 {0x108, 0x9d, 0},
11675 {0x109, 0xa, 0},
11676 {0x10A, 0, 0},
11677 {0x10B, 0x40, 0},
11678 {0x10C, 0x40, 0},
11679 {0x10D, 0x88, 0},
11680 {0x10E, 0x10, 0},
11681 {0x10F, 0xf0, 1},
11682 {0x110, 0x10, 1},
11683 {0x111, 0xf0, 1},
11684 {0x112, 0, 0},
11685 {0x113, 0, 0},
11686 {0x114, 0x10, 0},
11687 {0x115, 0x55, 0},
11688 {0x116, 0x3f, 1},
11689 {0x117, 0x36, 1},
11690 {0x118, 0, 0},
11691 {0x119, 0, 0},
11692 {0x11A, 0, 0},
11693 {0x11B, 0x87, 0},
11694 {0x11C, 0x11, 0},
11695 {0x11D, 0, 0},
11696 {0x11E, 0x33, 0},
11697 {0x11F, 0x88, 0},
11698 {0x120, 0, 0},
11699 {0x121, 0x87, 0},
11700 {0x122, 0x11, 0},
11701 {0x123, 0, 0},
11702 {0x124, 0x33, 0},
11703 {0x125, 0x88, 0},
11704 {0x126, 0xe1, 0},
11705 {0x127, 0x3f, 0},
11706 {0x128, 0x44, 0},
11707 {0x129, 0x8c, 1},
11708 {0x12A, 0x6d, 0},
11709 {0x12B, 0x22, 0},
11710 {0x12C, 0xbe, 0},
11711 {0x12D, 0x55, 1},
11712 {0x12E, 0xc, 0},
11713 {0x12F, 0xc, 0},
11714 {0x130, 0xaa, 0},
11715 {0x131, 0x2, 0},
11716 {0x132, 0, 0},
11717 {0x133, 0x10, 0},
11718 {0x134, 0x1, 1},
11719 {0x135, 0, 0},
11720 {0x136, 0, 0},
11721 {0x137, 0x80, 0},
11722 {0x138, 0x60, 0},
11723 {0x139, 0x44, 0},
11724 {0x13A, 0x55, 0},
11725 {0x13B, 0x1, 0},
11726 {0x13C, 0x55, 0},
11727 {0x13D, 0x1, 0},
11728 {0x13E, 0x5, 0},
11729 {0x13F, 0x55, 0},
11730 {0x140, 0x55, 0},
11731 {0x146, 0, 0},
11732 {0x147, 0, 0},
11733 {0x148, 0, 0},
11734 {0x149, 0, 0},
11735 {0x14A, 0, 0},
11736 {0x14B, 0, 0},
11737 {0x14C, 0, 0},
11738 {0x14D, 0, 0},
11739 {0x14E, 0, 0},
11740 {0x14F, 0, 0},
11741 {0x150, 0, 0},
11742 {0x151, 0, 0},
11743 {0x152, 0, 0},
11744 {0x153, 0, 0},
11745 {0x154, 0xc, 0},
11746 {0x155, 0xc, 0},
11747 {0x156, 0xc, 0},
11748 {0x157, 0, 0},
11749 {0x158, 0x2b, 0},
11750 {0x159, 0x84, 0},
11751 {0x15A, 0x15, 0},
11752 {0x15B, 0xf, 0},
11753 {0x15C, 0, 0},
11754 {0x15D, 0, 0},
11755 {0x15E, 0, 1},
11756 {0x15F, 0, 1},
11757 {0x160, 0, 1},
11758 {0x161, 0, 1},
11759 {0x162, 0, 1},
11760 {0x163, 0, 1},
11761 {0x164, 0, 0},
11762 {0x165, 0, 0},
11763 {0x166, 0, 0},
11764 {0x167, 0, 0},
11765 {0x168, 0, 0},
11766 {0x169, 0x2, 1},
11767 {0x16A, 0, 1},
11768 {0x16B, 0, 1},
11769 {0x16C, 0, 1},
11770 {0x16D, 0, 0},
11771 {0x170, 0, 0},
11772 {0x171, 0x77, 0},
11773 {0x172, 0x77, 0},
11774 {0x173, 0x77, 0},
11775 {0x174, 0x77, 0},
11776 {0x175, 0, 0},
11777 {0x176, 0x3, 0},
11778 {0x177, 0x37, 0},
11779 {0x178, 0x3, 0},
11780 {0x179, 0, 0},
11781 {0x17A, 0x21, 0},
11782 {0x17B, 0x21, 0},
11783 {0x17C, 0, 0},
11784 {0x17D, 0xaa, 0},
11785 {0x17E, 0, 0},
11786 {0x17F, 0xaa, 0},
11787 {0x180, 0, 0},
11788 {0x190, 0, 0},
11789 {0x191, 0x77, 0},
11790 {0x192, 0x77, 0},
11791 {0x193, 0x77, 0},
11792 {0x194, 0x77, 0},
11793 {0x195, 0, 0},
11794 {0x196, 0x3, 0},
11795 {0x197, 0x37, 0},
11796 {0x198, 0x3, 0},
11797 {0x199, 0, 0},
11798 {0x19A, 0x21, 0},
11799 {0x19B, 0x21, 0},
11800 {0x19C, 0, 0},
11801 {0x19D, 0xaa, 0},
11802 {0x19E, 0, 0},
11803 {0x19F, 0xaa, 0},
11804 {0x1A0, 0, 0},
11805 {0x1A1, 0x2, 0},
11806 {0x1A2, 0xf, 0},
11807 {0x1A3, 0xf, 0},
11808 {0x1A4, 0, 1},
11809 {0x1A5, 0, 1},
11810 {0x1A6, 0, 1},
11811 {0x1A7, 0x2, 0},
11812 {0x1A8, 0xf, 0},
11813 {0x1A9, 0xf, 0},
11814 {0x1AA, 0, 1},
11815 {0x1AB, 0, 1},
11816 {0x1AC, 0, 1},
11817 {0xFFFF, 0, 0},
11820 static struct radio_20xx_regs regs_2057_rev5[] = {
11821 {0x00, 0, 1},
11822 {0x01, 0x57, 1},
11823 {0x02, 0x20, 1},
11824 {0x03, 0x1f, 0},
11825 {0x04, 0x4, 0},
11826 {0x05, 0x2, 0},
11827 {0x06, 0x1, 0},
11828 {0x07, 0x1, 0},
11829 {0x08, 0x1, 0},
11830 {0x09, 0x69, 0},
11831 {0x0A, 0x66, 0},
11832 {0x0B, 0x6, 0},
11833 {0x0C, 0x18, 0},
11834 {0x0D, 0x3, 0},
11835 {0x0E, 0x20, 0},
11836 {0x0F, 0x20, 0},
11837 {0x10, 0, 0},
11838 {0x11, 0x7c, 0},
11839 {0x12, 0x42, 0},
11840 {0x13, 0xbd, 0},
11841 {0x14, 0x7, 0},
11842 {0x15, 0x87, 0},
11843 {0x16, 0x8, 0},
11844 {0x17, 0x17, 0},
11845 {0x18, 0x7, 0},
11846 {0x19, 0, 0},
11847 {0x1A, 0x2, 0},
11848 {0x1B, 0x13, 0},
11849 {0x1C, 0x3e, 0},
11850 {0x1D, 0x3e, 0},
11851 {0x1E, 0x96, 0},
11852 {0x1F, 0x4, 0},
11853 {0x20, 0, 0},
11854 {0x21, 0, 0},
11855 {0x22, 0x17, 0},
11856 {0x23, 0x6, 1},
11857 {0x24, 0x1, 0},
11858 {0x25, 0x6, 0},
11859 {0x26, 0x4, 0},
11860 {0x27, 0xd, 0},
11861 {0x28, 0xd, 0},
11862 {0x29, 0x30, 0},
11863 {0x2A, 0x32, 0},
11864 {0x2B, 0x8, 0},
11865 {0x2C, 0x1c, 0},
11866 {0x2D, 0x2, 0},
11867 {0x2E, 0x4, 0},
11868 {0x2F, 0x7f, 0},
11869 {0x30, 0x27, 0},
11870 {0x31, 0, 1},
11871 {0x32, 0, 1},
11872 {0x33, 0, 1},
11873 {0x34, 0, 0},
11874 {0x35, 0x20, 0},
11875 {0x36, 0x18, 0},
11876 {0x37, 0x7, 0},
11877 {0x38, 0x66, 0},
11878 {0x39, 0x66, 0},
11879 {0x3C, 0xff, 0},
11880 {0x3D, 0xff, 0},
11881 {0x40, 0x16, 0},
11882 {0x41, 0x7, 0},
11883 {0x45, 0x3, 0},
11884 {0x46, 0x1, 0},
11885 {0x47, 0x7, 0},
11886 {0x4B, 0x66, 0},
11887 {0x4C, 0x66, 0},
11888 {0x4D, 0, 0},
11889 {0x4E, 0x4, 0},
11890 {0x4F, 0xc, 0},
11891 {0x50, 0, 0},
11892 {0x51, 0x70, 1},
11893 {0x56, 0x7, 0},
11894 {0x57, 0, 0},
11895 {0x58, 0, 0},
11896 {0x59, 0x88, 1},
11897 {0x5A, 0, 0},
11898 {0x5B, 0x1f, 0},
11899 {0x5C, 0x20, 1},
11900 {0x5D, 0x1, 0},
11901 {0x5E, 0x30, 0},
11902 {0x5F, 0x70, 0},
11903 {0x60, 0, 0},
11904 {0x61, 0, 0},
11905 {0x62, 0x33, 1},
11906 {0x63, 0xf, 1},
11907 {0x64, 0xf, 1},
11908 {0x65, 0, 0},
11909 {0x66, 0x11, 0},
11910 {0x80, 0x3c, 0},
11911 {0x81, 0x1, 1},
11912 {0x82, 0xa, 0},
11913 {0x85, 0, 0},
11914 {0x86, 0x40, 0},
11915 {0x87, 0x40, 0},
11916 {0x88, 0x88, 0},
11917 {0x89, 0x10, 0},
11918 {0x8A, 0xf0, 0},
11919 {0x8B, 0x10, 0},
11920 {0x8C, 0xf0, 0},
11921 {0x8F, 0x10, 0},
11922 {0x90, 0x55, 0},
11923 {0x91, 0x3f, 1},
11924 {0x92, 0x36, 1},
11925 {0x93, 0, 0},
11926 {0x94, 0, 0},
11927 {0x95, 0, 0},
11928 {0x96, 0x87, 0},
11929 {0x97, 0x11, 0},
11930 {0x98, 0, 0},
11931 {0x99, 0x33, 0},
11932 {0x9A, 0x88, 0},
11933 {0xA1, 0x20, 1},
11934 {0xA2, 0x3f, 0},
11935 {0xA3, 0x44, 0},
11936 {0xA4, 0x8c, 0},
11937 {0xA5, 0x6c, 0},
11938 {0xA6, 0x22, 0},
11939 {0xA7, 0xbe, 0},
11940 {0xA8, 0x55, 0},
11941 {0xAA, 0xc, 0},
11942 {0xAB, 0xaa, 0},
11943 {0xAC, 0x2, 0},
11944 {0xAD, 0, 0},
11945 {0xAE, 0x10, 0},
11946 {0xAF, 0x1, 0},
11947 {0xB0, 0, 0},
11948 {0xB1, 0, 0},
11949 {0xB2, 0x80, 0},
11950 {0xB3, 0x60, 0},
11951 {0xB4, 0x44, 0},
11952 {0xB5, 0x55, 0},
11953 {0xB6, 0x1, 0},
11954 {0xB7, 0x55, 0},
11955 {0xB8, 0x1, 0},
11956 {0xB9, 0x5, 0},
11957 {0xBA, 0x55, 0},
11958 {0xBB, 0x55, 0},
11959 {0xC3, 0, 0},
11960 {0xC4, 0, 0},
11961 {0xC5, 0, 0},
11962 {0xC6, 0, 0},
11963 {0xC7, 0, 0},
11964 {0xC8, 0, 0},
11965 {0xC9, 0, 0},
11966 {0xCA, 0, 0},
11967 {0xCB, 0, 0},
11968 {0xCD, 0, 0},
11969 {0xCE, 0x5e, 0},
11970 {0xCF, 0xc, 0},
11971 {0xD0, 0xc, 0},
11972 {0xD1, 0xc, 0},
11973 {0xD2, 0, 0},
11974 {0xD3, 0x2b, 0},
11975 {0xD4, 0xc, 0},
11976 {0xD5, 0, 0},
11977 {0xD6, 0x70, 1},
11978 {0xDB, 0x7, 0},
11979 {0xDC, 0, 0},
11980 {0xDD, 0, 0},
11981 {0xDE, 0x88, 1},
11982 {0xDF, 0, 0},
11983 {0xE0, 0x1f, 0},
11984 {0xE1, 0x20, 1},
11985 {0xE2, 0x1, 0},
11986 {0xE3, 0x30, 0},
11987 {0xE4, 0x70, 0},
11988 {0xE5, 0, 0},
11989 {0xE6, 0, 0},
11990 {0xE7, 0x33, 0},
11991 {0xE8, 0xf, 1},
11992 {0xE9, 0xf, 1},
11993 {0xEA, 0, 0},
11994 {0xEB, 0x11, 0},
11995 {0x105, 0x3c, 0},
11996 {0x106, 0x1, 1},
11997 {0x107, 0xa, 0},
11998 {0x10A, 0, 0},
11999 {0x10B, 0x40, 0},
12000 {0x10C, 0x40, 0},
12001 {0x10D, 0x88, 0},
12002 {0x10E, 0x10, 0},
12003 {0x10F, 0xf0, 0},
12004 {0x110, 0x10, 0},
12005 {0x111, 0xf0, 0},
12006 {0x114, 0x10, 0},
12007 {0x115, 0x55, 0},
12008 {0x116, 0x3f, 1},
12009 {0x117, 0x36, 1},
12010 {0x118, 0, 0},
12011 {0x119, 0, 0},
12012 {0x11A, 0, 0},
12013 {0x11B, 0x87, 0},
12014 {0x11C, 0x11, 0},
12015 {0x11D, 0, 0},
12016 {0x11E, 0x33, 0},
12017 {0x11F, 0x88, 0},
12018 {0x126, 0x20, 1},
12019 {0x127, 0x3f, 0},
12020 {0x128, 0x44, 0},
12021 {0x129, 0x8c, 0},
12022 {0x12A, 0x6c, 0},
12023 {0x12B, 0x22, 0},
12024 {0x12C, 0xbe, 0},
12025 {0x12D, 0x55, 0},
12026 {0x12F, 0xc, 0},
12027 {0x130, 0xaa, 0},
12028 {0x131, 0x2, 0},
12029 {0x132, 0, 0},
12030 {0x133, 0x10, 0},
12031 {0x134, 0x1, 0},
12032 {0x135, 0, 0},
12033 {0x136, 0, 0},
12034 {0x137, 0x80, 0},
12035 {0x138, 0x60, 0},
12036 {0x139, 0x44, 0},
12037 {0x13A, 0x55, 0},
12038 {0x13B, 0x1, 0},
12039 {0x13C, 0x55, 0},
12040 {0x13D, 0x1, 0},
12041 {0x13E, 0x5, 0},
12042 {0x13F, 0x55, 0},
12043 {0x140, 0x55, 0},
12044 {0x148, 0, 0},
12045 {0x149, 0, 0},
12046 {0x14A, 0, 0},
12047 {0x14B, 0, 0},
12048 {0x14C, 0, 0},
12049 {0x14D, 0, 0},
12050 {0x14E, 0, 0},
12051 {0x14F, 0, 0},
12052 {0x150, 0, 0},
12053 {0x154, 0xc, 0},
12054 {0x155, 0xc, 0},
12055 {0x156, 0xc, 0},
12056 {0x157, 0, 0},
12057 {0x158, 0x2b, 0},
12058 {0x159, 0x84, 0},
12059 {0x15A, 0x15, 0},
12060 {0x15B, 0xf, 0},
12061 {0x15C, 0, 0},
12062 {0x15D, 0, 0},
12063 {0x15E, 0, 1},
12064 {0x15F, 0, 1},
12065 {0x160, 0, 1},
12066 {0x161, 0, 1},
12067 {0x162, 0, 1},
12068 {0x163, 0, 1},
12069 {0x164, 0, 0},
12070 {0x165, 0, 0},
12071 {0x166, 0, 0},
12072 {0x167, 0, 0},
12073 {0x168, 0, 0},
12074 {0x169, 0, 0},
12075 {0x16A, 0, 1},
12076 {0x16B, 0, 1},
12077 {0x16C, 0, 1},
12078 {0x16D, 0, 0},
12079 {0x170, 0, 0},
12080 {0x171, 0x77, 0},
12081 {0x172, 0x77, 0},
12082 {0x173, 0x77, 0},
12083 {0x174, 0x77, 0},
12084 {0x175, 0, 0},
12085 {0x176, 0x3, 0},
12086 {0x177, 0x37, 0},
12087 {0x178, 0x3, 0},
12088 {0x179, 0, 0},
12089 {0x17B, 0x21, 0},
12090 {0x17C, 0, 0},
12091 {0x17D, 0xaa, 0},
12092 {0x17E, 0, 0},
12093 {0x190, 0, 0},
12094 {0x191, 0x77, 0},
12095 {0x192, 0x77, 0},
12096 {0x193, 0x77, 0},
12097 {0x194, 0x77, 0},
12098 {0x195, 0, 0},
12099 {0x196, 0x3, 0},
12100 {0x197, 0x37, 0},
12101 {0x198, 0x3, 0},
12102 {0x199, 0, 0},
12103 {0x19B, 0x21, 0},
12104 {0x19C, 0, 0},
12105 {0x19D, 0xaa, 0},
12106 {0x19E, 0, 0},
12107 {0x1A1, 0x2, 0},
12108 {0x1A2, 0xf, 0},
12109 {0x1A3, 0xf, 0},
12110 {0x1A4, 0, 1},
12111 {0x1A5, 0, 1},
12112 {0x1A6, 0, 1},
12113 {0x1A7, 0x2, 0},
12114 {0x1A8, 0xf, 0},
12115 {0x1A9, 0xf, 0},
12116 {0x1AA, 0, 1},
12117 {0x1AB, 0, 1},
12118 {0x1AC, 0, 1},
12119 {0x1AD, 0x84, 0},
12120 {0x1AE, 0x60, 0},
12121 {0x1AF, 0x47, 0},
12122 {0x1B0, 0x47, 0},
12123 {0x1B1, 0, 0},
12124 {0x1B2, 0, 0},
12125 {0x1B3, 0, 0},
12126 {0x1B4, 0, 0},
12127 {0x1B5, 0, 0},
12128 {0x1B6, 0, 0},
12129 {0x1B7, 0xc, 1},
12130 {0x1B8, 0, 0},
12131 {0x1B9, 0, 0},
12132 {0x1BA, 0, 0},
12133 {0x1BB, 0, 0},
12134 {0x1BC, 0, 0},
12135 {0x1BD, 0, 0},
12136 {0x1BE, 0, 0},
12137 {0x1BF, 0, 0},
12138 {0x1C0, 0, 0},
12139 {0x1C1, 0x1, 1},
12140 {0x1C2, 0x80, 1},
12141 {0x1C3, 0, 0},
12142 {0x1C4, 0, 0},
12143 {0x1C5, 0, 0},
12144 {0x1C6, 0, 0},
12145 {0x1C7, 0, 0},
12146 {0x1C8, 0, 0},
12147 {0x1C9, 0, 0},
12148 {0x1CA, 0, 0},
12149 {0xFFFF, 0, 0}
12152 static struct radio_20xx_regs regs_2057_rev5v1[] = {
12153 {0x00, 0x15, 1},
12154 {0x01, 0x57, 1},
12155 {0x02, 0x20, 1},
12156 {0x03, 0x1f, 0},
12157 {0x04, 0x4, 0},
12158 {0x05, 0x2, 0},
12159 {0x06, 0x1, 0},
12160 {0x07, 0x1, 0},
12161 {0x08, 0x1, 0},
12162 {0x09, 0x69, 0},
12163 {0x0A, 0x66, 0},
12164 {0x0B, 0x6, 0},
12165 {0x0C, 0x18, 0},
12166 {0x0D, 0x3, 0},
12167 {0x0E, 0x20, 0},
12168 {0x0F, 0x20, 0},
12169 {0x10, 0, 0},
12170 {0x11, 0x7c, 0},
12171 {0x12, 0x42, 0},
12172 {0x13, 0xbd, 0},
12173 {0x14, 0x7, 0},
12174 {0x15, 0x87, 0},
12175 {0x16, 0x8, 0},
12176 {0x17, 0x17, 0},
12177 {0x18, 0x7, 0},
12178 {0x19, 0, 0},
12179 {0x1A, 0x2, 0},
12180 {0x1B, 0x13, 0},
12181 {0x1C, 0x3e, 0},
12182 {0x1D, 0x3e, 0},
12183 {0x1E, 0x96, 0},
12184 {0x1F, 0x4, 0},
12185 {0x20, 0, 0},
12186 {0x21, 0, 0},
12187 {0x22, 0x17, 0},
12188 {0x23, 0x6, 1},
12189 {0x24, 0x1, 0},
12190 {0x25, 0x6, 0},
12191 {0x26, 0x4, 0},
12192 {0x27, 0xd, 0},
12193 {0x28, 0xd, 0},
12194 {0x29, 0x30, 0},
12195 {0x2A, 0x32, 0},
12196 {0x2B, 0x8, 0},
12197 {0x2C, 0x1c, 0},
12198 {0x2D, 0x2, 0},
12199 {0x2E, 0x4, 0},
12200 {0x2F, 0x7f, 0},
12201 {0x30, 0x27, 0},
12202 {0x31, 0, 1},
12203 {0x32, 0, 1},
12204 {0x33, 0, 1},
12205 {0x34, 0, 0},
12206 {0x35, 0x20, 0},
12207 {0x36, 0x18, 0},
12208 {0x37, 0x7, 0},
12209 {0x38, 0x66, 0},
12210 {0x39, 0x66, 0},
12211 {0x3C, 0xff, 0},
12212 {0x3D, 0xff, 0},
12213 {0x40, 0x16, 0},
12214 {0x41, 0x7, 0},
12215 {0x45, 0x3, 0},
12216 {0x46, 0x1, 0},
12217 {0x47, 0x7, 0},
12218 {0x4B, 0x66, 0},
12219 {0x4C, 0x66, 0},
12220 {0x4D, 0, 0},
12221 {0x4E, 0x4, 0},
12222 {0x4F, 0xc, 0},
12223 {0x50, 0, 0},
12224 {0x51, 0x70, 1},
12225 {0x56, 0x7, 0},
12226 {0x57, 0, 0},
12227 {0x58, 0, 0},
12228 {0x59, 0x88, 1},
12229 {0x5A, 0, 0},
12230 {0x5B, 0x1f, 0},
12231 {0x5C, 0x20, 1},
12232 {0x5D, 0x1, 0},
12233 {0x5E, 0x30, 0},
12234 {0x5F, 0x70, 0},
12235 {0x60, 0, 0},
12236 {0x61, 0, 0},
12237 {0x62, 0x33, 1},
12238 {0x63, 0xf, 1},
12239 {0x64, 0xf, 1},
12240 {0x65, 0, 0},
12241 {0x66, 0x11, 0},
12242 {0x80, 0x3c, 0},
12243 {0x81, 0x1, 1},
12244 {0x82, 0xa, 0},
12245 {0x85, 0, 0},
12246 {0x86, 0x40, 0},
12247 {0x87, 0x40, 0},
12248 {0x88, 0x88, 0},
12249 {0x89, 0x10, 0},
12250 {0x8A, 0xf0, 0},
12251 {0x8B, 0x10, 0},
12252 {0x8C, 0xf0, 0},
12253 {0x8F, 0x10, 0},
12254 {0x90, 0x55, 0},
12255 {0x91, 0x3f, 1},
12256 {0x92, 0x36, 1},
12257 {0x93, 0, 0},
12258 {0x94, 0, 0},
12259 {0x95, 0, 0},
12260 {0x96, 0x87, 0},
12261 {0x97, 0x11, 0},
12262 {0x98, 0, 0},
12263 {0x99, 0x33, 0},
12264 {0x9A, 0x88, 0},
12265 {0xA1, 0x20, 1},
12266 {0xA2, 0x3f, 0},
12267 {0xA3, 0x44, 0},
12268 {0xA4, 0x8c, 0},
12269 {0xA5, 0x6c, 0},
12270 {0xA6, 0x22, 0},
12271 {0xA7, 0xbe, 0},
12272 {0xA8, 0x55, 0},
12273 {0xAA, 0xc, 0},
12274 {0xAB, 0xaa, 0},
12275 {0xAC, 0x2, 0},
12276 {0xAD, 0, 0},
12277 {0xAE, 0x10, 0},
12278 {0xAF, 0x1, 0},
12279 {0xB0, 0, 0},
12280 {0xB1, 0, 0},
12281 {0xB2, 0x80, 0},
12282 {0xB3, 0x60, 0},
12283 {0xB4, 0x44, 0},
12284 {0xB5, 0x55, 0},
12285 {0xB6, 0x1, 0},
12286 {0xB7, 0x55, 0},
12287 {0xB8, 0x1, 0},
12288 {0xB9, 0x5, 0},
12289 {0xBA, 0x55, 0},
12290 {0xBB, 0x55, 0},
12291 {0xC3, 0, 0},
12292 {0xC4, 0, 0},
12293 {0xC5, 0, 0},
12294 {0xC6, 0, 0},
12295 {0xC7, 0, 0},
12296 {0xC8, 0, 0},
12297 {0xC9, 0x1, 1},
12298 {0xCA, 0, 0},
12299 {0xCB, 0, 0},
12300 {0xCD, 0, 0},
12301 {0xCE, 0x5e, 0},
12302 {0xCF, 0xc, 0},
12303 {0xD0, 0xc, 0},
12304 {0xD1, 0xc, 0},
12305 {0xD2, 0, 0},
12306 {0xD3, 0x2b, 0},
12307 {0xD4, 0xc, 0},
12308 {0xD5, 0, 0},
12309 {0xD6, 0x70, 1},
12310 {0xDB, 0x7, 0},
12311 {0xDC, 0, 0},
12312 {0xDD, 0, 0},
12313 {0xDE, 0x88, 1},
12314 {0xDF, 0, 0},
12315 {0xE0, 0x1f, 0},
12316 {0xE1, 0x20, 1},
12317 {0xE2, 0x1, 0},
12318 {0xE3, 0x30, 0},
12319 {0xE4, 0x70, 0},
12320 {0xE5, 0, 0},
12321 {0xE6, 0, 0},
12322 {0xE7, 0x33, 0},
12323 {0xE8, 0xf, 1},
12324 {0xE9, 0xf, 1},
12325 {0xEA, 0, 0},
12326 {0xEB, 0x11, 0},
12327 {0x105, 0x3c, 0},
12328 {0x106, 0x1, 1},
12329 {0x107, 0xa, 0},
12330 {0x10A, 0, 0},
12331 {0x10B, 0x40, 0},
12332 {0x10C, 0x40, 0},
12333 {0x10D, 0x88, 0},
12334 {0x10E, 0x10, 0},
12335 {0x10F, 0xf0, 0},
12336 {0x110, 0x10, 0},
12337 {0x111, 0xf0, 0},
12338 {0x114, 0x10, 0},
12339 {0x115, 0x55, 0},
12340 {0x116, 0x3f, 1},
12341 {0x117, 0x36, 1},
12342 {0x118, 0, 0},
12343 {0x119, 0, 0},
12344 {0x11A, 0, 0},
12345 {0x11B, 0x87, 0},
12346 {0x11C, 0x11, 0},
12347 {0x11D, 0, 0},
12348 {0x11E, 0x33, 0},
12349 {0x11F, 0x88, 0},
12350 {0x126, 0x20, 1},
12351 {0x127, 0x3f, 0},
12352 {0x128, 0x44, 0},
12353 {0x129, 0x8c, 0},
12354 {0x12A, 0x6c, 0},
12355 {0x12B, 0x22, 0},
12356 {0x12C, 0xbe, 0},
12357 {0x12D, 0x55, 0},
12358 {0x12F, 0xc, 0},
12359 {0x130, 0xaa, 0},
12360 {0x131, 0x2, 0},
12361 {0x132, 0, 0},
12362 {0x133, 0x10, 0},
12363 {0x134, 0x1, 0},
12364 {0x135, 0, 0},
12365 {0x136, 0, 0},
12366 {0x137, 0x80, 0},
12367 {0x138, 0x60, 0},
12368 {0x139, 0x44, 0},
12369 {0x13A, 0x55, 0},
12370 {0x13B, 0x1, 0},
12371 {0x13C, 0x55, 0},
12372 {0x13D, 0x1, 0},
12373 {0x13E, 0x5, 0},
12374 {0x13F, 0x55, 0},
12375 {0x140, 0x55, 0},
12376 {0x148, 0, 0},
12377 {0x149, 0, 0},
12378 {0x14A, 0, 0},
12379 {0x14B, 0, 0},
12380 {0x14C, 0, 0},
12381 {0x14D, 0, 0},
12382 {0x14E, 0x1, 1},
12383 {0x14F, 0, 0},
12384 {0x150, 0, 0},
12385 {0x154, 0xc, 0},
12386 {0x155, 0xc, 0},
12387 {0x156, 0xc, 0},
12388 {0x157, 0, 0},
12389 {0x158, 0x2b, 0},
12390 {0x159, 0x84, 0},
12391 {0x15A, 0x15, 0},
12392 {0x15B, 0xf, 0},
12393 {0x15C, 0, 0},
12394 {0x15D, 0, 0},
12395 {0x15E, 0, 1},
12396 {0x15F, 0, 1},
12397 {0x160, 0, 1},
12398 {0x161, 0, 1},
12399 {0x162, 0, 1},
12400 {0x163, 0, 1},
12401 {0x164, 0, 0},
12402 {0x165, 0, 0},
12403 {0x166, 0, 0},
12404 {0x167, 0, 0},
12405 {0x168, 0, 0},
12406 {0x169, 0, 0},
12407 {0x16A, 0, 1},
12408 {0x16B, 0, 1},
12409 {0x16C, 0, 1},
12410 {0x16D, 0, 0},
12411 {0x170, 0, 0},
12412 {0x171, 0x77, 0},
12413 {0x172, 0x77, 0},
12414 {0x173, 0x77, 0},
12415 {0x174, 0x77, 0},
12416 {0x175, 0, 0},
12417 {0x176, 0x3, 0},
12418 {0x177, 0x37, 0},
12419 {0x178, 0x3, 0},
12420 {0x179, 0, 0},
12421 {0x17B, 0x21, 0},
12422 {0x17C, 0, 0},
12423 {0x17D, 0xaa, 0},
12424 {0x17E, 0, 0},
12425 {0x190, 0, 0},
12426 {0x191, 0x77, 0},
12427 {0x192, 0x77, 0},
12428 {0x193, 0x77, 0},
12429 {0x194, 0x77, 0},
12430 {0x195, 0, 0},
12431 {0x196, 0x3, 0},
12432 {0x197, 0x37, 0},
12433 {0x198, 0x3, 0},
12434 {0x199, 0, 0},
12435 {0x19B, 0x21, 0},
12436 {0x19C, 0, 0},
12437 {0x19D, 0xaa, 0},
12438 {0x19E, 0, 0},
12439 {0x1A1, 0x2, 0},
12440 {0x1A2, 0xf, 0},
12441 {0x1A3, 0xf, 0},
12442 {0x1A4, 0, 1},
12443 {0x1A5, 0, 1},
12444 {0x1A6, 0, 1},
12445 {0x1A7, 0x2, 0},
12446 {0x1A8, 0xf, 0},
12447 {0x1A9, 0xf, 0},
12448 {0x1AA, 0, 1},
12449 {0x1AB, 0, 1},
12450 {0x1AC, 0, 1},
12451 {0x1AD, 0x84, 0},
12452 {0x1AE, 0x60, 0},
12453 {0x1AF, 0x47, 0},
12454 {0x1B0, 0x47, 0},
12455 {0x1B1, 0, 0},
12456 {0x1B2, 0, 0},
12457 {0x1B3, 0, 0},
12458 {0x1B4, 0, 0},
12459 {0x1B5, 0, 0},
12460 {0x1B6, 0, 0},
12461 {0x1B7, 0xc, 1},
12462 {0x1B8, 0, 0},
12463 {0x1B9, 0, 0},
12464 {0x1BA, 0, 0},
12465 {0x1BB, 0, 0},
12466 {0x1BC, 0, 0},
12467 {0x1BD, 0, 0},
12468 {0x1BE, 0, 0},
12469 {0x1BF, 0, 0},
12470 {0x1C0, 0, 0},
12471 {0x1C1, 0x1, 1},
12472 {0x1C2, 0x80, 1},
12473 {0x1C3, 0, 0},
12474 {0x1C4, 0, 0},
12475 {0x1C5, 0, 0},
12476 {0x1C6, 0, 0},
12477 {0x1C7, 0, 0},
12478 {0x1C8, 0, 0},
12479 {0x1C9, 0, 0},
12480 {0x1CA, 0, 0},
12481 {0xFFFF, 0, 0}
12484 static struct radio_20xx_regs regs_2057_rev7[] = {
12485 {0x00, 0, 1},
12486 {0x01, 0x57, 1},
12487 {0x02, 0x20, 1},
12488 {0x03, 0x1f, 0},
12489 {0x04, 0x4, 0},
12490 {0x05, 0x2, 0},
12491 {0x06, 0x1, 0},
12492 {0x07, 0x1, 0},
12493 {0x08, 0x1, 0},
12494 {0x09, 0x69, 0},
12495 {0x0A, 0x66, 0},
12496 {0x0B, 0x6, 0},
12497 {0x0C, 0x18, 0},
12498 {0x0D, 0x3, 0},
12499 {0x0E, 0x20, 0},
12500 {0x0F, 0x20, 0},
12501 {0x10, 0, 0},
12502 {0x11, 0x7c, 0},
12503 {0x12, 0x42, 0},
12504 {0x13, 0xbd, 0},
12505 {0x14, 0x7, 0},
12506 {0x15, 0x87, 0},
12507 {0x16, 0x8, 0},
12508 {0x17, 0x17, 0},
12509 {0x18, 0x7, 0},
12510 {0x19, 0, 0},
12511 {0x1A, 0x2, 0},
12512 {0x1B, 0x13, 0},
12513 {0x1C, 0x3e, 0},
12514 {0x1D, 0x3e, 0},
12515 {0x1E, 0x96, 0},
12516 {0x1F, 0x4, 0},
12517 {0x20, 0, 0},
12518 {0x21, 0, 0},
12519 {0x22, 0x17, 0},
12520 {0x23, 0x6, 0},
12521 {0x24, 0x1, 0},
12522 {0x25, 0x6, 0},
12523 {0x26, 0x4, 0},
12524 {0x27, 0xd, 0},
12525 {0x28, 0xd, 0},
12526 {0x29, 0x30, 0},
12527 {0x2A, 0x32, 0},
12528 {0x2B, 0x8, 0},
12529 {0x2C, 0x1c, 0},
12530 {0x2D, 0x2, 0},
12531 {0x2E, 0x4, 0},
12532 {0x2F, 0x7f, 0},
12533 {0x30, 0x27, 0},
12534 {0x31, 0, 1},
12535 {0x32, 0, 1},
12536 {0x33, 0, 1},
12537 {0x34, 0, 0},
12538 {0x35, 0x20, 0},
12539 {0x36, 0x18, 0},
12540 {0x37, 0x7, 0},
12541 {0x38, 0x66, 0},
12542 {0x39, 0x66, 0},
12543 {0x3A, 0x66, 0},
12544 {0x3B, 0x66, 0},
12545 {0x3C, 0xff, 0},
12546 {0x3D, 0xff, 0},
12547 {0x3E, 0xff, 0},
12548 {0x3F, 0xff, 0},
12549 {0x40, 0x16, 0},
12550 {0x41, 0x7, 0},
12551 {0x42, 0x19, 0},
12552 {0x43, 0x7, 0},
12553 {0x44, 0x6, 0},
12554 {0x45, 0x3, 0},
12555 {0x46, 0x1, 0},
12556 {0x47, 0x7, 0},
12557 {0x48, 0x33, 0},
12558 {0x49, 0x5, 0},
12559 {0x4A, 0x77, 0},
12560 {0x4B, 0x66, 0},
12561 {0x4C, 0x66, 0},
12562 {0x4D, 0, 0},
12563 {0x4E, 0x4, 0},
12564 {0x4F, 0xc, 0},
12565 {0x50, 0, 0},
12566 {0x51, 0x70, 1},
12567 {0x56, 0x7, 0},
12568 {0x57, 0, 0},
12569 {0x58, 0, 0},
12570 {0x59, 0x88, 1},
12571 {0x5A, 0, 0},
12572 {0x5B, 0x1f, 0},
12573 {0x5C, 0x20, 1},
12574 {0x5D, 0x1, 0},
12575 {0x5E, 0x30, 0},
12576 {0x5F, 0x70, 0},
12577 {0x60, 0, 0},
12578 {0x61, 0, 0},
12579 {0x62, 0x33, 1},
12580 {0x63, 0xf, 1},
12581 {0x64, 0x13, 1},
12582 {0x65, 0, 0},
12583 {0x66, 0xee, 1},
12584 {0x69, 0, 0},
12585 {0x6A, 0x7e, 0},
12586 {0x6B, 0x3f, 0},
12587 {0x6C, 0x7f, 0},
12588 {0x6D, 0x78, 0},
12589 {0x6E, 0x58, 1},
12590 {0x6F, 0x88, 0},
12591 {0x70, 0x8, 0},
12592 {0x71, 0xf, 0},
12593 {0x72, 0xbc, 0},
12594 {0x73, 0x8, 0},
12595 {0x74, 0x60, 0},
12596 {0x75, 0x13, 1},
12597 {0x76, 0x70, 0},
12598 {0x77, 0, 0},
12599 {0x78, 0, 0},
12600 {0x79, 0, 0},
12601 {0x7A, 0x33, 0},
12602 {0x7B, 0x13, 1},
12603 {0x7C, 0x14, 1},
12604 {0x7D, 0xee, 1},
12605 {0x80, 0x3c, 0},
12606 {0x81, 0x1, 1},
12607 {0x82, 0xa, 0},
12608 {0x83, 0x9d, 0},
12609 {0x84, 0xa, 0},
12610 {0x85, 0, 0},
12611 {0x86, 0x40, 0},
12612 {0x87, 0x40, 0},
12613 {0x88, 0x88, 0},
12614 {0x89, 0x10, 0},
12615 {0x8A, 0xf0, 0},
12616 {0x8B, 0x10, 0},
12617 {0x8C, 0xf0, 0},
12618 {0x8D, 0, 0},
12619 {0x8E, 0, 0},
12620 {0x8F, 0x10, 0},
12621 {0x90, 0x55, 0},
12622 {0x91, 0x3f, 1},
12623 {0x92, 0x36, 1},
12624 {0x93, 0, 0},
12625 {0x94, 0, 0},
12626 {0x95, 0, 0},
12627 {0x96, 0x87, 0},
12628 {0x97, 0x11, 0},
12629 {0x98, 0, 0},
12630 {0x99, 0x33, 0},
12631 {0x9A, 0x88, 0},
12632 {0x9B, 0, 0},
12633 {0x9C, 0x87, 0},
12634 {0x9D, 0x11, 0},
12635 {0x9E, 0, 0},
12636 {0x9F, 0x33, 0},
12637 {0xA0, 0x88, 0},
12638 {0xA1, 0x20, 1},
12639 {0xA2, 0x3f, 0},
12640 {0xA3, 0x44, 0},
12641 {0xA4, 0x8c, 0},
12642 {0xA5, 0x6c, 0},
12643 {0xA6, 0x22, 0},
12644 {0xA7, 0xbe, 0},
12645 {0xA8, 0x55, 0},
12646 {0xAA, 0xc, 0},
12647 {0xAB, 0xaa, 0},
12648 {0xAC, 0x2, 0},
12649 {0xAD, 0, 0},
12650 {0xAE, 0x10, 0},
12651 {0xAF, 0x1, 0},
12652 {0xB0, 0, 0},
12653 {0xB1, 0, 0},
12654 {0xB2, 0x80, 0},
12655 {0xB3, 0x60, 0},
12656 {0xB4, 0x44, 0},
12657 {0xB5, 0x55, 0},
12658 {0xB6, 0x1, 0},
12659 {0xB7, 0x55, 0},
12660 {0xB8, 0x1, 0},
12661 {0xB9, 0x5, 0},
12662 {0xBA, 0x55, 0},
12663 {0xBB, 0x55, 0},
12664 {0xC1, 0, 0},
12665 {0xC2, 0, 0},
12666 {0xC3, 0, 0},
12667 {0xC4, 0, 0},
12668 {0xC5, 0, 0},
12669 {0xC6, 0, 0},
12670 {0xC7, 0, 0},
12671 {0xC8, 0, 0},
12672 {0xC9, 0, 0},
12673 {0xCA, 0, 0},
12674 {0xCB, 0, 0},
12675 {0xCC, 0, 0},
12676 {0xCD, 0, 0},
12677 {0xCE, 0x5e, 0},
12678 {0xCF, 0xc, 0},
12679 {0xD0, 0xc, 0},
12680 {0xD1, 0xc, 0},
12681 {0xD2, 0, 0},
12682 {0xD3, 0x2b, 0},
12683 {0xD4, 0xc, 0},
12684 {0xD5, 0, 0},
12685 {0xD6, 0x70, 1},
12686 {0xDB, 0x7, 0},
12687 {0xDC, 0, 0},
12688 {0xDD, 0, 0},
12689 {0xDE, 0x88, 1},
12690 {0xDF, 0, 0},
12691 {0xE0, 0x1f, 0},
12692 {0xE1, 0x20, 1},
12693 {0xE2, 0x1, 0},
12694 {0xE3, 0x30, 0},
12695 {0xE4, 0x70, 0},
12696 {0xE5, 0, 0},
12697 {0xE6, 0, 0},
12698 {0xE7, 0x33, 0},
12699 {0xE8, 0xf, 1},
12700 {0xE9, 0x13, 1},
12701 {0xEA, 0, 0},
12702 {0xEB, 0xee, 1},
12703 {0xEE, 0, 0},
12704 {0xEF, 0x7e, 0},
12705 {0xF0, 0x3f, 0},
12706 {0xF1, 0x7f, 0},
12707 {0xF2, 0x78, 0},
12708 {0xF3, 0x58, 1},
12709 {0xF4, 0x88, 0},
12710 {0xF5, 0x8, 0},
12711 {0xF6, 0xf, 0},
12712 {0xF7, 0xbc, 0},
12713 {0xF8, 0x8, 0},
12714 {0xF9, 0x60, 0},
12715 {0xFA, 0x13, 1},
12716 {0xFB, 0x70, 0},
12717 {0xFC, 0, 0},
12718 {0xFD, 0, 0},
12719 {0xFE, 0, 0},
12720 {0xFF, 0x33, 0},
12721 {0x100, 0x13, 1},
12722 {0x101, 0x14, 1},
12723 {0x102, 0xee, 1},
12724 {0x105, 0x3c, 0},
12725 {0x106, 0x1, 1},
12726 {0x107, 0xa, 0},
12727 {0x108, 0x9d, 0},
12728 {0x109, 0xa, 0},
12729 {0x10A, 0, 0},
12730 {0x10B, 0x40, 0},
12731 {0x10C, 0x40, 0},
12732 {0x10D, 0x88, 0},
12733 {0x10E, 0x10, 0},
12734 {0x10F, 0xf0, 0},
12735 {0x110, 0x10, 0},
12736 {0x111, 0xf0, 0},
12737 {0x112, 0, 0},
12738 {0x113, 0, 0},
12739 {0x114, 0x10, 0},
12740 {0x115, 0x55, 0},
12741 {0x116, 0x3f, 1},
12742 {0x117, 0x36, 1},
12743 {0x118, 0, 0},
12744 {0x119, 0, 0},
12745 {0x11A, 0, 0},
12746 {0x11B, 0x87, 0},
12747 {0x11C, 0x11, 0},
12748 {0x11D, 0, 0},
12749 {0x11E, 0x33, 0},
12750 {0x11F, 0x88, 0},
12751 {0x120, 0, 0},
12752 {0x121, 0x87, 0},
12753 {0x122, 0x11, 0},
12754 {0x123, 0, 0},
12755 {0x124, 0x33, 0},
12756 {0x125, 0x88, 0},
12757 {0x126, 0x20, 1},
12758 {0x127, 0x3f, 0},
12759 {0x128, 0x44, 0},
12760 {0x129, 0x8c, 0},
12761 {0x12A, 0x6c, 0},
12762 {0x12B, 0x22, 0},
12763 {0x12C, 0xbe, 0},
12764 {0x12D, 0x55, 0},
12765 {0x12F, 0xc, 0},
12766 {0x130, 0xaa, 0},
12767 {0x131, 0x2, 0},
12768 {0x132, 0, 0},
12769 {0x133, 0x10, 0},
12770 {0x134, 0x1, 0},
12771 {0x135, 0, 0},
12772 {0x136, 0, 0},
12773 {0x137, 0x80, 0},
12774 {0x138, 0x60, 0},
12775 {0x139, 0x44, 0},
12776 {0x13A, 0x55, 0},
12777 {0x13B, 0x1, 0},
12778 {0x13C, 0x55, 0},
12779 {0x13D, 0x1, 0},
12780 {0x13E, 0x5, 0},
12781 {0x13F, 0x55, 0},
12782 {0x140, 0x55, 0},
12783 {0x146, 0, 0},
12784 {0x147, 0, 0},
12785 {0x148, 0, 0},
12786 {0x149, 0, 0},
12787 {0x14A, 0, 0},
12788 {0x14B, 0, 0},
12789 {0x14C, 0, 0},
12790 {0x14D, 0, 0},
12791 {0x14E, 0, 0},
12792 {0x14F, 0, 0},
12793 {0x150, 0, 0},
12794 {0x151, 0, 0},
12795 {0x154, 0xc, 0},
12796 {0x155, 0xc, 0},
12797 {0x156, 0xc, 0},
12798 {0x157, 0, 0},
12799 {0x158, 0x2b, 0},
12800 {0x159, 0x84, 0},
12801 {0x15A, 0x15, 0},
12802 {0x15B, 0xf, 0},
12803 {0x15C, 0, 0},
12804 {0x15D, 0, 0},
12805 {0x15E, 0, 1},
12806 {0x15F, 0, 1},
12807 {0x160, 0, 1},
12808 {0x161, 0, 1},
12809 {0x162, 0, 1},
12810 {0x163, 0, 1},
12811 {0x164, 0, 0},
12812 {0x165, 0, 0},
12813 {0x166, 0, 0},
12814 {0x167, 0, 0},
12815 {0x168, 0, 0},
12816 {0x169, 0, 0},
12817 {0x16A, 0, 1},
12818 {0x16B, 0, 1},
12819 {0x16C, 0, 1},
12820 {0x16D, 0, 0},
12821 {0x170, 0, 0},
12822 {0x171, 0x77, 0},
12823 {0x172, 0x77, 0},
12824 {0x173, 0x77, 0},
12825 {0x174, 0x77, 0},
12826 {0x175, 0, 0},
12827 {0x176, 0x3, 0},
12828 {0x177, 0x37, 0},
12829 {0x178, 0x3, 0},
12830 {0x179, 0, 0},
12831 {0x17A, 0x21, 0},
12832 {0x17B, 0x21, 0},
12833 {0x17C, 0, 0},
12834 {0x17D, 0xaa, 0},
12835 {0x17E, 0, 0},
12836 {0x17F, 0xaa, 0},
12837 {0x180, 0, 0},
12838 {0x190, 0, 0},
12839 {0x191, 0x77, 0},
12840 {0x192, 0x77, 0},
12841 {0x193, 0x77, 0},
12842 {0x194, 0x77, 0},
12843 {0x195, 0, 0},
12844 {0x196, 0x3, 0},
12845 {0x197, 0x37, 0},
12846 {0x198, 0x3, 0},
12847 {0x199, 0, 0},
12848 {0x19A, 0x21, 0},
12849 {0x19B, 0x21, 0},
12850 {0x19C, 0, 0},
12851 {0x19D, 0xaa, 0},
12852 {0x19E, 0, 0},
12853 {0x19F, 0xaa, 0},
12854 {0x1A0, 0, 0},
12855 {0x1A1, 0x2, 0},
12856 {0x1A2, 0xf, 0},
12857 {0x1A3, 0xf, 0},
12858 {0x1A4, 0, 1},
12859 {0x1A5, 0, 1},
12860 {0x1A6, 0, 1},
12861 {0x1A7, 0x2, 0},
12862 {0x1A8, 0xf, 0},
12863 {0x1A9, 0xf, 0},
12864 {0x1AA, 0, 1},
12865 {0x1AB, 0, 1},
12866 {0x1AC, 0, 1},
12867 {0x1AD, 0x84, 0},
12868 {0x1AE, 0x60, 0},
12869 {0x1AF, 0x47, 0},
12870 {0x1B0, 0x47, 0},
12871 {0x1B1, 0, 0},
12872 {0x1B2, 0, 0},
12873 {0x1B3, 0, 0},
12874 {0x1B4, 0, 0},
12875 {0x1B5, 0, 0},
12876 {0x1B6, 0, 0},
12877 {0x1B7, 0x5, 1},
12878 {0x1B8, 0, 0},
12879 {0x1B9, 0, 0},
12880 {0x1BA, 0, 0},
12881 {0x1BB, 0, 0},
12882 {0x1BC, 0, 0},
12883 {0x1BD, 0, 0},
12884 {0x1BE, 0, 0},
12885 {0x1BF, 0, 0},
12886 {0x1C0, 0, 0},
12887 {0x1C1, 0, 0},
12888 {0x1C2, 0xa0, 1},
12889 {0x1C3, 0, 0},
12890 {0x1C4, 0, 0},
12891 {0x1C5, 0, 0},
12892 {0x1C6, 0, 0},
12893 {0x1C7, 0, 0},
12894 {0x1C8, 0, 0},
12895 {0x1C9, 0, 0},
12896 {0x1CA, 0, 0},
12897 {0xFFFF, 0, 0}
12900 static struct radio_20xx_regs regs_2057_rev8[] = {
12901 {0x00, 0x8, 1},
12902 {0x01, 0x57, 1},
12903 {0x02, 0x20, 1},
12904 {0x03, 0x1f, 0},
12905 {0x04, 0x4, 0},
12906 {0x05, 0x2, 0},
12907 {0x06, 0x1, 0},
12908 {0x07, 0x1, 0},
12909 {0x08, 0x1, 0},
12910 {0x09, 0x69, 0},
12911 {0x0A, 0x66, 0},
12912 {0x0B, 0x6, 0},
12913 {0x0C, 0x18, 0},
12914 {0x0D, 0x3, 0},
12915 {0x0E, 0x20, 0},
12916 {0x0F, 0x20, 0},
12917 {0x10, 0, 0},
12918 {0x11, 0x7c, 0},
12919 {0x12, 0x42, 0},
12920 {0x13, 0xbd, 0},
12921 {0x14, 0x7, 0},
12922 {0x15, 0x87, 0},
12923 {0x16, 0x8, 0},
12924 {0x17, 0x17, 0},
12925 {0x18, 0x7, 0},
12926 {0x19, 0, 0},
12927 {0x1A, 0x2, 0},
12928 {0x1B, 0x13, 0},
12929 {0x1C, 0x3e, 0},
12930 {0x1D, 0x3e, 0},
12931 {0x1E, 0x96, 0},
12932 {0x1F, 0x4, 0},
12933 {0x20, 0, 0},
12934 {0x21, 0, 0},
12935 {0x22, 0x17, 0},
12936 {0x23, 0x6, 0},
12937 {0x24, 0x1, 0},
12938 {0x25, 0x6, 0},
12939 {0x26, 0x4, 0},
12940 {0x27, 0xd, 0},
12941 {0x28, 0xd, 0},
12942 {0x29, 0x30, 0},
12943 {0x2A, 0x32, 0},
12944 {0x2B, 0x8, 0},
12945 {0x2C, 0x1c, 0},
12946 {0x2D, 0x2, 0},
12947 {0x2E, 0x4, 0},
12948 {0x2F, 0x7f, 0},
12949 {0x30, 0x27, 0},
12950 {0x31, 0, 1},
12951 {0x32, 0, 1},
12952 {0x33, 0, 1},
12953 {0x34, 0, 0},
12954 {0x35, 0x20, 0},
12955 {0x36, 0x18, 0},
12956 {0x37, 0x7, 0},
12957 {0x38, 0x66, 0},
12958 {0x39, 0x66, 0},
12959 {0x3A, 0x66, 0},
12960 {0x3B, 0x66, 0},
12961 {0x3C, 0xff, 0},
12962 {0x3D, 0xff, 0},
12963 {0x3E, 0xff, 0},
12964 {0x3F, 0xff, 0},
12965 {0x40, 0x16, 0},
12966 {0x41, 0x7, 0},
12967 {0x42, 0x19, 0},
12968 {0x43, 0x7, 0},
12969 {0x44, 0x6, 0},
12970 {0x45, 0x3, 0},
12971 {0x46, 0x1, 0},
12972 {0x47, 0x7, 0},
12973 {0x48, 0x33, 0},
12974 {0x49, 0x5, 0},
12975 {0x4A, 0x77, 0},
12976 {0x4B, 0x66, 0},
12977 {0x4C, 0x66, 0},
12978 {0x4D, 0, 0},
12979 {0x4E, 0x4, 0},
12980 {0x4F, 0xc, 0},
12981 {0x50, 0, 0},
12982 {0x51, 0x70, 1},
12983 {0x56, 0x7, 0},
12984 {0x57, 0, 0},
12985 {0x58, 0, 0},
12986 {0x59, 0x88, 1},
12987 {0x5A, 0, 0},
12988 {0x5B, 0x1f, 0},
12989 {0x5C, 0x20, 1},
12990 {0x5D, 0x1, 0},
12991 {0x5E, 0x30, 0},
12992 {0x5F, 0x70, 0},
12993 {0x60, 0, 0},
12994 {0x61, 0, 0},
12995 {0x62, 0x33, 1},
12996 {0x63, 0xf, 1},
12997 {0x64, 0xf, 1},
12998 {0x65, 0, 0},
12999 {0x66, 0x11, 0},
13000 {0x69, 0, 0},
13001 {0x6A, 0x7e, 0},
13002 {0x6B, 0x3f, 0},
13003 {0x6C, 0x7f, 0},
13004 {0x6D, 0x78, 0},
13005 {0x6E, 0x58, 1},
13006 {0x6F, 0x88, 0},
13007 {0x70, 0x8, 0},
13008 {0x71, 0xf, 0},
13009 {0x72, 0xbc, 0},
13010 {0x73, 0x8, 0},
13011 {0x74, 0x60, 0},
13012 {0x75, 0x13, 1},
13013 {0x76, 0x70, 0},
13014 {0x77, 0, 0},
13015 {0x78, 0, 0},
13016 {0x79, 0, 0},
13017 {0x7A, 0x33, 0},
13018 {0x7B, 0x13, 1},
13019 {0x7C, 0xf, 1},
13020 {0x7D, 0xee, 1},
13021 {0x80, 0x3c, 0},
13022 {0x81, 0x1, 1},
13023 {0x82, 0xa, 0},
13024 {0x83, 0x9d, 0},
13025 {0x84, 0xa, 0},
13026 {0x85, 0, 0},
13027 {0x86, 0x40, 0},
13028 {0x87, 0x40, 0},
13029 {0x88, 0x88, 0},
13030 {0x89, 0x10, 0},
13031 {0x8A, 0xf0, 0},
13032 {0x8B, 0x10, 0},
13033 {0x8C, 0xf0, 0},
13034 {0x8D, 0, 0},
13035 {0x8E, 0, 0},
13036 {0x8F, 0x10, 0},
13037 {0x90, 0x55, 0},
13038 {0x91, 0x3f, 1},
13039 {0x92, 0x36, 1},
13040 {0x93, 0, 0},
13041 {0x94, 0, 0},
13042 {0x95, 0, 0},
13043 {0x96, 0x87, 0},
13044 {0x97, 0x11, 0},
13045 {0x98, 0, 0},
13046 {0x99, 0x33, 0},
13047 {0x9A, 0x88, 0},
13048 {0x9B, 0, 0},
13049 {0x9C, 0x87, 0},
13050 {0x9D, 0x11, 0},
13051 {0x9E, 0, 0},
13052 {0x9F, 0x33, 0},
13053 {0xA0, 0x88, 0},
13054 {0xA1, 0x20, 1},
13055 {0xA2, 0x3f, 0},
13056 {0xA3, 0x44, 0},
13057 {0xA4, 0x8c, 0},
13058 {0xA5, 0x6c, 0},
13059 {0xA6, 0x22, 0},
13060 {0xA7, 0xbe, 0},
13061 {0xA8, 0x55, 0},
13062 {0xAA, 0xc, 0},
13063 {0xAB, 0xaa, 0},
13064 {0xAC, 0x2, 0},
13065 {0xAD, 0, 0},
13066 {0xAE, 0x10, 0},
13067 {0xAF, 0x1, 0},
13068 {0xB0, 0, 0},
13069 {0xB1, 0, 0},
13070 {0xB2, 0x80, 0},
13071 {0xB3, 0x60, 0},
13072 {0xB4, 0x44, 0},
13073 {0xB5, 0x55, 0},
13074 {0xB6, 0x1, 0},
13075 {0xB7, 0x55, 0},
13076 {0xB8, 0x1, 0},
13077 {0xB9, 0x5, 0},
13078 {0xBA, 0x55, 0},
13079 {0xBB, 0x55, 0},
13080 {0xC1, 0, 0},
13081 {0xC2, 0, 0},
13082 {0xC3, 0, 0},
13083 {0xC4, 0, 0},
13084 {0xC5, 0, 0},
13085 {0xC6, 0, 0},
13086 {0xC7, 0, 0},
13087 {0xC8, 0, 0},
13088 {0xC9, 0x1, 1},
13089 {0xCA, 0, 0},
13090 {0xCB, 0, 0},
13091 {0xCC, 0, 0},
13092 {0xCD, 0, 0},
13093 {0xCE, 0x5e, 0},
13094 {0xCF, 0xc, 0},
13095 {0xD0, 0xc, 0},
13096 {0xD1, 0xc, 0},
13097 {0xD2, 0, 0},
13098 {0xD3, 0x2b, 0},
13099 {0xD4, 0xc, 0},
13100 {0xD5, 0, 0},
13101 {0xD6, 0x70, 1},
13102 {0xDB, 0x7, 0},
13103 {0xDC, 0, 0},
13104 {0xDD, 0, 0},
13105 {0xDE, 0x88, 1},
13106 {0xDF, 0, 0},
13107 {0xE0, 0x1f, 0},
13108 {0xE1, 0x20, 1},
13109 {0xE2, 0x1, 0},
13110 {0xE3, 0x30, 0},
13111 {0xE4, 0x70, 0},
13112 {0xE5, 0, 0},
13113 {0xE6, 0, 0},
13114 {0xE7, 0x33, 0},
13115 {0xE8, 0xf, 1},
13116 {0xE9, 0xf, 1},
13117 {0xEA, 0, 0},
13118 {0xEB, 0x11, 0},
13119 {0xEE, 0, 0},
13120 {0xEF, 0x7e, 0},
13121 {0xF0, 0x3f, 0},
13122 {0xF1, 0x7f, 0},
13123 {0xF2, 0x78, 0},
13124 {0xF3, 0x58, 1},
13125 {0xF4, 0x88, 0},
13126 {0xF5, 0x8, 0},
13127 {0xF6, 0xf, 0},
13128 {0xF7, 0xbc, 0},
13129 {0xF8, 0x8, 0},
13130 {0xF9, 0x60, 0},
13131 {0xFA, 0x13, 1},
13132 {0xFB, 0x70, 0},
13133 {0xFC, 0, 0},
13134 {0xFD, 0, 0},
13135 {0xFE, 0, 0},
13136 {0xFF, 0x33, 0},
13137 {0x100, 0x13, 1},
13138 {0x101, 0xf, 1},
13139 {0x102, 0xee, 1},
13140 {0x105, 0x3c, 0},
13141 {0x106, 0x1, 1},
13142 {0x107, 0xa, 0},
13143 {0x108, 0x9d, 0},
13144 {0x109, 0xa, 0},
13145 {0x10A, 0, 0},
13146 {0x10B, 0x40, 0},
13147 {0x10C, 0x40, 0},
13148 {0x10D, 0x88, 0},
13149 {0x10E, 0x10, 0},
13150 {0x10F, 0xf0, 0},
13151 {0x110, 0x10, 0},
13152 {0x111, 0xf0, 0},
13153 {0x112, 0, 0},
13154 {0x113, 0, 0},
13155 {0x114, 0x10, 0},
13156 {0x115, 0x55, 0},
13157 {0x116, 0x3f, 1},
13158 {0x117, 0x36, 1},
13159 {0x118, 0, 0},
13160 {0x119, 0, 0},
13161 {0x11A, 0, 0},
13162 {0x11B, 0x87, 0},
13163 {0x11C, 0x11, 0},
13164 {0x11D, 0, 0},
13165 {0x11E, 0x33, 0},
13166 {0x11F, 0x88, 0},
13167 {0x120, 0, 0},
13168 {0x121, 0x87, 0},
13169 {0x122, 0x11, 0},
13170 {0x123, 0, 0},
13171 {0x124, 0x33, 0},
13172 {0x125, 0x88, 0},
13173 {0x126, 0x20, 1},
13174 {0x127, 0x3f, 0},
13175 {0x128, 0x44, 0},
13176 {0x129, 0x8c, 0},
13177 {0x12A, 0x6c, 0},
13178 {0x12B, 0x22, 0},
13179 {0x12C, 0xbe, 0},
13180 {0x12D, 0x55, 0},
13181 {0x12F, 0xc, 0},
13182 {0x130, 0xaa, 0},
13183 {0x131, 0x2, 0},
13184 {0x132, 0, 0},
13185 {0x133, 0x10, 0},
13186 {0x134, 0x1, 0},
13187 {0x135, 0, 0},
13188 {0x136, 0, 0},
13189 {0x137, 0x80, 0},
13190 {0x138, 0x60, 0},
13191 {0x139, 0x44, 0},
13192 {0x13A, 0x55, 0},
13193 {0x13B, 0x1, 0},
13194 {0x13C, 0x55, 0},
13195 {0x13D, 0x1, 0},
13196 {0x13E, 0x5, 0},
13197 {0x13F, 0x55, 0},
13198 {0x140, 0x55, 0},
13199 {0x146, 0, 0},
13200 {0x147, 0, 0},
13201 {0x148, 0, 0},
13202 {0x149, 0, 0},
13203 {0x14A, 0, 0},
13204 {0x14B, 0, 0},
13205 {0x14C, 0, 0},
13206 {0x14D, 0, 0},
13207 {0x14E, 0x1, 1},
13208 {0x14F, 0, 0},
13209 {0x150, 0, 0},
13210 {0x151, 0, 0},
13211 {0x154, 0xc, 0},
13212 {0x155, 0xc, 0},
13213 {0x156, 0xc, 0},
13214 {0x157, 0, 0},
13215 {0x158, 0x2b, 0},
13216 {0x159, 0x84, 0},
13217 {0x15A, 0x15, 0},
13218 {0x15B, 0xf, 0},
13219 {0x15C, 0, 0},
13220 {0x15D, 0, 0},
13221 {0x15E, 0, 1},
13222 {0x15F, 0, 1},
13223 {0x160, 0, 1},
13224 {0x161, 0, 1},
13225 {0x162, 0, 1},
13226 {0x163, 0, 1},
13227 {0x164, 0, 0},
13228 {0x165, 0, 0},
13229 {0x166, 0, 0},
13230 {0x167, 0, 0},
13231 {0x168, 0, 0},
13232 {0x169, 0, 0},
13233 {0x16A, 0, 1},
13234 {0x16B, 0, 1},
13235 {0x16C, 0, 1},
13236 {0x16D, 0, 0},
13237 {0x170, 0, 0},
13238 {0x171, 0x77, 0},
13239 {0x172, 0x77, 0},
13240 {0x173, 0x77, 0},
13241 {0x174, 0x77, 0},
13242 {0x175, 0, 0},
13243 {0x176, 0x3, 0},
13244 {0x177, 0x37, 0},
13245 {0x178, 0x3, 0},
13246 {0x179, 0, 0},
13247 {0x17A, 0x21, 0},
13248 {0x17B, 0x21, 0},
13249 {0x17C, 0, 0},
13250 {0x17D, 0xaa, 0},
13251 {0x17E, 0, 0},
13252 {0x17F, 0xaa, 0},
13253 {0x180, 0, 0},
13254 {0x190, 0, 0},
13255 {0x191, 0x77, 0},
13256 {0x192, 0x77, 0},
13257 {0x193, 0x77, 0},
13258 {0x194, 0x77, 0},
13259 {0x195, 0, 0},
13260 {0x196, 0x3, 0},
13261 {0x197, 0x37, 0},
13262 {0x198, 0x3, 0},
13263 {0x199, 0, 0},
13264 {0x19A, 0x21, 0},
13265 {0x19B, 0x21, 0},
13266 {0x19C, 0, 0},
13267 {0x19D, 0xaa, 0},
13268 {0x19E, 0, 0},
13269 {0x19F, 0xaa, 0},
13270 {0x1A0, 0, 0},
13271 {0x1A1, 0x2, 0},
13272 {0x1A2, 0xf, 0},
13273 {0x1A3, 0xf, 0},
13274 {0x1A4, 0, 1},
13275 {0x1A5, 0, 1},
13276 {0x1A6, 0, 1},
13277 {0x1A7, 0x2, 0},
13278 {0x1A8, 0xf, 0},
13279 {0x1A9, 0xf, 0},
13280 {0x1AA, 0, 1},
13281 {0x1AB, 0, 1},
13282 {0x1AC, 0, 1},
13283 {0x1AD, 0x84, 0},
13284 {0x1AE, 0x60, 0},
13285 {0x1AF, 0x47, 0},
13286 {0x1B0, 0x47, 0},
13287 {0x1B1, 0, 0},
13288 {0x1B2, 0, 0},
13289 {0x1B3, 0, 0},
13290 {0x1B4, 0, 0},
13291 {0x1B5, 0, 0},
13292 {0x1B6, 0, 0},
13293 {0x1B7, 0x5, 1},
13294 {0x1B8, 0, 0},
13295 {0x1B9, 0, 0},
13296 {0x1BA, 0, 0},
13297 {0x1BB, 0, 0},
13298 {0x1BC, 0, 0},
13299 {0x1BD, 0, 0},
13300 {0x1BE, 0, 0},
13301 {0x1BF, 0, 0},
13302 {0x1C0, 0, 0},
13303 {0x1C1, 0, 0},
13304 {0x1C2, 0xa0, 1},
13305 {0x1C3, 0, 0},
13306 {0x1C4, 0, 0},
13307 {0x1C5, 0, 0},
13308 {0x1C6, 0, 0},
13309 {0x1C7, 0, 0},
13310 {0x1C8, 0, 0},
13311 {0x1C9, 0, 0},
13312 {0x1CA, 0, 0},
13313 {0xFFFF, 0, 0}
13316 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13318 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13319 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13321 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13323 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13324 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13325 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13326 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13327 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13328 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13329 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13330 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13331 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13334 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13335 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13336 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13337 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13338 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13339 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13340 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13341 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13342 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13346 static const u32 nphy_tpc_txgain[] = {
13347 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13348 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13349 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13350 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13351 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13352 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13353 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13354 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13355 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13356 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13357 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13358 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13359 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13360 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13361 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13362 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13363 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13364 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13365 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13366 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13367 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13368 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13369 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13370 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13371 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13372 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13373 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13374 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13375 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13376 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13377 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13378 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13381 static const u16 nphy_tpc_loscale[] = {
13382 256, 256, 271, 271, 287, 256, 256, 271,
13383 271, 287, 287, 304, 304, 256, 256, 271,
13384 271, 287, 287, 304, 304, 322, 322, 341,
13385 341, 362, 362, 383, 383, 256, 256, 271,
13386 271, 287, 287, 304, 304, 322, 322, 256,
13387 256, 271, 271, 287, 287, 304, 304, 322,
13388 322, 341, 341, 362, 362, 256, 256, 271,
13389 271, 287, 287, 304, 304, 322, 322, 256,
13390 256, 271, 271, 287, 287, 304, 304, 322,
13391 322, 341, 341, 362, 362, 256, 256, 271,
13392 271, 287, 287, 304, 304, 322, 322, 341,
13393 341, 362, 362, 383, 383, 406, 406, 430,
13394 430, 455, 455, 482, 482, 511, 511, 541,
13395 541, 573, 573, 607, 607, 643, 643, 681,
13396 681, 722, 722, 764, 764, 810, 810, 858,
13397 858, 908, 908, 962, 962, 1019, 1019, 256
13400 static u32 nphy_tpc_txgain_ipa[] = {
13401 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13402 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13403 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13404 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13405 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13406 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13407 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13408 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13409 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13410 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13411 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13412 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13413 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13414 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13415 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13416 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13417 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13418 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13419 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13420 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13421 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13422 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13423 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13424 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13425 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13426 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13427 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13428 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13429 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13430 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13431 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13432 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13435 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13436 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13437 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13438 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13439 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13440 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13441 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13442 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13443 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13444 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13445 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13446 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13447 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13448 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13449 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13450 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13451 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13452 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13453 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13454 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13455 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13456 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13457 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13458 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13459 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13460 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13461 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13462 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13463 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13464 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13465 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13466 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13467 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13470 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13471 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13472 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13473 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13474 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13475 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13476 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13477 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13478 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13479 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13480 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13481 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13482 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13483 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13484 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13485 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13486 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13487 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13488 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13489 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13490 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13491 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13492 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13493 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13494 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13495 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13496 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13497 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13498 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13499 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13500 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13501 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13502 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13505 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13506 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13507 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13508 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13509 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13510 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13511 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13512 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13513 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13514 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13515 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13516 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13517 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13518 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13519 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13520 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13521 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13522 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13523 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13524 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13525 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13526 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13527 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13528 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13529 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13530 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13531 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13532 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13533 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13534 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13535 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13536 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13537 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13540 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13541 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13542 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13543 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13544 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13545 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13546 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13547 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13548 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13549 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13550 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13551 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13552 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13553 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13554 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13555 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13556 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13557 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13558 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13559 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13560 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13561 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13562 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13563 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13564 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13565 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13566 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13567 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13568 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13569 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13570 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13571 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13572 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13575 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13576 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13577 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13578 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13579 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13580 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13581 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13582 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13583 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13584 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13585 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13586 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13587 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13588 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13589 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13590 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13591 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13592 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13593 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13594 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13595 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13596 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13597 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13610 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13611 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13612 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13613 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13614 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13615 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13616 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13617 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13618 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13619 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13620 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13621 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13622 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13623 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13624 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13625 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13626 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13627 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13628 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13629 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13630 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13631 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
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
13645 static u32 nphy_tpc_txgain_ipa_5g[] = {
13646 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13647 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13648 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13649 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13650 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13651 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13652 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13653 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13654 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13655 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13656 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13657 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13658 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13659 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13660 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13661 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13662 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13663 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13664 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13665 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13666 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13667 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13668 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13669 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13670 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13671 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13672 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13673 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13674 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13675 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13676 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13677 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13680 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13681 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13682 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13683 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13684 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13685 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13686 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13687 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13688 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13689 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13690 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13691 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13692 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13693 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13694 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13695 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13696 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13697 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13698 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13699 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13700 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13701 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13702 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13703 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13704 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13705 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13706 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13707 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13708 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13709 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13710 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13711 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13712 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13715 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13716 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13717 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13718 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13719 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13720 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13721 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13722 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13723 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13724 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13725 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13726 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13727 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13728 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13729 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13730 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13731 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13732 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13733 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13734 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13735 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13736 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13737 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13738 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13739 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13740 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13741 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13742 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13743 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13744 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13745 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13746 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13747 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13750 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13751 -114, -108, -98, -91, -84, -78, -70, -62,
13752 -54, -46, -39, -31, -23, -15, -8, 0
13755 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13756 -100, -95, -89, -83, -77, -70, -63, -56,
13757 -48, -41, -33, -25, -19, -12, -6, 0
13760 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13761 -159, -113, -86, -72, -62, -54, -48, -43,
13762 -39, -35, -31, -28, -25, -23, -20, -18,
13763 -17, -15, -13, -11, -10, -8, -7, -6,
13764 -5, -4, -3, -3, -2, -1, -1, 0
13767 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13768 -109, -109, -82, -68, -58, -50, -44, -39,
13769 -35, -31, -28, -26, -23, -21, -19, -17,
13770 -16, -14, -13, -11, -10, -9, -8, -7,
13771 -5, -5, -4, -3, -2, -1, -1, 0
13774 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13775 -122, -122, -95, -80, -69, -61, -54, -49,
13776 -43, -39, -35, -32, -28, -26, -23, -21,
13777 -18, -16, -15, -13, -11, -10, -8, -7,
13778 -6, -5, -4, -3, -2, -1, -1, 0
13781 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13782 -107, -101, -92, -85, -78, -71, -62, -55,
13783 -47, -39, -32, -24, -19, -12, -6, 0
13786 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13787 -110, -104, -95, -88, -81, -74, -66, -58,
13788 -50, -44, -36, -28, -23, -15, -8, 0
13791 static u8 pad_gain_codes_used_2057rev5[] = {
13792 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13793 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13796 static u8 pad_gain_codes_used_2057rev7[] = {
13797 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13798 5, 4, 3, 2, 1
13801 static u8 pad_all_gain_codes_2057[] = {
13802 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13803 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13804 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13805 1, 0
13808 static u8 pga_all_gain_codes_2057[] = {
13809 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13812 static u32 nphy_papd_scaltbl[] = {
13813 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13814 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13815 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13816 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13817 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13818 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13819 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13820 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13821 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13822 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13823 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13824 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13825 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13826 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13827 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13828 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13831 static u32 nphy_tpc_txgain_rev3[] = {
13832 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13833 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13834 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13835 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13836 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13837 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13838 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13839 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13840 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13841 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13842 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13843 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13844 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13845 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13846 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13847 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13848 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13849 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13850 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13851 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13852 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13853 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13854 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13855 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13856 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13857 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13858 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13859 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13860 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13861 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13862 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13863 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13866 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13867 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13868 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13869 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13870 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13871 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13872 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13873 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13874 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13875 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13876 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13877 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13878 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13879 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13880 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13881 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13882 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13883 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13884 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13885 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13886 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13887 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13888 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13889 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13890 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13891 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13892 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13893 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13894 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13895 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13896 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13897 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13898 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13901 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13902 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13903 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13904 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13905 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13906 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13907 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13908 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13909 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13910 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13911 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13912 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13913 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13914 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13915 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13916 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13917 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13918 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13919 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13920 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13921 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13922 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13923 0x8009071d, 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
13936 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13937 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13938 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13939 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13940 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13941 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13942 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13943 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13944 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13945 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13946 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13947 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13948 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13949 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13950 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13951 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13952 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13953 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13954 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13955 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13956 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13957 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13958 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13959 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13960 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13961 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13962 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13963 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13964 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13965 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13966 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13967 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13968 0x10090001, 0x10090001, 0x10090001, 0x10090001
13971 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13972 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13973 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13974 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13975 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13976 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13977 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13978 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13979 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13980 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13981 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13982 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13983 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13984 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13985 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13986 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13987 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13988 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13989 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13990 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13991 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13992 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13993 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13994 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13995 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13996 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13997 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13998 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13999 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
14000 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
14001 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
14002 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
14003 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
14006 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
14007 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
14008 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
14009 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
14010 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
14011 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
14012 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
14013 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
14014 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
14015 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
14016 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
14017 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
14018 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
14019 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
14020 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
14021 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
14022 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
14023 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
14024 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
14025 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
14026 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
14027 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
14028 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
14029 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14030 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14031 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14032 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14033 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14034 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14035 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14036 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14037 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14038 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14041 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14042 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14043 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14044 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14045 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14046 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14047 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14048 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14049 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14050 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14051 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14052 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14053 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14054 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14055 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14056 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14057 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14058 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14059 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14060 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14061 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14062 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14063 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14064 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14065 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14066 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14067 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14068 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14069 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14070 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14071 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14072 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14073 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14076 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14077 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14078 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14079 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14080 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14081 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14082 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14083 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14084 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14085 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14086 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14087 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14088 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14089 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14090 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14091 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14092 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14093 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14094 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14095 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14096 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14097 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14098 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14099 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14100 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14101 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14102 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14103 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14104 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14105 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14106 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14107 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14108 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14111 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14112 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14113 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14114 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a
14116 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14117 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16
14120 bool wlc_phy_bist_check_phy(struct brcms_phy_pub *pih)
14122 struct brcms_phy *pi = (struct brcms_phy *) pih;
14123 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14125 if (NREV_GE(pi->pubpi.phy_rev, 16))
14126 return true;
14128 phybist0 = read_phy_reg(pi, 0x0e);
14129 phybist1 = read_phy_reg(pi, 0x0f);
14130 phybist2 = read_phy_reg(pi, 0xea);
14131 phybist3 = read_phy_reg(pi, 0xeb);
14132 phybist4 = read_phy_reg(pi, 0x156);
14134 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14135 (phybist3 == 0) && (phybist4 == 0))
14136 return true;
14138 return false;
14141 static void wlc_phy_bphy_init_nphy(struct brcms_phy *pi)
14143 u16 addr, val;
14145 val = 0x1e1f;
14146 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14147 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14148 write_phy_reg(pi, addr, val);
14149 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14150 val = 0x3e3f;
14151 else
14152 val -= 0x0202;
14155 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14158 void
14159 wlc_phy_table_write_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14160 u32 width, const void *data)
14162 struct phytbl_info tbl;
14164 tbl.tbl_id = id;
14165 tbl.tbl_len = len;
14166 tbl.tbl_offset = offset;
14167 tbl.tbl_width = width;
14168 tbl.tbl_ptr = data;
14169 wlc_phy_write_table_nphy(pi, &tbl);
14172 void
14173 wlc_phy_table_read_nphy(struct brcms_phy *pi, u32 id, u32 len, u32 offset,
14174 u32 width, void *data)
14176 struct phytbl_info tbl;
14178 tbl.tbl_id = id;
14179 tbl.tbl_len = len;
14180 tbl.tbl_offset = offset;
14181 tbl.tbl_width = width;
14182 tbl.tbl_ptr = data;
14183 wlc_phy_read_table_nphy(pi, &tbl);
14186 static void
14187 wlc_phy_static_table_download_nphy(struct brcms_phy *pi)
14189 uint idx;
14191 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14192 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14193 wlc_phy_write_table_nphy(pi,
14194 &mimophytbl_info_rev16[idx]);
14195 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14196 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14197 wlc_phy_write_table_nphy(pi,
14198 &mimophytbl_info_rev7[idx]);
14199 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14200 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14201 wlc_phy_write_table_nphy(pi,
14202 &mimophytbl_info_rev3[idx]);
14203 } else {
14204 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14205 wlc_phy_write_table_nphy(pi,
14206 &mimophytbl_info_rev0[idx]);
14210 static void wlc_phy_tbl_init_nphy(struct brcms_phy *pi)
14212 uint idx = 0;
14213 u8 antswctrllut;
14215 if (pi->phy_init_por)
14216 wlc_phy_static_table_download_nphy(pi);
14218 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14220 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14221 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.
14222 antswctrllut;
14224 switch (antswctrllut) {
14225 case 0:
14227 break;
14229 case 1:
14231 if (pi->aa2g == 7)
14232 wlc_phy_table_write_nphy(
14234 NPHY_TBL_ID_ANTSWCTRLLUT,
14235 2, 0x21, 8,
14236 &ant_sw_ctrl_tbl_rev8_2o3[0]);
14237 else
14238 wlc_phy_table_write_nphy(
14240 NPHY_TBL_ID_ANTSWCTRLLUT,
14241 2, 0x21, 8,
14242 &ant_sw_ctrl_tbl_rev8
14243 [0]);
14245 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14246 2, 0x25, 8,
14247 &ant_sw_ctrl_tbl_rev8[2]);
14248 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14249 2, 0x29, 8,
14250 &ant_sw_ctrl_tbl_rev8[4]);
14251 break;
14253 case 2:
14255 wlc_phy_table_write_nphy(
14256 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14257 2, 0x1, 8,
14258 &ant_sw_ctrl_tbl_rev8_2057v7_core0[0]);
14259 wlc_phy_table_write_nphy(
14260 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14261 2, 0x5, 8,
14262 &ant_sw_ctrl_tbl_rev8_2057v7_core0[2]);
14263 wlc_phy_table_write_nphy(
14264 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14265 2, 0x9, 8,
14266 &ant_sw_ctrl_tbl_rev8_2057v7_core0[4]);
14268 wlc_phy_table_write_nphy(
14269 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14270 2, 0x21, 8,
14271 &ant_sw_ctrl_tbl_rev8_2057v7_core1[0]);
14272 wlc_phy_table_write_nphy(
14273 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14274 2, 0x25, 8,
14275 &ant_sw_ctrl_tbl_rev8_2057v7_core1[2]);
14276 wlc_phy_table_write_nphy(
14277 pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14278 2, 0x29, 8,
14279 &ant_sw_ctrl_tbl_rev8_2057v7_core1[4]);
14280 break;
14282 default:
14283 break;
14286 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14287 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14289 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14290 antswctrllut =
14291 CHSPEC_IS2G(pi->radio_chanspec) ?
14292 pi->srom_fem2g.antswctrllut :
14293 pi->srom_fem5g.antswctrllut;
14294 switch (antswctrllut) {
14295 case 0:
14296 wlc_phy_write_table_nphy(
14298 &mimophytbl_info_rev3_volatile
14299 [idx]);
14300 break;
14301 case 1:
14302 wlc_phy_write_table_nphy(
14304 &mimophytbl_info_rev3_volatile1
14305 [idx]);
14306 break;
14307 case 2:
14308 wlc_phy_write_table_nphy(
14310 &mimophytbl_info_rev3_volatile2
14311 [idx]);
14312 break;
14313 case 3:
14314 wlc_phy_write_table_nphy(
14316 &mimophytbl_info_rev3_volatile3
14317 [idx]);
14318 break;
14319 default:
14320 break;
14322 } else {
14323 wlc_phy_write_table_nphy(
14325 &mimophytbl_info_rev3_volatile[idx]);
14328 } else {
14329 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++)
14330 wlc_phy_write_table_nphy(pi,
14331 &mimophytbl_info_rev0_volatile
14332 [idx]);
14336 static void
14337 wlc_phy_write_txmacreg_nphy(struct brcms_phy *pi, u16 holdoff, u16 delay)
14339 write_phy_reg(pi, 0x77, holdoff);
14340 write_phy_reg(pi, 0xb4, delay);
14343 void wlc_phy_nphy_tkip_rifs_war(struct brcms_phy *pi, u8 rifs)
14345 u16 holdoff, delay;
14347 if (rifs) {
14349 holdoff = 0x10;
14350 delay = 0x258;
14351 } else {
14353 holdoff = 0x15;
14354 delay = 0x320;
14357 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14359 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs))
14360 pi->sh->_rifs_phy = rifs;
14363 static void wlc_phy_txpwrctrl_config_nphy(struct brcms_phy *pi)
14366 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14367 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14368 pi->phy_5g_pwrgain = true;
14369 return;
14372 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14373 pi->phy_5g_pwrgain = false;
14375 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14376 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14377 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14378 else if ((pi->sh->sromrev >= 4)
14379 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14380 pi->phy_5g_pwrgain = true;
14383 static void wlc_phy_txpwr_srom_read_ppr_nphy(struct brcms_phy *pi)
14385 u16 bw40po, cddpo, stbcpo, bwduppo;
14386 uint band_num;
14387 struct phy_shim_info *shim = pi->sh->physhim;
14389 if (pi->sh->sromrev >= 9)
14390 return;
14392 bw40po = (u16) wlapi_getintvar(shim, BRCMS_SROM_BW40PO);
14393 pi->bw402gpo = bw40po & 0xf;
14394 pi->bw405gpo = (bw40po & 0xf0) >> 4;
14395 pi->bw405glpo = (bw40po & 0xf00) >> 8;
14396 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
14398 cddpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_CDDPO);
14399 pi->cdd2gpo = cddpo & 0xf;
14400 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
14401 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
14402 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
14404 stbcpo = (u16) wlapi_getintvar(shim, BRCMS_SROM_STBCPO);
14405 pi->stbc2gpo = stbcpo & 0xf;
14406 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
14407 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
14408 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
14410 bwduppo = (u16) wlapi_getintvar(shim, BRCMS_SROM_BWDUPPO);
14411 pi->bwdup2gpo = bwduppo & 0xf;
14412 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
14413 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
14414 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
14416 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
14417 band_num++) {
14418 switch (band_num) {
14419 case 0:
14421 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
14422 (s8) wlapi_getintvar(shim,
14423 BRCMS_SROM_MAXP2GA0);
14424 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
14425 (s8) wlapi_getintvar(shim,
14426 BRCMS_SROM_MAXP2GA1);
14427 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
14428 (s16) wlapi_getintvar(shim,
14429 BRCMS_SROM_PA2GW0A0);
14430 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
14431 (s16) wlapi_getintvar(shim,
14432 BRCMS_SROM_PA2GW0A1);
14433 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
14434 (s16) wlapi_getintvar(shim,
14435 BRCMS_SROM_PA2GW1A0);
14436 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
14437 (s16) wlapi_getintvar(shim,
14438 BRCMS_SROM_PA2GW1A1);
14439 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
14440 (s16) wlapi_getintvar(shim,
14441 BRCMS_SROM_PA2GW2A0);
14442 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
14443 (s16) wlapi_getintvar(shim,
14444 BRCMS_SROM_PA2GW2A1);
14445 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
14446 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA0);
14447 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
14448 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT2GA1);
14450 pi->cck2gpo = (u16) wlapi_getintvar(shim,
14451 BRCMS_SROM_CCK2GPO);
14453 pi->ofdm2gpo =
14454 (u32) wlapi_getintvar(shim,
14455 BRCMS_SROM_OFDM2GPO);
14457 pi->mcs2gpo[0] =
14458 (u16) wlapi_getintvar(shim,
14459 BRCMS_SROM_MCS2GPO0);
14460 pi->mcs2gpo[1] =
14461 (u16) wlapi_getintvar(shim,
14462 BRCMS_SROM_MCS2GPO1);
14463 pi->mcs2gpo[2] =
14464 (u16) wlapi_getintvar(shim,
14465 BRCMS_SROM_MCS2GPO2);
14466 pi->mcs2gpo[3] =
14467 (u16) wlapi_getintvar(shim,
14468 BRCMS_SROM_MCS2GPO3);
14469 pi->mcs2gpo[4] =
14470 (u16) wlapi_getintvar(shim,
14471 BRCMS_SROM_MCS2GPO4);
14472 pi->mcs2gpo[5] =
14473 (u16) wlapi_getintvar(shim,
14474 BRCMS_SROM_MCS2GPO5);
14475 pi->mcs2gpo[6] =
14476 (u16) wlapi_getintvar(shim,
14477 BRCMS_SROM_MCS2GPO6);
14478 pi->mcs2gpo[7] =
14479 (u16) wlapi_getintvar(shim,
14480 BRCMS_SROM_MCS2GPO7);
14481 break;
14482 case 1:
14484 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
14485 (s8) wlapi_getintvar(shim, BRCMS_SROM_MAXP5GA0);
14486 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
14487 (s8) wlapi_getintvar(shim,
14488 BRCMS_SROM_MAXP5GA1);
14489 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
14490 (s16) wlapi_getintvar(shim,
14491 BRCMS_SROM_PA5GW0A0);
14492 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
14493 (s16) wlapi_getintvar(shim,
14494 BRCMS_SROM_PA5GW0A1);
14495 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
14496 (s16) wlapi_getintvar(shim,
14497 BRCMS_SROM_PA5GW1A0);
14498 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
14499 (s16) wlapi_getintvar(shim,
14500 BRCMS_SROM_PA5GW1A1);
14501 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
14502 (s16) wlapi_getintvar(shim,
14503 BRCMS_SROM_PA5GW2A0);
14504 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
14505 (s16) wlapi_getintvar(shim,
14506 BRCMS_SROM_PA5GW2A1);
14507 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
14508 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA0);
14509 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
14510 (s8) wlapi_getintvar(shim, BRCMS_SROM_ITT5GA1);
14512 pi->ofdm5gpo =
14513 (u32) wlapi_getintvar(shim,
14514 BRCMS_SROM_OFDM5GPO);
14516 pi->mcs5gpo[0] =
14517 (u16) wlapi_getintvar(shim,
14518 BRCMS_SROM_MCS5GPO0);
14519 pi->mcs5gpo[1] =
14520 (u16) wlapi_getintvar(shim,
14521 BRCMS_SROM_MCS5GPO1);
14522 pi->mcs5gpo[2] =
14523 (u16) wlapi_getintvar(shim,
14524 BRCMS_SROM_MCS5GPO2);
14525 pi->mcs5gpo[3] =
14526 (u16) wlapi_getintvar(shim,
14527 BRCMS_SROM_MCS5GPO3);
14528 pi->mcs5gpo[4] =
14529 (u16) wlapi_getintvar(shim,
14530 BRCMS_SROM_MCS5GPO4);
14531 pi->mcs5gpo[5] =
14532 (u16) wlapi_getintvar(shim,
14533 BRCMS_SROM_MCS5GPO5);
14534 pi->mcs5gpo[6] =
14535 (u16) wlapi_getintvar(shim,
14536 BRCMS_SROM_MCS5GPO6);
14537 pi->mcs5gpo[7] =
14538 (u16) wlapi_getintvar(shim,
14539 BRCMS_SROM_MCS5GPO7);
14540 break;
14541 case 2:
14543 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
14544 (s8) wlapi_getintvar(shim,
14545 BRCMS_SROM_MAXP5GLA0);
14546 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
14547 (s8) wlapi_getintvar(shim,
14548 BRCMS_SROM_MAXP5GLA1);
14549 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
14550 (s16) wlapi_getintvar(shim,
14551 BRCMS_SROM_PA5GLW0A0);
14552 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
14553 (s16) wlapi_getintvar(shim,
14554 BRCMS_SROM_PA5GLW0A1);
14555 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
14556 (s16) wlapi_getintvar(shim,
14557 BRCMS_SROM_PA5GLW1A0);
14558 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
14559 (s16) wlapi_getintvar(shim,
14560 BRCMS_SROM_PA5GLW1A1);
14561 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
14562 (s16) wlapi_getintvar(shim,
14563 BRCMS_SROM_PA5GLW2A0);
14564 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
14565 (s16) wlapi_getintvar(shim,
14566 BRCMS_SROM_PA5GLW2A1);
14567 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
14568 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
14570 pi->ofdm5glpo =
14571 (u32) wlapi_getintvar(shim,
14572 BRCMS_SROM_OFDM5GLPO);
14574 pi->mcs5glpo[0] =
14575 (u16) wlapi_getintvar(shim,
14576 BRCMS_SROM_MCS5GLPO0);
14577 pi->mcs5glpo[1] =
14578 (u16) wlapi_getintvar(shim,
14579 BRCMS_SROM_MCS5GLPO1);
14580 pi->mcs5glpo[2] =
14581 (u16) wlapi_getintvar(shim,
14582 BRCMS_SROM_MCS5GLPO2);
14583 pi->mcs5glpo[3] =
14584 (u16) wlapi_getintvar(shim,
14585 BRCMS_SROM_MCS5GLPO3);
14586 pi->mcs5glpo[4] =
14587 (u16) wlapi_getintvar(shim,
14588 BRCMS_SROM_MCS5GLPO4);
14589 pi->mcs5glpo[5] =
14590 (u16) wlapi_getintvar(shim,
14591 BRCMS_SROM_MCS5GLPO5);
14592 pi->mcs5glpo[6] =
14593 (u16) wlapi_getintvar(shim,
14594 BRCMS_SROM_MCS5GLPO6);
14595 pi->mcs5glpo[7] =
14596 (u16) wlapi_getintvar(shim,
14597 BRCMS_SROM_MCS5GLPO7);
14598 break;
14599 case 3:
14601 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
14602 (s8) wlapi_getintvar(shim,
14603 BRCMS_SROM_MAXP5GHA0);
14604 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
14605 (s8) wlapi_getintvar(shim,
14606 BRCMS_SROM_MAXP5GHA1);
14607 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
14608 (s16) wlapi_getintvar(shim,
14609 BRCMS_SROM_PA5GHW0A0);
14610 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
14611 (s16) wlapi_getintvar(shim,
14612 BRCMS_SROM_PA5GHW0A1);
14613 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
14614 (s16) wlapi_getintvar(shim,
14615 BRCMS_SROM_PA5GHW1A0);
14616 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
14617 (s16) wlapi_getintvar(shim,
14618 BRCMS_SROM_PA5GHW1A1);
14619 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
14620 (s16) wlapi_getintvar(shim,
14621 BRCMS_SROM_PA5GHW2A0);
14622 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
14623 (s16) wlapi_getintvar(shim,
14624 BRCMS_SROM_PA5GHW2A1);
14625 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
14626 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
14628 pi->ofdm5ghpo =
14629 (u32) wlapi_getintvar(shim,
14630 BRCMS_SROM_OFDM5GHPO);
14632 pi->mcs5ghpo[0] =
14633 (u16) wlapi_getintvar(shim,
14634 BRCMS_SROM_MCS5GHPO0);
14635 pi->mcs5ghpo[1] =
14636 (u16) wlapi_getintvar(shim,
14637 BRCMS_SROM_MCS5GHPO1);
14638 pi->mcs5ghpo[2] =
14639 (u16) wlapi_getintvar(shim,
14640 BRCMS_SROM_MCS5GHPO2);
14641 pi->mcs5ghpo[3] =
14642 (u16) wlapi_getintvar(shim,
14643 BRCMS_SROM_MCS5GHPO3);
14644 pi->mcs5ghpo[4] =
14645 (u16) wlapi_getintvar(shim,
14646 BRCMS_SROM_MCS5GHPO4);
14647 pi->mcs5ghpo[5] =
14648 (u16) wlapi_getintvar(shim,
14649 BRCMS_SROM_MCS5GHPO5);
14650 pi->mcs5ghpo[6] =
14651 (u16) wlapi_getintvar(shim,
14652 BRCMS_SROM_MCS5GHPO6);
14653 pi->mcs5ghpo[7] =
14654 (u16) wlapi_getintvar(shim,
14655 BRCMS_SROM_MCS5GHPO7);
14656 break;
14660 wlc_phy_txpwr_apply_nphy(pi);
14663 static bool wlc_phy_txpwr_srom_read_nphy(struct brcms_phy *pi)
14665 struct phy_shim_info *shim = pi->sh->physhim;
14667 pi->antswitch = (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWITCH);
14668 pi->aa2g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA2G);
14669 pi->aa5g = (u8) wlapi_getintvar(shim, BRCMS_SROM_AA5G);
14671 pi->srom_fem2g.tssipos = (u8) wlapi_getintvar(shim,
14672 BRCMS_SROM_TSSIPOS2G);
14673 pi->srom_fem2g.extpagain = (u8) wlapi_getintvar(shim,
14674 BRCMS_SROM_EXTPAGAIN2G);
14675 pi->srom_fem2g.pdetrange = (u8) wlapi_getintvar(shim,
14676 BRCMS_SROM_PDETRANGE2G);
14677 pi->srom_fem2g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO2G);
14678 pi->srom_fem2g.antswctrllut =
14679 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14681 pi->srom_fem5g.tssipos = (u8) wlapi_getintvar(shim,
14682 BRCMS_SROM_TSSIPOS5G);
14683 pi->srom_fem5g.extpagain = (u8) wlapi_getintvar(shim,
14684 BRCMS_SROM_EXTPAGAIN5G);
14685 pi->srom_fem5g.pdetrange = (u8) wlapi_getintvar(shim,
14686 BRCMS_SROM_PDETRANGE5G);
14687 pi->srom_fem5g.triso = (u8) wlapi_getintvar(shim, BRCMS_SROM_TRISO5G);
14688 if (wlapi_getvar(shim, BRCMS_SROM_ANTSWCTL5G))
14689 pi->srom_fem5g.antswctrllut =
14690 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL5G);
14691 else
14692 pi->srom_fem5g.antswctrllut =
14693 (u8) wlapi_getintvar(shim, BRCMS_SROM_ANTSWCTL2G);
14695 wlc_phy_txpower_ipa_upd(pi);
14697 pi->phy_txcore_disable_temp =
14698 (s16) wlapi_getintvar(shim, BRCMS_SROM_TEMPTHRESH);
14699 if (pi->phy_txcore_disable_temp == 0)
14700 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
14702 pi->phy_tempsense_offset = (s8) wlapi_getintvar(shim,
14703 BRCMS_SROM_TEMPOFFSET);
14704 if (pi->phy_tempsense_offset != 0) {
14705 if (pi->phy_tempsense_offset >
14706 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET))
14707 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
14708 else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
14709 NPHY_SROM_MINTEMPOFFSET))
14710 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
14711 else
14712 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
14715 pi->phy_txcore_enable_temp =
14716 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
14718 pi->phycal_tempdelta =
14719 (u8) wlapi_getintvar(shim, BRCMS_SROM_PHYCAL_TEMPDELTA);
14720 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA)
14721 pi->phycal_tempdelta = 0;
14723 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
14725 return true;
14728 bool wlc_phy_attach_nphy(struct brcms_phy *pi)
14730 uint i;
14732 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6))
14733 pi->phyhang_avoid = true;
14735 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14736 pi->nphy_gband_spurwar_en = true;
14737 if (pi->sh->boardflags2 & BFL2_SPUR_WAR)
14738 pi->nphy_aband_spurwar_en = true;
14740 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14741 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR)
14742 pi->nphy_gband_spurwar2_en = true;
14745 pi->n_preamble_override = AUTO;
14746 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14747 pi->n_preamble_override = BRCMS_N_PREAMBLE_MIXEDMODE;
14749 pi->nphy_txrx_chain = AUTO;
14750 pi->phy_scraminit = AUTO;
14752 pi->nphy_rxcalparams = 0x010100B5;
14754 pi->nphy_perical = PHY_PERICAL_MPHASE;
14755 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14756 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14758 pi->nphy_gain_boost = true;
14759 pi->nphy_elna_gain_config = false;
14760 pi->radio_is_on = false;
14762 for (i = 0; i < pi->pubpi.phy_corenum; i++)
14763 pi->nphy_txpwrindex[i].index = AUTO;
14765 wlc_phy_txpwrctrl_config_nphy(pi);
14766 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14767 pi->hwpwrctrl_capable = true;
14769 pi->pi_fptr.init = wlc_phy_init_nphy;
14770 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14771 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14772 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14774 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14775 return false;
14777 return true;
14780 static s32 get_rf_pwr_offset(struct brcms_phy *pi, s16 pga_gn, s16 pad_gn)
14782 s32 rfpwr_offset = 0;
14784 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14785 if ((pi->pubpi.radiorev == 3) ||
14786 (pi->pubpi.radiorev == 4) ||
14787 (pi->pubpi.radiorev == 6))
14788 rfpwr_offset = (s16)
14789 nphy_papd_padgain_dlt_2g_2057rev3n4
14790 [pad_gn];
14791 else if (pi->pubpi.radiorev == 5)
14792 rfpwr_offset = (s16)
14793 nphy_papd_padgain_dlt_2g_2057rev5
14794 [pad_gn];
14795 else if ((pi->pubpi.radiorev == 7)
14796 || (pi->pubpi.radiorev ==
14798 rfpwr_offset = (s16)
14799 nphy_papd_padgain_dlt_2g_2057rev7
14800 [pad_gn];
14801 } else {
14802 if ((pi->pubpi.radiorev == 3) ||
14803 (pi->pubpi.radiorev == 4) ||
14804 (pi->pubpi.radiorev == 6))
14805 rfpwr_offset = (s16)
14806 nphy_papd_pgagain_dlt_5g_2057
14807 [pga_gn];
14808 else if ((pi->pubpi.radiorev == 7)
14809 || (pi->pubpi.radiorev ==
14811 rfpwr_offset = (s16)
14812 nphy_papd_pgagain_dlt_5g_2057rev7
14813 [pga_gn];
14815 return rfpwr_offset;
14818 static void wlc_phy_update_mimoconfig_nphy(struct brcms_phy *pi, s32 preamble)
14820 bool gf_preamble = false;
14821 u16 val;
14823 if (preamble == BRCMS_N_PREAMBLE_GF)
14824 gf_preamble = true;
14826 val = read_phy_reg(pi, 0xed);
14828 val |= RX_GF_MM_AUTO;
14829 val &= ~RX_GF_OR_MM;
14830 if (gf_preamble)
14831 val |= RX_GF_OR_MM;
14833 write_phy_reg(pi, 0xed, val);
14836 static void wlc_phy_ipa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
14838 int j, type;
14839 u16 addr_offset[] = { 0x186, 0x195, 0x2c5};
14841 for (type = 0; type < 3; type++) {
14842 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14843 write_phy_reg(pi, addr_offset[type] + j,
14844 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
14847 if (pi->bw == WL_CHANSPEC_BW_40) {
14848 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14849 write_phy_reg(pi, 0x186 + j,
14850 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14851 } else {
14852 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14853 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14854 write_phy_reg(pi, 0x186 + j,
14855 NPHY_IPA_REV4_txdigi_filtcoeffs[5][j]);
14858 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
14859 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14860 write_phy_reg(pi, 0x2c5 + j,
14861 NPHY_IPA_REV4_txdigi_filtcoeffs[6][j]);
14866 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
14868 int j;
14870 if (pi->bw == WL_CHANSPEC_BW_40) {
14871 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14872 write_phy_reg(pi, 0x195 + j,
14873 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
14874 } else {
14875 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
14876 write_phy_reg(pi, 0x186 + j,
14877 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
14881 static void
14882 wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
14883 u8 len)
14885 u32 t1_offset, t2_offset;
14886 u8 ctr;
14887 u8 end_event =
14888 NREV_GE(pi->pubpi.phy_rev,
14889 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
14890 u8 end_dly = 1;
14892 if (pi->phyhang_avoid)
14893 wlc_phy_stay_in_carriersearch_nphy(pi, true);
14895 t1_offset = cmd << 4;
14896 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
14897 events);
14898 t2_offset = t1_offset + 0x080;
14899 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
14900 dlys);
14902 for (ctr = len; ctr < 16; ctr++) {
14903 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14904 t1_offset + ctr, 8, &end_event);
14905 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14906 t2_offset + ctr, 8, &end_dly);
14909 if (pi->phyhang_avoid)
14910 wlc_phy_stay_in_carriersearch_nphy(pi, false);
14913 static u16 wlc_phy_read_lpf_bw_ctl_nphy(struct brcms_phy *pi, u16 offset)
14915 u16 lpf_bw_ctl_val = 0;
14916 u16 rx2tx_lpf_rc_lut_offset = 0;
14918 if (offset == 0) {
14919 if (CHSPEC_IS40(pi->radio_chanspec))
14920 rx2tx_lpf_rc_lut_offset = 0x159;
14921 else
14922 rx2tx_lpf_rc_lut_offset = 0x154;
14923 } else {
14924 rx2tx_lpf_rc_lut_offset = offset;
14926 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
14927 (u32) rx2tx_lpf_rc_lut_offset, 16,
14928 &lpf_bw_ctl_val);
14930 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
14932 return lpf_bw_ctl_val;
14935 static void
14936 wlc_phy_rfctrl_override_nphy_rev7(struct brcms_phy *pi, u16 field, u16 value,
14937 u8 core_mask, u8 off, u8 override_id)
14939 u8 core_num;
14940 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
14941 u8 val_shift = 0;
14943 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14944 en_mask = field;
14945 for (core_num = 0; core_num < 2; core_num++) {
14946 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
14948 switch (field) {
14949 case (0x1 << 2):
14950 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14951 val_addr = (core_num == 0) ? 0x7a :
14952 0x7d;
14953 val_mask = (0x1 << 1);
14954 val_shift = 1;
14955 break;
14956 case (0x1 << 3):
14957 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14958 val_addr = (core_num == 0) ? 0x7a :
14959 0x7d;
14960 val_mask = (0x1 << 2);
14961 val_shift = 2;
14962 break;
14963 case (0x1 << 4):
14964 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14965 val_addr = (core_num == 0) ? 0x7a :
14966 0x7d;
14967 val_mask = (0x1 << 4);
14968 val_shift = 4;
14969 break;
14970 case (0x1 << 5):
14971 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14972 val_addr = (core_num == 0) ? 0x7a :
14973 0x7d;
14974 val_mask = (0x1 << 5);
14975 val_shift = 5;
14976 break;
14977 case (0x1 << 6):
14978 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14979 val_addr = (core_num == 0) ? 0x7a :
14980 0x7d;
14981 val_mask = (0x1 << 6);
14982 val_shift = 6;
14983 break;
14984 case (0x1 << 7):
14985 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14986 val_addr = (core_num == 0) ? 0x7a :
14987 0x7d;
14988 val_mask = (0x1 << 7);
14989 val_shift = 7;
14990 break;
14991 case (0x1 << 10):
14992 en_addr = (core_num == 0) ? 0xe7 : 0xec;
14993 val_addr = (core_num == 0) ? 0xf8 :
14994 0xfa;
14995 val_mask = (0x7 << 4);
14996 val_shift = 4;
14997 break;
14998 case (0x1 << 11):
14999 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15000 val_addr = (core_num == 0) ? 0x7b :
15001 0x7e;
15002 val_mask = (0xffff << 0);
15003 val_shift = 0;
15004 break;
15005 case (0x1 << 12):
15006 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15007 val_addr = (core_num == 0) ? 0x7c :
15008 0x7f;
15009 val_mask = (0xffff << 0);
15010 val_shift = 0;
15011 break;
15012 case (0x3 << 13):
15013 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15014 val_addr = (core_num == 0) ? 0x348 :
15015 0x349;
15016 val_mask = (0xff << 0);
15017 val_shift = 0;
15018 break;
15019 case (0x1 << 13):
15020 en_addr = (core_num == 0) ? 0xe7 : 0xec;
15021 val_addr = (core_num == 0) ? 0x348 :
15022 0x349;
15023 val_mask = (0xf << 0);
15024 val_shift = 0;
15025 break;
15026 default:
15027 addr = 0xffff;
15028 break;
15030 } else if (override_id ==
15031 NPHY_REV7_RFCTRLOVERRIDE_ID1) {
15033 switch (field) {
15034 case (0x1 << 1):
15035 en_addr = (core_num == 0) ? 0x342 :
15036 0x343;
15037 val_addr = (core_num == 0) ? 0x340 :
15038 0x341;
15039 val_mask = (0x1 << 1);
15040 val_shift = 1;
15041 break;
15042 case (0x1 << 3):
15043 en_addr = (core_num == 0) ? 0x342 :
15044 0x343;
15045 val_addr = (core_num == 0) ? 0x340 :
15046 0x341;
15047 val_mask = (0x1 << 3);
15048 val_shift = 3;
15049 break;
15050 case (0x1 << 5):
15051 en_addr = (core_num == 0) ? 0x342 :
15052 0x343;
15053 val_addr = (core_num == 0) ? 0x340 :
15054 0x341;
15055 val_mask = (0x1 << 5);
15056 val_shift = 5;
15057 break;
15058 case (0x1 << 4):
15059 en_addr = (core_num == 0) ? 0x342 :
15060 0x343;
15061 val_addr = (core_num == 0) ? 0x340 :
15062 0x341;
15063 val_mask = (0x1 << 4);
15064 val_shift = 4;
15065 break;
15066 case (0x1 << 2):
15068 en_addr = (core_num == 0) ? 0x342 :
15069 0x343;
15070 val_addr = (core_num == 0) ? 0x340 :
15071 0x341;
15072 val_mask = (0x1 << 2);
15073 val_shift = 2;
15074 break;
15075 case (0x1 << 7):
15077 en_addr = (core_num == 0) ? 0x342 :
15078 0x343;
15079 val_addr = (core_num == 0) ? 0x340 :
15080 0x341;
15081 val_mask = (0x7 << 8);
15082 val_shift = 8;
15083 break;
15084 case (0x1 << 11):
15085 en_addr = (core_num == 0) ? 0x342 :
15086 0x343;
15087 val_addr = (core_num == 0) ? 0x340 :
15088 0x341;
15089 val_mask = (0x1 << 14);
15090 val_shift = 14;
15091 break;
15092 case (0x1 << 10):
15093 en_addr = (core_num == 0) ? 0x342 :
15094 0x343;
15095 val_addr = (core_num == 0) ? 0x340 :
15096 0x341;
15097 val_mask = (0x1 << 13);
15098 val_shift = 13;
15099 break;
15100 case (0x1 << 9):
15101 en_addr = (core_num == 0) ? 0x342 :
15102 0x343;
15103 val_addr = (core_num == 0) ? 0x340 :
15104 0x341;
15105 val_mask = (0x1 << 12);
15106 val_shift = 12;
15107 break;
15108 case (0x1 << 8):
15109 en_addr = (core_num == 0) ? 0x342 :
15110 0x343;
15111 val_addr = (core_num == 0) ? 0x340 :
15112 0x341;
15113 val_mask = (0x1 << 11);
15114 val_shift = 11;
15115 break;
15116 case (0x1 << 6):
15117 en_addr = (core_num == 0) ? 0x342 :
15118 0x343;
15119 val_addr = (core_num == 0) ? 0x340 :
15120 0x341;
15121 val_mask = (0x1 << 6);
15122 val_shift = 6;
15123 break;
15124 case (0x1 << 0):
15125 en_addr = (core_num == 0) ? 0x342 :
15126 0x343;
15127 val_addr = (core_num == 0) ? 0x340 :
15128 0x341;
15129 val_mask = (0x1 << 0);
15130 val_shift = 0;
15131 break;
15132 default:
15133 addr = 0xffff;
15134 break;
15136 } else if (override_id ==
15137 NPHY_REV7_RFCTRLOVERRIDE_ID2) {
15139 switch (field) {
15140 case (0x1 << 3):
15141 en_addr = (core_num == 0) ? 0x346 :
15142 0x347;
15143 val_addr = (core_num == 0) ? 0x344 :
15144 0x345;
15145 val_mask = (0x1 << 3);
15146 val_shift = 3;
15147 break;
15148 case (0x1 << 1):
15149 en_addr = (core_num == 0) ? 0x346 :
15150 0x347;
15151 val_addr = (core_num == 0) ? 0x344 :
15152 0x345;
15153 val_mask = (0x1 << 1);
15154 val_shift = 1;
15155 break;
15156 case (0x1 << 0):
15157 en_addr = (core_num == 0) ? 0x346 :
15158 0x347;
15159 val_addr = (core_num == 0) ? 0x344 :
15160 0x345;
15161 val_mask = (0x1 << 0);
15162 val_shift = 0;
15163 break;
15164 case (0x1 << 2):
15165 en_addr = (core_num == 0) ? 0x346 :
15166 0x347;
15167 val_addr = (core_num == 0) ? 0x344 :
15168 0x345;
15169 val_mask = (0x1 << 2);
15170 val_shift = 2;
15171 break;
15172 case (0x1 << 4):
15173 en_addr = (core_num == 0) ? 0x346 :
15174 0x347;
15175 val_addr = (core_num == 0) ? 0x344 :
15176 0x345;
15177 val_mask = (0x1 << 4);
15178 val_shift = 4;
15179 break;
15180 default:
15181 addr = 0xffff;
15182 break;
15186 if (off) {
15187 and_phy_reg(pi, en_addr, ~en_mask);
15188 and_phy_reg(pi, val_addr, ~val_mask);
15189 } else {
15191 if ((core_mask == 0)
15192 || (core_mask & (1 << core_num))) {
15193 or_phy_reg(pi, en_addr, en_mask);
15195 if (addr != 0xffff)
15196 mod_phy_reg(pi, val_addr,
15197 val_mask,
15198 (value <<
15199 val_shift));
15206 static void wlc_phy_adjust_lnagaintbl_nphy(struct brcms_phy *pi)
15208 uint core;
15209 int ctr;
15210 s16 gain_delta[2];
15211 u8 curr_channel;
15212 u16 minmax_gain[2];
15213 u16 regval[4];
15215 if (pi->phyhang_avoid)
15216 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15218 if (pi->nphy_gain_boost) {
15219 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
15221 gain_delta[0] = 6;
15222 gain_delta[1] = 6;
15223 } else {
15225 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
15226 gain_delta[0] =
15227 (s16)
15228 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
15229 curr_channel) +
15230 nphy_lnagain_est0[1]), 13);
15231 gain_delta[1] =
15232 (s16)
15233 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
15234 curr_channel) +
15235 nphy_lnagain_est1[1]), 13);
15237 } else {
15239 gain_delta[0] = 0;
15240 gain_delta[1] = 0;
15243 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
15244 if (pi->nphy_elna_gain_config) {
15246 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
15247 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
15248 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
15249 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
15250 } else {
15251 for (ctr = 0; ctr < 4; ctr++)
15252 regval[ctr] =
15253 nphy_def_lnagains[ctr] +
15254 gain_delta[core];
15256 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
15258 minmax_gain[core] =
15259 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
15262 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
15263 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
15265 if (pi->phyhang_avoid)
15266 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15269 static void
15270 wlc_phy_war_force_trsw_to_R_cliplo_nphy(struct brcms_phy *pi, u8 core)
15272 if (core == PHY_CORE_0) {
15273 write_phy_reg(pi, 0x38, 0x4);
15274 if (CHSPEC_IS2G(pi->radio_chanspec))
15275 write_phy_reg(pi, 0x37, 0x0060);
15276 else
15277 write_phy_reg(pi, 0x37, 0x1080);
15278 } else if (core == PHY_CORE_1) {
15279 write_phy_reg(pi, 0x2ae, 0x4);
15280 if (CHSPEC_IS2G(pi->radio_chanspec))
15281 write_phy_reg(pi, 0x2ad, 0x0060);
15282 else
15283 write_phy_reg(pi, 0x2ad, 0x1080);
15287 static void wlc_phy_war_txchain_upd_nphy(struct brcms_phy *pi, u8 txchain)
15289 u8 txchain0, txchain1;
15291 txchain0 = txchain & 0x1;
15292 txchain1 = (txchain & 0x2) >> 1;
15293 if (!txchain0)
15294 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15296 if (!txchain1)
15297 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15300 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)
15302 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
15303 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
15304 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
15305 s8 tia_gainbits[] = {
15306 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15308 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15309 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15311 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15313 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
15314 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
15316 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
15317 lna1_gain_db);
15318 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
15319 lna1_gain_db);
15321 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
15322 lna2_gain_db);
15323 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
15324 lna2_gain_db);
15326 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15327 tia_gain_db);
15328 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15329 tia_gain_db);
15331 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15332 tia_gainbits);
15333 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15334 tia_gainbits);
15336 write_phy_reg(pi, 0x37, 0x74);
15337 write_phy_reg(pi, 0x2ad, 0x74);
15338 write_phy_reg(pi, 0x38, 0x18);
15339 write_phy_reg(pi, 0x2ae, 0x18);
15341 write_phy_reg(pi, 0x2b, 0xe8);
15342 write_phy_reg(pi, 0x41, 0xe8);
15344 if (CHSPEC_IS20(pi->radio_chanspec)) {
15346 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
15347 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
15348 } else {
15350 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
15351 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
15355 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
15357 u16 currband;
15358 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
15359 s8 *lna1_gain_db = NULL;
15360 s8 *lna1_gain_db_2 = NULL;
15361 s8 *lna2_gain_db = NULL;
15362 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
15363 s8 *tia_gain_db;
15364 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
15365 s8 *tia_gainbits;
15366 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
15367 u16 *rfseq_init_gain;
15368 u16 init_gaincode;
15369 u16 clip1hi_gaincode;
15370 u16 clip1md_gaincode = 0;
15371 u16 clip1md_gaincode_B;
15372 u16 clip1lo_gaincode;
15373 u16 clip1lo_gaincode_B;
15374 u8 crsminl_th = 0;
15375 u8 crsminu_th;
15376 u16 nbclip_th = 0;
15377 u8 w1clip_th;
15378 u16 freq;
15379 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
15380 u8 chg_nbclip_th = 0;
15382 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15383 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15385 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15386 if (currband == 0) {
15388 lna1_gain_db = lna1G_gain_db_rev7;
15390 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15391 lna1_gain_db);
15392 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15393 lna1_gain_db);
15395 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
15397 if (CHSPEC_IS40(pi->radio_chanspec)) {
15398 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
15399 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
15402 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
15404 if (CHSPEC_IS20(pi->radio_chanspec)) {
15405 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
15406 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
15408 } else {
15410 init_gaincode = 0x9e;
15411 clip1hi_gaincode = 0x9e;
15412 clip1md_gaincode_B = 0x24;
15413 clip1lo_gaincode = 0x8a;
15414 clip1lo_gaincode_B = 8;
15415 rfseq_init_gain = rfseqA_init_gain_rev7;
15417 tia_gain_db = tiaA_gain_db_rev7;
15418 tia_gainbits = tiaA_gainbits_rev7;
15420 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
15421 if (CHSPEC_IS20(pi->radio_chanspec)) {
15423 w1clip_th = 25;
15424 clip1md_gaincode = 0x82;
15426 if ((freq <= 5080) || (freq == 5825)) {
15428 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
15429 s8 lna1A_gain_db_2_rev7[] = {
15430 11, 17, 22, 25};
15431 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15433 crsminu_th = 0x3e;
15434 lna1_gain_db = lna1A_gain_db_rev7;
15435 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15436 lna2_gain_db = lna2A_gain_db_rev7;
15437 } else if ((freq >= 5500) && (freq <= 5700)) {
15439 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
15440 s8 lna1A_gain_db_2_rev7[] = {
15441 12, 18, 22, 26};
15442 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
15444 crsminu_th = 0x45;
15445 clip1md_gaincode_B = 0x14;
15446 nbclip_th = 0xff;
15447 chg_nbclip_th = 1;
15448 lna1_gain_db = lna1A_gain_db_rev7;
15449 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15450 lna2_gain_db = lna2A_gain_db_rev7;
15451 } else {
15453 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
15454 s8 lna1A_gain_db_2_rev7[] = {
15455 12, 18, 22, 26};
15456 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
15458 crsminu_th = 0x41;
15459 lna1_gain_db = lna1A_gain_db_rev7;
15460 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
15461 lna2_gain_db = lna2A_gain_db_rev7;
15464 if (freq <= 4920) {
15465 nvar_baseline_offset0 = 5;
15466 nvar_baseline_offset1 = 5;
15467 } else if ((freq > 4920) && (freq <= 5320)) {
15468 nvar_baseline_offset0 = 3;
15469 nvar_baseline_offset1 = 5;
15470 } else if ((freq > 5320) && (freq <= 5700)) {
15471 nvar_baseline_offset0 = 3;
15472 nvar_baseline_offset1 = 2;
15473 } else {
15474 nvar_baseline_offset0 = 4;
15475 nvar_baseline_offset1 = 0;
15477 } else {
15479 crsminu_th = 0x3a;
15480 crsminl_th = 0x3a;
15481 w1clip_th = 20;
15483 if ((freq >= 4920) && (freq <= 5320)) {
15484 nvar_baseline_offset0 = 4;
15485 nvar_baseline_offset1 = 5;
15486 } else if ((freq > 5320) && (freq <= 5550)) {
15487 nvar_baseline_offset0 = 4;
15488 nvar_baseline_offset1 = 2;
15489 } else {
15490 nvar_baseline_offset0 = 5;
15491 nvar_baseline_offset1 = 3;
15495 write_phy_reg(pi, 0x20, init_gaincode);
15496 write_phy_reg(pi, 0x2a7, init_gaincode);
15498 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15499 pi->pubpi.phy_corenum, 0x106, 16,
15500 rfseq_init_gain);
15502 write_phy_reg(pi, 0x22, clip1hi_gaincode);
15503 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
15505 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
15506 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
15508 write_phy_reg(pi, 0x37, clip1lo_gaincode);
15509 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
15510 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
15511 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
15513 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
15514 tia_gain_db);
15515 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
15516 tia_gain_db);
15518 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
15519 tia_gainbits);
15520 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
15521 tia_gainbits);
15523 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
15525 if (chg_nbclip_th == 1) {
15526 write_phy_reg(pi, 0x2b, nbclip_th);
15527 write_phy_reg(pi, 0x41, nbclip_th);
15530 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
15531 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
15533 mod_phy_reg(pi, 0x2e4,
15534 (0x3f << 0), (nvar_baseline_offset0 << 0));
15536 mod_phy_reg(pi, 0x2e4,
15537 (0x3f << 6), (nvar_baseline_offset1 << 6));
15539 if (CHSPEC_IS20(pi->radio_chanspec)) {
15541 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
15542 lna1_gain_db);
15543 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
15544 lna1_gain_db_2);
15546 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
15547 8, lna2_gain_db);
15548 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
15549 8, lna2_gain_db);
15551 write_phy_reg(pi, 0x24, clip1md_gaincode);
15552 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
15553 } else {
15554 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
15559 static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)
15561 u16 w1th, hpf_code, currband;
15562 int ctr;
15563 u8 rfseq_updategainu_events[] = {
15564 NPHY_RFSEQ_CMD_RX_GAIN,
15565 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15566 NPHY_RFSEQ_CMD_SET_HPF_BW
15568 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
15569 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
15570 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
15571 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
15572 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
15573 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
15574 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
15575 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
15576 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
15577 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
15578 s8 *lna1_gain_db = NULL;
15579 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
15580 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
15581 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
15582 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
15583 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
15584 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
15585 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
15586 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
15587 s8 *lna2_gain_db = NULL;
15588 s8 tiaG_gain_db[] = {
15589 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
15590 s8 tiaA_gain_db[] = {
15591 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
15592 s8 tiaA_gain_db_rev4[] = {
15593 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15594 s8 tiaA_gain_db_rev5[] = {
15595 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15596 s8 tiaA_gain_db_rev6[] = {
15597 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
15598 s8 *tia_gain_db;
15599 s8 tiaG_gainbits[] = {
15600 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
15601 s8 tiaA_gainbits[] = {
15602 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
15603 s8 tiaA_gainbits_rev4[] = {
15604 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15605 s8 tiaA_gainbits_rev5[] = {
15606 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15607 s8 tiaA_gainbits_rev6[] = {
15608 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
15609 s8 *tia_gainbits;
15610 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
15611 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
15612 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
15613 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
15614 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
15615 u16 rfseqG_init_gain_rev5_elna[] = {
15616 0x013f, 0x013f, 0x013f, 0x013f };
15617 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
15618 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
15619 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
15620 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
15621 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
15622 u16 rfseqA_init_gain_rev4_elna[] = {
15623 0x314f, 0x314f, 0x314f, 0x314f };
15624 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
15625 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
15626 u16 *rfseq_init_gain;
15627 u16 initG_gaincode = 0x627e;
15628 u16 initG_gaincode_rev4 = 0x527e;
15629 u16 initG_gaincode_rev5 = 0x427e;
15630 u16 initG_gaincode_rev5_elna = 0x027e;
15631 u16 initG_gaincode_rev6 = 0x527e;
15632 u16 initG_gaincode_rev6_224B0 = 0x427e;
15633 u16 initG_gaincode_rev6_elna = 0x127e;
15634 u16 initA_gaincode = 0x52de;
15635 u16 initA_gaincode_rev4 = 0x629e;
15636 u16 initA_gaincode_rev4_elna = 0x329e;
15637 u16 initA_gaincode_rev5 = 0x729e;
15638 u16 initA_gaincode_rev6 = 0x729e;
15639 u16 init_gaincode;
15640 u16 clip1hiG_gaincode = 0x107e;
15641 u16 clip1hiG_gaincode_rev4 = 0x007e;
15642 u16 clip1hiG_gaincode_rev5 = 0x1076;
15643 u16 clip1hiG_gaincode_rev6 = 0x007e;
15644 u16 clip1hiA_gaincode = 0x00de;
15645 u16 clip1hiA_gaincode_rev4 = 0x029e;
15646 u16 clip1hiA_gaincode_rev5 = 0x029e;
15647 u16 clip1hiA_gaincode_rev6 = 0x029e;
15648 u16 clip1hi_gaincode;
15649 u16 clip1mdG_gaincode = 0x0066;
15650 u16 clip1mdA_gaincode = 0x00ca;
15651 u16 clip1mdA_gaincode_rev4 = 0x1084;
15652 u16 clip1mdA_gaincode_rev5 = 0x2084;
15653 u16 clip1mdA_gaincode_rev6 = 0x2084;
15654 u16 clip1md_gaincode = 0;
15655 u16 clip1loG_gaincode = 0x0074;
15656 u16 clip1loG_gaincode_rev5[] = {
15657 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
15659 u16 clip1loG_gaincode_rev6[] = {
15660 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
15662 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
15663 u16 clip1loA_gaincode = 0x00cc;
15664 u16 clip1loA_gaincode_rev4 = 0x0086;
15665 u16 clip1loA_gaincode_rev5 = 0x2086;
15666 u16 clip1loA_gaincode_rev6 = 0x2086;
15667 u16 clip1lo_gaincode;
15668 u8 crsminG_th = 0x18;
15669 u8 crsminG_th_rev5 = 0x18;
15670 u8 crsminG_th_rev6 = 0x18;
15671 u8 crsminA_th = 0x1e;
15672 u8 crsminA_th_rev4 = 0x24;
15673 u8 crsminA_th_rev5 = 0x24;
15674 u8 crsminA_th_rev6 = 0x24;
15675 u8 crsmin_th;
15676 u8 crsminlG_th = 0x18;
15677 u8 crsminlG_th_rev5 = 0x18;
15678 u8 crsminlG_th_rev6 = 0x18;
15679 u8 crsminlA_th = 0x1e;
15680 u8 crsminlA_th_rev4 = 0x24;
15681 u8 crsminlA_th_rev5 = 0x24;
15682 u8 crsminlA_th_rev6 = 0x24;
15683 u8 crsminl_th = 0;
15684 u8 crsminuG_th = 0x18;
15685 u8 crsminuG_th_rev5 = 0x18;
15686 u8 crsminuG_th_rev6 = 0x18;
15687 u8 crsminuA_th = 0x1e;
15688 u8 crsminuA_th_rev4 = 0x24;
15689 u8 crsminuA_th_rev5 = 0x24;
15690 u8 crsminuA_th_rev6 = 0x24;
15691 u8 crsminuA_th_rev6_224B0 = 0x2d;
15692 u8 crsminu_th;
15693 u16 nbclipG_th = 0x20d;
15694 u16 nbclipG_th_rev4 = 0x1a1;
15695 u16 nbclipG_th_rev5 = 0x1d0;
15696 u16 nbclipG_th_rev6 = 0x1d0;
15697 u16 nbclipA_th = 0x1a1;
15698 u16 nbclipA_th_rev4 = 0x107;
15699 u16 nbclipA_th_rev5 = 0x0a9;
15700 u16 nbclipA_th_rev6 = 0x0f0;
15701 u16 nbclip_th = 0;
15702 u8 w1clipG_th = 5;
15703 u8 w1clipG_th_rev5 = 9;
15704 u8 w1clipG_th_rev6 = 5;
15705 u8 w1clipA_th = 25, w1clip_th;
15706 u8 rssi_gain_default = 0x50;
15707 u8 rssiG_gain_rev6_224B0 = 0x50;
15708 u8 rssiA_gain_rev5 = 0x90;
15709 u8 rssiA_gain_rev6 = 0x90;
15710 u8 rssi_gain;
15711 u16 regval[21];
15712 u8 triso;
15714 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
15715 pi->srom_fem2g.triso;
15717 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15718 if (pi->pubpi.radiorev == 5) {
15719 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
15720 } else if (pi->pubpi.radiorev == 7) {
15721 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15723 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
15724 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
15726 } else if ((pi->pubpi.radiorev == 3)
15727 || (pi->pubpi.radiorev == 8)) {
15728 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15730 if (pi->pubpi.radiorev == 8) {
15731 mod_phy_reg(pi, 0x283,
15732 (0xff << 0), (0x44 << 0));
15733 mod_phy_reg(pi, 0x280,
15734 (0xff << 0), (0x44 << 0));
15736 } else {
15737 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
15739 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15741 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
15743 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
15744 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
15746 currband =
15747 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
15748 if (currband == 0) {
15749 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15750 if (pi->pubpi.radiorev == 11) {
15751 lna1_gain_db = lna1G_gain_db_rev6_224B0;
15752 lna2_gain_db = lna2G_gain_db_rev6_224B0;
15753 rfseq_init_gain =
15754 rfseqG_init_gain_rev6_224B0;
15755 init_gaincode =
15756 initG_gaincode_rev6_224B0;
15757 clip1hi_gaincode =
15758 clip1hiG_gaincode_rev6;
15759 clip1lo_gaincode =
15760 clip1loG_gaincode_rev6_224B0;
15761 nbclip_th = nbclipG_th_rev6;
15762 w1clip_th = w1clipG_th_rev6;
15763 crsmin_th = crsminG_th_rev6;
15764 crsminl_th = crsminlG_th_rev6;
15765 crsminu_th = crsminuG_th_rev6;
15766 rssi_gain = rssiG_gain_rev6_224B0;
15767 } else {
15768 lna1_gain_db = lna1G_gain_db_rev6;
15769 lna2_gain_db = lna2G_gain_db_rev6;
15770 if (pi->sh->boardflags & BFL_EXTLNA) {
15772 rfseq_init_gain =
15773 rfseqG_init_gain_rev6_elna;
15774 init_gaincode =
15775 initG_gaincode_rev6_elna;
15776 } else {
15777 rfseq_init_gain =
15778 rfseqG_init_gain_rev6;
15779 init_gaincode =
15780 initG_gaincode_rev6;
15782 clip1hi_gaincode =
15783 clip1hiG_gaincode_rev6;
15784 switch (triso) {
15785 case 0:
15786 clip1lo_gaincode =
15787 clip1loG_gaincode_rev6
15788 [0];
15789 break;
15790 case 1:
15791 clip1lo_gaincode =
15792 clip1loG_gaincode_rev6
15793 [1];
15794 break;
15795 case 2:
15796 clip1lo_gaincode =
15797 clip1loG_gaincode_rev6
15798 [2];
15799 break;
15800 case 3:
15801 default:
15803 clip1lo_gaincode =
15804 clip1loG_gaincode_rev6
15805 [3];
15806 break;
15807 case 4:
15808 clip1lo_gaincode =
15809 clip1loG_gaincode_rev6
15810 [4];
15811 break;
15812 case 5:
15813 clip1lo_gaincode =
15814 clip1loG_gaincode_rev6
15815 [5];
15816 break;
15817 case 6:
15818 clip1lo_gaincode =
15819 clip1loG_gaincode_rev6
15820 [6];
15821 break;
15822 case 7:
15823 clip1lo_gaincode =
15824 clip1loG_gaincode_rev6
15825 [7];
15826 break;
15828 nbclip_th = nbclipG_th_rev6;
15829 w1clip_th = w1clipG_th_rev6;
15830 crsmin_th = crsminG_th_rev6;
15831 crsminl_th = crsminlG_th_rev6;
15832 crsminu_th = crsminuG_th_rev6;
15833 rssi_gain = rssi_gain_default;
15835 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15836 lna1_gain_db = lna1G_gain_db_rev5;
15837 lna2_gain_db = lna2G_gain_db_rev5;
15838 if (pi->sh->boardflags & BFL_EXTLNA) {
15840 rfseq_init_gain =
15841 rfseqG_init_gain_rev5_elna;
15842 init_gaincode =
15843 initG_gaincode_rev5_elna;
15844 } else {
15845 rfseq_init_gain = rfseqG_init_gain_rev5;
15846 init_gaincode = initG_gaincode_rev5;
15848 clip1hi_gaincode = clip1hiG_gaincode_rev5;
15849 switch (triso) {
15850 case 0:
15851 clip1lo_gaincode =
15852 clip1loG_gaincode_rev5[0];
15853 break;
15854 case 1:
15855 clip1lo_gaincode =
15856 clip1loG_gaincode_rev5[1];
15857 break;
15858 case 2:
15859 clip1lo_gaincode =
15860 clip1loG_gaincode_rev5[2];
15861 break;
15862 case 3:
15864 clip1lo_gaincode =
15865 clip1loG_gaincode_rev5[3];
15866 break;
15867 case 4:
15868 clip1lo_gaincode =
15869 clip1loG_gaincode_rev5[4];
15870 break;
15871 case 5:
15872 clip1lo_gaincode =
15873 clip1loG_gaincode_rev5[5];
15874 break;
15875 case 6:
15876 clip1lo_gaincode =
15877 clip1loG_gaincode_rev5[6];
15878 break;
15879 case 7:
15880 clip1lo_gaincode =
15881 clip1loG_gaincode_rev5[7];
15882 break;
15883 default:
15884 clip1lo_gaincode =
15885 clip1loG_gaincode_rev5[3];
15886 break;
15888 nbclip_th = nbclipG_th_rev5;
15889 w1clip_th = w1clipG_th_rev5;
15890 crsmin_th = crsminG_th_rev5;
15891 crsminl_th = crsminlG_th_rev5;
15892 crsminu_th = crsminuG_th_rev5;
15893 rssi_gain = rssi_gain_default;
15894 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15895 lna1_gain_db = lna1G_gain_db_rev4;
15896 lna2_gain_db = lna2G_gain_db;
15897 rfseq_init_gain = rfseqG_init_gain_rev4;
15898 init_gaincode = initG_gaincode_rev4;
15899 clip1hi_gaincode = clip1hiG_gaincode_rev4;
15900 clip1lo_gaincode = clip1loG_gaincode;
15901 nbclip_th = nbclipG_th_rev4;
15902 w1clip_th = w1clipG_th;
15903 crsmin_th = crsminG_th;
15904 crsminl_th = crsminlG_th;
15905 crsminu_th = crsminuG_th;
15906 rssi_gain = rssi_gain_default;
15907 } else {
15908 lna1_gain_db = lna1G_gain_db;
15909 lna2_gain_db = lna2G_gain_db;
15910 rfseq_init_gain = rfseqG_init_gain;
15911 init_gaincode = initG_gaincode;
15912 clip1hi_gaincode = clip1hiG_gaincode;
15913 clip1lo_gaincode = clip1loG_gaincode;
15914 nbclip_th = nbclipG_th;
15915 w1clip_th = w1clipG_th;
15916 crsmin_th = crsminG_th;
15917 crsminl_th = crsminlG_th;
15918 crsminu_th = crsminuG_th;
15919 rssi_gain = rssi_gain_default;
15921 tia_gain_db = tiaG_gain_db;
15922 tia_gainbits = tiaG_gainbits;
15923 clip1md_gaincode = clip1mdG_gaincode;
15924 } else {
15925 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
15926 lna1_gain_db = lna1A_gain_db_rev6;
15927 lna2_gain_db = lna2A_gain_db_rev6;
15928 tia_gain_db = tiaA_gain_db_rev6;
15929 tia_gainbits = tiaA_gainbits_rev6;
15930 rfseq_init_gain = rfseqA_init_gain_rev6;
15931 init_gaincode = initA_gaincode_rev6;
15932 clip1hi_gaincode = clip1hiA_gaincode_rev6;
15933 clip1md_gaincode = clip1mdA_gaincode_rev6;
15934 clip1lo_gaincode = clip1loA_gaincode_rev6;
15935 crsmin_th = crsminA_th_rev6;
15936 crsminl_th = crsminlA_th_rev6;
15937 if ((pi->pubpi.radiorev == 11) &&
15938 (CHSPEC_IS40(pi->radio_chanspec) == 0))
15939 crsminu_th = crsminuA_th_rev6_224B0;
15940 else
15941 crsminu_th = crsminuA_th_rev6;
15943 nbclip_th = nbclipA_th_rev6;
15944 rssi_gain = rssiA_gain_rev6;
15945 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
15946 lna1_gain_db = lna1A_gain_db_rev5;
15947 lna2_gain_db = lna2A_gain_db_rev5;
15948 tia_gain_db = tiaA_gain_db_rev5;
15949 tia_gainbits = tiaA_gainbits_rev5;
15950 rfseq_init_gain = rfseqA_init_gain_rev5;
15951 init_gaincode = initA_gaincode_rev5;
15952 clip1hi_gaincode = clip1hiA_gaincode_rev5;
15953 clip1md_gaincode = clip1mdA_gaincode_rev5;
15954 clip1lo_gaincode = clip1loA_gaincode_rev5;
15955 crsmin_th = crsminA_th_rev5;
15956 crsminl_th = crsminlA_th_rev5;
15957 crsminu_th = crsminuA_th_rev5;
15958 nbclip_th = nbclipA_th_rev5;
15959 rssi_gain = rssiA_gain_rev5;
15960 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
15961 lna1_gain_db = lna1A_gain_db_rev4;
15962 lna2_gain_db = lna2A_gain_db_rev4;
15963 tia_gain_db = tiaA_gain_db_rev4;
15964 tia_gainbits = tiaA_gainbits_rev4;
15965 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
15967 rfseq_init_gain =
15968 rfseqA_init_gain_rev4_elna;
15969 init_gaincode =
15970 initA_gaincode_rev4_elna;
15971 } else {
15972 rfseq_init_gain = rfseqA_init_gain_rev4;
15973 init_gaincode = initA_gaincode_rev4;
15975 clip1hi_gaincode = clip1hiA_gaincode_rev4;
15976 clip1md_gaincode = clip1mdA_gaincode_rev4;
15977 clip1lo_gaincode = clip1loA_gaincode_rev4;
15978 crsmin_th = crsminA_th_rev4;
15979 crsminl_th = crsminlA_th_rev4;
15980 crsminu_th = crsminuA_th_rev4;
15981 nbclip_th = nbclipA_th_rev4;
15982 rssi_gain = rssi_gain_default;
15983 } else {
15984 lna1_gain_db = lna1A_gain_db;
15985 lna2_gain_db = lna2A_gain_db;
15986 tia_gain_db = tiaA_gain_db;
15987 tia_gainbits = tiaA_gainbits;
15988 rfseq_init_gain = rfseqA_init_gain;
15989 init_gaincode = initA_gaincode;
15990 clip1hi_gaincode = clip1hiA_gaincode;
15991 clip1md_gaincode = clip1mdA_gaincode;
15992 clip1lo_gaincode = clip1loA_gaincode;
15993 crsmin_th = crsminA_th;
15994 crsminl_th = crsminlA_th;
15995 crsminu_th = crsminuA_th;
15996 nbclip_th = nbclipA_th;
15997 rssi_gain = rssi_gain_default;
15999 w1clip_th = w1clipA_th;
16002 write_radio_reg(pi,
16003 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16004 RADIO_2056_RX0), 0x17);
16005 write_radio_reg(pi,
16006 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16007 RADIO_2056_RX1), 0x17);
16009 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16010 0xf0);
16011 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16012 0xf0);
16014 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16015 0x0);
16016 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16017 0x0);
16019 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16020 rssi_gain);
16021 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16022 rssi_gain);
16024 write_radio_reg(pi,
16025 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16026 RADIO_2056_RX0), 0x17);
16027 write_radio_reg(pi,
16028 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16029 RADIO_2056_RX1), 0x17);
16031 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16032 0xFF);
16033 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16034 0xFF);
16036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16037 8, lna1_gain_db);
16038 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16039 8, lna1_gain_db);
16041 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16042 8, lna2_gain_db);
16043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16044 8, lna2_gain_db);
16046 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16047 8, tia_gain_db);
16048 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16049 8, tia_gain_db);
16051 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16052 8, tia_gainbits);
16053 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16054 8, tia_gainbits);
16056 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16057 8, &lpf_gain_db);
16058 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16059 8, &lpf_gain_db);
16060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16061 8, &lpf_gainbits);
16062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16063 8, &lpf_gainbits);
16065 write_phy_reg(pi, 0x20, init_gaincode);
16066 write_phy_reg(pi, 0x2a7, init_gaincode);
16068 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16069 pi->pubpi.phy_corenum, 0x106, 16,
16070 rfseq_init_gain);
16072 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16073 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16075 write_phy_reg(pi, 0x24, clip1md_gaincode);
16076 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16078 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16079 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16081 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16082 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16083 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16085 write_phy_reg(pi, 0x2b, nbclip_th);
16086 write_phy_reg(pi, 0x41, nbclip_th);
16088 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16089 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16091 write_phy_reg(pi, 0x150, 0x809c);
16093 } else {
16095 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16096 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16098 write_phy_reg(pi, 0x2b, 0x84);
16099 write_phy_reg(pi, 0x41, 0x84);
16101 if (CHSPEC_IS20(pi->radio_chanspec)) {
16102 write_phy_reg(pi, 0x6b, 0x2b);
16103 write_phy_reg(pi, 0x6c, 0x2b);
16104 write_phy_reg(pi, 0x6d, 0x9);
16105 write_phy_reg(pi, 0x6e, 0x9);
16108 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16109 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16110 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16112 if (CHSPEC_IS20(pi->radio_chanspec)) {
16113 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16114 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16116 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16117 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16120 write_phy_reg(pi, 0x150, 0x809c);
16122 if (pi->nphy_gain_boost)
16123 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16124 (CHSPEC_IS40(pi->radio_chanspec)))
16125 hpf_code = 4;
16126 else
16127 hpf_code = 5;
16128 else if (CHSPEC_IS40(pi->radio_chanspec))
16129 hpf_code = 6;
16130 else
16131 hpf_code = 7;
16133 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16134 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16136 for (ctr = 0; ctr < 4; ctr++)
16137 regval[ctr] = (hpf_code << 8) | 0x7c;
16138 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16140 wlc_phy_adjust_lnagaintbl_nphy(pi);
16142 if (pi->nphy_elna_gain_config) {
16143 regval[0] = 0;
16144 regval[1] = 1;
16145 regval[2] = 1;
16146 regval[3] = 1;
16147 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16148 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16150 for (ctr = 0; ctr < 4; ctr++)
16151 regval[ctr] = (hpf_code << 8) | 0x74;
16152 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16155 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16156 for (ctr = 0; ctr < 21; ctr++)
16157 regval[ctr] = 3 * ctr;
16158 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16159 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16161 for (ctr = 0; ctr < 21; ctr++)
16162 regval[ctr] = (u16) ctr;
16163 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16164 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16167 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16168 rfseq_updategainu_events,
16169 rfseq_updategainu_dlys,
16170 sizeof(rfseq_updategainu_events) /
16171 sizeof(rfseq_updategainu_events[0]));
16173 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16175 if (CHSPEC_IS2G(pi->radio_chanspec))
16176 mod_phy_reg(pi,
16177 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16178 0x7f, 0x4);
16182 static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
16184 u8 rfseq_rx2tx_events[] = {
16185 NPHY_RFSEQ_CMD_NOP,
16186 NPHY_RFSEQ_CMD_RXG_FBW,
16187 NPHY_RFSEQ_CMD_TR_SWITCH,
16188 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16189 NPHY_RFSEQ_CMD_RXPD_TXPD,
16190 NPHY_RFSEQ_CMD_TX_GAIN,
16191 NPHY_RFSEQ_CMD_EXT_PA
16193 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
16194 u8 rfseq_tx2rx_events[] = {
16195 NPHY_RFSEQ_CMD_NOP,
16196 NPHY_RFSEQ_CMD_EXT_PA,
16197 NPHY_RFSEQ_CMD_TX_GAIN,
16198 NPHY_RFSEQ_CMD_RXPD_TXPD,
16199 NPHY_RFSEQ_CMD_TR_SWITCH,
16200 NPHY_RFSEQ_CMD_RXG_FBW,
16201 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
16203 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
16204 u8 rfseq_tx2rx_events_rev3[] = {
16205 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16206 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16207 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16208 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16209 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16210 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16211 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16212 NPHY_REV3_RFSEQ_CMD_END
16214 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
16215 u8 rfseq_rx2tx_events_rev3[] = {
16216 NPHY_REV3_RFSEQ_CMD_NOP,
16217 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16218 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16219 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16220 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16221 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16222 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16223 NPHY_REV3_RFSEQ_CMD_EXT_PA,
16224 NPHY_REV3_RFSEQ_CMD_END
16226 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
16228 u8 rfseq_rx2tx_events_rev3_ipa[] = {
16229 NPHY_REV3_RFSEQ_CMD_NOP,
16230 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
16231 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
16232 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
16233 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
16234 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
16235 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
16236 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
16237 NPHY_REV3_RFSEQ_CMD_END
16239 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
16240 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
16242 s16 alpha0, alpha1, alpha2;
16243 s16 beta0, beta1, beta2;
16244 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
16245 stbc_data_weights;
16246 u8 chan_freq_range = 0;
16247 u16 dac_control = 0x0002;
16248 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
16249 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
16250 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16251 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
16252 u16 *aux_adc_vmid;
16253 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
16254 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
16255 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
16256 u16 *aux_adc_gain;
16257 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
16258 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
16259 s32 min_nvar_val = 0x18d;
16260 s32 min_nvar_offset_6mbps = 20;
16261 u8 pdetrange;
16262 u8 triso;
16263 u16 regval;
16264 u16 afectrl_adc_ctrl1_rev7 = 0x20;
16265 u16 afectrl_adc_ctrl2_rev7 = 0x0;
16266 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
16267 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
16268 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
16269 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
16270 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16271 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
16272 u16 ipalvlshift_3p3_war_en = 0;
16273 u16 rccal_bcap_val, rccal_scap_val;
16274 u16 rccal_tx20_11b_bcap = 0;
16275 u16 rccal_tx20_11b_scap = 0;
16276 u16 rccal_tx20_11n_bcap = 0;
16277 u16 rccal_tx20_11n_scap = 0;
16278 u16 rccal_tx40_11n_bcap = 0;
16279 u16 rccal_tx40_11n_scap = 0;
16280 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
16281 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
16282 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
16283 u16 tx_lpf_bw_ofdm_20mhz = 0;
16284 u16 tx_lpf_bw_ofdm_40mhz = 0;
16285 u16 tx_lpf_bw_11b = 0;
16286 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
16287 u16 txgm_idac_bleed = 0;
16288 bool rccal_ovrd = false;
16289 u16 freq;
16290 int coreNum;
16292 if (CHSPEC_IS5G(pi->radio_chanspec))
16293 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
16294 else
16295 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
16297 if (pi->phyhang_avoid)
16298 wlc_phy_stay_in_carriersearch_nphy(pi, true);
16300 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
16302 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16304 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
16305 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
16307 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
16308 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
16309 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
16310 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
16311 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
16312 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
16313 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
16314 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
16315 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
16316 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
16317 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
16318 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
16319 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
16320 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
16321 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
16322 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
16325 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
16326 write_phy_reg(pi, 0x23f, 0x1b0);
16327 write_phy_reg(pi, 0x240, 0x1b0);
16330 if (NREV_GE(pi->pubpi.phy_rev, 8))
16331 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
16333 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16334 &dac_control);
16335 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16336 &dac_control);
16338 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16339 1, 0, 32, &leg_data_weights);
16340 leg_data_weights = leg_data_weights & 0xffffff;
16341 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16342 1, 0, 32, &leg_data_weights);
16344 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16345 2, 0x15e, 16,
16346 rfseq_rx2tx_dacbufpu_rev7);
16347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
16348 rfseq_rx2tx_dacbufpu_rev7);
16350 if (PHY_IPA(pi))
16351 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16352 rfseq_rx2tx_events_rev3_ipa,
16353 rfseq_rx2tx_dlys_rev3_ipa,
16354 sizeof
16355 (rfseq_rx2tx_events_rev3_ipa) /
16356 sizeof
16357 (rfseq_rx2tx_events_rev3_ipa
16358 [0]));
16360 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
16361 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
16363 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
16364 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
16365 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
16367 if (PHY_IPA(pi)) {
16369 if (((pi->pubpi.radiorev == 5)
16370 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
16371 || (pi->pubpi.radiorev == 7)
16372 || (pi->pubpi.radiorev == 8)) {
16374 rccal_bcap_val =
16375 read_radio_reg(
16377 RADIO_2057_RCCAL_BCAP_VAL);
16378 rccal_scap_val =
16379 read_radio_reg(
16381 RADIO_2057_RCCAL_SCAP_VAL);
16383 rccal_tx20_11b_bcap = rccal_bcap_val;
16384 rccal_tx20_11b_scap = rccal_scap_val;
16386 if ((pi->pubpi.radiorev == 5) &&
16387 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
16389 rccal_tx20_11n_bcap = rccal_bcap_val;
16390 rccal_tx20_11n_scap = rccal_scap_val;
16391 rccal_tx40_11n_bcap = 0xc;
16392 rccal_tx40_11n_scap = 0xc;
16394 rccal_ovrd = true;
16396 } else if ((pi->pubpi.radiorev == 7)
16397 || (pi->pubpi.radiorev == 8)) {
16399 tx_lpf_bw_ofdm_20mhz = 4;
16400 tx_lpf_bw_11b = 1;
16402 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16403 rccal_tx20_11n_bcap = 0xc;
16404 rccal_tx20_11n_scap = 0xc;
16405 rccal_tx40_11n_bcap = 0xa;
16406 rccal_tx40_11n_scap = 0xa;
16407 } else {
16408 rccal_tx20_11n_bcap = 0x14;
16409 rccal_tx20_11n_scap = 0x14;
16410 rccal_tx40_11n_bcap = 0xf;
16411 rccal_tx40_11n_scap = 0xf;
16414 rccal_ovrd = true;
16418 } else {
16420 if (pi->pubpi.radiorev == 5) {
16422 tx_lpf_bw_ofdm_20mhz = 1;
16423 tx_lpf_bw_ofdm_40mhz = 3;
16425 rccal_bcap_val =
16426 read_radio_reg(
16428 RADIO_2057_RCCAL_BCAP_VAL);
16429 rccal_scap_val =
16430 read_radio_reg(
16432 RADIO_2057_RCCAL_SCAP_VAL);
16434 rccal_tx20_11b_bcap = rccal_bcap_val;
16435 rccal_tx20_11b_scap = rccal_scap_val;
16437 rccal_tx20_11n_bcap = 0x13;
16438 rccal_tx20_11n_scap = 0x11;
16439 rccal_tx40_11n_bcap = 0x13;
16440 rccal_tx40_11n_scap = 0x11;
16442 rccal_ovrd = true;
16446 if (rccal_ovrd) {
16448 rx2tx_lpf_rc_lut_tx20_11b =
16449 (rccal_tx20_11b_bcap << 8) |
16450 (rccal_tx20_11b_scap << 3) |
16451 tx_lpf_bw_11b;
16452 rx2tx_lpf_rc_lut_tx20_11n =
16453 (rccal_tx20_11n_bcap << 8) |
16454 (rccal_tx20_11n_scap << 3) |
16455 tx_lpf_bw_ofdm_20mhz;
16456 rx2tx_lpf_rc_lut_tx40_11n =
16457 (rccal_tx40_11n_bcap << 8) |
16458 (rccal_tx40_11n_scap << 3) |
16459 tx_lpf_bw_ofdm_40mhz;
16461 for (coreNum = 0; coreNum <= 1; coreNum++) {
16462 wlc_phy_table_write_nphy(
16463 pi, NPHY_TBL_ID_RFSEQ,
16465 0x152 + coreNum * 0x10,
16467 &rx2tx_lpf_rc_lut_tx20_11b);
16468 wlc_phy_table_write_nphy(
16469 pi, NPHY_TBL_ID_RFSEQ,
16471 0x153 + coreNum * 0x10,
16473 &rx2tx_lpf_rc_lut_tx20_11n);
16474 wlc_phy_table_write_nphy(
16475 pi, NPHY_TBL_ID_RFSEQ,
16477 0x154 + coreNum * 0x10,
16479 &rx2tx_lpf_rc_lut_tx20_11n);
16480 wlc_phy_table_write_nphy(
16481 pi, NPHY_TBL_ID_RFSEQ,
16483 0x155 + coreNum * 0x10,
16485 &rx2tx_lpf_rc_lut_tx40_11n);
16486 wlc_phy_table_write_nphy(
16487 pi, NPHY_TBL_ID_RFSEQ,
16489 0x156 + coreNum * 0x10,
16491 &rx2tx_lpf_rc_lut_tx40_11n);
16492 wlc_phy_table_write_nphy(
16493 pi, NPHY_TBL_ID_RFSEQ,
16495 0x157 + coreNum * 0x10,
16497 &rx2tx_lpf_rc_lut_tx40_11n);
16498 wlc_phy_table_write_nphy(
16499 pi, NPHY_TBL_ID_RFSEQ,
16501 0x158 + coreNum * 0x10,
16503 &rx2tx_lpf_rc_lut_tx40_11n);
16504 wlc_phy_table_write_nphy(
16505 pi, NPHY_TBL_ID_RFSEQ,
16507 0x159 + coreNum * 0x10,
16509 &rx2tx_lpf_rc_lut_tx40_11n);
16512 wlc_phy_rfctrl_override_nphy_rev7(
16513 pi, (0x1 << 4),
16514 1, 0x3, 0,
16515 NPHY_REV7_RFCTRLOVERRIDE_ID2);
16518 write_phy_reg(pi, 0x32f, 0x3);
16520 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
16521 wlc_phy_rfctrl_override_nphy_rev7(
16522 pi, (0x1 << 2),
16523 1, 0x3, 0,
16524 NPHY_REV7_RFCTRLOVERRIDE_ID0);
16526 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
16527 (pi->pubpi.radiorev == 6)) {
16528 if ((pi->sh->sromrev >= 8)
16529 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
16530 ipalvlshift_3p3_war_en = 1;
16532 if (ipalvlshift_3p3_war_en) {
16533 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
16534 0x5);
16535 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
16536 0x30);
16537 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
16538 or_radio_reg(pi,
16539 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
16540 0x1);
16541 or_radio_reg(pi,
16542 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
16543 0x1);
16545 ipa2g_mainbias = 0x1f;
16547 ipa2g_casconv = 0x6f;
16549 ipa2g_biasfilt = 0xaa;
16550 } else {
16552 ipa2g_mainbias = 0x2b;
16554 ipa2g_casconv = 0x7f;
16556 ipa2g_biasfilt = 0xee;
16559 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16560 for (coreNum = 0; coreNum <= 1; coreNum++) {
16561 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16562 coreNum, IPA2G_IMAIN,
16563 ipa2g_mainbias);
16564 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16565 coreNum, IPA2G_CASCONV,
16566 ipa2g_casconv);
16567 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16568 coreNum,
16569 IPA2G_BIAS_FILTER,
16570 ipa2g_biasfilt);
16575 if (PHY_IPA(pi)) {
16576 if (CHSPEC_IS2G(pi->radio_chanspec)) {
16577 if ((pi->pubpi.radiorev == 3)
16578 || (pi->pubpi.radiorev == 4)
16579 || (pi->pubpi.radiorev == 6))
16580 txgm_idac_bleed = 0x7f;
16582 for (coreNum = 0; coreNum <= 1; coreNum++) {
16583 if (txgm_idac_bleed != 0)
16584 WRITE_RADIO_REG4(
16585 pi, RADIO_2057,
16586 CORE, coreNum,
16587 TXGM_IDAC_BLEED,
16588 txgm_idac_bleed);
16591 if (pi->pubpi.radiorev == 5) {
16593 for (coreNum = 0; coreNum <= 1;
16594 coreNum++) {
16595 WRITE_RADIO_REG4(pi, RADIO_2057,
16596 CORE, coreNum,
16597 IPA2G_CASCONV,
16598 0x13);
16599 WRITE_RADIO_REG4(pi, RADIO_2057,
16600 CORE, coreNum,
16601 IPA2G_IMAIN,
16602 0x1f);
16603 WRITE_RADIO_REG4(
16604 pi, RADIO_2057,
16605 CORE, coreNum,
16606 IPA2G_BIAS_FILTER,
16607 0xee);
16608 WRITE_RADIO_REG4(pi, RADIO_2057,
16609 CORE, coreNum,
16610 PAD2G_IDACS,
16611 0x8a);
16612 WRITE_RADIO_REG4(
16613 pi, RADIO_2057,
16614 CORE, coreNum,
16615 PAD_BIAS_FILTER_BWS,
16616 0x3e);
16619 } else if ((pi->pubpi.radiorev == 7)
16620 || (pi->pubpi.radiorev == 8)) {
16622 if (CHSPEC_IS40(pi->radio_chanspec) ==
16623 0) {
16624 WRITE_RADIO_REG4(pi, RADIO_2057,
16625 CORE, 0,
16626 IPA2G_IMAIN,
16627 0x14);
16628 WRITE_RADIO_REG4(pi, RADIO_2057,
16629 CORE, 1,
16630 IPA2G_IMAIN,
16631 0x12);
16632 } else {
16633 WRITE_RADIO_REG4(pi, RADIO_2057,
16634 CORE, 0,
16635 IPA2G_IMAIN,
16636 0x16);
16637 WRITE_RADIO_REG4(pi, RADIO_2057,
16638 CORE, 1,
16639 IPA2G_IMAIN,
16640 0x16);
16644 } else {
16645 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(
16646 pi->radio_chanspec));
16647 if (((freq >= 5180) && (freq <= 5230))
16648 || ((freq >= 5745) && (freq <= 5805))) {
16649 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16650 0, IPA5G_BIAS_FILTER,
16651 0xff);
16652 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16653 1, IPA5G_BIAS_FILTER,
16654 0xff);
16657 } else {
16659 if (pi->pubpi.radiorev != 5) {
16660 for (coreNum = 0; coreNum <= 1; coreNum++) {
16661 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16662 coreNum,
16663 TXMIX2G_TUNE_BOOST_PU,
16664 0x61);
16665 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
16666 coreNum,
16667 TXGM_IDAC_BLEED, 0x70);
16672 if (pi->pubpi.radiorev == 4) {
16673 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16674 0x05, 16,
16675 &afectrl_adc_ctrl1_rev7);
16676 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16677 0x15, 16,
16678 &afectrl_adc_ctrl1_rev7);
16680 for (coreNum = 0; coreNum <= 1; coreNum++) {
16681 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16682 AFE_VCM_CAL_MASTER, 0x0);
16683 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16684 AFE_SET_VCM_I, 0x3f);
16685 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
16686 AFE_SET_VCM_Q, 0x3f);
16688 } else {
16689 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
16690 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
16691 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
16692 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
16694 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
16695 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
16696 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
16697 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
16699 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16700 0x05, 16,
16701 &afectrl_adc_ctrl2_rev7);
16702 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
16703 0x15, 16,
16704 &afectrl_adc_ctrl2_rev7);
16706 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
16707 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
16708 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
16709 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
16712 write_phy_reg(pi, 0x6a, 0x2);
16714 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
16715 &min_nvar_offset_6mbps);
16717 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
16718 &rfseq_pktgn_lpf_hpc_rev7);
16720 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
16721 &rfseq_pktgn_lpf_h_hpc_rev7);
16723 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
16724 &rfseq_htpktgn_lpf_hpc_rev7);
16726 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
16727 &rfseq_cckpktgn_lpf_hpc_rev7);
16729 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
16730 &rfseq_tx2rx_lpf_h_hpc_rev7);
16732 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
16733 &rfseq_rx2tx_lpf_h_hpc_rev7);
16735 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16736 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16737 32, &min_nvar_val);
16738 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16739 127, 32, &min_nvar_val);
16740 } else {
16741 min_nvar_val = noise_var_tbl_rev7[3];
16742 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16743 32, &min_nvar_val);
16745 min_nvar_val = noise_var_tbl_rev7[127];
16746 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16747 127, 32, &min_nvar_val);
16750 wlc_phy_workarounds_nphy_gainctrl(pi);
16752 pdetrange =
16753 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16754 pdetrange : pi->srom_fem2g.pdetrange;
16756 if (pdetrange == 0) {
16757 chan_freq_range =
16758 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16759 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16760 aux_adc_vmid_rev7_core0[3] = 0x70;
16761 aux_adc_vmid_rev7_core1[3] = 0x70;
16762 aux_adc_gain_rev7[3] = 2;
16763 } else {
16764 aux_adc_vmid_rev7_core0[3] = 0x80;
16765 aux_adc_vmid_rev7_core1[3] = 0x80;
16766 aux_adc_gain_rev7[3] = 3;
16768 } else if (pdetrange == 1) {
16769 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16770 aux_adc_vmid_rev7_core0[3] = 0x7c;
16771 aux_adc_vmid_rev7_core1[3] = 0x7c;
16772 aux_adc_gain_rev7[3] = 2;
16773 } else {
16774 aux_adc_vmid_rev7_core0[3] = 0x8c;
16775 aux_adc_vmid_rev7_core1[3] = 0x8c;
16776 aux_adc_gain_rev7[3] = 1;
16778 } else if (pdetrange == 2) {
16779 if (pi->pubpi.radioid == BCM2057_ID) {
16780 if ((pi->pubpi.radiorev == 5)
16781 || (pi->pubpi.radiorev == 7)
16782 || (pi->pubpi.radiorev == 8)) {
16783 if (chan_freq_range ==
16784 WL_CHAN_FREQ_RANGE_2G) {
16785 aux_adc_vmid_rev7_core0[3] =
16786 0x8c;
16787 aux_adc_vmid_rev7_core1[3] =
16788 0x8c;
16789 aux_adc_gain_rev7[3] = 0;
16790 } else {
16791 aux_adc_vmid_rev7_core0[3] =
16792 0x96;
16793 aux_adc_vmid_rev7_core1[3] =
16794 0x96;
16795 aux_adc_gain_rev7[3] = 0;
16800 } else if (pdetrange == 3) {
16801 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
16802 aux_adc_vmid_rev7_core0[3] = 0x89;
16803 aux_adc_vmid_rev7_core1[3] = 0x89;
16804 aux_adc_gain_rev7[3] = 0;
16807 } else if (pdetrange == 5) {
16809 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16810 aux_adc_vmid_rev7_core0[3] = 0x80;
16811 aux_adc_vmid_rev7_core1[3] = 0x80;
16812 aux_adc_gain_rev7[3] = 3;
16813 } else {
16814 aux_adc_vmid_rev7_core0[3] = 0x70;
16815 aux_adc_vmid_rev7_core1[3] = 0x70;
16816 aux_adc_gain_rev7[3] = 2;
16820 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
16821 &aux_adc_vmid_rev7_core0);
16822 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
16823 &aux_adc_vmid_rev7_core1);
16824 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
16825 &aux_adc_gain_rev7);
16826 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
16827 &aux_adc_gain_rev7);
16829 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16831 write_phy_reg(pi, 0x23f, 0x1f8);
16832 write_phy_reg(pi, 0x240, 0x1f8);
16834 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16835 1, 0, 32, &leg_data_weights);
16836 leg_data_weights = leg_data_weights & 0xffffff;
16837 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16838 1, 0, 32, &leg_data_weights);
16840 alpha0 = 293;
16841 alpha1 = 435;
16842 alpha2 = 261;
16843 beta0 = 366;
16844 beta1 = 205;
16845 beta2 = 32;
16846 write_phy_reg(pi, 0x145, alpha0);
16847 write_phy_reg(pi, 0x146, alpha1);
16848 write_phy_reg(pi, 0x147, alpha2);
16849 write_phy_reg(pi, 0x148, beta0);
16850 write_phy_reg(pi, 0x149, beta1);
16851 write_phy_reg(pi, 0x14a, beta2);
16853 write_phy_reg(pi, 0x38, 0xC);
16854 write_phy_reg(pi, 0x2ae, 0xC);
16856 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
16857 rfseq_tx2rx_events_rev3,
16858 rfseq_tx2rx_dlys_rev3,
16859 sizeof(rfseq_tx2rx_events_rev3) /
16860 sizeof(rfseq_tx2rx_events_rev3[0]));
16862 if (PHY_IPA(pi))
16863 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
16864 rfseq_rx2tx_events_rev3_ipa,
16865 rfseq_rx2tx_dlys_rev3_ipa,
16866 sizeof
16867 (rfseq_rx2tx_events_rev3_ipa) /
16868 sizeof
16869 (rfseq_rx2tx_events_rev3_ipa
16870 [0]));
16872 if ((pi->sh->hw_phyrxchain != 0x3) &&
16873 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
16875 if (PHY_IPA(pi)) {
16876 rfseq_rx2tx_dlys_rev3[5] = 59;
16877 rfseq_rx2tx_dlys_rev3[6] = 1;
16878 rfseq_rx2tx_events_rev3[7] =
16879 NPHY_REV3_RFSEQ_CMD_END;
16882 wlc_phy_set_rfseq_nphy(
16883 pi, NPHY_RFSEQ_RX2TX,
16884 rfseq_rx2tx_events_rev3,
16885 rfseq_rx2tx_dlys_rev3,
16886 sizeof(rfseq_rx2tx_events_rev3) /
16887 sizeof(rfseq_rx2tx_events_rev3[0]));
16890 if (CHSPEC_IS2G(pi->radio_chanspec))
16891 write_phy_reg(pi, 0x6a, 0x2);
16892 else
16893 write_phy_reg(pi, 0x6a, 0x9c40);
16895 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
16897 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
16898 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16899 32, &min_nvar_val);
16900 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16901 127, 32, &min_nvar_val);
16902 } else {
16903 min_nvar_val = noise_var_tbl_rev3[3];
16904 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
16905 32, &min_nvar_val);
16907 min_nvar_val = noise_var_tbl_rev3[127];
16908 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
16909 127, 32, &min_nvar_val);
16912 wlc_phy_workarounds_nphy_gainctrl(pi);
16914 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
16915 &dac_control);
16916 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16917 &dac_control);
16919 pdetrange =
16920 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16921 pdetrange : pi->srom_fem2g.pdetrange;
16923 if (pdetrange == 0) {
16924 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16925 aux_adc_vmid = aux_adc_vmid_rev4;
16926 aux_adc_gain = aux_adc_gain_rev4;
16927 } else {
16928 aux_adc_vmid = aux_adc_vmid_rev3;
16929 aux_adc_gain = aux_adc_gain_rev3;
16931 chan_freq_range =
16932 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16933 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16934 switch (chan_freq_range) {
16935 case WL_CHAN_FREQ_RANGE_5GL:
16936 aux_adc_vmid[3] = 0x89;
16937 aux_adc_gain[3] = 0;
16938 break;
16939 case WL_CHAN_FREQ_RANGE_5GM:
16940 aux_adc_vmid[3] = 0x89;
16941 aux_adc_gain[3] = 0;
16942 break;
16943 case WL_CHAN_FREQ_RANGE_5GH:
16944 aux_adc_vmid[3] = 0x89;
16945 aux_adc_gain[3] = 0;
16946 break;
16947 default:
16948 break;
16951 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16952 0x08, 16, aux_adc_vmid);
16953 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16954 0x18, 16, aux_adc_vmid);
16955 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16956 0x0c, 16, aux_adc_gain);
16957 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16958 0x1c, 16, aux_adc_gain);
16959 } else if (pdetrange == 1) {
16960 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16961 0x08, 16, sk_adc_vmid);
16962 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16963 0x18, 16, sk_adc_vmid);
16964 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16965 0x0c, 16, sk_adc_gain);
16966 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16967 0x1c, 16, sk_adc_gain);
16968 } else if (pdetrange == 2) {
16970 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16971 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16973 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16974 chan_freq_range =
16975 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16976 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16977 bcm_adc_vmid[3] = 0x8e;
16978 bcm_adc_gain[3] = 0x03;
16979 } else {
16980 bcm_adc_vmid[3] = 0x94;
16981 bcm_adc_gain[3] = 0x03;
16983 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16984 bcm_adc_vmid[3] = 0x84;
16985 bcm_adc_gain[3] = 0x02;
16988 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16989 0x08, 16, bcm_adc_vmid);
16990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16991 0x18, 16, bcm_adc_vmid);
16992 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16993 0x0c, 16, bcm_adc_gain);
16994 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16995 0x1c, 16, bcm_adc_gain);
16996 } else if (pdetrange == 3) {
16997 chan_freq_range =
16998 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16999 if ((NREV_GE(pi->pubpi.phy_rev, 4))
17000 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
17002 u16 auxadc_vmid[] = {
17003 0xa2, 0xb4, 0xb4, 0x270
17005 u16 auxadc_gain[] = {
17006 0x02, 0x02, 0x02, 0x00
17009 wlc_phy_table_write_nphy(pi,
17010 NPHY_TBL_ID_AFECTRL, 4,
17011 0x08, 16, auxadc_vmid);
17012 wlc_phy_table_write_nphy(pi,
17013 NPHY_TBL_ID_AFECTRL, 4,
17014 0x18, 16, auxadc_vmid);
17015 wlc_phy_table_write_nphy(pi,
17016 NPHY_TBL_ID_AFECTRL, 4,
17017 0x0c, 16, auxadc_gain);
17018 wlc_phy_table_write_nphy(pi,
17019 NPHY_TBL_ID_AFECTRL, 4,
17020 0x1c, 16, auxadc_gain);
17022 } else if ((pdetrange == 4) || (pdetrange == 5)) {
17023 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
17024 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
17025 u16 Vmid[2], Av[2];
17027 chan_freq_range =
17028 wlc_phy_get_chan_freq_range_nphy(pi, 0);
17029 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
17030 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
17031 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
17032 Av[0] = (pdetrange == 4) ? 2 : 0;
17033 Av[1] = (pdetrange == 4) ? 2 : 0;
17034 } else {
17035 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
17036 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
17037 Av[0] = (pdetrange == 4) ? 2 : 0;
17038 Av[1] = (pdetrange == 4) ? 2 : 0;
17041 bcm_adc_vmid[3] = Vmid[0];
17042 bcm_adc_gain[3] = Av[0];
17043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17044 0x08, 16, bcm_adc_vmid);
17045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17046 0x0c, 16, bcm_adc_gain);
17048 bcm_adc_vmid[3] = Vmid[1];
17049 bcm_adc_gain[3] = Av[1];
17050 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17051 0x18, 16, bcm_adc_vmid);
17052 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
17053 0x1c, 16, bcm_adc_gain);
17056 write_radio_reg(pi,
17057 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
17058 0x0);
17059 write_radio_reg(pi,
17060 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
17061 0x0);
17063 write_radio_reg(pi,
17064 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
17065 0x6);
17066 write_radio_reg(pi,
17067 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
17068 0x6);
17070 write_radio_reg(pi,
17071 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
17072 0x7);
17073 write_radio_reg(pi,
17074 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
17075 0x7);
17077 write_radio_reg(pi,
17078 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
17079 0x88);
17080 write_radio_reg(pi,
17081 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
17082 0x88);
17084 write_radio_reg(pi,
17085 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
17086 0x0);
17087 write_radio_reg(pi,
17088 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
17089 0x0);
17091 write_radio_reg(pi,
17092 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
17093 0x0);
17094 write_radio_reg(pi,
17095 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
17096 0x0);
17098 triso =
17099 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
17100 triso : pi->srom_fem2g.triso;
17101 if (triso == 7) {
17102 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
17103 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
17106 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
17108 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
17109 (CHSPEC_IS5G(pi->radio_chanspec))) ||
17110 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
17111 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
17112 (CHSPEC_IS2G(pi->radio_chanspec)))) {
17113 nss1_data_weights = 0x00088888;
17114 ht_data_weights = 0x00088888;
17115 stbc_data_weights = 0x00088888;
17116 } else {
17117 nss1_data_weights = 0x88888888;
17118 ht_data_weights = 0x88888888;
17119 stbc_data_weights = 0x88888888;
17121 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17122 1, 1, 32, &nss1_data_weights);
17123 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17124 1, 2, 32, &ht_data_weights);
17125 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
17126 1, 3, 32, &stbc_data_weights);
17128 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17129 if (CHSPEC_IS5G(pi->radio_chanspec)) {
17130 write_radio_reg(pi,
17131 RADIO_2056_TX_GMBB_IDAC |
17132 RADIO_2056_TX0, 0x70);
17133 write_radio_reg(pi,
17134 RADIO_2056_TX_GMBB_IDAC |
17135 RADIO_2056_TX1, 0x70);
17139 if (!pi->edcrs_threshold_lock) {
17140 write_phy_reg(pi, 0x224, 0x3eb);
17141 write_phy_reg(pi, 0x225, 0x3eb);
17142 write_phy_reg(pi, 0x226, 0x341);
17143 write_phy_reg(pi, 0x227, 0x341);
17144 write_phy_reg(pi, 0x228, 0x42b);
17145 write_phy_reg(pi, 0x229, 0x42b);
17146 write_phy_reg(pi, 0x22a, 0x381);
17147 write_phy_reg(pi, 0x22b, 0x381);
17148 write_phy_reg(pi, 0x22c, 0x42b);
17149 write_phy_reg(pi, 0x22d, 0x42b);
17150 write_phy_reg(pi, 0x22e, 0x381);
17151 write_phy_reg(pi, 0x22f, 0x381);
17154 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
17156 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK)
17157 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
17158 MHF4_BPHY_TXCORE0,
17159 MHF4_BPHY_TXCORE0, BRCM_BAND_ALL);
17161 } else {
17163 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
17164 (pi->sh->boardtype == 0x8b)) {
17165 uint i;
17166 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
17167 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
17168 rfseq_rx2tx_dlys[i] = war_dlys[i];
17171 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
17172 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
17173 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
17174 } else {
17175 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
17176 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
17179 regval = 0x000a;
17180 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
17181 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
17183 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17184 regval = 0xcdaa;
17185 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
17186 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
17189 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17190 regval = 0x0000;
17191 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
17192 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
17194 regval = 0x7aab;
17195 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
17196 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
17198 regval = 0x0800;
17199 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
17200 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
17203 write_phy_reg(pi, 0xf8, 0x02d8);
17204 write_phy_reg(pi, 0xf9, 0x0301);
17205 write_phy_reg(pi, 0xfa, 0x02d8);
17206 write_phy_reg(pi, 0xfb, 0x0301);
17208 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
17209 rfseq_rx2tx_dlys,
17210 sizeof(rfseq_rx2tx_events) /
17211 sizeof(rfseq_rx2tx_events[0]));
17213 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
17214 rfseq_tx2rx_dlys,
17215 sizeof(rfseq_tx2rx_events) /
17216 sizeof(rfseq_tx2rx_events[0]));
17218 wlc_phy_workarounds_nphy_gainctrl(pi);
17220 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
17222 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
17223 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
17224 MHF3_NPHY_MLADV_WAR,
17225 MHF3_NPHY_MLADV_WAR,
17226 BRCM_BAND_ALL);
17228 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
17229 write_phy_reg(pi, 0x1e3, 0x0);
17230 write_phy_reg(pi, 0x1e4, 0x0);
17233 if (NREV_LT(pi->pubpi.phy_rev, 2))
17234 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
17236 alpha0 = 293;
17237 alpha1 = 435;
17238 alpha2 = 261;
17239 beta0 = 366;
17240 beta1 = 205;
17241 beta2 = 32;
17242 write_phy_reg(pi, 0x145, alpha0);
17243 write_phy_reg(pi, 0x146, alpha1);
17244 write_phy_reg(pi, 0x147, alpha2);
17245 write_phy_reg(pi, 0x148, beta0);
17246 write_phy_reg(pi, 0x149, beta1);
17247 write_phy_reg(pi, 0x14a, beta2);
17249 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17250 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
17252 write_phy_reg(pi, 0x192, 0xb5);
17253 write_phy_reg(pi, 0x193, 0xa4);
17254 write_phy_reg(pi, 0x194, 0x0);
17257 if (NREV_IS(pi->pubpi.phy_rev, 2))
17258 mod_phy_reg(pi, 0x221,
17259 NPHY_FORCESIG_DECODEGATEDCLKS,
17260 NPHY_FORCESIG_DECODEGATEDCLKS);
17263 if (pi->phyhang_avoid)
17264 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17267 static void wlc_phy_extpa_set_tx_digi_filts_nphy(struct brcms_phy *pi)
17269 int j, type = 2;
17270 u16 addr_offset = 0x2c5;
17272 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++)
17273 write_phy_reg(pi, addr_offset + j,
17274 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
17277 static void wlc_phy_clip_det_nphy(struct brcms_phy *pi, u8 write, u16 *vals)
17280 if (write == 0) {
17281 vals[0] = read_phy_reg(pi, 0x2c);
17282 vals[1] = read_phy_reg(pi, 0x42);
17283 } else {
17284 write_phy_reg(pi, 0x2c, vals[0]);
17285 write_phy_reg(pi, 0x42, vals[1]);
17289 static void wlc_phy_ipa_internal_tssi_setup_nphy(struct brcms_phy *pi)
17291 u8 core;
17293 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17294 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17295 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17296 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17297 TX_SSI_MASTER, 0x5);
17298 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17299 TX_SSI_MUX, 0xe);
17301 if (pi->pubpi.radiorev != 5)
17302 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17303 core, TSSIA, 0);
17305 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17306 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17307 core, TSSIG, 0x1);
17308 else
17309 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
17310 core, TSSIG, 0x31);
17311 } else {
17312 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17313 TX_SSI_MASTER, 0x9);
17314 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17315 TX_SSI_MUX, 0xc);
17316 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
17317 TSSIG, 0);
17319 if (pi->pubpi.radiorev != 5) {
17320 if (!NREV_IS(pi->pubpi.phy_rev, 7))
17321 WRITE_RADIO_REG3(pi, RADIO_2057,
17322 TX, core,
17323 TSSIA, 0x1);
17324 else
17325 WRITE_RADIO_REG3(pi, RADIO_2057,
17326 TX, core,
17327 TSSIA, 0x31);
17330 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
17332 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
17334 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
17335 0x3);
17336 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
17337 0x0);
17339 } else {
17340 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
17341 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
17342 0x80);
17343 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
17344 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
17346 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17347 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
17348 0x0);
17349 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
17350 0x0);
17351 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
17352 0x3);
17353 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
17354 0x0);
17355 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
17356 0x8);
17357 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
17358 0x0);
17359 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
17360 0x0);
17362 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17363 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17364 TX_SSI_MASTER, 0x5);
17366 if (pi->pubpi.radiorev != 5)
17367 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17368 core, TSSIA, 0x0);
17369 if (NREV_GE(pi->pubpi.phy_rev, 5))
17370 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17371 core, TSSIG, 0x31);
17372 else
17373 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
17374 core, TSSIG, 0x11);
17375 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17376 TX_SSI_MUX, 0xe);
17377 } else {
17378 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17379 TX_SSI_MASTER, 0x9);
17380 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17381 TSSIA, 0x31);
17382 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17383 TSSIG, 0x0);
17384 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
17385 TX_SSI_MUX, 0xc);
17391 static void
17392 wlc_phy_rfctrl_override_nphy(struct brcms_phy *pi, u16 field, u16 value,
17393 u8 core_mask, u8 off)
17395 u8 core_num;
17396 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
17397 0, val_mask = 0;
17398 u8 shift = 0, val_shift = 0;
17400 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
17402 en_mask = field;
17403 for (core_num = 0; core_num < 2; core_num++) {
17405 switch (field) {
17406 case (0x1 << 1):
17407 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17408 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17409 val_mask = (0x1 << 0);
17410 val_shift = 0;
17411 break;
17412 case (0x1 << 2):
17413 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17414 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17415 val_mask = (0x1 << 1);
17416 val_shift = 1;
17417 break;
17418 case (0x1 << 3):
17419 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17420 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17421 val_mask = (0x1 << 2);
17422 val_shift = 2;
17423 break;
17424 case (0x1 << 4):
17425 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17426 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17427 val_mask = (0x1 << 4);
17428 val_shift = 4;
17429 break;
17430 case (0x1 << 5):
17431 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17432 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17433 val_mask = (0x1 << 5);
17434 val_shift = 5;
17435 break;
17436 case (0x1 << 6):
17437 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17438 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17439 val_mask = (0x1 << 6);
17440 val_shift = 6;
17441 break;
17442 case (0x1 << 7):
17443 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17444 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17445 val_mask = (0x1 << 7);
17446 val_shift = 7;
17447 break;
17448 case (0x1 << 8):
17449 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17450 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17451 val_mask = (0x7 << 8);
17452 val_shift = 8;
17453 break;
17454 case (0x1 << 11):
17455 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17456 val_addr = (core_num == 0) ? 0x7a : 0x7d;
17457 val_mask = (0x7 << 13);
17458 val_shift = 13;
17459 break;
17461 case (0x1 << 9):
17462 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17463 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17464 val_mask = (0x7 << 0);
17465 val_shift = 0;
17466 break;
17468 case (0x1 << 10):
17469 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17470 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
17471 val_mask = (0x7 << 4);
17472 val_shift = 4;
17473 break;
17475 case (0x1 << 12):
17476 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17477 val_addr = (core_num == 0) ? 0x7b : 0x7e;
17478 val_mask = (0xffff << 0);
17479 val_shift = 0;
17480 break;
17481 case (0x1 << 13):
17482 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17483 val_addr = (core_num == 0) ? 0x7c : 0x7f;
17484 val_mask = (0xffff << 0);
17485 val_shift = 0;
17486 break;
17487 case (0x1 << 14):
17488 en_addr = (core_num == 0) ? 0xe7 : 0xec;
17489 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17490 val_mask = (0x3 << 6);
17491 val_shift = 6;
17492 break;
17493 case (0x1 << 0):
17494 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
17495 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
17496 val_mask = (0x1 << 15);
17497 val_shift = 15;
17498 break;
17499 default:
17500 addr = 0xffff;
17501 break;
17504 if (off) {
17505 and_phy_reg(pi, en_addr, ~en_mask);
17506 and_phy_reg(pi, val_addr, ~val_mask);
17507 } else {
17509 if ((core_mask == 0)
17510 || (core_mask & (1 << core_num))) {
17511 or_phy_reg(pi, en_addr, en_mask);
17513 if (addr != 0xffff)
17514 mod_phy_reg(pi, val_addr,
17515 val_mask,
17516 (value <<
17517 val_shift));
17521 } else {
17523 if (off) {
17524 and_phy_reg(pi, 0xec, ~field);
17525 value = 0x0;
17526 } else {
17527 or_phy_reg(pi, 0xec, field);
17530 for (core_num = 0; core_num < 2; core_num++) {
17532 switch (field) {
17533 case (0x1 << 1):
17534 case (0x1 << 9):
17535 case (0x1 << 12):
17536 case (0x1 << 13):
17537 case (0x1 << 14):
17538 addr = 0x78;
17540 core_mask = 0x1;
17541 break;
17542 case (0x1 << 2):
17543 case (0x1 << 3):
17544 case (0x1 << 4):
17545 case (0x1 << 5):
17546 case (0x1 << 6):
17547 case (0x1 << 7):
17548 case (0x1 << 8):
17549 addr = (core_num == 0) ? 0x7a : 0x7d;
17550 break;
17551 case (0x1 << 10):
17552 addr = (core_num == 0) ? 0x7b : 0x7e;
17553 break;
17554 case (0x1 << 11):
17555 addr = (core_num == 0) ? 0x7c : 0x7f;
17556 break;
17557 default:
17558 addr = 0xffff;
17561 switch (field) {
17562 case (0x1 << 1):
17563 mask = (0x7 << 3);
17564 shift = 3;
17565 break;
17566 case (0x1 << 9):
17567 mask = (0x1 << 2);
17568 shift = 2;
17569 break;
17570 case (0x1 << 12):
17571 mask = (0x1 << 8);
17572 shift = 8;
17573 break;
17574 case (0x1 << 13):
17575 mask = (0x1 << 9);
17576 shift = 9;
17577 break;
17578 case (0x1 << 14):
17579 mask = (0xf << 12);
17580 shift = 12;
17581 break;
17582 case (0x1 << 2):
17583 mask = (0x1 << 0);
17584 shift = 0;
17585 break;
17586 case (0x1 << 3):
17587 mask = (0x1 << 1);
17588 shift = 1;
17589 break;
17590 case (0x1 << 4):
17591 mask = (0x1 << 2);
17592 shift = 2;
17593 break;
17594 case (0x1 << 5):
17595 mask = (0x3 << 4);
17596 shift = 4;
17597 break;
17598 case (0x1 << 6):
17599 mask = (0x3 << 6);
17600 shift = 6;
17601 break;
17602 case (0x1 << 7):
17603 mask = (0x1 << 8);
17604 shift = 8;
17605 break;
17606 case (0x1 << 8):
17607 mask = (0x1 << 9);
17608 shift = 9;
17609 break;
17610 case (0x1 << 10):
17611 mask = 0x1fff;
17612 shift = 0x0;
17613 break;
17614 case (0x1 << 11):
17615 mask = 0x1fff;
17616 shift = 0x0;
17617 break;
17618 default:
17619 mask = 0x0;
17620 shift = 0x0;
17621 break;
17624 if ((addr != 0xffff) && (core_mask & (1 << core_num)))
17625 mod_phy_reg(pi, addr, mask, (value << shift));
17628 or_phy_reg(pi, 0xec, (0x1 << 0));
17629 or_phy_reg(pi, 0x78, (0x1 << 0));
17630 udelay(1);
17631 and_phy_reg(pi, 0xec, ~(0x1 << 0));
17635 static void wlc_phy_txpwrctrl_idle_tssi_nphy(struct brcms_phy *pi)
17637 s32 rssi_buf[4];
17638 s32 int_val;
17640 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
17642 return;
17644 if (PHY_IPA(pi))
17645 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
17647 if (NREV_GE(pi->pubpi.phy_rev, 7))
17648 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17649 0, 0x3, 0,
17650 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17651 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17652 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
17654 wlc_phy_stopplayback_nphy(pi);
17656 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
17658 udelay(20);
17659 int_val =
17660 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
17662 wlc_phy_stopplayback_nphy(pi);
17663 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
17665 if (NREV_GE(pi->pubpi.phy_rev, 7))
17666 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
17667 0, 0x3, 1,
17668 NPHY_REV7_RFCTRLOVERRIDE_ID0);
17669 else if (NREV_GE(pi->pubpi.phy_rev, 3))
17670 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
17672 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17674 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17675 (u8) ((int_val >> 24) & 0xff);
17676 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17677 (u8) ((int_val >> 24) & 0xff);
17679 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17680 (u8) ((int_val >> 8) & 0xff);
17681 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17682 (u8) ((int_val >> 8) & 0xff);
17683 } else {
17684 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
17685 (u8) ((int_val >> 24) & 0xff);
17687 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
17688 (u8) ((int_val >> 8) & 0xff);
17690 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
17691 (u8) ((int_val >> 16) & 0xff);
17692 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
17693 (u8) ((int_val) & 0xff);
17698 static void wlc_phy_txpwr_limit_to_tbl_nphy(struct brcms_phy *pi)
17700 u8 idx, idx2, i, delta_ind;
17702 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++)
17703 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
17705 for (i = 0; i < 4; i++) {
17706 idx2 = 0;
17708 delta_ind = 0;
17710 switch (i) {
17711 case 0:
17713 if (CHSPEC_IS40(pi->radio_chanspec)
17714 && NPHY_IS_SROM_REINTERPRET) {
17715 idx = TXP_FIRST_MCS_40_SISO;
17716 } else {
17717 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17718 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
17719 delta_ind = 1;
17721 break;
17723 case 1:
17725 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17726 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
17727 break;
17729 case 2:
17731 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17732 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
17733 break;
17735 case 3:
17737 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
17738 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
17739 break;
17742 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17743 pi->tx_power_offset[idx];
17744 idx = idx + delta_ind;
17745 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17746 pi->tx_power_offset[idx];
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++];
17752 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17753 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++];
17761 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17762 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++];
17770 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17771 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 idx = idx + 1 - delta_ind;
17777 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17778 pi->tx_power_offset[idx];
17780 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
17781 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];
17791 static void wlc_phy_txpwrctrl_pwr_setup_nphy(struct brcms_phy *pi)
17793 u32 idx;
17794 s16 a1[2], b0[2], b1[2];
17795 s8 target_pwr_qtrdbm[2];
17796 s32 num, den, pwr_est;
17797 u8 chan_freq_range;
17798 u8 idle_tssi[2];
17799 u32 tbl_id, tbl_len, tbl_offset;
17800 u32 regval[64];
17801 u8 core;
17803 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17804 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17805 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17806 udelay(1);
17809 if (pi->phyhang_avoid)
17810 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17812 or_phy_reg(pi, 0x122, (0x1 << 0));
17814 if (NREV_GE(pi->pubpi.phy_rev, 3))
17815 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
17816 else
17817 or_phy_reg(pi, 0x1e7, (0x1 << 15));
17819 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17820 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17822 if (pi->sh->sromrev < 4) {
17823 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17824 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17825 target_pwr_qtrdbm[0] = 13 * 4;
17826 target_pwr_qtrdbm[1] = 13 * 4;
17827 a1[0] = -424;
17828 a1[1] = -424;
17829 b0[0] = 5612;
17830 b0[1] = 5612;
17831 b1[1] = -1393;
17832 b1[0] = -1393;
17833 } else {
17835 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
17836 switch (chan_freq_range) {
17837 case WL_CHAN_FREQ_RANGE_2G:
17838 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17839 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17840 target_pwr_qtrdbm[0] =
17841 pi->nphy_pwrctrl_info[0].max_pwr_2g;
17842 target_pwr_qtrdbm[1] =
17843 pi->nphy_pwrctrl_info[1].max_pwr_2g;
17844 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
17845 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
17846 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
17847 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
17848 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
17849 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
17850 break;
17851 case WL_CHAN_FREQ_RANGE_5GL:
17852 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17853 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17854 target_pwr_qtrdbm[0] =
17855 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
17856 target_pwr_qtrdbm[1] =
17857 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
17858 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
17859 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
17860 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
17861 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
17862 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
17863 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
17864 break;
17865 case WL_CHAN_FREQ_RANGE_5GM:
17866 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17867 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17868 target_pwr_qtrdbm[0] =
17869 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
17870 target_pwr_qtrdbm[1] =
17871 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
17872 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
17873 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
17874 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
17875 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
17876 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
17877 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
17878 break;
17879 case WL_CHAN_FREQ_RANGE_5GH:
17880 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
17881 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
17882 target_pwr_qtrdbm[0] =
17883 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
17884 target_pwr_qtrdbm[1] =
17885 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
17886 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
17887 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
17888 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
17889 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
17890 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
17891 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
17892 break;
17893 default:
17894 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
17895 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
17896 target_pwr_qtrdbm[0] = 13 * 4;
17897 target_pwr_qtrdbm[1] = 13 * 4;
17898 a1[0] = -424;
17899 a1[1] = -424;
17900 b0[0] = 5612;
17901 b0[1] = 5612;
17902 b1[1] = -1393;
17903 b1[0] = -1393;
17904 break;
17908 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
17909 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
17911 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17912 if (pi->srom_fem2g.tssipos)
17913 or_phy_reg(pi, 0x1e9, (0x1 << 14));
17915 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17916 for (core = 0; core <= 1; core++) {
17917 if (PHY_IPA(pi)) {
17918 if (CHSPEC_IS2G(pi->radio_chanspec))
17919 WRITE_RADIO_REG3(pi, RADIO_2057,
17920 TX, core,
17921 TX_SSI_MUX,
17922 0xe);
17923 else
17924 WRITE_RADIO_REG3(pi, RADIO_2057,
17925 TX, core,
17926 TX_SSI_MUX,
17927 0xc);
17930 } else {
17931 if (PHY_IPA(pi)) {
17933 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17934 RADIO_2056_TX0,
17935 (CHSPEC_IS5G
17936 (pi->radio_chanspec)) ?
17937 0xc : 0xe);
17938 write_radio_reg(pi,
17939 RADIO_2056_TX_TX_SSI_MUX |
17940 RADIO_2056_TX1,
17941 (CHSPEC_IS5G
17942 (pi->radio_chanspec)) ?
17943 0xc : 0xe);
17944 } else {
17946 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17947 RADIO_2056_TX0, 0x11);
17948 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
17949 RADIO_2056_TX1, 0x11);
17954 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
17955 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
17956 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
17957 udelay(1);
17960 if (NREV_GE(pi->pubpi.phy_rev, 7))
17961 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17962 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17963 else
17964 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
17965 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17967 if (NREV_GE(pi->pubpi.phy_rev, 7))
17968 mod_phy_reg(pi, 0x222, (0xff << 0),
17969 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
17970 else if (NREV_GT(pi->pubpi.phy_rev, 1))
17971 mod_phy_reg(pi, 0x222, (0xff << 0),
17972 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
17974 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
17975 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
17977 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
17979 write_phy_reg(pi, 0x1e9,
17980 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
17982 write_phy_reg(pi, 0x1ea,
17983 (target_pwr_qtrdbm[0] << 0) |
17984 (target_pwr_qtrdbm[1] << 8));
17986 tbl_len = 64;
17987 tbl_offset = 0;
17988 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
17989 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
17991 for (idx = 0; idx < tbl_len; idx++) {
17992 num = 8 *
17993 (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
17994 den = 32768 + a1[tbl_id - 26] * idx;
17995 pwr_est = max(((4 * num + den / 2) / den), -8);
17996 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
17997 if (idx <=
17998 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
17999 pwr_est =
18000 max(pwr_est,
18001 target_pwr_qtrdbm
18002 [tbl_id - 26] + 1);
18004 regval[idx] = (u32) pwr_est;
18006 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
18007 regval);
18010 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
18011 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
18012 pi->adj_pwr_tbl_nphy);
18013 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
18014 pi->adj_pwr_tbl_nphy);
18016 if (pi->phyhang_avoid)
18017 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18020 static u32 *wlc_phy_get_ipa_gaintbl_nphy(struct brcms_phy *pi)
18022 u32 *tx_pwrctrl_tbl = NULL;
18024 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18025 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18026 if ((pi->pubpi.radiorev == 4)
18027 || (pi->pubpi.radiorev == 6))
18028 tx_pwrctrl_tbl =
18029 nphy_tpc_txgain_ipa_2g_2057rev4n6;
18030 else if (pi->pubpi.radiorev == 3)
18031 tx_pwrctrl_tbl =
18032 nphy_tpc_txgain_ipa_2g_2057rev3;
18033 else if (pi->pubpi.radiorev == 5)
18034 tx_pwrctrl_tbl =
18035 nphy_tpc_txgain_ipa_2g_2057rev5;
18036 else if ((pi->pubpi.radiorev == 7)
18037 || (pi->pubpi.radiorev == 8))
18038 tx_pwrctrl_tbl =
18039 nphy_tpc_txgain_ipa_2g_2057rev7;
18040 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18041 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
18042 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18043 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
18044 } else {
18045 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
18047 } else {
18049 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18050 if ((pi->pubpi.radiorev == 3) ||
18051 (pi->pubpi.radiorev == 4) ||
18052 (pi->pubpi.radiorev == 6))
18053 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
18054 else if ((pi->pubpi.radiorev == 7)
18055 || (pi->pubpi.radiorev == 8))
18056 tx_pwrctrl_tbl =
18057 nphy_tpc_txgain_ipa_5g_2057rev7;
18058 } else {
18059 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
18063 return tx_pwrctrl_tbl;
18066 static void wlc_phy_restore_rssical_nphy(struct brcms_phy *pi)
18068 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18069 if (pi->nphy_rssical_chanspec_2G == 0)
18070 return;
18072 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18073 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18074 RADIO_2057_VCM_MASK,
18075 pi->rssical_cache.
18076 rssical_radio_regs_2G[0]);
18077 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18078 RADIO_2057_VCM_MASK,
18079 pi->rssical_cache.
18080 rssical_radio_regs_2G[1]);
18081 } else {
18082 mod_radio_reg(pi,
18083 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18084 RADIO_2056_VCM_MASK,
18085 pi->rssical_cache.
18086 rssical_radio_regs_2G[0]);
18087 mod_radio_reg(pi,
18088 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18089 RADIO_2056_VCM_MASK,
18090 pi->rssical_cache.
18091 rssical_radio_regs_2G[1]);
18094 write_phy_reg(pi, 0x1a6,
18095 pi->rssical_cache.rssical_phyregs_2G[0]);
18096 write_phy_reg(pi, 0x1ac,
18097 pi->rssical_cache.rssical_phyregs_2G[1]);
18098 write_phy_reg(pi, 0x1b2,
18099 pi->rssical_cache.rssical_phyregs_2G[2]);
18100 write_phy_reg(pi, 0x1b8,
18101 pi->rssical_cache.rssical_phyregs_2G[3]);
18102 write_phy_reg(pi, 0x1a4,
18103 pi->rssical_cache.rssical_phyregs_2G[4]);
18104 write_phy_reg(pi, 0x1aa,
18105 pi->rssical_cache.rssical_phyregs_2G[5]);
18106 write_phy_reg(pi, 0x1b0,
18107 pi->rssical_cache.rssical_phyregs_2G[6]);
18108 write_phy_reg(pi, 0x1b6,
18109 pi->rssical_cache.rssical_phyregs_2G[7]);
18110 write_phy_reg(pi, 0x1a5,
18111 pi->rssical_cache.rssical_phyregs_2G[8]);
18112 write_phy_reg(pi, 0x1ab,
18113 pi->rssical_cache.rssical_phyregs_2G[9]);
18114 write_phy_reg(pi, 0x1b1,
18115 pi->rssical_cache.rssical_phyregs_2G[10]);
18116 write_phy_reg(pi, 0x1b7,
18117 pi->rssical_cache.rssical_phyregs_2G[11]);
18119 } else {
18120 if (pi->nphy_rssical_chanspec_5G == 0)
18121 return;
18123 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18124 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
18125 RADIO_2057_VCM_MASK,
18126 pi->rssical_cache.
18127 rssical_radio_regs_5G[0]);
18128 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
18129 RADIO_2057_VCM_MASK,
18130 pi->rssical_cache.
18131 rssical_radio_regs_5G[1]);
18132 } else {
18133 mod_radio_reg(pi,
18134 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
18135 RADIO_2056_VCM_MASK,
18136 pi->rssical_cache.
18137 rssical_radio_regs_5G[0]);
18138 mod_radio_reg(pi,
18139 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
18140 RADIO_2056_VCM_MASK,
18141 pi->rssical_cache.
18142 rssical_radio_regs_5G[1]);
18145 write_phy_reg(pi, 0x1a6,
18146 pi->rssical_cache.rssical_phyregs_5G[0]);
18147 write_phy_reg(pi, 0x1ac,
18148 pi->rssical_cache.rssical_phyregs_5G[1]);
18149 write_phy_reg(pi, 0x1b2,
18150 pi->rssical_cache.rssical_phyregs_5G[2]);
18151 write_phy_reg(pi, 0x1b8,
18152 pi->rssical_cache.rssical_phyregs_5G[3]);
18153 write_phy_reg(pi, 0x1a4,
18154 pi->rssical_cache.rssical_phyregs_5G[4]);
18155 write_phy_reg(pi, 0x1aa,
18156 pi->rssical_cache.rssical_phyregs_5G[5]);
18157 write_phy_reg(pi, 0x1b0,
18158 pi->rssical_cache.rssical_phyregs_5G[6]);
18159 write_phy_reg(pi, 0x1b6,
18160 pi->rssical_cache.rssical_phyregs_5G[7]);
18161 write_phy_reg(pi, 0x1a5,
18162 pi->rssical_cache.rssical_phyregs_5G[8]);
18163 write_phy_reg(pi, 0x1ab,
18164 pi->rssical_cache.rssical_phyregs_5G[9]);
18165 write_phy_reg(pi, 0x1b1,
18166 pi->rssical_cache.rssical_phyregs_5G[10]);
18167 write_phy_reg(pi, 0x1b7,
18168 pi->rssical_cache.rssical_phyregs_5G[11]);
18172 static void wlc_phy_internal_cal_txgain_nphy(struct brcms_phy *pi)
18174 u16 txcal_gain[2];
18176 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
18177 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
18178 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18179 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18181 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18182 txcal_gain);
18184 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18185 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
18186 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
18187 } else {
18188 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
18189 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
18192 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
18193 txcal_gain);
18196 static void wlc_phy_precal_txgain_nphy(struct brcms_phy *pi)
18198 bool save_bbmult = false;
18199 u8 txcal_index_2057_rev5n7 = 0;
18200 u8 txcal_index_2057_rev3n4n6 = 10;
18202 if (pi->use_int_tx_iqlo_cal_nphy) {
18203 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18204 if ((pi->pubpi.radiorev == 3) ||
18205 (pi->pubpi.radiorev == 4) ||
18206 (pi->pubpi.radiorev == 6)) {
18208 pi->nphy_txcal_pwr_idx[0] =
18209 txcal_index_2057_rev3n4n6;
18210 pi->nphy_txcal_pwr_idx[1] =
18211 txcal_index_2057_rev3n4n6;
18212 wlc_phy_txpwr_index_nphy(
18213 pi, 3,
18214 txcal_index_2057_rev3n4n6,
18215 false);
18216 } else {
18218 pi->nphy_txcal_pwr_idx[0] =
18219 txcal_index_2057_rev5n7;
18220 pi->nphy_txcal_pwr_idx[1] =
18221 txcal_index_2057_rev5n7;
18222 wlc_phy_txpwr_index_nphy(
18223 pi, 3,
18224 txcal_index_2057_rev5n7,
18225 false);
18227 save_bbmult = true;
18229 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
18230 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
18231 if (pi->sh->hw_phytxchain != 3) {
18232 pi->nphy_txcal_pwr_idx[1] =
18233 pi->nphy_txcal_pwr_idx[0];
18234 wlc_phy_txpwr_index_nphy(pi, 3,
18235 pi->
18236 nphy_txcal_pwr_idx[0],
18237 true);
18238 save_bbmult = true;
18241 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
18242 if (PHY_IPA(pi)) {
18243 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18244 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18245 false);
18246 } else {
18247 pi->nphy_txcal_pwr_idx[0] = 80;
18248 pi->nphy_txcal_pwr_idx[1] = 80;
18249 wlc_phy_txpwr_index_nphy(pi, 3, 80,
18250 false);
18251 save_bbmult = true;
18253 } else {
18254 wlc_phy_internal_cal_txgain_nphy(pi);
18255 save_bbmult = true;
18258 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
18259 if (PHY_IPA(pi)) {
18260 if (CHSPEC_IS2G(pi->radio_chanspec))
18261 wlc_phy_cal_txgainctrl_nphy(pi, 12,
18262 false);
18263 else
18264 wlc_phy_cal_txgainctrl_nphy(pi, 14,
18265 false);
18266 } else {
18267 wlc_phy_internal_cal_txgain_nphy(pi);
18268 save_bbmult = true;
18272 } else {
18273 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
18276 if (save_bbmult)
18277 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
18278 &pi->nphy_txcal_bbmult);
18281 static void
18282 wlc_phy_rfctrlintc_override_nphy(struct brcms_phy *pi, u8 field, u16 value,
18283 u8 core_code)
18285 u16 mask;
18286 u16 val;
18287 u8 core;
18289 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18290 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18291 if (core_code == RADIO_MIMO_CORESEL_CORE1
18292 && core == PHY_CORE_1)
18293 continue;
18294 else if (core_code == RADIO_MIMO_CORESEL_CORE2
18295 && core == PHY_CORE_0)
18296 continue;
18298 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
18300 mask = (0x1 << 10);
18301 val = 1 << 10;
18302 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18303 0x92, mask, val);
18306 if (field == NPHY_RfctrlIntc_override_OFF) {
18308 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
18309 0x92, 0);
18311 wlc_phy_force_rfseq_nphy(pi,
18312 NPHY_RFSEQ_RESET2RX);
18313 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
18315 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18317 mask = (0x1 << 6) | (0x1 << 7);
18319 val = value << 6;
18320 mod_phy_reg(pi,
18321 (core ==
18322 PHY_CORE_0) ? 0x91 : 0x92,
18323 mask, val);
18325 or_phy_reg(pi,
18326 (core ==
18327 PHY_CORE_0) ? 0x91 : 0x92,
18328 (0x1 << 10));
18330 and_phy_reg(pi, 0x2ff, (u16)
18331 ~(0x3 << 14));
18332 or_phy_reg(pi, 0x2ff, (0x1 << 13));
18333 or_phy_reg(pi, 0x2ff, (0x1 << 0));
18334 } else {
18336 mask = (0x1 << 6) |
18337 (0x1 << 7) |
18338 (0x1 << 8) | (0x1 << 9);
18339 val = value << 6;
18340 mod_phy_reg(pi,
18341 (core ==
18342 PHY_CORE_0) ? 0x91 : 0x92,
18343 mask, val);
18345 mask = (0x1 << 0);
18346 val = 1 << 0;
18347 mod_phy_reg(pi,
18348 (core ==
18349 PHY_CORE_0) ? 0xe7 : 0xec,
18350 mask, val);
18352 mask = (core == PHY_CORE_0) ?
18353 (0x1 << 0) : (0x1 << 1);
18354 val = 1 << ((core == PHY_CORE_0) ?
18355 0 : 1);
18356 mod_phy_reg(pi, 0x78, mask, val);
18358 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
18359 != 0), 10000);
18360 if (WARN(read_phy_reg(pi, 0x78) & val,
18361 "HW error: override failed"))
18362 return;
18364 mask = (0x1 << 0);
18365 val = 0 << 0;
18366 mod_phy_reg(pi,
18367 (core ==
18368 PHY_CORE_0) ? 0xe7 : 0xec,
18369 mask, val);
18371 } else if (field == NPHY_RfctrlIntc_override_PA) {
18372 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18374 mask = (0x1 << 4) | (0x1 << 5);
18376 if (CHSPEC_IS5G(pi->radio_chanspec))
18377 val = value << 5;
18378 else
18379 val = value << 4;
18381 mod_phy_reg(pi,
18382 (core ==
18383 PHY_CORE_0) ? 0x91 : 0x92,
18384 mask, val);
18386 or_phy_reg(pi,
18387 (core ==
18388 PHY_CORE_0) ? 0x91 : 0x92,
18389 (0x1 << 12));
18390 } else {
18392 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18393 mask = (0x1 << 5);
18394 val = value << 5;
18395 } else {
18396 mask = (0x1 << 4);
18397 val = value << 4;
18399 mod_phy_reg(pi,
18400 (core ==
18401 PHY_CORE_0) ? 0x91 : 0x92,
18402 mask, val);
18404 } else if (field ==
18405 NPHY_RfctrlIntc_override_EXT_LNA_PU) {
18406 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18407 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18409 mask = (0x1 << 0);
18410 val = value << 0;
18411 mod_phy_reg(pi,
18412 (core ==
18413 PHY_CORE_0) ? 0x91
18414 : 0x92, mask, val);
18416 mask = (0x1 << 2);
18417 mod_phy_reg(pi,
18418 (core ==
18419 PHY_CORE_0) ? 0x91
18420 : 0x92, mask, 0);
18421 } else {
18423 mask = (0x1 << 2);
18424 val = value << 2;
18425 mod_phy_reg(pi,
18426 (core ==
18427 PHY_CORE_0) ? 0x91
18428 : 0x92, mask, val);
18430 mask = (0x1 << 0);
18431 mod_phy_reg(pi,
18432 (core ==
18433 PHY_CORE_0) ? 0x91
18434 : 0x92, mask, 0);
18437 mask = (0x1 << 11);
18438 val = 1 << 11;
18439 mod_phy_reg(pi,
18440 (core ==
18441 PHY_CORE_0) ? 0x91 : 0x92,
18442 mask, val);
18443 } else {
18445 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18446 mask = (0x1 << 0);
18447 val = value << 0;
18448 } else {
18449 mask = (0x1 << 2);
18450 val = value << 2;
18452 mod_phy_reg(pi,
18453 (core ==
18454 PHY_CORE_0) ? 0x91 : 0x92,
18455 mask, val);
18457 } else if (field ==
18458 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
18459 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18460 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18462 mask = (0x1 << 1);
18463 val = value << 1;
18464 mod_phy_reg(pi,
18465 (core ==
18466 PHY_CORE_0) ? 0x91
18467 : 0x92, mask, val);
18469 mask = (0x1 << 3);
18470 mod_phy_reg(pi,
18471 (core ==
18472 PHY_CORE_0) ? 0x91
18473 : 0x92, mask, 0);
18474 } else {
18476 mask = (0x1 << 3);
18477 val = value << 3;
18478 mod_phy_reg(pi,
18479 (core ==
18480 PHY_CORE_0) ? 0x91
18481 : 0x92, mask, val);
18483 mask = (0x1 << 1);
18484 mod_phy_reg(pi,
18485 (core ==
18486 PHY_CORE_0) ? 0x91
18487 : 0x92, mask, 0);
18490 mask = (0x1 << 11);
18491 val = 1 << 11;
18492 mod_phy_reg(pi,
18493 (core ==
18494 PHY_CORE_0) ? 0x91 : 0x92,
18495 mask, val);
18496 } else {
18498 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18499 mask = (0x1 << 1);
18500 val = value << 1;
18501 } else {
18502 mask = (0x1 << 3);
18503 val = value << 3;
18505 mod_phy_reg(pi,
18506 (core ==
18507 PHY_CORE_0) ? 0x91 : 0x92,
18508 mask, val);
18515 void
18516 wlc_phy_cal_txgainctrl_nphy(struct brcms_phy *pi, s32 dBm_targetpower,
18517 bool debug)
18519 int gainctrl_loopidx;
18520 uint core;
18521 u16 m0m1, curr_m0m1;
18522 s32 delta_power;
18523 s32 txpwrindex;
18524 s32 qdBm_power[2];
18525 u16 orig_BBConfig;
18526 u16 phy_saveregs[4];
18527 u32 freq_test;
18528 u16 ampl_test = 250;
18529 uint stepsize;
18530 bool phyhang_avoid_state = false;
18532 if (NREV_GE(pi->pubpi.phy_rev, 7))
18533 stepsize = 2;
18534 else
18535 stepsize = 1;
18537 if (CHSPEC_IS40(pi->radio_chanspec))
18538 freq_test = 5000;
18539 else
18540 freq_test = 2500;
18542 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
18543 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
18545 if (pi->phyhang_avoid)
18546 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18548 phyhang_avoid_state = pi->phyhang_avoid;
18549 pi->phyhang_avoid = false;
18551 phy_saveregs[0] = read_phy_reg(pi, 0x91);
18552 phy_saveregs[1] = read_phy_reg(pi, 0x92);
18553 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
18554 phy_saveregs[3] = read_phy_reg(pi, 0xec);
18555 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
18556 RADIO_MIMO_CORESEL_CORE1 |
18557 RADIO_MIMO_CORESEL_CORE2);
18559 if (!debug) {
18560 wlc_phy_rfctrlintc_override_nphy(pi,
18561 NPHY_RfctrlIntc_override_TRSW,
18562 0x2, RADIO_MIMO_CORESEL_CORE1);
18563 wlc_phy_rfctrlintc_override_nphy(pi,
18564 NPHY_RfctrlIntc_override_TRSW,
18565 0x8, RADIO_MIMO_CORESEL_CORE2);
18566 } else {
18567 wlc_phy_rfctrlintc_override_nphy(pi,
18568 NPHY_RfctrlIntc_override_TRSW,
18569 0x1, RADIO_MIMO_CORESEL_CORE1);
18570 wlc_phy_rfctrlintc_override_nphy(pi,
18571 NPHY_RfctrlIntc_override_TRSW,
18572 0x7, RADIO_MIMO_CORESEL_CORE2);
18575 orig_BBConfig = read_phy_reg(pi, 0x01);
18576 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
18578 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
18580 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18581 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
18583 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
18584 gainctrl_loopidx++) {
18585 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18586 false);
18588 if (core == PHY_CORE_0)
18589 curr_m0m1 = m0m1 & 0xff00;
18590 else
18591 curr_m0m1 = m0m1 & 0x00ff;
18593 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
18594 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
18596 udelay(50);
18598 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18599 NPHY_CAL_TSSISAMPS);
18601 pi->nphy_bb_mult_save = 0;
18602 wlc_phy_stopplayback_nphy(pi);
18604 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
18606 txpwrindex -= stepsize * delta_power;
18607 if (txpwrindex < 0)
18608 txpwrindex = 0;
18609 else if (txpwrindex > 127)
18610 txpwrindex = 127;
18612 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18613 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
18614 (pi->srom_fem5g.extpagain == 3)) {
18615 if (txpwrindex < 30)
18616 txpwrindex = 30;
18618 } else {
18619 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
18620 (pi->srom_fem2g.extpagain == 3)) {
18621 if (txpwrindex < 50)
18622 txpwrindex = 50;
18626 wlc_phy_txpwr_index_nphy(pi, (1 << core),
18627 (u8) txpwrindex, true);
18630 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
18632 if (debug) {
18633 u16 radio_gain;
18634 u16 dbg_m0m1;
18636 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18638 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
18639 false);
18641 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
18642 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
18644 udelay(100);
18646 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
18647 NPHY_CAL_TSSISAMPS);
18649 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
18650 &radio_gain);
18652 mdelay(4000);
18653 pi->nphy_bb_mult_save = 0;
18654 wlc_phy_stopplayback_nphy(pi);
18658 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
18659 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
18661 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
18663 write_phy_reg(pi, 0x01, orig_BBConfig);
18665 write_phy_reg(pi, 0x91, phy_saveregs[0]);
18666 write_phy_reg(pi, 0x92, phy_saveregs[1]);
18667 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
18668 write_phy_reg(pi, 0xec, phy_saveregs[3]);
18670 pi->phyhang_avoid = phyhang_avoid_state;
18672 if (pi->phyhang_avoid)
18673 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18676 static void wlc_phy_savecal_nphy(struct brcms_phy *pi)
18678 void *tbl_ptr;
18679 int coreNum;
18680 u16 *txcal_radio_regs = NULL;
18682 if (pi->phyhang_avoid)
18683 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18685 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18687 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18688 &pi->calibration_cache.
18689 rxcal_coeffs_2G);
18691 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18692 txcal_radio_regs =
18693 pi->calibration_cache.txcal_radio_regs_2G;
18694 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18696 pi->calibration_cache.txcal_radio_regs_2G[0] =
18697 read_radio_reg(pi,
18698 RADIO_2056_TX_LOFT_FINE_I |
18699 RADIO_2056_TX0);
18700 pi->calibration_cache.txcal_radio_regs_2G[1] =
18701 read_radio_reg(pi,
18702 RADIO_2056_TX_LOFT_FINE_Q |
18703 RADIO_2056_TX0);
18704 pi->calibration_cache.txcal_radio_regs_2G[2] =
18705 read_radio_reg(pi,
18706 RADIO_2056_TX_LOFT_FINE_I |
18707 RADIO_2056_TX1);
18708 pi->calibration_cache.txcal_radio_regs_2G[3] =
18709 read_radio_reg(pi,
18710 RADIO_2056_TX_LOFT_FINE_Q |
18711 RADIO_2056_TX1);
18713 pi->calibration_cache.txcal_radio_regs_2G[4] =
18714 read_radio_reg(pi,
18715 RADIO_2056_TX_LOFT_COARSE_I |
18716 RADIO_2056_TX0);
18717 pi->calibration_cache.txcal_radio_regs_2G[5] =
18718 read_radio_reg(pi,
18719 RADIO_2056_TX_LOFT_COARSE_Q |
18720 RADIO_2056_TX0);
18721 pi->calibration_cache.txcal_radio_regs_2G[6] =
18722 read_radio_reg(pi,
18723 RADIO_2056_TX_LOFT_COARSE_I |
18724 RADIO_2056_TX1);
18725 pi->calibration_cache.txcal_radio_regs_2G[7] =
18726 read_radio_reg(pi,
18727 RADIO_2056_TX_LOFT_COARSE_Q |
18728 RADIO_2056_TX1);
18729 } else {
18730 pi->calibration_cache.txcal_radio_regs_2G[0] =
18731 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18732 pi->calibration_cache.txcal_radio_regs_2G[1] =
18733 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18734 pi->calibration_cache.txcal_radio_regs_2G[2] =
18735 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18736 pi->calibration_cache.txcal_radio_regs_2G[3] =
18737 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18740 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
18741 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18742 } else {
18744 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
18745 &pi->calibration_cache.
18746 rxcal_coeffs_5G);
18748 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18749 txcal_radio_regs =
18750 pi->calibration_cache.txcal_radio_regs_5G;
18751 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18753 pi->calibration_cache.txcal_radio_regs_5G[0] =
18754 read_radio_reg(pi,
18755 RADIO_2056_TX_LOFT_FINE_I |
18756 RADIO_2056_TX0);
18757 pi->calibration_cache.txcal_radio_regs_5G[1] =
18758 read_radio_reg(pi,
18759 RADIO_2056_TX_LOFT_FINE_Q |
18760 RADIO_2056_TX0);
18761 pi->calibration_cache.txcal_radio_regs_5G[2] =
18762 read_radio_reg(pi,
18763 RADIO_2056_TX_LOFT_FINE_I |
18764 RADIO_2056_TX1);
18765 pi->calibration_cache.txcal_radio_regs_5G[3] =
18766 read_radio_reg(pi,
18767 RADIO_2056_TX_LOFT_FINE_Q |
18768 RADIO_2056_TX1);
18770 pi->calibration_cache.txcal_radio_regs_5G[4] =
18771 read_radio_reg(pi,
18772 RADIO_2056_TX_LOFT_COARSE_I |
18773 RADIO_2056_TX0);
18774 pi->calibration_cache.txcal_radio_regs_5G[5] =
18775 read_radio_reg(pi,
18776 RADIO_2056_TX_LOFT_COARSE_Q |
18777 RADIO_2056_TX0);
18778 pi->calibration_cache.txcal_radio_regs_5G[6] =
18779 read_radio_reg(pi,
18780 RADIO_2056_TX_LOFT_COARSE_I |
18781 RADIO_2056_TX1);
18782 pi->calibration_cache.txcal_radio_regs_5G[7] =
18783 read_radio_reg(pi,
18784 RADIO_2056_TX_LOFT_COARSE_Q |
18785 RADIO_2056_TX1);
18786 } else {
18787 pi->calibration_cache.txcal_radio_regs_5G[0] =
18788 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
18789 pi->calibration_cache.txcal_radio_regs_5G[1] =
18790 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
18791 pi->calibration_cache.txcal_radio_regs_5G[2] =
18792 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
18793 pi->calibration_cache.txcal_radio_regs_5G[3] =
18794 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
18797 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
18798 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18800 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18801 for (coreNum = 0; coreNum <= 1; coreNum++) {
18803 txcal_radio_regs[2 * coreNum] =
18804 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18805 LOFT_FINE_I);
18806 txcal_radio_regs[2 * coreNum + 1] =
18807 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18808 LOFT_FINE_Q);
18810 txcal_radio_regs[2 * coreNum + 4] =
18811 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18812 LOFT_COARSE_I);
18813 txcal_radio_regs[2 * coreNum + 5] =
18814 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
18815 LOFT_COARSE_Q);
18819 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
18821 if (pi->phyhang_avoid)
18822 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18825 static void wlc_phy_tx_iq_war_nphy(struct brcms_phy *pi)
18827 struct nphy_iq_comp tx_comp;
18829 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, &tx_comp);
18831 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
18832 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
18833 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
18834 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
18837 static void wlc_phy_restorecal_nphy(struct brcms_phy *pi)
18839 u16 *loft_comp;
18840 u16 txcal_coeffs_bphy[4];
18841 u16 *tbl_ptr;
18842 int coreNum;
18843 u16 *txcal_radio_regs = NULL;
18845 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18846 if (pi->nphy_iqcal_chanspec_2G == 0)
18847 return;
18849 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
18850 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
18851 } else {
18852 if (pi->nphy_iqcal_chanspec_5G == 0)
18853 return;
18855 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
18856 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
18859 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16, tbl_ptr);
18861 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18862 txcal_coeffs_bphy[0] = tbl_ptr[0];
18863 txcal_coeffs_bphy[1] = tbl_ptr[1];
18864 txcal_coeffs_bphy[2] = tbl_ptr[2];
18865 txcal_coeffs_bphy[3] = tbl_ptr[3];
18866 } else {
18867 txcal_coeffs_bphy[0] = 0;
18868 txcal_coeffs_bphy[1] = 0;
18869 txcal_coeffs_bphy[2] = 0;
18870 txcal_coeffs_bphy[3] = 0;
18873 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
18874 txcal_coeffs_bphy);
18876 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
18878 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
18880 if (NREV_LT(pi->pubpi.phy_rev, 2))
18881 wlc_phy_tx_iq_war_nphy(pi);
18883 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18884 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18885 txcal_radio_regs =
18886 pi->calibration_cache.txcal_radio_regs_2G;
18887 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18889 write_radio_reg(pi,
18890 RADIO_2056_TX_LOFT_FINE_I |
18891 RADIO_2056_TX0,
18892 pi->calibration_cache.
18893 txcal_radio_regs_2G[0]);
18894 write_radio_reg(pi,
18895 RADIO_2056_TX_LOFT_FINE_Q |
18896 RADIO_2056_TX0,
18897 pi->calibration_cache.
18898 txcal_radio_regs_2G[1]);
18899 write_radio_reg(pi,
18900 RADIO_2056_TX_LOFT_FINE_I |
18901 RADIO_2056_TX1,
18902 pi->calibration_cache.
18903 txcal_radio_regs_2G[2]);
18904 write_radio_reg(pi,
18905 RADIO_2056_TX_LOFT_FINE_Q |
18906 RADIO_2056_TX1,
18907 pi->calibration_cache.
18908 txcal_radio_regs_2G[3]);
18910 write_radio_reg(pi,
18911 RADIO_2056_TX_LOFT_COARSE_I |
18912 RADIO_2056_TX0,
18913 pi->calibration_cache.
18914 txcal_radio_regs_2G[4]);
18915 write_radio_reg(pi,
18916 RADIO_2056_TX_LOFT_COARSE_Q |
18917 RADIO_2056_TX0,
18918 pi->calibration_cache.
18919 txcal_radio_regs_2G[5]);
18920 write_radio_reg(pi,
18921 RADIO_2056_TX_LOFT_COARSE_I |
18922 RADIO_2056_TX1,
18923 pi->calibration_cache.
18924 txcal_radio_regs_2G[6]);
18925 write_radio_reg(pi,
18926 RADIO_2056_TX_LOFT_COARSE_Q |
18927 RADIO_2056_TX1,
18928 pi->calibration_cache.
18929 txcal_radio_regs_2G[7]);
18930 } else {
18931 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18932 pi->calibration_cache.
18933 txcal_radio_regs_2G[0]);
18934 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
18935 pi->calibration_cache.
18936 txcal_radio_regs_2G[1]);
18937 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
18938 pi->calibration_cache.
18939 txcal_radio_regs_2G[2]);
18940 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
18941 pi->calibration_cache.
18942 txcal_radio_regs_2G[3]);
18945 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
18946 &pi->calibration_cache.
18947 rxcal_coeffs_2G);
18948 } else {
18949 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18950 txcal_radio_regs =
18951 pi->calibration_cache.txcal_radio_regs_5G;
18952 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18954 write_radio_reg(pi,
18955 RADIO_2056_TX_LOFT_FINE_I |
18956 RADIO_2056_TX0,
18957 pi->calibration_cache.
18958 txcal_radio_regs_5G[0]);
18959 write_radio_reg(pi,
18960 RADIO_2056_TX_LOFT_FINE_Q |
18961 RADIO_2056_TX0,
18962 pi->calibration_cache.
18963 txcal_radio_regs_5G[1]);
18964 write_radio_reg(pi,
18965 RADIO_2056_TX_LOFT_FINE_I |
18966 RADIO_2056_TX1,
18967 pi->calibration_cache.
18968 txcal_radio_regs_5G[2]);
18969 write_radio_reg(pi,
18970 RADIO_2056_TX_LOFT_FINE_Q |
18971 RADIO_2056_TX1,
18972 pi->calibration_cache.
18973 txcal_radio_regs_5G[3]);
18975 write_radio_reg(pi,
18976 RADIO_2056_TX_LOFT_COARSE_I |
18977 RADIO_2056_TX0,
18978 pi->calibration_cache.
18979 txcal_radio_regs_5G[4]);
18980 write_radio_reg(pi,
18981 RADIO_2056_TX_LOFT_COARSE_Q |
18982 RADIO_2056_TX0,
18983 pi->calibration_cache.
18984 txcal_radio_regs_5G[5]);
18985 write_radio_reg(pi,
18986 RADIO_2056_TX_LOFT_COARSE_I |
18987 RADIO_2056_TX1,
18988 pi->calibration_cache.
18989 txcal_radio_regs_5G[6]);
18990 write_radio_reg(pi,
18991 RADIO_2056_TX_LOFT_COARSE_Q |
18992 RADIO_2056_TX1,
18993 pi->calibration_cache.
18994 txcal_radio_regs_5G[7]);
18995 } else {
18996 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
18997 pi->calibration_cache.
18998 txcal_radio_regs_5G[0]);
18999 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19000 pi->calibration_cache.
19001 txcal_radio_regs_5G[1]);
19002 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19003 pi->calibration_cache.
19004 txcal_radio_regs_5G[2]);
19005 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19006 pi->calibration_cache.
19007 txcal_radio_regs_5G[3]);
19010 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19011 &pi->calibration_cache.
19012 rxcal_coeffs_5G);
19015 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19016 for (coreNum = 0; coreNum <= 1; coreNum++) {
19018 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19019 LOFT_FINE_I,
19020 txcal_radio_regs[2 * coreNum]);
19021 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19022 LOFT_FINE_Q,
19023 txcal_radio_regs[2 * coreNum + 1]);
19025 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19026 LOFT_COARSE_I,
19027 txcal_radio_regs[2 * coreNum + 4]);
19028 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19029 LOFT_COARSE_Q,
19030 txcal_radio_regs[2 * coreNum + 5]);
19035 static void wlc_phy_txpwrctrl_coeff_setup_nphy(struct brcms_phy *pi)
19037 u32 idx;
19038 u16 iqloCalbuf[7];
19039 u32 iqcomp, locomp, curr_locomp;
19040 s8 locomp_i, locomp_q;
19041 s8 curr_locomp_i, curr_locomp_q;
19042 u32 tbl_id, tbl_len, tbl_offset;
19043 u32 regval[128];
19045 if (pi->phyhang_avoid)
19046 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19048 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
19050 tbl_len = 128;
19051 tbl_offset = 320;
19052 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19053 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19054 iqcomp =
19055 (tbl_id ==
19056 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
19057 (iqloCalbuf[1] & 0x3ff)
19058 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
19059 (iqloCalbuf[3] & 0x3ff);
19061 for (idx = 0; idx < tbl_len; idx++)
19062 regval[idx] = iqcomp;
19063 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19064 regval);
19067 tbl_offset = 448;
19068 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
19069 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
19071 locomp =
19072 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
19073 locomp_i = (s8) ((locomp >> 8) & 0xff);
19074 locomp_q = (s8) ((locomp) & 0xff);
19075 for (idx = 0; idx < tbl_len; idx++) {
19076 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19077 curr_locomp_i = locomp_i;
19078 curr_locomp_q = locomp_q;
19079 } else {
19080 curr_locomp_i = (s8) ((locomp_i *
19081 nphy_tpc_loscale[idx] +
19082 128) >> 8);
19083 curr_locomp_q =
19084 (s8) ((locomp_q *
19085 nphy_tpc_loscale[idx] +
19086 128) >> 8);
19088 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
19089 curr_locomp |= (u32) (curr_locomp_q & 0xff);
19090 regval[idx] = curr_locomp;
19092 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
19093 regval);
19096 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19098 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
19099 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
19102 if (pi->phyhang_avoid)
19103 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19106 static void wlc_phy_txlpfbw_nphy(struct brcms_phy *pi)
19108 u8 tx_lpf_bw = 0;
19110 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19111 if (CHSPEC_IS40(pi->radio_chanspec))
19112 tx_lpf_bw = 3;
19113 else
19114 tx_lpf_bw = 1;
19116 if (PHY_IPA(pi)) {
19117 if (CHSPEC_IS40(pi->radio_chanspec))
19118 tx_lpf_bw = 5;
19119 else
19120 tx_lpf_bw = 4;
19123 write_phy_reg(pi, 0xe8,
19124 (tx_lpf_bw << 0) |
19125 (tx_lpf_bw << 3) |
19126 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19128 if (PHY_IPA(pi)) {
19130 if (CHSPEC_IS40(pi->radio_chanspec))
19131 tx_lpf_bw = 4;
19132 else
19133 tx_lpf_bw = 1;
19135 write_phy_reg(pi, 0xe9,
19136 (tx_lpf_bw << 0) |
19137 (tx_lpf_bw << 3) |
19138 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
19143 static void
19144 wlc_phy_adjust_rx_analpfbw_nphy(struct brcms_phy *pi, u16 reduction_factr)
19146 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
19147 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19148 CHSPEC_IS40(pi->radio_chanspec)) {
19149 if (!pi->nphy_anarxlpf_adjusted) {
19150 write_radio_reg(pi,
19151 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19152 RADIO_2056_RX0),
19153 ((pi->nphy_rccal_value +
19154 reduction_factr) | 0x80));
19156 pi->nphy_anarxlpf_adjusted = true;
19158 } else {
19159 if (pi->nphy_anarxlpf_adjusted) {
19160 write_radio_reg(pi,
19161 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
19162 RADIO_2056_RX0),
19163 (pi->nphy_rccal_value | 0x80));
19165 pi->nphy_anarxlpf_adjusted = false;
19171 static void
19172 wlc_phy_adjust_min_noisevar_nphy(struct brcms_phy *pi, int ntones,
19173 int *tone_id_buf, u32 *noise_var_buf)
19175 int i;
19176 u32 offset;
19177 int tone_id;
19178 int tbllen =
19179 CHSPEC_IS40(pi->radio_chanspec) ?
19180 NPHY_NOISEVAR_TBLLEN40 : NPHY_NOISEVAR_TBLLEN20;
19182 if (pi->nphy_noisevars_adjusted) {
19183 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
19184 tone_id = pi->nphy_saved_noisevars.tone_id[i];
19185 offset = (tone_id >= 0) ?
19186 ((tone_id *
19187 2) + 1) : (tbllen + (tone_id * 2) + 1);
19188 wlc_phy_table_write_nphy(
19189 pi, NPHY_TBL_ID_NOISEVAR, 1,
19190 offset, 32,
19191 &pi->nphy_saved_noisevars.min_noise_vars[i]);
19194 pi->nphy_saved_noisevars.bufcount = 0;
19195 pi->nphy_noisevars_adjusted = false;
19198 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
19199 pi->nphy_saved_noisevars.bufcount = 0;
19201 for (i = 0; i < ntones; i++) {
19202 tone_id = tone_id_buf[i];
19203 offset = (tone_id >= 0) ?
19204 ((tone_id * 2) + 1) :
19205 (tbllen + (tone_id * 2) + 1);
19206 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
19207 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19208 offset, 32,
19209 &pi->nphy_saved_noisevars.
19210 min_noise_vars[i]);
19211 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
19212 offset, 32, &noise_var_buf[i]);
19213 pi->nphy_saved_noisevars.bufcount++;
19216 pi->nphy_noisevars_adjusted = true;
19220 static void wlc_phy_adjust_crsminpwr_nphy(struct brcms_phy *pi, u8 minpwr)
19222 u16 regval;
19224 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19225 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
19226 CHSPEC_IS40(pi->radio_chanspec)) {
19227 if (!pi->nphy_crsminpwr_adjusted) {
19228 regval = read_phy_reg(pi, 0x27d);
19229 pi->nphy_crsminpwr[0] = regval & 0xff;
19230 regval &= 0xff00;
19231 regval |= (u16) minpwr;
19232 write_phy_reg(pi, 0x27d, regval);
19234 regval = read_phy_reg(pi, 0x280);
19235 pi->nphy_crsminpwr[1] = regval & 0xff;
19236 regval &= 0xff00;
19237 regval |= (u16) minpwr;
19238 write_phy_reg(pi, 0x280, regval);
19240 regval = read_phy_reg(pi, 0x283);
19241 pi->nphy_crsminpwr[2] = regval & 0xff;
19242 regval &= 0xff00;
19243 regval |= (u16) minpwr;
19244 write_phy_reg(pi, 0x283, regval);
19246 pi->nphy_crsminpwr_adjusted = true;
19248 } else {
19249 if (pi->nphy_crsminpwr_adjusted) {
19250 regval = read_phy_reg(pi, 0x27d);
19251 regval &= 0xff00;
19252 regval |= pi->nphy_crsminpwr[0];
19253 write_phy_reg(pi, 0x27d, regval);
19255 regval = read_phy_reg(pi, 0x280);
19256 regval &= 0xff00;
19257 regval |= pi->nphy_crsminpwr[1];
19258 write_phy_reg(pi, 0x280, regval);
19260 regval = read_phy_reg(pi, 0x283);
19261 regval &= 0xff00;
19262 regval |= pi->nphy_crsminpwr[2];
19263 write_phy_reg(pi, 0x283, regval);
19265 pi->nphy_crsminpwr_adjusted = false;
19271 static void wlc_phy_spurwar_nphy(struct brcms_phy *pi)
19273 u16 cur_channel = 0;
19274 int nphy_adj_tone_id_buf[] = { 57, 58 };
19275 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
19276 bool isAdjustNoiseVar = false;
19277 uint numTonesAdjust = 0;
19278 u32 tempval = 0;
19280 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19281 if (pi->phyhang_avoid)
19282 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19284 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
19286 if (pi->nphy_gband_spurwar_en) {
19288 wlc_phy_adjust_rx_analpfbw_nphy(
19290 NPHY_ANARXLPFBW_REDUCTIONFACT);
19292 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19293 if ((cur_channel == 11)
19294 && CHSPEC_IS40(pi->radio_chanspec))
19295 wlc_phy_adjust_min_noisevar_nphy(
19296 pi, 2,
19297 nphy_adj_tone_id_buf,
19298 nphy_adj_noise_var_buf);
19299 else
19300 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
19301 NULL,
19302 NULL);
19305 wlc_phy_adjust_crsminpwr_nphy(pi,
19306 NPHY_ADJUSTED_MINCRSPOWER);
19309 if ((pi->nphy_gband_spurwar2_en)
19310 && CHSPEC_IS2G(pi->radio_chanspec)) {
19312 if (CHSPEC_IS40(pi->radio_chanspec)) {
19313 switch (cur_channel) {
19314 case 3:
19315 nphy_adj_tone_id_buf[0] = 57;
19316 nphy_adj_tone_id_buf[1] = 58;
19317 nphy_adj_noise_var_buf[0] = 0x22f;
19318 nphy_adj_noise_var_buf[1] = 0x25f;
19319 isAdjustNoiseVar = true;
19320 break;
19321 case 4:
19322 nphy_adj_tone_id_buf[0] = 41;
19323 nphy_adj_tone_id_buf[1] = 42;
19324 nphy_adj_noise_var_buf[0] = 0x22f;
19325 nphy_adj_noise_var_buf[1] = 0x25f;
19326 isAdjustNoiseVar = true;
19327 break;
19328 case 5:
19329 nphy_adj_tone_id_buf[0] = 25;
19330 nphy_adj_tone_id_buf[1] = 26;
19331 nphy_adj_noise_var_buf[0] = 0x24f;
19332 nphy_adj_noise_var_buf[1] = 0x25f;
19333 isAdjustNoiseVar = true;
19334 break;
19335 case 6:
19336 nphy_adj_tone_id_buf[0] = 9;
19337 nphy_adj_tone_id_buf[1] = 10;
19338 nphy_adj_noise_var_buf[0] = 0x22f;
19339 nphy_adj_noise_var_buf[1] = 0x24f;
19340 isAdjustNoiseVar = true;
19341 break;
19342 case 7:
19343 nphy_adj_tone_id_buf[0] = 121;
19344 nphy_adj_tone_id_buf[1] = 122;
19345 nphy_adj_noise_var_buf[0] = 0x18f;
19346 nphy_adj_noise_var_buf[1] = 0x24f;
19347 isAdjustNoiseVar = true;
19348 break;
19349 case 8:
19350 nphy_adj_tone_id_buf[0] = 105;
19351 nphy_adj_tone_id_buf[1] = 106;
19352 nphy_adj_noise_var_buf[0] = 0x22f;
19353 nphy_adj_noise_var_buf[1] = 0x25f;
19354 isAdjustNoiseVar = true;
19355 break;
19356 case 9:
19357 nphy_adj_tone_id_buf[0] = 89;
19358 nphy_adj_tone_id_buf[1] = 90;
19359 nphy_adj_noise_var_buf[0] = 0x22f;
19360 nphy_adj_noise_var_buf[1] = 0x24f;
19361 isAdjustNoiseVar = true;
19362 break;
19363 case 10:
19364 nphy_adj_tone_id_buf[0] = 73;
19365 nphy_adj_tone_id_buf[1] = 74;
19366 nphy_adj_noise_var_buf[0] = 0x22f;
19367 nphy_adj_noise_var_buf[1] = 0x24f;
19368 isAdjustNoiseVar = true;
19369 break;
19370 default:
19371 isAdjustNoiseVar = false;
19372 break;
19376 if (isAdjustNoiseVar) {
19377 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
19378 sizeof(nphy_adj_tone_id_buf[0]);
19380 wlc_phy_adjust_min_noisevar_nphy(
19382 numTonesAdjust,
19383 nphy_adj_tone_id_buf,
19384 nphy_adj_noise_var_buf);
19386 tempval = 0;
19388 } else {
19389 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19390 NULL);
19394 if ((pi->nphy_aband_spurwar_en) &&
19395 (CHSPEC_IS5G(pi->radio_chanspec))) {
19396 switch (cur_channel) {
19397 case 54:
19398 nphy_adj_tone_id_buf[0] = 32;
19399 nphy_adj_noise_var_buf[0] = 0x25f;
19400 break;
19401 case 38:
19402 case 102:
19403 case 118:
19404 nphy_adj_tone_id_buf[0] = 0;
19405 nphy_adj_noise_var_buf[0] = 0x0;
19406 break;
19407 case 134:
19408 nphy_adj_tone_id_buf[0] = 32;
19409 nphy_adj_noise_var_buf[0] = 0x21f;
19410 break;
19411 case 151:
19412 nphy_adj_tone_id_buf[0] = 16;
19413 nphy_adj_noise_var_buf[0] = 0x23f;
19414 break;
19415 case 153:
19416 case 161:
19417 nphy_adj_tone_id_buf[0] = 48;
19418 nphy_adj_noise_var_buf[0] = 0x23f;
19419 break;
19420 default:
19421 nphy_adj_tone_id_buf[0] = 0;
19422 nphy_adj_noise_var_buf[0] = 0x0;
19423 break;
19426 if (nphy_adj_tone_id_buf[0]
19427 && nphy_adj_noise_var_buf[0])
19428 wlc_phy_adjust_min_noisevar_nphy(
19429 pi, 1,
19430 nphy_adj_tone_id_buf,
19431 nphy_adj_noise_var_buf);
19432 else
19433 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
19434 NULL);
19437 if (pi->phyhang_avoid)
19438 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19442 void wlc_phy_init_nphy(struct brcms_phy *pi)
19444 u16 val;
19445 u16 clip1_ths[2];
19446 struct nphy_txgains target_gain;
19447 u8 tx_pwr_ctrl_state;
19448 bool do_nphy_cal = false;
19449 uint core;
19450 u32 d11_clk_ctl_st;
19451 bool do_rssi_cal = false;
19453 core = 0;
19455 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN))
19456 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
19458 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
19459 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
19460 (pi->sh->chippkg == BCM4718_PKG_ID))) {
19461 if ((pi->sh->boardflags & BFL_EXTLNA) &&
19462 (CHSPEC_IS2G(pi->radio_chanspec)))
19463 ai_cc_reg(pi->sh->sih,
19464 offsetof(struct chipcregs, chipcontrol),
19465 0x40, 0x40);
19468 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
19469 CHSPEC_IS40(pi->radio_chanspec)) {
19471 d11_clk_ctl_st = bcma_read32(pi->d11core,
19472 D11REGOFFS(clk_ctl_st));
19473 bcma_mask32(pi->d11core, D11REGOFFS(clk_ctl_st),
19474 ~(CCS_FORCEHT | CCS_HTAREQ));
19476 bcma_write32(pi->d11core, D11REGOFFS(clk_ctl_st),
19477 d11_clk_ctl_st);
19480 pi->use_int_tx_iqlo_cal_nphy =
19481 (PHY_IPA(pi) ||
19482 (NREV_GE(pi->pubpi.phy_rev, 7) ||
19483 (NREV_GE(pi->pubpi.phy_rev, 5)
19484 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
19486 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
19488 pi->nphy_deaf_count = 0;
19490 wlc_phy_tbl_init_nphy(pi);
19492 pi->nphy_crsminpwr_adjusted = false;
19493 pi->nphy_noisevars_adjusted = false;
19495 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19496 write_phy_reg(pi, 0xe7, 0);
19497 write_phy_reg(pi, 0xec, 0);
19498 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19499 write_phy_reg(pi, 0x342, 0);
19500 write_phy_reg(pi, 0x343, 0);
19501 write_phy_reg(pi, 0x346, 0);
19502 write_phy_reg(pi, 0x347, 0);
19504 write_phy_reg(pi, 0xe5, 0);
19505 write_phy_reg(pi, 0xe6, 0);
19506 } else {
19507 write_phy_reg(pi, 0xec, 0);
19510 write_phy_reg(pi, 0x91, 0);
19511 write_phy_reg(pi, 0x92, 0);
19512 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
19513 write_phy_reg(pi, 0x93, 0);
19514 write_phy_reg(pi, 0x94, 0);
19517 and_phy_reg(pi, 0xa1, ~3);
19519 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19520 write_phy_reg(pi, 0x8f, 0);
19521 write_phy_reg(pi, 0xa5, 0);
19522 } else {
19523 write_phy_reg(pi, 0xa5, 0);
19526 if (NREV_IS(pi->pubpi.phy_rev, 2))
19527 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
19528 else if (NREV_LT(pi->pubpi.phy_rev, 2))
19529 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
19531 write_phy_reg(pi, 0x203, 32);
19532 write_phy_reg(pi, 0x201, 32);
19534 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
19535 write_phy_reg(pi, 0x20d, 160);
19536 else
19537 write_phy_reg(pi, 0x20d, 184);
19539 write_phy_reg(pi, 0x13a, 200);
19541 write_phy_reg(pi, 0x70, 80);
19543 write_phy_reg(pi, 0x1ff, 48);
19545 if (NREV_LT(pi->pubpi.phy_rev, 8))
19546 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
19548 wlc_phy_stf_chain_upd_nphy(pi);
19550 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
19551 write_phy_reg(pi, 0x180, 0xaa8);
19552 write_phy_reg(pi, 0x181, 0x9a4);
19555 if (PHY_IPA(pi)) {
19556 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
19558 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
19559 0x29b, (0x1 << 0), (1) << 0);
19561 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
19562 0x29c, (0x1ff << 7),
19563 (pi->nphy_papd_epsilon_offset[core]) << 7);
19567 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
19568 } else if (NREV_GE(pi->pubpi.phy_rev, 5)) {
19569 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
19572 wlc_phy_workarounds_nphy(pi);
19574 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19576 val = read_phy_reg(pi, 0x01);
19577 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19578 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19579 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19581 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
19583 wlc_phy_pa_override_nphy(pi, OFF);
19584 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
19585 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19586 wlc_phy_pa_override_nphy(pi, ON);
19588 wlc_phy_classifier_nphy(pi, 0, 0);
19589 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
19591 if (CHSPEC_IS2G(pi->radio_chanspec))
19592 wlc_phy_bphy_init_nphy(pi);
19594 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
19595 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
19597 wlc_phy_txpwr_fixpower_nphy(pi);
19599 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
19601 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
19603 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19604 u32 *tx_pwrctrl_tbl = NULL;
19605 u16 idx;
19606 s16 pga_gn = 0;
19607 s16 pad_gn = 0;
19608 s32 rfpwr_offset;
19610 if (PHY_IPA(pi)) {
19611 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
19612 } else {
19613 if (CHSPEC_IS5G(pi->radio_chanspec)) {
19614 if (NREV_IS(pi->pubpi.phy_rev, 3))
19615 tx_pwrctrl_tbl =
19616 nphy_tpc_5GHz_txgain_rev3;
19617 else if (NREV_IS(pi->pubpi.phy_rev, 4))
19618 tx_pwrctrl_tbl =
19619 (pi->srom_fem5g.extpagain ==
19620 3) ?
19621 nphy_tpc_5GHz_txgain_HiPwrEPA :
19622 nphy_tpc_5GHz_txgain_rev4;
19623 else
19624 tx_pwrctrl_tbl =
19625 nphy_tpc_5GHz_txgain_rev5;
19626 } else {
19627 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19628 if (pi->pubpi.radiorev == 5)
19629 tx_pwrctrl_tbl =
19630 nphy_tpc_txgain_epa_2057rev5;
19631 else if (pi->pubpi.radiorev == 3)
19632 tx_pwrctrl_tbl =
19633 nphy_tpc_txgain_epa_2057rev3;
19634 } else {
19635 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
19636 (pi->srom_fem2g.extpagain == 3))
19637 tx_pwrctrl_tbl =
19638 nphy_tpc_txgain_HiPwrEPA;
19639 else
19640 tx_pwrctrl_tbl =
19641 nphy_tpc_txgain_rev3;
19646 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19647 192, 32, tx_pwrctrl_tbl);
19648 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19649 192, 32, tx_pwrctrl_tbl);
19651 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
19653 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19655 for (idx = 0; idx < 128; idx++) {
19656 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19657 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
19658 rfpwr_offset = get_rf_pwr_offset(pi, pga_gn,
19659 pad_gn);
19660 wlc_phy_table_write_nphy(
19662 NPHY_TBL_ID_CORE1TXPWRCTL,
19663 1, 576 + idx, 32,
19664 &rfpwr_offset);
19665 wlc_phy_table_write_nphy(
19667 NPHY_TBL_ID_CORE2TXPWRCTL,
19668 1, 576 + idx, 32,
19669 &rfpwr_offset);
19671 } else {
19673 for (idx = 0; idx < 128; idx++) {
19674 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
19675 if (CHSPEC_IS2G(pi->radio_chanspec))
19676 rfpwr_offset = (s16)
19677 nphy_papd_pga_gain_delta_ipa_2g
19678 [pga_gn];
19679 else
19680 rfpwr_offset = (s16)
19681 nphy_papd_pga_gain_delta_ipa_5g
19682 [pga_gn];
19684 wlc_phy_table_write_nphy(
19686 NPHY_TBL_ID_CORE1TXPWRCTL,
19687 1, 576 + idx, 32,
19688 &rfpwr_offset);
19689 wlc_phy_table_write_nphy(
19691 NPHY_TBL_ID_CORE2TXPWRCTL,
19692 1, 576 + idx, 32,
19693 &rfpwr_offset);
19697 } else {
19699 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
19700 192, 32, nphy_tpc_txgain);
19701 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
19702 192, 32, nphy_tpc_txgain);
19705 if (pi->sh->phyrxchain != 0x3)
19706 wlc_phy_rxcore_setstate_nphy((struct brcms_phy_pub *) pi,
19707 pi->sh->phyrxchain);
19709 if (PHY_PERICAL_MPHASE_PENDING(pi))
19710 wlc_phy_cal_perical_mphase_restart(pi);
19712 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19713 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19714 (pi->nphy_rssical_chanspec_2G == 0) :
19715 (pi->nphy_rssical_chanspec_5G == 0);
19717 if (do_rssi_cal)
19718 wlc_phy_rssi_cal_nphy(pi);
19719 else
19720 wlc_phy_restore_rssical_nphy(pi);
19721 } else {
19722 wlc_phy_rssi_cal_nphy(pi);
19725 if (!SCAN_RM_IN_PROGRESS(pi))
19726 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
19727 (pi->nphy_iqcal_chanspec_2G == 0) :
19728 (pi->nphy_iqcal_chanspec_5G == 0);
19730 if (!pi->do_initcal)
19731 do_nphy_cal = false;
19733 if (do_nphy_cal) {
19735 target_gain = wlc_phy_get_tx_gain_nphy(pi);
19737 if (pi->antsel_type == ANTSEL_2x3)
19738 wlc_phy_antsel_init((struct brcms_phy_pub *) pi,
19739 true);
19741 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
19742 wlc_phy_rssi_cal_nphy(pi);
19744 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19745 pi->nphy_cal_orig_pwr_idx[0] =
19746 pi->nphy_txpwrindex[PHY_CORE_0]
19748 index_internal;
19749 pi->nphy_cal_orig_pwr_idx[1] =
19750 pi->nphy_txpwrindex[PHY_CORE_1]
19752 index_internal;
19754 wlc_phy_precal_txgain_nphy(pi);
19755 target_gain =
19756 wlc_phy_get_tx_gain_nphy(pi);
19759 if (wlc_phy_cal_txiqlo_nphy
19760 (pi, target_gain, true,
19761 false) == 0) {
19762 if (wlc_phy_cal_rxiq_nphy
19763 (pi, target_gain, 2,
19764 false) == 0)
19765 wlc_phy_savecal_nphy(pi);
19768 } else if (pi->mphase_cal_phase_id ==
19769 MPHASE_CAL_STATE_IDLE) {
19770 wlc_phy_cal_perical((struct brcms_phy_pub *) pi,
19771 PHY_PERICAL_PHYINIT);
19773 } else {
19774 wlc_phy_restorecal_nphy(pi);
19777 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
19779 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
19781 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
19783 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
19785 write_phy_reg(pi, 0x70, 50);
19787 wlc_phy_txlpfbw_nphy(pi);
19789 wlc_phy_spurwar_nphy(pi);
19793 static void wlc_phy_resetcca_nphy(struct brcms_phy *pi)
19795 u16 val;
19797 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
19799 val = read_phy_reg(pi, 0x01);
19800 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
19801 udelay(1);
19802 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
19804 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
19806 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19809 void wlc_phy_pa_override_nphy(struct brcms_phy *pi, bool en)
19811 u16 rfctrlintc_override_val;
19813 if (!en) {
19815 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
19816 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
19818 if (NREV_GE(pi->pubpi.phy_rev, 7))
19819 rfctrlintc_override_val = 0x1480;
19820 else if (NREV_GE(pi->pubpi.phy_rev, 3))
19821 rfctrlintc_override_val =
19822 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
19823 else
19824 rfctrlintc_override_val =
19825 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
19827 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
19828 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
19829 } else {
19830 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
19831 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
19836 void wlc_phy_stf_chain_upd_nphy(struct brcms_phy *pi)
19839 u16 txrx_chain =
19840 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
19841 bool CoreActv_override = false;
19843 if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN0) {
19844 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
19845 CoreActv_override = true;
19847 if (NREV_LE(pi->pubpi.phy_rev, 2))
19848 and_phy_reg(pi, 0xa0, ~0x20);
19849 } else if (pi->nphy_txrx_chain == BRCMS_N_TXRX_CHAIN1) {
19850 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
19851 CoreActv_override = true;
19853 if (NREV_LE(pi->pubpi.phy_rev, 2))
19854 or_phy_reg(pi, 0xa0, 0x20);
19857 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
19859 if (CoreActv_override) {
19860 pi->nphy_perical = PHY_PERICAL_DISABLE;
19861 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
19862 } else {
19863 pi->nphy_perical = PHY_PERICAL_MPHASE;
19864 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
19868 void wlc_phy_rxcore_setstate_nphy(struct brcms_phy_pub *pih, u8 rxcore_bitmask)
19870 u16 regval;
19871 u16 tbl_buf[16];
19872 uint i;
19873 struct brcms_phy *pi = (struct brcms_phy *) pih;
19874 u16 tbl_opcode;
19875 bool suspend;
19877 pi->sh->phyrxchain = rxcore_bitmask;
19879 if (!pi->sh->clk)
19880 return;
19882 suspend = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
19883 MCTL_EN_MAC));
19884 if (!suspend)
19885 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19887 if (pi->phyhang_avoid)
19888 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19890 regval = read_phy_reg(pi, 0xa2);
19891 regval &= ~(0xf << 4);
19892 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
19893 write_phy_reg(pi, 0xa2, regval);
19895 if ((rxcore_bitmask & 0x3) != 0x3) {
19897 write_phy_reg(pi, 0x20e, 1);
19899 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19900 if (pi->rx2tx_biasentry == -1) {
19901 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
19902 ARRAY_SIZE(tbl_buf), 80,
19903 16, tbl_buf);
19905 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
19906 if (tbl_buf[i] ==
19907 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
19908 pi->rx2tx_biasentry = (u8) i;
19909 tbl_opcode =
19910 NPHY_REV3_RFSEQ_CMD_NOP;
19911 wlc_phy_table_write_nphy(
19913 NPHY_TBL_ID_RFSEQ,
19914 1, i,
19916 &tbl_opcode);
19917 break;
19918 } else if (tbl_buf[i] ==
19919 NPHY_REV3_RFSEQ_CMD_END)
19920 break;
19924 } else {
19926 write_phy_reg(pi, 0x20e, 30);
19928 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19929 if (pi->rx2tx_biasentry != -1) {
19930 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
19931 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
19932 1, pi->rx2tx_biasentry,
19933 16, &tbl_opcode);
19934 pi->rx2tx_biasentry = -1;
19939 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
19941 if (pi->phyhang_avoid)
19942 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19944 if (!suspend)
19945 wlapi_enable_mac(pi->sh->physhim);
19948 u8 wlc_phy_rxcore_getstate_nphy(struct brcms_phy_pub *pih)
19950 u16 regval, rxen_bits;
19951 struct brcms_phy *pi = (struct brcms_phy *) pih;
19953 regval = read_phy_reg(pi, 0xa2);
19954 rxen_bits = (regval >> 4) & 0xf;
19956 return (u8) rxen_bits;
19959 bool wlc_phy_n_txpower_ipa_ison(struct brcms_phy *pi)
19961 return PHY_IPA(pi);
19964 void wlc_phy_cal_init_nphy(struct brcms_phy *pi)
19968 static void wlc_phy_radio_preinit_205x(struct brcms_phy *pi)
19971 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
19972 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
19974 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
19975 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
19979 static void wlc_phy_radio_init_2057(struct brcms_phy *pi)
19981 struct radio_20xx_regs *regs_2057_ptr = NULL;
19983 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
19984 regs_2057_ptr = regs_2057_rev4;
19985 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
19986 || NREV_IS(pi->pubpi.phy_rev, 9)) {
19987 switch (pi->pubpi.radiorev) {
19988 case 5:
19990 if (pi->pubpi.radiover == 0x0)
19991 regs_2057_ptr = regs_2057_rev5;
19992 else if (pi->pubpi.radiover == 0x1)
19993 regs_2057_ptr = regs_2057_rev5v1;
19994 else
19995 break;
19997 case 7:
19999 regs_2057_ptr = regs_2057_rev7;
20000 break;
20002 case 8:
20004 regs_2057_ptr = regs_2057_rev8;
20005 break;
20007 default:
20008 break;
20012 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
20015 static u16 wlc_phy_radio205x_rcal(struct brcms_phy *pi)
20017 u16 rcal_reg = 0;
20018 int i;
20020 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20022 if (pi->pubpi.radiorev == 5) {
20024 and_phy_reg(pi, 0x342, ~(0x1 << 1));
20026 udelay(10);
20028 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
20029 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20030 0x1);
20032 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
20034 udelay(10);
20036 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
20038 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20039 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
20040 if (rcal_reg & 0x1)
20041 break;
20043 udelay(100);
20046 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20047 "HW error: radio calib2"))
20048 return 0;
20050 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
20052 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
20054 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
20055 if (pi->pubpi.radiorev == 5) {
20057 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
20058 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
20059 0x0);
20062 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
20064 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
20065 rcal_reg);
20066 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
20067 rcal_reg << 2);
20070 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20071 u16 savereg;
20073 savereg =
20074 read_radio_reg(
20076 RADIO_2056_SYN_PLL_MAST2 |
20077 RADIO_2056_SYN);
20078 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20079 savereg | 0x7);
20080 udelay(10);
20082 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20083 0x1);
20084 udelay(10);
20086 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20087 0x9);
20089 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20090 rcal_reg = read_radio_reg(
20092 RADIO_2056_SYN_RCAL_CODE_OUT |
20093 RADIO_2056_SYN);
20094 if (rcal_reg & 0x80)
20095 break;
20097 udelay(100);
20100 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
20101 "HW error: radio calib3"))
20102 return 0;
20104 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20105 0x1);
20107 rcal_reg =
20108 read_radio_reg(pi,
20109 RADIO_2056_SYN_RCAL_CODE_OUT |
20110 RADIO_2056_SYN);
20112 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
20113 0x0);
20115 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
20116 savereg);
20118 return rcal_reg & 0x1f;
20120 return rcal_reg & 0x3e;
20123 static u16 wlc_phy_radio2057_rccal(struct brcms_phy *pi)
20125 u16 rccal_valid;
20126 int i;
20127 bool chip43226_6362A0;
20129 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
20130 || (pi->pubpi.radiorev == 4)
20131 || (pi->pubpi.radiorev == 6));
20133 rccal_valid = 0;
20134 if (chip43226_6362A0) {
20135 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
20136 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
20137 } else {
20138 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
20140 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
20142 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20143 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20145 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20146 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20147 if (rccal_valid & 0x2)
20148 break;
20150 udelay(500);
20153 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20155 rccal_valid = 0;
20156 if (chip43226_6362A0) {
20157 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
20158 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20159 } else {
20160 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
20162 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
20164 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20165 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20167 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20168 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20169 if (rccal_valid & 0x2)
20170 break;
20172 udelay(500);
20175 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20177 rccal_valid = 0;
20178 if (chip43226_6362A0) {
20179 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
20181 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
20182 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
20183 } else {
20184 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
20185 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
20186 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
20188 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
20190 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
20191 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
20192 if (rccal_valid & 0x2)
20193 break;
20195 udelay(500);
20198 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
20199 return 0;
20201 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
20203 return rccal_valid;
20206 static void wlc_phy_radio_postinit_2057(struct brcms_phy *pi)
20209 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
20211 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
20212 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
20213 mdelay(2);
20214 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
20215 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
20217 if (pi->phy_init_por) {
20218 wlc_phy_radio205x_rcal(pi);
20219 wlc_phy_radio2057_rccal(pi);
20222 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
20225 static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
20227 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20228 const struct radio_regs *regs_TX_2056_ptr = NULL;
20229 const struct radio_regs *regs_RX_2056_ptr = NULL;
20231 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20232 regs_SYN_2056_ptr = regs_SYN_2056;
20233 regs_TX_2056_ptr = regs_TX_2056;
20234 regs_RX_2056_ptr = regs_RX_2056;
20235 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20236 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20237 regs_TX_2056_ptr = regs_TX_2056_A1;
20238 regs_RX_2056_ptr = regs_RX_2056_A1;
20239 } else {
20240 switch (pi->pubpi.radiorev) {
20241 case 5:
20242 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20243 regs_TX_2056_ptr = regs_TX_2056_rev5;
20244 regs_RX_2056_ptr = regs_RX_2056_rev5;
20245 break;
20247 case 6:
20248 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20249 regs_TX_2056_ptr = regs_TX_2056_rev6;
20250 regs_RX_2056_ptr = regs_RX_2056_rev6;
20251 break;
20253 case 7:
20254 case 9:
20255 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20256 regs_TX_2056_ptr = regs_TX_2056_rev7;
20257 regs_RX_2056_ptr = regs_RX_2056_rev7;
20258 break;
20260 case 8:
20261 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20262 regs_TX_2056_ptr = regs_TX_2056_rev8;
20263 regs_RX_2056_ptr = regs_RX_2056_rev8;
20264 break;
20266 case 11:
20267 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20268 regs_TX_2056_ptr = regs_TX_2056_rev11;
20269 regs_RX_2056_ptr = regs_RX_2056_rev11;
20270 break;
20272 default:
20273 break;
20277 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
20279 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
20281 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
20283 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
20285 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
20288 static void wlc_phy_radio_postinit_2056(struct brcms_phy *pi)
20290 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
20292 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
20293 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
20294 udelay(1000);
20295 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
20297 if ((pi->sh->boardflags2 & BFL2_LEGACY)
20298 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN))
20299 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
20300 else
20301 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
20303 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
20305 if (pi->phy_init_por)
20306 wlc_phy_radio205x_rcal(pi);
20309 static void wlc_phy_radio_preinit_2055(struct brcms_phy *pi)
20312 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
20313 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
20315 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
20318 static void wlc_phy_radio_init_2055(struct brcms_phy *pi)
20320 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
20323 static void wlc_phy_radio_postinit_2055(struct brcms_phy *pi)
20326 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
20327 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
20329 if (((pi->sh->sromrev >= 4)
20330 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
20331 || ((pi->sh->sromrev < 4))) {
20332 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
20333 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
20336 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
20337 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
20339 and_radio_reg(pi, RADIO_2055_CAL_MISC,
20340 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
20342 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
20344 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
20346 udelay(1000);
20348 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
20350 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20351 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
20353 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
20354 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
20355 "HW error: radio calibration1\n"))
20356 return;
20358 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
20359 ~(RADIO_2055_CAL_LPO_ENABLE));
20361 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi, pi->radio_chanspec);
20363 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
20364 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
20366 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
20367 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
20369 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
20370 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20371 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
20372 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
20373 if (pi->nphy_gain_boost) {
20374 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20375 ~(RADIO_2055_GAINBST_DISABLE));
20376 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20377 ~(RADIO_2055_GAINBST_DISABLE));
20378 } else {
20379 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
20380 RADIO_2055_GAINBST_DISABLE);
20381 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
20382 RADIO_2055_GAINBST_DISABLE);
20385 udelay(2);
20388 void wlc_phy_switch_radio_nphy(struct brcms_phy *pi, bool on)
20390 if (on) {
20391 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20392 if (!pi->radio_is_on) {
20393 wlc_phy_radio_preinit_205x(pi);
20394 wlc_phy_radio_init_2057(pi);
20395 wlc_phy_radio_postinit_2057(pi);
20398 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20399 pi->radio_chanspec);
20400 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20401 wlc_phy_radio_preinit_205x(pi);
20402 wlc_phy_radio_init_2056(pi);
20403 wlc_phy_radio_postinit_2056(pi);
20405 wlc_phy_chanspec_set((struct brcms_phy_pub *) pi,
20406 pi->radio_chanspec);
20407 } else {
20408 wlc_phy_radio_preinit_2055(pi);
20409 wlc_phy_radio_init_2055(pi);
20410 wlc_phy_radio_postinit_2055(pi);
20413 pi->radio_is_on = true;
20415 } else {
20417 if (NREV_GE(pi->pubpi.phy_rev, 3)
20418 && NREV_LT(pi->pubpi.phy_rev, 7)) {
20419 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20420 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
20422 write_radio_reg(pi,
20423 RADIO_2056_TX_PADA_BOOST_TUNE |
20424 RADIO_2056_TX0, 0);
20425 write_radio_reg(pi,
20426 RADIO_2056_TX_PADG_BOOST_TUNE |
20427 RADIO_2056_TX0, 0);
20428 write_radio_reg(pi,
20429 RADIO_2056_TX_PGAA_BOOST_TUNE |
20430 RADIO_2056_TX0, 0);
20431 write_radio_reg(pi,
20432 RADIO_2056_TX_PGAG_BOOST_TUNE |
20433 RADIO_2056_TX0, 0);
20434 mod_radio_reg(pi,
20435 RADIO_2056_TX_MIXA_BOOST_TUNE |
20436 RADIO_2056_TX0, 0xf0, 0);
20437 write_radio_reg(pi,
20438 RADIO_2056_TX_MIXG_BOOST_TUNE |
20439 RADIO_2056_TX0, 0);
20441 write_radio_reg(pi,
20442 RADIO_2056_TX_PADA_BOOST_TUNE |
20443 RADIO_2056_TX1, 0);
20444 write_radio_reg(pi,
20445 RADIO_2056_TX_PADG_BOOST_TUNE |
20446 RADIO_2056_TX1, 0);
20447 write_radio_reg(pi,
20448 RADIO_2056_TX_PGAA_BOOST_TUNE |
20449 RADIO_2056_TX1, 0);
20450 write_radio_reg(pi,
20451 RADIO_2056_TX_PGAG_BOOST_TUNE |
20452 RADIO_2056_TX1, 0);
20453 mod_radio_reg(pi,
20454 RADIO_2056_TX_MIXA_BOOST_TUNE |
20455 RADIO_2056_TX1, 0xf0, 0);
20456 write_radio_reg(pi,
20457 RADIO_2056_TX_MIXG_BOOST_TUNE |
20458 RADIO_2056_TX1, 0);
20460 pi->radio_is_on = false;
20463 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
20464 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
20465 pi->radio_is_on = false;
20471 static bool
20472 wlc_phy_chan2freq_nphy(struct brcms_phy *pi, uint channel, int *f,
20473 const struct chan_info_nphy_radio2057 **t0,
20474 const struct chan_info_nphy_radio205x **t1,
20475 const struct chan_info_nphy_radio2057_rev5 **t2,
20476 const struct chan_info_nphy_2055 **t3)
20478 uint i;
20479 const struct chan_info_nphy_radio2057 *chan_info_tbl_p_0 = NULL;
20480 const struct chan_info_nphy_radio205x *chan_info_tbl_p_1 = NULL;
20481 const struct chan_info_nphy_radio2057_rev5 *chan_info_tbl_p_2 = NULL;
20482 u32 tbl_len = 0;
20484 int freq = 0;
20486 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20488 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
20490 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
20491 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
20493 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
20494 || NREV_IS(pi->pubpi.phy_rev, 9)) {
20495 switch (pi->pubpi.radiorev) {
20497 case 5:
20499 if (pi->pubpi.radiover == 0x0) {
20501 chan_info_tbl_p_2 =
20502 chan_info_nphyrev8_2057_rev5;
20503 tbl_len = ARRAY_SIZE(
20504 chan_info_nphyrev8_2057_rev5);
20506 } else if (pi->pubpi.radiover == 0x1) {
20508 chan_info_tbl_p_2 =
20509 chan_info_nphyrev9_2057_rev5v1;
20510 tbl_len = ARRAY_SIZE(
20511 chan_info_nphyrev9_2057_rev5v1);
20514 break;
20516 case 7:
20517 chan_info_tbl_p_0 =
20518 chan_info_nphyrev8_2057_rev7;
20519 tbl_len = ARRAY_SIZE(
20520 chan_info_nphyrev8_2057_rev7);
20521 break;
20523 case 8:
20524 chan_info_tbl_p_0 =
20525 chan_info_nphyrev8_2057_rev8;
20526 tbl_len = ARRAY_SIZE(
20527 chan_info_nphyrev8_2057_rev8);
20528 break;
20530 default:
20531 break;
20533 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
20535 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
20536 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
20537 } else {
20538 goto fail;
20541 for (i = 0; i < tbl_len; i++) {
20542 if (pi->pubpi.radiorev == 5) {
20544 if (chan_info_tbl_p_2[i].chan == channel)
20545 break;
20546 } else {
20548 if (chan_info_tbl_p_0[i].chan == channel)
20549 break;
20553 if (i >= tbl_len)
20554 goto fail;
20556 if (pi->pubpi.radiorev == 5) {
20557 *t2 = &chan_info_tbl_p_2[i];
20558 freq = chan_info_tbl_p_2[i].freq;
20559 } else {
20560 *t0 = &chan_info_tbl_p_0[i];
20561 freq = chan_info_tbl_p_0[i].freq;
20564 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20565 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
20566 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
20567 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
20568 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
20569 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
20570 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
20571 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
20572 || NREV_IS(pi->pubpi.phy_rev, 6)) {
20573 switch (pi->pubpi.radiorev) {
20574 case 5:
20575 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
20576 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
20577 break;
20578 case 6:
20579 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
20580 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
20581 break;
20582 case 7:
20583 case 9:
20584 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
20585 tbl_len =
20586 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
20587 break;
20588 case 8:
20589 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
20590 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
20591 break;
20592 case 11:
20593 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
20594 tbl_len = ARRAY_SIZE(
20595 chan_info_nphyrev6_2056v11);
20596 break;
20597 default:
20598 break;
20602 for (i = 0; i < tbl_len; i++) {
20603 if (chan_info_tbl_p_1[i].chan == channel)
20604 break;
20607 if (i >= tbl_len)
20608 goto fail;
20610 *t1 = &chan_info_tbl_p_1[i];
20611 freq = chan_info_tbl_p_1[i].freq;
20613 } else {
20614 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
20615 if (chan_info_nphy_2055[i].chan == channel)
20616 break;
20618 if (i >= ARRAY_SIZE(chan_info_nphy_2055))
20619 goto fail;
20621 *t3 = &chan_info_nphy_2055[i];
20622 freq = chan_info_nphy_2055[i].freq;
20625 *f = freq;
20626 return true;
20628 fail:
20629 *f = WL_CHAN_FREQ_RANGE_2G;
20630 return false;
20633 u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint channel)
20635 int freq;
20636 const struct chan_info_nphy_radio2057 *t0 = NULL;
20637 const struct chan_info_nphy_radio205x *t1 = NULL;
20638 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
20639 const struct chan_info_nphy_2055 *t3 = NULL;
20641 if (channel == 0)
20642 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
20644 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
20646 if (CHSPEC_IS2G(pi->radio_chanspec))
20647 return WL_CHAN_FREQ_RANGE_2G;
20649 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN))
20650 return WL_CHAN_FREQ_RANGE_5GL;
20651 else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN))
20652 return WL_CHAN_FREQ_RANGE_5GM;
20653 else
20654 return WL_CHAN_FREQ_RANGE_5GH;
20657 static void
20658 wlc_phy_chanspec_radio2055_setup(struct brcms_phy *pi,
20659 const struct chan_info_nphy_2055 *ci)
20662 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
20663 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
20664 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
20665 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
20667 BRCMS_PHY_WAR_PR51571(pi);
20669 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
20670 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
20671 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
20672 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
20674 BRCMS_PHY_WAR_PR51571(pi);
20676 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
20677 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
20678 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
20679 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
20681 BRCMS_PHY_WAR_PR51571(pi);
20683 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
20684 ci->RF_core1_lgbuf_a_tune);
20685 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
20686 ci->RF_core1_lgbuf_g_tune);
20687 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
20688 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
20689 ci->RF_core1_tx_pga_pad_tn);
20691 BRCMS_PHY_WAR_PR51571(pi);
20693 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
20694 ci->RF_core1_tx_mx_bgtrim);
20695 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
20696 ci->RF_core2_lgbuf_a_tune);
20697 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
20698 ci->RF_core2_lgbuf_g_tune);
20699 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
20701 BRCMS_PHY_WAR_PR51571(pi);
20703 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
20704 ci->RF_core2_tx_pga_pad_tn);
20705 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
20706 ci->RF_core2_tx_mx_bgtrim);
20708 udelay(50);
20710 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
20711 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
20713 BRCMS_PHY_WAR_PR51571(pi);
20715 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
20717 udelay(300);
20720 static void
20721 wlc_phy_chanspec_radio2056_setup(struct brcms_phy *pi,
20722 const struct chan_info_nphy_radio205x *ci)
20724 const struct radio_regs *regs_SYN_2056_ptr = NULL;
20726 write_radio_reg(pi,
20727 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
20728 ci->RF_SYN_pll_vcocal1);
20729 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
20730 ci->RF_SYN_pll_vcocal2);
20731 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
20732 ci->RF_SYN_pll_refdiv);
20733 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
20734 ci->RF_SYN_pll_mmd2);
20735 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
20736 ci->RF_SYN_pll_mmd1);
20737 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20738 ci->RF_SYN_pll_loopfilter1);
20739 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20740 ci->RF_SYN_pll_loopfilter2);
20741 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
20742 ci->RF_SYN_pll_loopfilter3);
20743 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20744 ci->RF_SYN_pll_loopfilter4);
20745 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
20746 ci->RF_SYN_pll_loopfilter5);
20747 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
20748 ci->RF_SYN_reserved_addr27);
20749 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
20750 ci->RF_SYN_reserved_addr28);
20751 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
20752 ci->RF_SYN_reserved_addr29);
20753 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
20754 ci->RF_SYN_logen_VCOBUF1);
20755 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
20756 ci->RF_SYN_logen_MIXER2);
20757 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
20758 ci->RF_SYN_logen_BUF3);
20759 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
20760 ci->RF_SYN_logen_BUF4);
20762 write_radio_reg(pi,
20763 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
20764 ci->RF_RX0_lnaa_tune);
20765 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
20766 ci->RF_RX0_lnag_tune);
20767 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
20768 ci->RF_TX0_intpaa_boost_tune);
20769 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
20770 ci->RF_TX0_intpag_boost_tune);
20771 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
20772 ci->RF_TX0_pada_boost_tune);
20773 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
20774 ci->RF_TX0_padg_boost_tune);
20775 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
20776 ci->RF_TX0_pgaa_boost_tune);
20777 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
20778 ci->RF_TX0_pgag_boost_tune);
20779 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
20780 ci->RF_TX0_mixa_boost_tune);
20781 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
20782 ci->RF_TX0_mixg_boost_tune);
20784 write_radio_reg(pi,
20785 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
20786 ci->RF_RX1_lnaa_tune);
20787 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
20788 ci->RF_RX1_lnag_tune);
20789 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
20790 ci->RF_TX1_intpaa_boost_tune);
20791 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
20792 ci->RF_TX1_intpag_boost_tune);
20793 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
20794 ci->RF_TX1_pada_boost_tune);
20795 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
20796 ci->RF_TX1_padg_boost_tune);
20797 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
20798 ci->RF_TX1_pgaa_boost_tune);
20799 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
20800 ci->RF_TX1_pgag_boost_tune);
20801 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
20802 ci->RF_TX1_mixa_boost_tune);
20803 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
20804 ci->RF_TX1_mixg_boost_tune);
20806 if (NREV_IS(pi->pubpi.phy_rev, 3))
20807 regs_SYN_2056_ptr = regs_SYN_2056;
20808 else if (NREV_IS(pi->pubpi.phy_rev, 4))
20809 regs_SYN_2056_ptr = regs_SYN_2056_A1;
20810 else {
20811 switch (pi->pubpi.radiorev) {
20812 case 5:
20813 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
20814 break;
20815 case 6:
20816 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
20817 break;
20818 case 7:
20819 case 9:
20820 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
20821 break;
20822 case 8:
20823 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
20824 break;
20825 case 11:
20826 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
20827 break;
20830 if (CHSPEC_IS2G(pi->radio_chanspec))
20831 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20832 RADIO_2056_SYN,
20833 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
20834 else
20835 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20836 RADIO_2056_SYN,
20837 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
20839 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
20840 if (CHSPEC_IS2G(pi->radio_chanspec)) {
20841 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20842 RADIO_2056_SYN, 0x1f);
20843 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20844 RADIO_2056_SYN, 0x1f);
20846 write_radio_reg(pi,
20847 RADIO_2056_SYN_PLL_LOOPFILTER4 |
20848 RADIO_2056_SYN, 0xb);
20849 write_radio_reg(pi,
20850 RADIO_2056_SYN_PLL_CP2 |
20851 RADIO_2056_SYN, 0x14);
20855 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
20856 (CHSPEC_IS2G(pi->radio_chanspec))) {
20857 write_radio_reg(pi,
20858 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
20859 0x1f);
20860 write_radio_reg(pi,
20861 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
20862 0x1f);
20863 write_radio_reg(pi,
20864 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
20865 0xb);
20866 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
20867 0x20);
20870 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
20871 if (CHSPEC_IS5G(pi->radio_chanspec)) {
20872 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
20873 RADIO_2056_SYN, 0x1f);
20874 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
20875 RADIO_2056_SYN, 0x1f);
20876 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
20877 RADIO_2056_SYN, 0x5);
20878 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
20879 RADIO_2056_SYN, 0xc);
20883 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
20884 u16 pag_boost_tune;
20885 u16 padg_boost_tune;
20886 u16 pgag_boost_tune;
20887 u16 mixg_boost_tune;
20888 u16 bias, cascbias;
20889 uint core;
20891 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20893 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
20895 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20896 PADG_IDAC, 0xcc);
20898 bias = 0x25;
20899 cascbias = 0x20;
20901 if ((pi->sh->chip ==
20902 BCM43224_CHIP_ID)
20903 || (pi->sh->chip ==
20904 BCM43225_CHIP_ID)) {
20905 if (pi->sh->chippkg ==
20906 BCM43224_FAB_SMIC) {
20907 bias = 0x2a;
20908 cascbias = 0x38;
20912 pag_boost_tune = 0x4;
20913 pgag_boost_tune = 0x03;
20914 padg_boost_tune = 0x77;
20915 mixg_boost_tune = 0x65;
20917 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20918 INTPAG_IMAIN_STAT, bias);
20919 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20920 INTPAG_IAUX_STAT, bias);
20921 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20922 INTPAG_CASCBIAS, cascbias);
20924 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20925 INTPAG_BOOST_TUNE,
20926 pag_boost_tune);
20927 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20928 PGAG_BOOST_TUNE,
20929 pgag_boost_tune);
20930 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20931 PADG_BOOST_TUNE,
20932 padg_boost_tune);
20933 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20934 MIXG_BOOST_TUNE,
20935 mixg_boost_tune);
20936 } else {
20938 bias = (pi->bw == WL_CHANSPEC_BW_40) ?
20939 0x40 : 0x20;
20941 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20942 INTPAG_IMAIN_STAT, bias);
20943 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20944 INTPAG_IAUX_STAT, bias);
20945 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20946 INTPAG_CASCBIAS, 0x30);
20948 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
20949 0xee);
20953 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
20954 && CHSPEC_IS5G(pi->radio_chanspec)) {
20955 u16 paa_boost_tune;
20956 u16 pada_boost_tune;
20957 u16 pgaa_boost_tune;
20958 u16 mixa_boost_tune;
20959 u16 freq, pabias, cascbias;
20960 uint core;
20962 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
20964 if (freq < 5150) {
20966 paa_boost_tune = 0xa;
20967 pada_boost_tune = 0x77;
20968 pgaa_boost_tune = 0xf;
20969 mixa_boost_tune = 0xf;
20970 } else if (freq < 5340) {
20972 paa_boost_tune = 0x8;
20973 pada_boost_tune = 0x77;
20974 pgaa_boost_tune = 0xfb;
20975 mixa_boost_tune = 0xf;
20976 } else if (freq < 5650) {
20978 paa_boost_tune = 0x0;
20979 pada_boost_tune = 0x77;
20980 pgaa_boost_tune = 0xb;
20981 mixa_boost_tune = 0xf;
20982 } else {
20984 paa_boost_tune = 0x0;
20985 pada_boost_tune = 0x77;
20986 if (freq != 5825)
20987 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
20988 else
20989 pgaa_boost_tune = 6;
20991 mixa_boost_tune = 0xf;
20994 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20995 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20996 INTPAA_BOOST_TUNE, paa_boost_tune);
20997 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
20998 PADA_BOOST_TUNE, pada_boost_tune);
20999 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21000 PGAA_BOOST_TUNE, pgaa_boost_tune);
21001 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21002 MIXA_BOOST_TUNE, mixa_boost_tune);
21004 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21005 TXSPARE1, 0x30);
21006 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21007 PA_SPARE2, 0xee);
21009 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21010 PADA_CASCBIAS, 0x3);
21012 cascbias = 0x30;
21014 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21015 (pi->sh->chip == BCM43225_CHIP_ID)) {
21016 if (pi->sh->chippkg == BCM43224_FAB_SMIC)
21017 cascbias = 0x35;
21020 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
21022 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21023 INTPAA_IAUX_STAT, pabias);
21024 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21025 INTPAA_IMAIN_STAT, pabias);
21026 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
21027 INTPAA_CASCBIAS, cascbias);
21031 udelay(50);
21033 wlc_phy_radio205x_vcocal_nphy(pi);
21036 void wlc_phy_radio205x_vcocal_nphy(struct brcms_phy *pi)
21038 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21039 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
21040 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
21041 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
21042 (1 << 2));
21043 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
21044 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21045 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
21046 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21047 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
21048 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
21049 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
21052 udelay(300);
21055 static void
21056 wlc_phy_chanspec_radio2057_setup(
21057 struct brcms_phy *pi,
21058 const struct chan_info_nphy_radio2057 *ci,
21059 const struct chan_info_nphy_radio2057_rev5 *
21060 ci2)
21062 int coreNum;
21063 u16 txmix2g_tune_boost_pu = 0;
21064 u16 pad2g_tune_pus = 0;
21066 if (pi->pubpi.radiorev == 5) {
21068 write_radio_reg(pi,
21069 RADIO_2057_VCOCAL_COUNTVAL0,
21070 ci2->RF_vcocal_countval0);
21071 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21072 ci2->RF_vcocal_countval1);
21073 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21074 ci2->RF_rfpll_refmaster_sparextalsize);
21075 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21076 ci2->RF_rfpll_loopfilter_r1);
21077 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21078 ci2->RF_rfpll_loopfilter_c2);
21079 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21080 ci2->RF_rfpll_loopfilter_c1);
21081 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
21082 ci2->RF_cp_kpd_idac);
21083 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
21084 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
21085 write_radio_reg(pi,
21086 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
21087 write_radio_reg(pi,
21088 RADIO_2057_LOGEN_MX2G_TUNE,
21089 ci2->RF_logen_mx2g_tune);
21090 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21091 ci2->RF_logen_indbuf2g_tune);
21093 write_radio_reg(pi,
21094 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21095 ci2->RF_txmix2g_tune_boost_pu_core0);
21096 write_radio_reg(pi,
21097 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21098 ci2->RF_pad2g_tune_pus_core0);
21099 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21100 ci2->RF_lna2g_tune_core0);
21102 write_radio_reg(pi,
21103 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21104 ci2->RF_txmix2g_tune_boost_pu_core1);
21105 write_radio_reg(pi,
21106 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21107 ci2->RF_pad2g_tune_pus_core1);
21108 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21109 ci2->RF_lna2g_tune_core1);
21111 } else {
21113 write_radio_reg(pi,
21114 RADIO_2057_VCOCAL_COUNTVAL0,
21115 ci->RF_vcocal_countval0);
21116 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
21117 ci->RF_vcocal_countval1);
21118 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
21119 ci->RF_rfpll_refmaster_sparextalsize);
21120 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21121 ci->RF_rfpll_loopfilter_r1);
21122 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21123 ci->RF_rfpll_loopfilter_c2);
21124 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21125 ci->RF_rfpll_loopfilter_c1);
21126 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
21127 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
21128 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
21129 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
21130 write_radio_reg(pi,
21131 RADIO_2057_LOGEN_MX2G_TUNE,
21132 ci->RF_logen_mx2g_tune);
21133 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
21134 ci->RF_logen_mx5g_tune);
21135 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
21136 ci->RF_logen_indbuf2g_tune);
21137 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
21138 ci->RF_logen_indbuf5g_tune);
21140 write_radio_reg(pi,
21141 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
21142 ci->RF_txmix2g_tune_boost_pu_core0);
21143 write_radio_reg(pi,
21144 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
21145 ci->RF_pad2g_tune_pus_core0);
21146 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
21147 ci->RF_pga_boost_tune_core0);
21148 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
21149 ci->RF_txmix5g_boost_tune_core0);
21150 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
21151 ci->RF_pad5g_tune_misc_pus_core0);
21152 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
21153 ci->RF_lna2g_tune_core0);
21154 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
21155 ci->RF_lna5g_tune_core0);
21157 write_radio_reg(pi,
21158 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
21159 ci->RF_txmix2g_tune_boost_pu_core1);
21160 write_radio_reg(pi,
21161 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
21162 ci->RF_pad2g_tune_pus_core1);
21163 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
21164 ci->RF_pga_boost_tune_core1);
21165 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
21166 ci->RF_txmix5g_boost_tune_core1);
21167 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
21168 ci->RF_pad5g_tune_misc_pus_core1);
21169 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
21170 ci->RF_lna2g_tune_core1);
21171 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
21172 ci->RF_lna5g_tune_core1);
21175 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
21177 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21178 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21179 0x3f);
21180 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21181 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21182 0x8);
21183 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21184 0x8);
21185 } else {
21186 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21187 0x1f);
21188 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21189 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21190 0x8);
21191 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21192 0x8);
21194 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
21195 (pi->pubpi.radiorev == 8)) {
21197 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21198 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21199 0x1b);
21200 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
21201 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21202 0xa);
21203 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21204 0xa);
21205 } else {
21206 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
21207 0x1f);
21208 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
21209 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
21210 0x8);
21211 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
21212 0x8);
21217 if (CHSPEC_IS2G(pi->radio_chanspec)) {
21218 if (PHY_IPA(pi)) {
21219 if (pi->pubpi.radiorev == 3)
21220 txmix2g_tune_boost_pu = 0x6b;
21222 if (pi->pubpi.radiorev == 5)
21223 pad2g_tune_pus = 0x73;
21225 } else {
21226 if (pi->pubpi.radiorev != 5) {
21227 pad2g_tune_pus = 0x3;
21229 txmix2g_tune_boost_pu = 0x61;
21233 for (coreNum = 0; coreNum <= 1; coreNum++) {
21235 if (txmix2g_tune_boost_pu != 0)
21236 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21237 TXMIX2G_TUNE_BOOST_PU,
21238 txmix2g_tune_boost_pu);
21240 if (pad2g_tune_pus != 0)
21241 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
21242 PAD2G_TUNE_PUS,
21243 pad2g_tune_pus);
21247 udelay(50);
21249 wlc_phy_radio205x_vcocal_nphy(pi);
21252 static void
21253 wlc_phy_chanspec_nphy_setup(struct brcms_phy *pi, u16 chanspec,
21254 const struct nphy_sfo_cfg *ci)
21256 u16 val;
21258 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
21259 if (CHSPEC_IS5G(chanspec) && !val) {
21261 val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21262 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21263 (val | MAC_PHY_FORCE_CLK));
21265 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21266 (BBCFG_RESETCCA | BBCFG_RESETRX));
21268 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21270 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
21271 } else if (!CHSPEC_IS5G(chanspec) && val) {
21273 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
21275 val = bcma_read16(pi->d11core, D11REGOFFS(psm_phy_hdr_param));
21276 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param),
21277 (val | MAC_PHY_FORCE_CLK));
21279 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
21280 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
21282 bcma_write16(pi->d11core, D11REGOFFS(psm_phy_hdr_param), val);
21285 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
21286 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
21287 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
21289 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
21290 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
21291 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
21293 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
21294 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
21296 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
21297 } else {
21298 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
21299 NPHY_ClassifierCtrl_ofdm_en);
21301 if (CHSPEC_IS2G(chanspec))
21302 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
21305 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF)
21306 wlc_phy_txpwr_fixpower_nphy(pi);
21308 if (NREV_LT(pi->pubpi.phy_rev, 3))
21309 wlc_phy_adjust_lnagaintbl_nphy(pi);
21311 wlc_phy_txlpfbw_nphy(pi);
21313 if (NREV_GE(pi->pubpi.phy_rev, 3)
21314 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
21315 u8 spuravoid = 0;
21317 val = CHSPEC_CHANNEL(chanspec);
21318 if (!CHSPEC_IS40(pi->radio_chanspec)) {
21319 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21320 if ((val == 13) || (val == 14) || (val == 153))
21321 spuravoid = 1;
21322 } else if (((val >= 5) && (val <= 8)) || (val == 13)
21323 || (val == 14)) {
21324 spuravoid = 1;
21326 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21327 if (val == 54)
21328 spuravoid = 1;
21329 } else {
21330 if (pi->nphy_aband_spurwar_en &&
21331 ((val == 38) || (val == 102)
21332 || (val == 118)))
21333 spuravoid = 1;
21336 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
21337 spuravoid = 1;
21339 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
21340 si_pmu_spuravoid_pllupdate(pi->sh->sih, spuravoid);
21341 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
21343 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
21344 (pi->sh->chip == BCM43225_CHIP_ID)) {
21345 if (spuravoid == 1) {
21346 bcma_write16(pi->d11core,
21347 D11REGOFFS(tsf_clk_frac_l),
21348 0x5341);
21349 bcma_write16(pi->d11core,
21350 D11REGOFFS(tsf_clk_frac_h), 0x8);
21351 } else {
21352 bcma_write16(pi->d11core,
21353 D11REGOFFS(tsf_clk_frac_l),
21354 0x8889);
21355 bcma_write16(pi->d11core,
21356 D11REGOFFS(tsf_clk_frac_h), 0x8);
21360 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
21362 mod_phy_reg(pi, 0x01, (0x1 << 15),
21363 ((spuravoid > 0) ? (0x1 << 15) : 0));
21365 wlc_phy_resetcca_nphy(pi);
21367 pi->phy_isspuravoid = (spuravoid > 0);
21370 if (NREV_LT(pi->pubpi.phy_rev, 7))
21371 write_phy_reg(pi, 0x17e, 0x3830);
21373 wlc_phy_spurwar_nphy(pi);
21376 void wlc_phy_chanspec_set_nphy(struct brcms_phy *pi, u16 chanspec)
21378 int freq;
21379 const struct chan_info_nphy_radio2057 *t0 = NULL;
21380 const struct chan_info_nphy_radio205x *t1 = NULL;
21381 const struct chan_info_nphy_radio2057_rev5 *t2 = NULL;
21382 const struct chan_info_nphy_2055 *t3 = NULL;
21384 if (!wlc_phy_chan2freq_nphy
21385 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
21386 return;
21388 wlc_phy_chanspec_radio_set((struct brcms_phy_pub *) pi, chanspec);
21390 if (CHSPEC_BW(chanspec) != pi->bw)
21391 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
21393 if (CHSPEC_IS40(chanspec)) {
21394 if (CHSPEC_SB_UPPER(chanspec)) {
21395 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
21396 if (NREV_GE(pi->pubpi.phy_rev, 7))
21397 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
21398 } else {
21399 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
21400 if (NREV_GE(pi->pubpi.phy_rev, 7))
21401 and_phy_reg(pi, 0x310,
21402 (~PRIM_SEL_UP20 & 0xffff));
21406 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21407 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21409 if ((pi->pubpi.radiorev <= 4)
21410 || (pi->pubpi.radiorev == 6)) {
21411 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
21412 0x2,
21413 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21414 : 0));
21415 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
21416 0x2,
21417 (CHSPEC_IS5G(chanspec) ? (1 << 1)
21418 : 0));
21421 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
21422 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21423 (pi->pubpi.radiorev == 5) ?
21424 (const struct nphy_sfo_cfg *)&(t2->PHY_BW1a) :
21425 (const struct nphy_sfo_cfg *)&(t0->PHY_BW1a));
21427 } else {
21429 mod_radio_reg(pi,
21430 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
21431 0x4,
21432 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
21433 wlc_phy_chanspec_radio2056_setup(pi, t1);
21435 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21436 (const struct nphy_sfo_cfg *) &(t1->PHY_BW1a));
21439 } else {
21441 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
21442 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
21443 : (0x05 << 4)));
21445 wlc_phy_chanspec_radio2055_setup(pi, t3);
21446 wlc_phy_chanspec_nphy_setup(pi, chanspec,
21447 (const struct nphy_sfo_cfg *)
21448 &(t3->PHY_BW1a));
21453 void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init)
21455 struct brcms_phy *pi = (struct brcms_phy *) ppi;
21456 u16 mask = 0xfc00;
21457 u32 mc = 0;
21459 if (NREV_GE(pi->pubpi.phy_rev, 7))
21460 return;
21462 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21463 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
21465 if (lut_init == false)
21466 return;
21468 if (pi->srom_fem2g.antswctrllut == 0) {
21469 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21470 1, 0x02, 16, &v0);
21471 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21472 1, 0x03, 16, &v1);
21473 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21474 1, 0x08, 16, &v2);
21475 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21476 1, 0x0C, 16, &v3);
21479 if (pi->srom_fem5g.antswctrllut == 0) {
21480 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21481 1, 0x12, 16, &v0);
21482 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21483 1, 0x13, 16, &v1);
21484 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21485 1, 0x18, 16, &v2);
21486 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
21487 1, 0x1C, 16, &v3);
21489 } else {
21491 write_phy_reg(pi, 0xc8, 0x0);
21492 write_phy_reg(pi, 0xc9, 0x0);
21494 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
21496 mc = bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
21497 mc &= ~MCTL_GPOUT_SEL_MASK;
21498 bcma_write32(pi->d11core, D11REGOFFS(maccontrol), mc);
21500 bcma_set16(pi->d11core, D11REGOFFS(psm_gpio_oe), mask);
21502 bcma_mask16(pi->d11core, D11REGOFFS(psm_gpio_out), ~mask);
21504 if (lut_init) {
21505 write_phy_reg(pi, 0xf8, 0x02d8);
21506 write_phy_reg(pi, 0xf9, 0x0301);
21507 write_phy_reg(pi, 0xfa, 0x02d8);
21508 write_phy_reg(pi, 0xfb, 0x0301);
21513 u16 wlc_phy_classifier_nphy(struct brcms_phy *pi, u16 mask, u16 val)
21515 u16 curr_ctl, new_ctl;
21516 bool suspended = false;
21518 if (D11REV_IS(pi->sh->corerev, 16)) {
21519 suspended = (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
21520 MCTL_EN_MAC) ? false : true;
21521 if (!suspended)
21522 wlapi_suspend_mac_and_wait(pi->sh->physhim);
21525 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
21527 new_ctl = (curr_ctl & (~mask)) | (val & mask);
21529 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
21531 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
21532 wlapi_enable_mac(pi->sh->physhim);
21534 return new_ctl;
21537 void wlc_phy_force_rfseq_nphy(struct brcms_phy *pi, u8 cmd)
21539 u16 trigger_mask, status_mask;
21540 u16 orig_RfseqCoreActv;
21542 switch (cmd) {
21543 case NPHY_RFSEQ_RX2TX:
21544 trigger_mask = NPHY_RfseqTrigger_rx2tx;
21545 status_mask = NPHY_RfseqStatus_rx2tx;
21546 break;
21547 case NPHY_RFSEQ_TX2RX:
21548 trigger_mask = NPHY_RfseqTrigger_tx2rx;
21549 status_mask = NPHY_RfseqStatus_tx2rx;
21550 break;
21551 case NPHY_RFSEQ_RESET2RX:
21552 trigger_mask = NPHY_RfseqTrigger_reset2rx;
21553 status_mask = NPHY_RfseqStatus_reset2rx;
21554 break;
21555 case NPHY_RFSEQ_UPDATEGAINH:
21556 trigger_mask = NPHY_RfseqTrigger_updategainh;
21557 status_mask = NPHY_RfseqStatus_updategainh;
21558 break;
21559 case NPHY_RFSEQ_UPDATEGAINL:
21560 trigger_mask = NPHY_RfseqTrigger_updategainl;
21561 status_mask = NPHY_RfseqStatus_updategainl;
21562 break;
21563 case NPHY_RFSEQ_UPDATEGAINU:
21564 trigger_mask = NPHY_RfseqTrigger_updategainu;
21565 status_mask = NPHY_RfseqStatus_updategainu;
21566 break;
21567 default:
21568 return;
21571 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
21572 or_phy_reg(pi, 0xa1,
21573 (NPHY_RfseqMode_CoreActv_override |
21574 NPHY_RfseqMode_Trigger_override));
21575 or_phy_reg(pi, 0xa3, trigger_mask);
21576 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
21577 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
21578 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
21581 static void
21582 wlc_phy_rfctrl_override_1tomany_nphy(struct brcms_phy *pi, u16 cmd, u16 value,
21583 u8 core_mask, u8 off)
21585 u16 rfmxgain = 0, lpfgain = 0;
21586 u16 tgain = 0;
21588 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21590 switch (cmd) {
21591 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
21592 wlc_phy_rfctrl_override_nphy_rev7(
21593 pi, (0x1 << 5),
21594 value, core_mask, off,
21595 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21596 wlc_phy_rfctrl_override_nphy_rev7(
21597 pi, (0x1 << 4), value,
21598 core_mask, off,
21599 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21600 wlc_phy_rfctrl_override_nphy_rev7(
21601 pi, (0x1 << 3), value,
21602 core_mask, off,
21603 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21604 break;
21605 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
21606 wlc_phy_rfctrl_override_nphy_rev7(
21607 pi, (0x1 << 2),
21608 value, core_mask, off,
21609 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21610 wlc_phy_rfctrl_override_nphy_rev7(
21611 pi, (0x1 << 1), value,
21612 core_mask, off,
21613 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21614 wlc_phy_rfctrl_override_nphy_rev7(
21615 pi, (0x1 << 0), value,
21616 core_mask, off,
21617 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21618 wlc_phy_rfctrl_override_nphy_rev7(
21619 pi, (0x1 << 1), value,
21620 core_mask, off,
21621 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21622 wlc_phy_rfctrl_override_nphy_rev7(
21623 pi, (0x1 << 11), 0,
21624 core_mask, off,
21625 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21626 break;
21627 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
21628 wlc_phy_rfctrl_override_nphy_rev7(
21629 pi, (0x1 << 2),
21630 value, core_mask, off,
21631 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21632 wlc_phy_rfctrl_override_nphy_rev7(
21633 pi, (0x1 << 1), value,
21634 core_mask, off,
21635 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21636 wlc_phy_rfctrl_override_nphy_rev7(
21637 pi, (0x1 << 0), value,
21638 core_mask, off,
21639 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21640 wlc_phy_rfctrl_override_nphy_rev7(
21641 pi, (0x1 << 2), value,
21642 core_mask, off,
21643 NPHY_REV7_RFCTRLOVERRIDE_ID2);
21644 wlc_phy_rfctrl_override_nphy_rev7(
21645 pi, (0x1 << 11), 1,
21646 core_mask, off,
21647 NPHY_REV7_RFCTRLOVERRIDE_ID1);
21648 break;
21649 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
21650 rfmxgain = value & 0x000ff;
21651 lpfgain = value & 0x0ff00;
21652 lpfgain = lpfgain >> 8;
21654 wlc_phy_rfctrl_override_nphy_rev7(
21655 pi, (0x1 << 11),
21656 rfmxgain, core_mask,
21657 off,
21658 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21659 wlc_phy_rfctrl_override_nphy_rev7(
21660 pi, (0x3 << 13),
21661 lpfgain, core_mask,
21662 off,
21663 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21664 break;
21665 case NPHY_REV7_RfctrlOverride_cmd_txgain:
21666 tgain = value & 0x7fff;
21667 lpfgain = value & 0x8000;
21668 lpfgain = lpfgain >> 14;
21670 wlc_phy_rfctrl_override_nphy_rev7(
21671 pi, (0x1 << 12),
21672 tgain, core_mask, off,
21673 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21674 wlc_phy_rfctrl_override_nphy_rev7(
21675 pi, (0x1 << 13),
21676 lpfgain, core_mask,
21677 off,
21678 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21679 break;
21684 static void
21685 wlc_phy_scale_offset_rssi_nphy(struct brcms_phy *pi, u16 scale, s8 offset,
21686 u8 coresel, u8 rail, u8 rssi_type)
21688 u16 valuetostuff;
21690 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
21691 NPHY_RSSICAL_MAXREAD : offset;
21692 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
21693 -NPHY_RSSICAL_MAXREAD - 1 : offset;
21695 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
21697 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21698 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21699 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21700 write_phy_reg(pi, 0x1a6, valuetostuff);
21702 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21703 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21704 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21705 write_phy_reg(pi, 0x1ac, valuetostuff);
21707 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21708 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21709 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB))
21710 write_phy_reg(pi, 0x1b2, valuetostuff);
21712 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21713 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21714 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB))
21715 write_phy_reg(pi, 0x1b8, valuetostuff);
21717 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21718 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21719 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21720 write_phy_reg(pi, 0x1a4, valuetostuff);
21722 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21723 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21724 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21725 write_phy_reg(pi, 0x1aa, valuetostuff);
21727 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21728 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21729 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1))
21730 write_phy_reg(pi, 0x1b0, valuetostuff);
21732 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21733 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21734 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1))
21735 write_phy_reg(pi, 0x1b6, valuetostuff);
21737 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21738 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21739 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21740 write_phy_reg(pi, 0x1a5, valuetostuff);
21741 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21742 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21743 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21744 write_phy_reg(pi, 0x1ab, valuetostuff);
21746 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21747 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21748 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2))
21749 write_phy_reg(pi, 0x1b1, valuetostuff);
21751 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21752 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21753 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2))
21754 write_phy_reg(pi, 0x1b7, valuetostuff);
21756 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21757 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21758 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21759 write_phy_reg(pi, 0x1a7, valuetostuff);
21760 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21761 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21762 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21763 write_phy_reg(pi, 0x1ad, valuetostuff);
21764 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21765 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21766 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD))
21767 write_phy_reg(pi, 0x1b3, valuetostuff);
21768 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21769 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21770 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD))
21771 write_phy_reg(pi, 0x1b9, valuetostuff);
21773 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21774 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21775 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21776 write_phy_reg(pi, 0x1a8, valuetostuff);
21778 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21779 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21780 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21781 write_phy_reg(pi, 0x1ae, valuetostuff);
21783 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21784 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21785 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ))
21786 write_phy_reg(pi, 0x1b4, valuetostuff);
21788 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21789 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21790 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ))
21791 write_phy_reg(pi, 0x1ba, valuetostuff);
21793 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21794 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21795 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21796 write_phy_reg(pi, 0x1a9, valuetostuff);
21797 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21798 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21799 (rssi_type == NPHY_RSSI_SEL_TSSI_2G))
21800 write_phy_reg(pi, 0x1b5, valuetostuff);
21802 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
21803 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21804 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21805 write_phy_reg(pi, 0x1af, valuetostuff);
21807 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
21808 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
21809 (rssi_type == NPHY_RSSI_SEL_TSSI_5G))
21810 write_phy_reg(pi, 0x1bb, valuetostuff);
21813 static void brcms_phy_wr_tx_mux(struct brcms_phy *pi, u8 core)
21815 if (PHY_IPA(pi)) {
21816 if (NREV_GE(pi->pubpi.phy_rev, 7))
21817 write_radio_reg(pi,
21818 ((core == PHY_CORE_0) ?
21819 RADIO_2057_TX0_TX_SSI_MUX :
21820 RADIO_2057_TX1_TX_SSI_MUX),
21821 (CHSPEC_IS5G(pi->radio_chanspec) ?
21822 0xc : 0xe));
21823 else
21824 write_radio_reg(pi,
21825 RADIO_2056_TX_TX_SSI_MUX |
21826 ((core == PHY_CORE_0) ?
21827 RADIO_2056_TX0 : RADIO_2056_TX1),
21828 (CHSPEC_IS5G(pi->radio_chanspec) ?
21829 0xc : 0xe));
21830 } else {
21831 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21832 write_radio_reg(pi,
21833 ((core == PHY_CORE_0) ?
21834 RADIO_2057_TX0_TX_SSI_MUX :
21835 RADIO_2057_TX1_TX_SSI_MUX),
21836 0x11);
21838 if (pi->pubpi.radioid == BCM2057_ID)
21839 write_radio_reg(pi,
21840 RADIO_2057_IQTEST_SEL_PU, 0x1);
21842 } else {
21843 write_radio_reg(pi,
21844 RADIO_2056_TX_TX_SSI_MUX |
21845 ((core == PHY_CORE_0) ?
21846 RADIO_2056_TX0 : RADIO_2056_TX1),
21847 0x11);
21852 void wlc_phy_rssisel_nphy(struct brcms_phy *pi, u8 core_code, u8 rssi_type)
21854 u16 mask, val;
21855 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
21856 startseq;
21857 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
21858 rfctrlovr_trigger_val;
21859 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
21860 u16 rfctrlcmd_val, rfctrlovr_val;
21861 u8 core;
21863 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21864 if (core_code == RADIO_MIMO_CORESEL_OFF) {
21865 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
21866 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
21868 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
21869 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
21871 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
21872 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
21874 mask = (0x1 << 2) |
21875 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
21876 mod_phy_reg(pi, 0xf9, mask, 0);
21877 mod_phy_reg(pi, 0xfb, mask, 0);
21879 } else {
21880 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21881 if (core_code == RADIO_MIMO_CORESEL_CORE1
21882 && core == PHY_CORE_1)
21883 continue;
21884 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21885 && core == PHY_CORE_0)
21886 continue;
21888 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21889 0x8f : 0xa5, (0x1 << 9), 1 << 9);
21891 if (rssi_type == NPHY_RSSI_SEL_W1 ||
21892 rssi_type == NPHY_RSSI_SEL_W2 ||
21893 rssi_type == NPHY_RSSI_SEL_NB) {
21894 mod_phy_reg(pi,
21895 (core ==
21896 PHY_CORE_0) ? 0xa6 : 0xa7,
21897 (0x3 << 8), 0);
21899 mask = (0x1 << 2) |
21900 (0x1 << 3) |
21901 (0x1 << 4) | (0x1 << 5);
21902 mod_phy_reg(pi,
21903 (core ==
21904 PHY_CORE_0) ? 0xf9 : 0xfb,
21905 mask, 0);
21907 if (rssi_type == NPHY_RSSI_SEL_W1) {
21908 if (CHSPEC_IS5G(
21909 pi->radio_chanspec)) {
21910 mask = (0x1 << 2);
21911 val = 1 << 2;
21912 } else {
21913 mask = (0x1 << 3);
21914 val = 1 << 3;
21916 } else if (rssi_type ==
21917 NPHY_RSSI_SEL_W2) {
21918 mask = (0x1 << 4);
21919 val = 1 << 4;
21920 } else {
21921 mask = (0x1 << 5);
21922 val = 1 << 5;
21924 mod_phy_reg(pi,
21925 (core ==
21926 PHY_CORE_0) ? 0xf9 : 0xfb,
21927 mask, val);
21929 mask = (0x1 << 5);
21930 val = 1 << 5;
21931 mod_phy_reg(pi, (core == PHY_CORE_0) ?
21932 0xe5 : 0xe6, mask, val);
21933 } else {
21934 if (rssi_type == NPHY_RSSI_SEL_TBD) {
21935 mask = (0x3 << 8);
21936 val = 1 << 8;
21937 mod_phy_reg(pi,
21938 (core ==
21939 PHY_CORE_0) ? 0xa6
21940 : 0xa7, mask, val);
21941 mask = (0x3 << 10);
21942 val = 1 << 10;
21943 mod_phy_reg(pi,
21944 (core ==
21945 PHY_CORE_0) ? 0xa6
21946 : 0xa7, mask, val);
21947 } else if (rssi_type ==
21948 NPHY_RSSI_SEL_IQ) {
21949 mask = (0x3 << 8);
21950 val = 2 << 8;
21951 mod_phy_reg(pi,
21952 (core ==
21953 PHY_CORE_0) ? 0xa6
21954 : 0xa7, mask, val);
21955 mask = (0x3 << 10);
21956 val = 2 << 10;
21957 mod_phy_reg(pi,
21958 (core ==
21959 PHY_CORE_0) ? 0xa6
21960 : 0xa7, mask, val);
21961 } else {
21962 mask = (0x3 << 8);
21963 val = 3 << 8;
21964 mod_phy_reg(pi,
21965 (core ==
21966 PHY_CORE_0) ? 0xa6
21967 : 0xa7, mask, val);
21968 mask = (0x3 << 10);
21969 val = 3 << 10;
21970 mod_phy_reg(pi,
21971 (core ==
21972 PHY_CORE_0) ? 0xa6
21973 : 0xa7, mask, val);
21974 brcms_phy_wr_tx_mux(pi, core);
21975 afectrlovr_rssi_val = 1 << 9;
21976 mod_phy_reg(pi,
21977 (core ==
21978 PHY_CORE_0) ? 0x8f
21979 : 0xa5, (0x1 << 9),
21980 afectrlovr_rssi_val);
21985 } else {
21987 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
21988 (rssi_type == NPHY_RSSI_SEL_W2) ||
21989 (rssi_type == NPHY_RSSI_SEL_NB))
21990 val = 0x0;
21991 else if (rssi_type == NPHY_RSSI_SEL_TBD)
21992 val = 0x1;
21993 else if (rssi_type == NPHY_RSSI_SEL_IQ)
21994 val = 0x2;
21995 else
21996 val = 0x3;
21998 mask = ((0x3 << 12) | (0x3 << 14));
21999 val = (val << 12) | (val << 14);
22000 mod_phy_reg(pi, 0xa6, mask, val);
22001 mod_phy_reg(pi, 0xa7, mask, val);
22003 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22004 (rssi_type == NPHY_RSSI_SEL_W2) ||
22005 (rssi_type == NPHY_RSSI_SEL_NB)) {
22006 if (rssi_type == NPHY_RSSI_SEL_W1)
22007 val = 0x1;
22008 if (rssi_type == NPHY_RSSI_SEL_W2)
22009 val = 0x2;
22010 if (rssi_type == NPHY_RSSI_SEL_NB)
22011 val = 0x3;
22013 mask = (0x3 << 4);
22014 val = (val << 4);
22015 mod_phy_reg(pi, 0x7a, mask, val);
22016 mod_phy_reg(pi, 0x7d, mask, val);
22019 if (core_code == RADIO_MIMO_CORESEL_OFF) {
22020 afectrlovr_rssi_val = 0;
22021 rfctrlcmd_rxen_val = 0;
22022 rfctrlcmd_coresel_val = 0;
22023 rfctrlovr_rssi_val = 0;
22024 rfctrlovr_rxen_val = 0;
22025 rfctrlovr_coresel_val = 0;
22026 rfctrlovr_trigger_val = 0;
22027 startseq = 0;
22028 } else {
22029 afectrlovr_rssi_val = 1;
22030 rfctrlcmd_rxen_val = 1;
22031 rfctrlcmd_coresel_val = core_code;
22032 rfctrlovr_rssi_val = 1;
22033 rfctrlovr_rxen_val = 1;
22034 rfctrlovr_coresel_val = 1;
22035 rfctrlovr_trigger_val = 1;
22036 startseq = 1;
22039 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
22040 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
22041 12) | (afectrlovr_rssi_val << 13);
22042 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
22043 afectrlovr_rssi_val);
22045 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
22046 (rssi_type == NPHY_RSSI_SEL_W2) ||
22047 (rssi_type == NPHY_RSSI_SEL_NB)) {
22048 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
22049 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
22050 (rfctrlcmd_coresel_val << 3);
22052 rfctrlovr_mask = ((0x1 << 5) |
22053 (0x1 << 12) |
22054 (0x1 << 1) | (0x1 << 0));
22055 rfctrlovr_val = (rfctrlovr_rssi_val <<
22056 5) |
22057 (rfctrlovr_rxen_val << 12) |
22058 (rfctrlovr_coresel_val << 1) |
22059 (rfctrlovr_trigger_val << 0);
22061 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
22062 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
22064 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
22065 udelay(20);
22067 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22073 wlc_phy_poll_rssi_nphy(struct brcms_phy *pi, u8 rssi_type, s32 *rssi_buf,
22074 u8 nsamps)
22076 s16 rssi0, rssi1;
22077 u16 afectrlCore1_save = 0;
22078 u16 afectrlCore2_save = 0;
22079 u16 afectrlOverride1_save = 0;
22080 u16 afectrlOverride2_save = 0;
22081 u16 rfctrlOverrideAux0_save = 0;
22082 u16 rfctrlOverrideAux1_save = 0;
22083 u16 rfctrlMiscReg1_save = 0;
22084 u16 rfctrlMiscReg2_save = 0;
22085 u16 rfctrlcmd_save = 0;
22086 u16 rfctrloverride_save = 0;
22087 u16 rfctrlrssiothers1_save = 0;
22088 u16 rfctrlrssiothers2_save = 0;
22089 s8 tmp_buf[4];
22090 u8 ctr = 0, samp = 0;
22091 s32 rssi_out_val;
22092 u16 gpiosel_orig;
22094 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22095 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22096 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22097 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22098 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22099 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
22100 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22101 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22102 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22103 } else {
22104 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
22105 rfctrlcmd_save = read_phy_reg(pi, 0x78);
22106 rfctrloverride_save = read_phy_reg(pi, 0xec);
22107 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
22108 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
22111 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
22113 gpiosel_orig = read_phy_reg(pi, 0xca);
22114 if (NREV_LT(pi->pubpi.phy_rev, 2))
22115 write_phy_reg(pi, 0xca, 5);
22117 for (ctr = 0; ctr < 4; ctr++)
22118 rssi_buf[ctr] = 0;
22120 for (samp = 0; samp < nsamps; samp++) {
22121 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
22122 rssi0 = read_phy_reg(pi, 0x1c9);
22123 rssi1 = read_phy_reg(pi, 0x1ca);
22124 } else {
22125 rssi0 = read_phy_reg(pi, 0x219);
22126 rssi1 = read_phy_reg(pi, 0x21a);
22129 ctr = 0;
22130 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
22131 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
22132 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
22133 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
22135 for (ctr = 0; ctr < 4; ctr++)
22136 rssi_buf[ctr] += tmp_buf[ctr];
22140 rssi_out_val = rssi_buf[3] & 0xff;
22141 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
22142 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
22143 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
22145 if (NREV_LT(pi->pubpi.phy_rev, 2))
22146 write_phy_reg(pi, 0xca, gpiosel_orig);
22148 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22149 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22150 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22151 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
22152 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
22153 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
22154 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22155 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
22156 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
22157 } else {
22158 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
22159 write_phy_reg(pi, 0x78, rfctrlcmd_save);
22160 write_phy_reg(pi, 0xec, rfctrloverride_save);
22161 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
22162 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
22165 return rssi_out_val;
22168 s16 wlc_phy_tempsense_nphy(struct brcms_phy *pi)
22170 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
22171 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
22172 u16 pwrdet_rxtx_core1_save;
22173 u16 pwrdet_rxtx_core2_save;
22174 u16 afectrlCore1_save;
22175 u16 afectrlCore2_save;
22176 u16 afectrlOverride_save;
22177 u16 afectrlOverride2_save;
22178 u16 pd_pll_ts_save;
22179 u16 gpioSel_save;
22180 s32 radio_temp[4];
22181 s32 radio_temp2[4];
22182 u16 syn_tempprocsense_save;
22183 s16 offset = 0;
22185 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22186 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
22187 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
22188 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
22189 s32 auxADC_Vl;
22190 u16 RfctrlOverride5_save, RfctrlOverride6_save;
22191 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
22192 u16 RSSIMultCoef0QPowerDet_save;
22193 u16 tempsense_Rcal;
22195 syn_tempprocsense_save =
22196 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
22198 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22199 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22200 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22201 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22202 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
22203 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22204 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22205 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22206 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22208 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22209 &auxADC_Vmid_save);
22210 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22211 &auxADC_Av_save);
22212 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22213 &auxADC_rssi_ctrlL_save);
22214 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22215 &auxADC_rssi_ctrlH_save);
22217 write_phy_reg(pi, 0x1ae, 0x0);
22219 auxADC_rssi_ctrlL = 0x0;
22220 auxADC_rssi_ctrlH = 0x20;
22221 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22222 &auxADC_rssi_ctrlL);
22223 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22224 &auxADC_rssi_ctrlH);
22226 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
22228 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22229 tempsense_Rcal | 0x01);
22231 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
22232 1, 0, 0,
22233 NPHY_REV7_RFCTRLOVERRIDE_ID2);
22234 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
22235 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
22236 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
22237 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
22239 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
22240 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
22241 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
22242 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
22243 udelay(5);
22244 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
22245 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
22246 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
22247 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
22248 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
22249 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
22250 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
22251 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
22252 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
22253 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
22255 auxADC_Vmid = 0xA3;
22256 auxADC_Av = 0x0;
22257 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22258 &auxADC_Vmid);
22259 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22260 &auxADC_Av);
22262 udelay(3);
22264 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22265 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22266 tempsense_Rcal | 0x03);
22268 udelay(5);
22269 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22271 auxADC_Av = 0x7;
22272 if (radio_temp[1] + radio_temp2[1] < -30) {
22273 auxADC_Vmid = 0x45;
22274 auxADC_Vl = 263;
22275 } else if (radio_temp[1] + radio_temp2[1] < -9) {
22276 auxADC_Vmid = 0x200;
22277 auxADC_Vl = 467;
22278 } else if (radio_temp[1] + radio_temp2[1] < 11) {
22279 auxADC_Vmid = 0x266;
22280 auxADC_Vl = 634;
22281 } else {
22282 auxADC_Vmid = 0x2D5;
22283 auxADC_Vl = 816;
22286 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22287 &auxADC_Vmid);
22288 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22289 &auxADC_Av);
22291 udelay(3);
22293 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22294 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22295 tempsense_Rcal | 0x01);
22297 udelay(5);
22298 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22300 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
22301 syn_tempprocsense_save);
22303 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22304 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22305 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22306 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22307 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
22308 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
22309 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
22310 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
22311 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
22313 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
22314 &auxADC_Vmid_save);
22315 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
22316 &auxADC_Av_save);
22317 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
22318 &auxADC_rssi_ctrlL_save);
22319 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
22320 &auxADC_rssi_ctrlH_save);
22322 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
22323 + 82 * (auxADC_Vl) - 28861 +
22324 128) / 256;
22326 offset = (s16) pi->phy_tempsense_offset;
22328 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22329 syn_tempprocsense_save =
22330 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
22332 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22333 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22334 afectrlOverride_save = read_phy_reg(pi, 0x8f);
22335 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
22336 gpioSel_save = read_phy_reg(pi, 0xca);
22338 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22340 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22341 if (NREV_LT(pi->pubpi.phy_rev, 7))
22342 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
22344 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22345 if (NREV_GE(pi->pubpi.phy_rev, 7))
22346 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
22347 else
22348 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
22350 radio_temp[0] =
22351 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
22353 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
22354 syn_tempprocsense_save);
22356 write_phy_reg(pi, 0xca, gpioSel_save);
22357 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22358 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22359 write_phy_reg(pi, 0x8f, afectrlOverride_save);
22360 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
22362 offset = (s16) pi->phy_tempsense_offset;
22363 } else {
22365 pwrdet_rxtx_core1_save =
22366 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
22367 pwrdet_rxtx_core2_save =
22368 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
22369 core1_txrf_iqcal1_save =
22370 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
22371 core1_txrf_iqcal2_save =
22372 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
22373 core2_txrf_iqcal1_save =
22374 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
22375 core2_txrf_iqcal2_save =
22376 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
22377 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
22379 afectrlCore1_save = read_phy_reg(pi, 0xa6);
22380 afectrlCore2_save = read_phy_reg(pi, 0xa7);
22381 afectrlOverride_save = read_phy_reg(pi, 0xa5);
22382 gpioSel_save = read_phy_reg(pi, 0xca);
22384 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
22385 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
22386 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
22387 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
22388 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
22389 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
22390 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
22392 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22393 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22395 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
22396 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22398 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
22399 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
22401 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
22402 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
22403 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
22404 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
22406 radio_temp[0] =
22407 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
22408 radio_temp[3]);
22410 radio_temp[0] =
22411 (radio_temp[0] +
22412 (8 * 32)) * (950 - 350) / 63 + (350 * 8);
22414 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
22416 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
22417 pwrdet_rxtx_core1_save);
22418 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
22419 pwrdet_rxtx_core2_save);
22420 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
22421 core1_txrf_iqcal1_save);
22422 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
22423 core2_txrf_iqcal1_save);
22424 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
22425 core1_txrf_iqcal2_save);
22426 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
22427 core2_txrf_iqcal2_save);
22428 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
22430 write_phy_reg(pi, 0xca, gpioSel_save);
22431 write_phy_reg(pi, 0xa6, afectrlCore1_save);
22432 write_phy_reg(pi, 0xa7, afectrlCore2_save);
22433 write_phy_reg(pi, 0xa5, afectrlOverride_save);
22436 return (s16) radio_temp[0] + offset;
22439 static void
22440 wlc_phy_set_rssi_2055_vcm(struct brcms_phy *pi, u8 rssi_type, u8 *vcm_buf)
22442 u8 core;
22444 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22445 if (rssi_type == NPHY_RSSI_SEL_NB) {
22446 if (core == PHY_CORE_0) {
22447 mod_radio_reg(pi,
22448 RADIO_2055_CORE1_B0_NBRSSI_VCM,
22449 RADIO_2055_NBRSSI_VCM_I_MASK,
22450 vcm_buf[2 *
22451 core] <<
22452 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22453 mod_radio_reg(pi,
22454 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22455 RADIO_2055_NBRSSI_VCM_Q_MASK,
22456 vcm_buf[2 * core +
22457 1] <<
22458 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22459 } else {
22460 mod_radio_reg(pi,
22461 RADIO_2055_CORE2_B0_NBRSSI_VCM,
22462 RADIO_2055_NBRSSI_VCM_I_MASK,
22463 vcm_buf[2 *
22464 core] <<
22465 RADIO_2055_NBRSSI_VCM_I_SHIFT);
22466 mod_radio_reg(pi,
22467 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22468 RADIO_2055_NBRSSI_VCM_Q_MASK,
22469 vcm_buf[2 * core +
22470 1] <<
22471 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
22473 } else {
22474 if (core == PHY_CORE_0)
22475 mod_radio_reg(pi,
22476 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
22477 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22478 vcm_buf[2 *
22479 core] <<
22480 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22481 else
22482 mod_radio_reg(pi,
22483 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
22484 RADIO_2055_WBRSSI_VCM_IQ_MASK,
22485 vcm_buf[2 *
22486 core] <<
22487 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
22492 static void wlc_phy_rssi_cal_nphy_rev3(struct brcms_phy *pi)
22494 u16 classif_state;
22495 u16 clip_state[2];
22496 u16 clip_off[] = { 0xffff, 0xffff };
22497 s32 target_code;
22498 u8 vcm, min_vcm;
22499 u8 vcm_final = 0;
22500 u8 result_idx;
22501 s32 poll_results[8][4] = {
22502 {0, 0, 0, 0},
22503 {0, 0, 0, 0},
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}
22511 s32 poll_result_core[4] = { 0, 0, 0, 0 };
22512 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
22513 s32 fine_digital_offset[4];
22514 s32 poll_results_min[4] = { 0, 0, 0, 0 };
22515 s32 min_poll;
22516 u8 vcm_level_max;
22517 u8 core;
22518 u8 wb_cnt;
22519 u8 rssi_type;
22520 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
22521 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
22522 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
22523 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
22524 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
22525 u16 NPHY_RfctrlCmd_save;
22526 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
22527 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
22528 u8 rxcore_state;
22529 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
22530 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
22531 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
22532 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
22534 NPHY_REV7_RfctrlOverride3_save =
22535 NPHY_REV7_RfctrlOverride4_save =
22536 NPHY_REV7_RfctrlOverride5_save =
22537 NPHY_REV7_RfctrlOverride6_save =
22538 NPHY_REV7_RfctrlMiscReg3_save =
22539 NPHY_REV7_RfctrlMiscReg4_save =
22540 NPHY_REV7_RfctrlMiscReg5_save =
22541 NPHY_REV7_RfctrlMiscReg6_save = 0;
22543 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
22544 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
22545 wlc_phy_clip_det_nphy(pi, 0, clip_state);
22546 wlc_phy_clip_det_nphy(pi, 1, clip_off);
22548 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
22549 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
22550 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
22551 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
22552 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
22553 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
22554 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
22555 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
22556 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22557 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
22558 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
22559 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
22560 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
22562 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
22563 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
22564 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
22565 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
22566 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
22567 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22568 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
22569 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
22570 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
22571 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
22573 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
22574 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
22576 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
22577 RADIO_MIMO_CORESEL_ALLRXTX);
22578 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
22579 RADIO_MIMO_CORESEL_ALLRXTX);
22581 if (NREV_GE(pi->pubpi.phy_rev, 7))
22582 wlc_phy_rfctrl_override_1tomany_nphy(
22584 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
22585 0, 0, 0);
22586 else
22587 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
22589 if (NREV_GE(pi->pubpi.phy_rev, 7))
22590 wlc_phy_rfctrl_override_1tomany_nphy(
22592 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
22593 1, 0, 0);
22594 else
22595 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
22597 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22598 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
22599 1, 0, 0,
22600 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22601 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
22602 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22603 } else {
22604 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
22605 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
22608 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22609 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22610 wlc_phy_rfctrl_override_nphy_rev7(
22611 pi, (0x1 << 5),
22612 0, 0, 0,
22613 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22614 wlc_phy_rfctrl_override_nphy_rev7(
22615 pi, (0x1 << 4), 1, 0,
22617 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22618 } else {
22619 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
22620 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
22623 } else {
22624 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22625 wlc_phy_rfctrl_override_nphy_rev7(
22626 pi, (0x1 << 4),
22627 0, 0, 0,
22628 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22629 wlc_phy_rfctrl_override_nphy_rev7(
22630 pi, (0x1 << 5), 1, 0,
22632 NPHY_REV7_RFCTRLOVERRIDE_ID0);
22633 } else {
22634 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
22635 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
22639 rxcore_state = wlc_phy_rxcore_getstate_nphy(
22640 (struct brcms_phy_pub *) pi);
22642 vcm_level_max = 8;
22644 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22646 if ((rxcore_state & (1 << core)) == 0)
22647 continue;
22649 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22650 core ==
22651 PHY_CORE_0 ?
22652 RADIO_MIMO_CORESEL_CORE1 :
22653 RADIO_MIMO_CORESEL_CORE2,
22654 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
22655 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22656 core ==
22657 PHY_CORE_0 ?
22658 RADIO_MIMO_CORESEL_CORE1 :
22659 RADIO_MIMO_CORESEL_CORE2,
22660 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
22662 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22663 if (NREV_GE(pi->pubpi.phy_rev, 7))
22664 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22665 RADIO_2057_NB_MASTER_CORE0 :
22666 RADIO_2057_NB_MASTER_CORE1,
22667 RADIO_2057_VCM_MASK, vcm);
22668 else
22669 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22670 ((core ==
22671 PHY_CORE_0) ? RADIO_2056_RX0 :
22672 RADIO_2056_RX1),
22673 RADIO_2056_VCM_MASK,
22674 vcm << RADIO_2056_RSSI_VCM_SHIFT);
22676 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
22677 &poll_results[vcm][0],
22678 NPHY_RSSICAL_NPOLL);
22681 for (result_idx = 0; result_idx < 4; result_idx++) {
22682 if ((core == result_idx / 2) &&
22683 (result_idx % 2 == 0)) {
22685 min_d = NPHY_RSSICAL_MAXD;
22686 min_vcm = 0;
22687 min_poll =
22688 NPHY_RSSICAL_MAXREAD *
22689 NPHY_RSSICAL_NPOLL + 1;
22690 for (vcm = 0; vcm < vcm_level_max; vcm++) {
22691 curr_d =
22692 poll_results[vcm][result_idx] *
22693 poll_results[vcm][result_idx] +
22694 poll_results[vcm][result_idx +
22695 1] *
22696 poll_results[vcm][result_idx +
22698 if (curr_d < min_d) {
22699 min_d = curr_d;
22700 min_vcm = vcm;
22702 if (poll_results[vcm][result_idx] <
22703 min_poll)
22704 min_poll =
22705 poll_results[vcm]
22706 [result_idx];
22708 vcm_final = min_vcm;
22709 poll_results_min[result_idx] = min_poll;
22713 if (NREV_GE(pi->pubpi.phy_rev, 7))
22714 mod_radio_reg(pi, (core == PHY_CORE_0) ?
22715 RADIO_2057_NB_MASTER_CORE0 :
22716 RADIO_2057_NB_MASTER_CORE1,
22717 RADIO_2057_VCM_MASK, vcm_final);
22718 else
22719 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
22720 ((core ==
22721 PHY_CORE_0) ? RADIO_2056_RX0 :
22722 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
22723 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
22725 for (result_idx = 0; result_idx < 4; result_idx++) {
22726 if (core == result_idx / 2) {
22727 fine_digital_offset[result_idx] =
22728 (NPHY_RSSICAL_NB_TARGET *
22729 NPHY_RSSICAL_NPOLL) -
22730 poll_results[vcm_final][result_idx];
22731 if (fine_digital_offset[result_idx] < 0) {
22732 fine_digital_offset[result_idx] =
22733 abs(fine_digital_offset
22734 [result_idx]);
22735 fine_digital_offset[result_idx] +=
22736 (NPHY_RSSICAL_NPOLL / 2);
22737 fine_digital_offset[result_idx] /=
22738 NPHY_RSSICAL_NPOLL;
22739 fine_digital_offset[result_idx] =
22740 -fine_digital_offset[
22741 result_idx];
22742 } else {
22743 fine_digital_offset[result_idx] +=
22744 (NPHY_RSSICAL_NPOLL / 2);
22745 fine_digital_offset[result_idx] /=
22746 NPHY_RSSICAL_NPOLL;
22749 if (poll_results_min[result_idx] ==
22750 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
22751 fine_digital_offset[result_idx] =
22752 (NPHY_RSSICAL_NB_TARGET -
22753 NPHY_RSSICAL_MAXREAD - 1);
22755 wlc_phy_scale_offset_rssi_nphy(
22756 pi, 0x0,
22757 (s8)
22758 fine_digital_offset
22759 [result_idx],
22760 (result_idx / 2 == 0) ?
22761 RADIO_MIMO_CORESEL_CORE1 :
22762 RADIO_MIMO_CORESEL_CORE2,
22763 (result_idx % 2 == 0) ?
22764 NPHY_RAIL_I : NPHY_RAIL_Q,
22765 NPHY_RSSI_SEL_NB);
22771 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22773 if ((rxcore_state & (1 << core)) == 0)
22774 continue;
22776 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22777 if (wb_cnt == 0) {
22778 rssi_type = NPHY_RSSI_SEL_W1;
22779 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22780 } else {
22781 rssi_type = NPHY_RSSI_SEL_W2;
22782 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22785 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22786 core ==
22787 PHY_CORE_0 ?
22788 RADIO_MIMO_CORESEL_CORE1
22790 RADIO_MIMO_CORESEL_CORE2,
22791 NPHY_RAIL_I, rssi_type);
22792 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22793 core ==
22794 PHY_CORE_0 ?
22795 RADIO_MIMO_CORESEL_CORE1
22797 RADIO_MIMO_CORESEL_CORE2,
22798 NPHY_RAIL_Q, rssi_type);
22800 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22801 NPHY_RSSICAL_NPOLL);
22803 for (result_idx = 0; result_idx < 4; result_idx++) {
22804 if (core == result_idx / 2) {
22805 fine_digital_offset[result_idx] =
22806 (target_code *
22807 NPHY_RSSICAL_NPOLL) -
22808 poll_result_core[result_idx];
22809 if (fine_digital_offset[result_idx] <
22810 0) {
22811 fine_digital_offset[result_idx]
22812 = abs(
22813 fine_digital_offset
22814 [result_idx]);
22815 fine_digital_offset[result_idx]
22816 += (NPHY_RSSICAL_NPOLL
22817 / 2);
22818 fine_digital_offset[result_idx]
22819 /= NPHY_RSSICAL_NPOLL;
22820 fine_digital_offset[result_idx]
22821 = -fine_digital_offset
22822 [result_idx];
22823 } else {
22824 fine_digital_offset[result_idx]
22825 += (NPHY_RSSICAL_NPOLL
22826 / 2);
22827 fine_digital_offset[result_idx]
22828 /= NPHY_RSSICAL_NPOLL;
22831 wlc_phy_scale_offset_rssi_nphy(
22832 pi, 0x0,
22833 (s8)
22834 fine_digital_offset
22835 [core *
22837 (core == PHY_CORE_0) ?
22838 RADIO_MIMO_CORESEL_CORE1 :
22839 RADIO_MIMO_CORESEL_CORE2,
22840 (result_idx % 2 == 0) ?
22841 NPHY_RAIL_I :
22842 NPHY_RAIL_Q,
22843 rssi_type);
22850 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22851 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22853 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22855 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22856 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22857 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22859 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22860 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22861 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22863 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22864 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22865 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22866 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22867 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22868 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22869 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22870 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22871 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22872 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22873 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22875 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22876 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22877 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22878 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22879 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22880 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22881 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22882 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22883 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22884 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22886 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22887 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22889 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22890 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22891 pi->rssical_cache.rssical_radio_regs_2G[0] =
22892 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22893 pi->rssical_cache.rssical_radio_regs_2G[1] =
22894 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22895 } else {
22896 pi->rssical_cache.rssical_radio_regs_2G[0] =
22897 read_radio_reg(pi,
22898 RADIO_2056_RX_RSSI_MISC |
22899 RADIO_2056_RX0);
22900 pi->rssical_cache.rssical_radio_regs_2G[1] =
22901 read_radio_reg(pi,
22902 RADIO_2056_RX_RSSI_MISC |
22903 RADIO_2056_RX1);
22906 pi->rssical_cache.rssical_phyregs_2G[0] =
22907 read_phy_reg(pi, 0x1a6);
22908 pi->rssical_cache.rssical_phyregs_2G[1] =
22909 read_phy_reg(pi, 0x1ac);
22910 pi->rssical_cache.rssical_phyregs_2G[2] =
22911 read_phy_reg(pi, 0x1b2);
22912 pi->rssical_cache.rssical_phyregs_2G[3] =
22913 read_phy_reg(pi, 0x1b8);
22914 pi->rssical_cache.rssical_phyregs_2G[4] =
22915 read_phy_reg(pi, 0x1a4);
22916 pi->rssical_cache.rssical_phyregs_2G[5] =
22917 read_phy_reg(pi, 0x1aa);
22918 pi->rssical_cache.rssical_phyregs_2G[6] =
22919 read_phy_reg(pi, 0x1b0);
22920 pi->rssical_cache.rssical_phyregs_2G[7] =
22921 read_phy_reg(pi, 0x1b6);
22922 pi->rssical_cache.rssical_phyregs_2G[8] =
22923 read_phy_reg(pi, 0x1a5);
22924 pi->rssical_cache.rssical_phyregs_2G[9] =
22925 read_phy_reg(pi, 0x1ab);
22926 pi->rssical_cache.rssical_phyregs_2G[10] =
22927 read_phy_reg(pi, 0x1b1);
22928 pi->rssical_cache.rssical_phyregs_2G[11] =
22929 read_phy_reg(pi, 0x1b7);
22931 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22932 } else {
22933 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22934 pi->rssical_cache.rssical_radio_regs_5G[0] =
22935 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22936 pi->rssical_cache.rssical_radio_regs_5G[1] =
22937 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22938 } else {
22939 pi->rssical_cache.rssical_radio_regs_5G[0] =
22940 read_radio_reg(pi,
22941 RADIO_2056_RX_RSSI_MISC |
22942 RADIO_2056_RX0);
22943 pi->rssical_cache.rssical_radio_regs_5G[1] =
22944 read_radio_reg(pi,
22945 RADIO_2056_RX_RSSI_MISC |
22946 RADIO_2056_RX1);
22949 pi->rssical_cache.rssical_phyregs_5G[0] =
22950 read_phy_reg(pi, 0x1a6);
22951 pi->rssical_cache.rssical_phyregs_5G[1] =
22952 read_phy_reg(pi, 0x1ac);
22953 pi->rssical_cache.rssical_phyregs_5G[2] =
22954 read_phy_reg(pi, 0x1b2);
22955 pi->rssical_cache.rssical_phyregs_5G[3] =
22956 read_phy_reg(pi, 0x1b8);
22957 pi->rssical_cache.rssical_phyregs_5G[4] =
22958 read_phy_reg(pi, 0x1a4);
22959 pi->rssical_cache.rssical_phyregs_5G[5] =
22960 read_phy_reg(pi, 0x1aa);
22961 pi->rssical_cache.rssical_phyregs_5G[6] =
22962 read_phy_reg(pi, 0x1b0);
22963 pi->rssical_cache.rssical_phyregs_5G[7] =
22964 read_phy_reg(pi, 0x1b6);
22965 pi->rssical_cache.rssical_phyregs_5G[8] =
22966 read_phy_reg(pi, 0x1a5);
22967 pi->rssical_cache.rssical_phyregs_5G[9] =
22968 read_phy_reg(pi, 0x1ab);
22969 pi->rssical_cache.rssical_phyregs_5G[10] =
22970 read_phy_reg(pi, 0x1b1);
22971 pi->rssical_cache.rssical_phyregs_5G[11] =
22972 read_phy_reg(pi, 0x1b7);
22974 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22977 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22978 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22981 static void wlc_phy_rssi_cal_nphy_rev2(struct brcms_phy *pi, u8 rssi_type)
22983 s32 target_code;
22984 u16 classif_state;
22985 u16 clip_state[2];
22986 u16 rssi_ctrl_state[2], pd_state[2];
22987 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
22988 u16 rfctrlintc_override_val;
22989 u16 clip_off[] = { 0xffff, 0xffff };
22990 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
22991 u8 vcm, min_vcm, vcm_tmp[4];
22992 u8 vcm_final[4] = { 0, 0, 0, 0 };
22993 u8 result_idx, ctr;
22994 s32 poll_results[4][4] = {
22995 {0, 0, 0, 0},
22996 {0, 0, 0, 0},
22997 {0, 0, 0, 0},
22998 {0, 0, 0, 0}
23000 s32 poll_miniq[4][2] = {
23001 {0, 0},
23002 {0, 0},
23003 {0, 0},
23004 {0, 0}
23006 s32 min_d, curr_d;
23007 s32 fine_digital_offset[4];
23008 s32 poll_results_min[4] = { 0, 0, 0, 0 };
23009 s32 min_poll;
23011 switch (rssi_type) {
23012 case NPHY_RSSI_SEL_NB:
23013 target_code = NPHY_RSSICAL_NB_TARGET;
23014 break;
23015 case NPHY_RSSI_SEL_W1:
23016 target_code = NPHY_RSSICAL_W1_TARGET;
23017 break;
23018 case NPHY_RSSI_SEL_W2:
23019 target_code = NPHY_RSSICAL_W2_TARGET;
23020 break;
23021 default:
23022 return;
23023 break;
23026 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
23027 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
23028 wlc_phy_clip_det_nphy(pi, 0, clip_state);
23029 wlc_phy_clip_det_nphy(pi, 1, clip_off);
23031 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
23032 rfctrlintc_override_val =
23033 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
23035 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
23036 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
23037 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
23038 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
23040 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
23041 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
23042 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
23043 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
23045 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
23046 RADIO_2055_WBRSSI_G2_PD;
23047 pd_state[0] =
23048 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
23049 pd_state[1] =
23050 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
23051 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
23052 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
23053 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
23054 RADIO_2055_WBRSSI_G2_SEL;
23055 rssi_ctrl_state[0] =
23056 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
23057 rssi_ctrl_state[1] =
23058 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
23059 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
23061 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23062 NPHY_RAIL_I, rssi_type);
23063 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
23064 NPHY_RAIL_Q, rssi_type);
23066 for (vcm = 0; vcm < 4; vcm++) {
23068 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
23069 if (rssi_type != NPHY_RSSI_SEL_W2)
23070 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
23072 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
23073 NPHY_RSSICAL_NPOLL);
23075 if ((rssi_type == NPHY_RSSI_SEL_W1)
23076 || (rssi_type == NPHY_RSSI_SEL_W2)) {
23077 for (ctr = 0; ctr < 2; ctr++)
23078 poll_miniq[vcm][ctr] =
23079 min(poll_results[vcm][ctr * 2 + 0],
23080 poll_results[vcm][ctr * 2 + 1]);
23084 for (result_idx = 0; result_idx < 4; result_idx++) {
23085 min_d = NPHY_RSSICAL_MAXD;
23086 min_vcm = 0;
23087 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
23088 for (vcm = 0; vcm < 4; vcm++) {
23089 curr_d = abs(((rssi_type == NPHY_RSSI_SEL_NB) ?
23090 poll_results[vcm][result_idx] :
23091 poll_miniq[vcm][result_idx / 2]) -
23092 (target_code * NPHY_RSSICAL_NPOLL));
23093 if (curr_d < min_d) {
23094 min_d = curr_d;
23095 min_vcm = vcm;
23097 if (poll_results[vcm][result_idx] < min_poll)
23098 min_poll = poll_results[vcm][result_idx];
23100 vcm_final[result_idx] = min_vcm;
23101 poll_results_min[result_idx] = min_poll;
23104 if (rssi_type != NPHY_RSSI_SEL_W2)
23105 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
23107 for (result_idx = 0; result_idx < 4; result_idx++) {
23108 fine_digital_offset[result_idx] =
23109 (target_code * NPHY_RSSICAL_NPOLL) -
23110 poll_results[vcm_final[result_idx]][result_idx];
23111 if (fine_digital_offset[result_idx] < 0) {
23112 fine_digital_offset[result_idx] =
23113 abs(fine_digital_offset[result_idx]);
23114 fine_digital_offset[result_idx] +=
23115 (NPHY_RSSICAL_NPOLL / 2);
23116 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23117 fine_digital_offset[result_idx] =
23118 -fine_digital_offset[result_idx];
23119 } else {
23120 fine_digital_offset[result_idx] +=
23121 (NPHY_RSSICAL_NPOLL / 2);
23122 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
23125 if (poll_results_min[result_idx] ==
23126 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL)
23127 fine_digital_offset[result_idx] =
23128 (target_code - NPHY_RSSICAL_MAXREAD - 1);
23130 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
23131 (s8)
23132 fine_digital_offset[result_idx],
23133 (result_idx / 2 ==
23134 0) ? RADIO_MIMO_CORESEL_CORE1 :
23135 RADIO_MIMO_CORESEL_CORE2,
23136 (result_idx % 2 ==
23137 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
23138 rssi_type);
23141 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
23142 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
23143 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL)
23144 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23145 NPHY_RSSI_SEL_NB);
23146 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL)
23147 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23148 NPHY_RSSI_SEL_W1);
23149 else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL)
23150 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23151 NPHY_RSSI_SEL_W2);
23152 else
23153 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
23154 NPHY_RSSI_SEL_W2);
23155 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL)
23156 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23157 NPHY_RSSI_SEL_NB);
23158 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL)
23159 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23160 NPHY_RSSI_SEL_W1);
23161 else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL)
23162 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23163 NPHY_RSSI_SEL_W2);
23164 else
23165 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
23166 NPHY_RSSI_SEL_W2);
23168 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
23170 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
23171 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
23172 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
23173 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
23175 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
23176 wlc_phy_clip_det_nphy(pi, 1, clip_state);
23178 wlc_phy_resetcca_nphy(pi);
23181 void wlc_phy_rssi_cal_nphy(struct brcms_phy *pi)
23183 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23184 wlc_phy_rssi_cal_nphy_rev3(pi);
23185 } else {
23186 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
23187 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
23188 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
23193 wlc_phy_rssi_compute_nphy(struct brcms_phy *pi, struct d11rxhdr *rxh)
23195 s16 rxpwr, rxpwr0, rxpwr1;
23196 s16 phyRx0_l, phyRx2_l;
23198 rxpwr = 0;
23199 rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
23200 rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
23202 if (rxpwr0 > 127)
23203 rxpwr0 -= 256;
23204 if (rxpwr1 > 127)
23205 rxpwr1 -= 256;
23207 phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
23208 phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
23209 if (phyRx2_l > 127)
23210 phyRx2_l -= 256;
23212 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
23213 rxpwr0 = rxpwr1;
23214 rxpwr1 = phyRx2_l;
23217 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
23218 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
23219 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
23220 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
23221 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
23222 rxpwr = (rxpwr0 + rxpwr1) >> 1;
23224 return rxpwr;
23227 static void
23228 wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23229 u16 num_samps)
23231 u16 t;
23232 u32 *data_buf = NULL;
23234 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
23235 if (data_buf == NULL)
23236 return;
23238 if (pi->phyhang_avoid)
23239 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23241 for (t = 0; t < num_samps; t++)
23242 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
23243 (((unsigned int)tone_buf[t].q) & 0x3ff);
23244 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
23245 data_buf);
23247 kfree(data_buf);
23249 if (pi->phyhang_avoid)
23250 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23253 static u16
23254 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23255 u8 dac_test_mode)
23257 u8 phy_bw, is_phybw40;
23258 u16 num_samps, t, spur;
23259 s32 theta = 0, rot = 0;
23260 u32 tbl_len;
23261 struct cordic_iq *tone_buf = NULL;
23263 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
23264 phy_bw = (is_phybw40 == 1) ? 40 : 20;
23265 tbl_len = (phy_bw << 3);
23267 if (dac_test_mode == 1) {
23268 spur = read_phy_reg(pi, 0x01);
23269 spur = (spur >> 15) & 1;
23270 phy_bw = (spur == 1) ? 82 : 80;
23271 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
23273 tbl_len = (phy_bw << 1);
23276 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
23277 if (tone_buf == NULL)
23278 return 0;
23280 num_samps = (u16) tbl_len;
23281 rot = ((f_kHz * 36) / phy_bw) / 100;
23282 theta = 0;
23284 for (t = 0; t < num_samps; t++) {
23286 tone_buf[t] = cordic_calc_iq(theta);
23288 theta += rot;
23290 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
23291 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
23294 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
23296 kfree(tone_buf);
23298 return num_samps;
23301 static void
23302 wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 num_samps, u16 loops,
23303 u16 wait, u8 iqmode, u8 dac_test_mode,
23304 bool modify_bbmult)
23306 u16 bb_mult;
23307 u8 phy_bw, sample_cmd;
23308 u16 orig_RfseqCoreActv;
23309 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
23310 lpf_bw_ctl_miscreg4;
23312 if (pi->phyhang_avoid)
23313 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23315 phy_bw = 20;
23316 if (CHSPEC_IS40(pi->radio_chanspec))
23317 phy_bw = 40;
23319 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23321 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
23322 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
23323 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
23324 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23325 (0x7 << 8);
23326 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23327 (0x7 << 8);
23328 } else {
23329 wlc_phy_rfctrl_override_nphy_rev7(
23331 (0x1 << 7),
23332 wlc_phy_read_lpf_bw_ctl_nphy
23333 (pi,
23334 0), 0, 0,
23335 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23337 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
23339 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
23340 (0x7 << 8);
23341 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
23342 (0x7 << 8);
23346 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
23348 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23349 &bb_mult);
23350 pi->nphy_bb_mult_save =
23351 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
23354 if (modify_bbmult) {
23355 bb_mult = (phy_bw == 20) ? 100 : 71;
23356 bb_mult = (bb_mult << 8) + bb_mult;
23357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23358 &bb_mult);
23361 if (pi->phyhang_avoid)
23362 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23364 write_phy_reg(pi, 0xc6, num_samps - 1);
23366 if (loops != 0xffff)
23367 write_phy_reg(pi, 0xc4, loops - 1);
23368 else
23369 write_phy_reg(pi, 0xc4, loops);
23371 write_phy_reg(pi, 0xc5, wait);
23373 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
23374 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
23375 if (iqmode) {
23377 and_phy_reg(pi, 0xc2, 0x7FFF);
23379 or_phy_reg(pi, 0xc2, 0x8000);
23380 } else {
23382 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
23383 write_phy_reg(pi, 0xc3, sample_cmd);
23386 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
23388 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
23392 wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23393 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
23395 u16 num_samps;
23396 u16 loops = 0xffff;
23397 u16 wait = 0;
23399 num_samps = wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val,
23400 dac_test_mode);
23401 if (num_samps == 0)
23402 return -EBADE;
23404 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
23405 dac_test_mode, modify_bbmult);
23407 return 0;
23410 void wlc_phy_stopplayback_nphy(struct brcms_phy *pi)
23412 u16 playback_status;
23413 u16 bb_mult;
23415 if (pi->phyhang_avoid)
23416 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23418 playback_status = read_phy_reg(pi, 0xc7);
23419 if (playback_status & 0x1)
23420 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
23421 else if (playback_status & 0x2)
23422 and_phy_reg(pi, 0xc2,
23423 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
23425 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
23427 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
23429 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
23430 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
23431 &bb_mult);
23433 pi->nphy_bb_mult_save = 0;
23436 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
23437 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
23438 wlc_phy_rfctrl_override_nphy_rev7(
23440 (0x1 << 7),
23441 0, 0, 1,
23442 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23443 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
23447 if (pi->phyhang_avoid)
23448 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23451 static u32 *brcms_phy_get_tx_pwrctrl_tbl(struct brcms_phy *pi)
23453 u32 *tx_pwrctrl_tbl = NULL;
23454 uint phyrev = pi->pubpi.phy_rev;
23456 if (PHY_IPA(pi)) {
23457 tx_pwrctrl_tbl =
23458 wlc_phy_get_ipa_gaintbl_nphy(pi);
23459 } else {
23460 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23461 if (NREV_IS(phyrev, 3))
23462 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev3;
23463 else if (NREV_IS(phyrev, 4))
23464 tx_pwrctrl_tbl =
23465 (pi->srom_fem5g.extpagain == 3) ?
23466 nphy_tpc_5GHz_txgain_HiPwrEPA :
23467 nphy_tpc_5GHz_txgain_rev4;
23468 else
23469 tx_pwrctrl_tbl = nphy_tpc_5GHz_txgain_rev5;
23470 } else {
23471 if (NREV_GE(phyrev, 7)) {
23472 if (pi->pubpi.radiorev == 3)
23473 tx_pwrctrl_tbl =
23474 nphy_tpc_txgain_epa_2057rev3;
23475 else if (pi->pubpi.radiorev == 5)
23476 tx_pwrctrl_tbl =
23477 nphy_tpc_txgain_epa_2057rev5;
23478 } else {
23479 if (NREV_GE(phyrev, 5) &&
23480 (pi->srom_fem2g.extpagain == 3))
23481 tx_pwrctrl_tbl =
23482 nphy_tpc_txgain_HiPwrEPA;
23483 else
23484 tx_pwrctrl_tbl =
23485 nphy_tpc_txgain_rev3;
23489 return tx_pwrctrl_tbl;
23492 struct nphy_txgains wlc_phy_get_tx_gain_nphy(struct brcms_phy *pi)
23494 u16 base_idx[2], curr_gain[2];
23495 u8 core_no;
23496 struct nphy_txgains target_gain;
23497 u32 *tx_pwrctrl_tbl = NULL;
23499 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
23500 if (pi->phyhang_avoid)
23501 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23503 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23504 curr_gain);
23506 if (pi->phyhang_avoid)
23507 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23509 for (core_no = 0; core_no < 2; core_no++) {
23510 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23511 target_gain.ipa[core_no] =
23512 curr_gain[core_no] & 0x0007;
23513 target_gain.pad[core_no] =
23514 ((curr_gain[core_no] & 0x00F8) >> 3);
23515 target_gain.pga[core_no] =
23516 ((curr_gain[core_no] & 0x0F00) >> 8);
23517 target_gain.txgm[core_no] =
23518 ((curr_gain[core_no] & 0x7000) >> 12);
23519 target_gain.txlpf[core_no] =
23520 ((curr_gain[core_no] & 0x8000) >> 15);
23521 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23522 target_gain.ipa[core_no] =
23523 curr_gain[core_no] & 0x000F;
23524 target_gain.pad[core_no] =
23525 ((curr_gain[core_no] & 0x00F0) >> 4);
23526 target_gain.pga[core_no] =
23527 ((curr_gain[core_no] & 0x0F00) >> 8);
23528 target_gain.txgm[core_no] =
23529 ((curr_gain[core_no] & 0x7000) >> 12);
23530 } else {
23531 target_gain.ipa[core_no] =
23532 curr_gain[core_no] & 0x0003;
23533 target_gain.pad[core_no] =
23534 ((curr_gain[core_no] & 0x000C) >> 2);
23535 target_gain.pga[core_no] =
23536 ((curr_gain[core_no] & 0x0070) >> 4);
23537 target_gain.txgm[core_no] =
23538 ((curr_gain[core_no] & 0x0380) >> 7);
23541 } else {
23542 uint phyrev = pi->pubpi.phy_rev;
23544 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
23545 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
23546 for (core_no = 0; core_no < 2; core_no++) {
23547 if (NREV_GE(phyrev, 3)) {
23548 tx_pwrctrl_tbl =
23549 brcms_phy_get_tx_pwrctrl_tbl(pi);
23550 if (NREV_GE(phyrev, 7)) {
23551 target_gain.ipa[core_no] =
23552 (tx_pwrctrl_tbl
23553 [base_idx[core_no]]
23554 >> 16) & 0x7;
23555 target_gain.pad[core_no] =
23556 (tx_pwrctrl_tbl
23557 [base_idx[core_no]]
23558 >> 19) & 0x1f;
23559 target_gain.pga[core_no] =
23560 (tx_pwrctrl_tbl
23561 [base_idx[core_no]]
23562 >> 24) & 0xf;
23563 target_gain.txgm[core_no] =
23564 (tx_pwrctrl_tbl
23565 [base_idx[core_no]]
23566 >> 28) & 0x7;
23567 target_gain.txlpf[core_no] =
23568 (tx_pwrctrl_tbl
23569 [base_idx[core_no]]
23570 >> 31) & 0x1;
23571 } else {
23572 target_gain.ipa[core_no] =
23573 (tx_pwrctrl_tbl
23574 [base_idx[core_no]]
23575 >> 16) & 0xf;
23576 target_gain.pad[core_no] =
23577 (tx_pwrctrl_tbl
23578 [base_idx[core_no]]
23579 >> 20) & 0xf;
23580 target_gain.pga[core_no] =
23581 (tx_pwrctrl_tbl
23582 [base_idx[core_no]]
23583 >> 24) & 0xf;
23584 target_gain.txgm[core_no] =
23585 (tx_pwrctrl_tbl
23586 [base_idx[core_no]]
23587 >> 28) & 0x7;
23589 } else {
23590 target_gain.ipa[core_no] =
23591 (nphy_tpc_txgain[base_idx[core_no]] >>
23592 16) & 0x3;
23593 target_gain.pad[core_no] =
23594 (nphy_tpc_txgain[base_idx[core_no]] >>
23595 18) & 0x3;
23596 target_gain.pga[core_no] =
23597 (nphy_tpc_txgain[base_idx[core_no]] >>
23598 20) & 0x7;
23599 target_gain.txgm[core_no] =
23600 (nphy_tpc_txgain[base_idx[core_no]] >>
23601 23) & 0x7;
23606 return target_gain;
23609 static void
23610 wlc_phy_iqcal_gainparams_nphy(struct brcms_phy *pi, u16 core_no,
23611 struct nphy_txgains target_gain,
23612 struct nphy_iqcal_params *params)
23614 u8 k;
23615 int idx;
23616 u16 gain_index;
23617 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
23619 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23620 if (NREV_GE(pi->pubpi.phy_rev, 7))
23621 params->txlpf = target_gain.txlpf[core_no];
23623 params->txgm = target_gain.txgm[core_no];
23624 params->pga = target_gain.pga[core_no];
23625 params->pad = target_gain.pad[core_no];
23626 params->ipa = target_gain.ipa[core_no];
23627 if (NREV_GE(pi->pubpi.phy_rev, 7))
23628 params->cal_gain =
23629 ((params->txlpf << 15) | (params->txgm << 12) |
23630 (params->pga << 8) |
23631 (params->pad << 3) | (params->ipa));
23632 else
23633 params->cal_gain =
23634 ((params->txgm << 12) | (params->pga << 8) |
23635 (params->pad << 4) | (params->ipa));
23637 params->ncorr[0] = 0x79;
23638 params->ncorr[1] = 0x79;
23639 params->ncorr[2] = 0x79;
23640 params->ncorr[3] = 0x79;
23641 params->ncorr[4] = 0x79;
23642 } else {
23644 gain_index = ((target_gain.pad[core_no] << 0) |
23645 (target_gain.pga[core_no] << 4) |
23646 (target_gain.txgm[core_no] << 8));
23648 idx = -1;
23649 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
23650 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
23651 gain_index) {
23652 idx = k;
23653 break;
23657 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
23658 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
23659 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
23660 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
23661 (params->pad << 2));
23662 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
23663 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
23664 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
23665 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
23669 static void wlc_phy_txcal_radio_setup_nphy(struct brcms_phy *pi)
23671 u16 jtag_core, core;
23673 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23675 for (core = 0; core <= 1; core++) {
23677 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23678 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23679 TX_SSI_MASTER);
23681 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23682 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23683 IQCAL_VCM_HG);
23685 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23686 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23687 IQCAL_IDAC);
23689 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23690 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23691 TSSI_VCM);
23693 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
23695 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23696 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23697 TX_SSI_MUX);
23699 if (pi->pubpi.radiorev != 5)
23700 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23701 READ_RADIO_REG3(pi, RADIO_2057, TX,
23702 core,
23703 TSSIA);
23705 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23706 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
23708 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23709 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
23710 TSSI_MISC1);
23712 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23713 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23714 TX_SSI_MASTER, 0x0a);
23715 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23716 IQCAL_VCM_HG, 0x43);
23717 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23718 IQCAL_IDAC, 0x55);
23719 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23720 TSSI_VCM, 0x00);
23721 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23722 TSSIG, 0x00);
23723 if (pi->use_int_tx_iqlo_cal_nphy) {
23724 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23725 core, TX_SSI_MUX, 0x4);
23726 if (!(pi->
23727 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23728 WRITE_RADIO_REG3(pi, RADIO_2057,
23729 TX, core,
23730 TSSIA, 0x31);
23731 else
23732 WRITE_RADIO_REG3(pi, RADIO_2057,
23733 TX, core,
23734 TSSIA, 0x21);
23736 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23737 TSSI_MISC1, 0x00);
23738 } else {
23739 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23740 TX_SSI_MASTER, 0x06);
23741 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23742 IQCAL_VCM_HG, 0x43);
23743 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23744 IQCAL_IDAC, 0x55);
23745 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23746 TSSI_VCM, 0x00);
23748 if (pi->pubpi.radiorev != 5)
23749 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23750 core, TSSIA, 0x00);
23751 if (pi->use_int_tx_iqlo_cal_nphy) {
23752 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
23753 core, TX_SSI_MUX,
23754 0x06);
23755 if (!(pi->
23756 internal_tx_iqlo_cal_tapoff_intpa_nphy))
23757 WRITE_RADIO_REG3(pi, RADIO_2057,
23758 TX, core,
23759 TSSIG, 0x31);
23760 else
23761 WRITE_RADIO_REG3(pi, RADIO_2057,
23762 TX, core,
23763 TSSIG, 0x21);
23765 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23766 TSSI_MISC1, 0x00);
23769 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23771 for (core = 0; core <= 1; core++) {
23772 jtag_core =
23773 (core ==
23774 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23776 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
23777 read_radio_reg(pi,
23778 RADIO_2056_TX_TX_SSI_MASTER |
23779 jtag_core);
23781 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
23782 read_radio_reg(pi,
23783 RADIO_2056_TX_IQCAL_VCM_HG |
23784 jtag_core);
23786 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
23787 read_radio_reg(pi,
23788 RADIO_2056_TX_IQCAL_IDAC |
23789 jtag_core);
23791 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
23792 read_radio_reg(
23794 RADIO_2056_TX_TSSI_VCM |
23795 jtag_core);
23797 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
23798 read_radio_reg(pi,
23799 RADIO_2056_TX_TX_AMP_DET |
23800 jtag_core);
23802 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
23803 read_radio_reg(pi,
23804 RADIO_2056_TX_TX_SSI_MUX |
23805 jtag_core);
23807 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
23808 read_radio_reg(pi,
23809 RADIO_2056_TX_TSSIA | jtag_core);
23811 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
23812 read_radio_reg(pi,
23813 RADIO_2056_TX_TSSIG | jtag_core);
23815 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
23816 read_radio_reg(pi,
23817 RADIO_2056_TX_TSSI_MISC1 |
23818 jtag_core);
23820 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
23821 read_radio_reg(pi,
23822 RADIO_2056_TX_TSSI_MISC2 |
23823 jtag_core);
23825 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
23826 read_radio_reg(pi,
23827 RADIO_2056_TX_TSSI_MISC3 |
23828 jtag_core);
23830 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23831 write_radio_reg(pi,
23832 RADIO_2056_TX_TX_SSI_MASTER |
23833 jtag_core, 0x0a);
23834 write_radio_reg(pi,
23835 RADIO_2056_TX_IQCAL_VCM_HG |
23836 jtag_core, 0x40);
23837 write_radio_reg(pi,
23838 RADIO_2056_TX_IQCAL_IDAC |
23839 jtag_core, 0x55);
23840 write_radio_reg(pi,
23841 RADIO_2056_TX_TSSI_VCM |
23842 jtag_core, 0x00);
23843 write_radio_reg(pi,
23844 RADIO_2056_TX_TX_AMP_DET |
23845 jtag_core, 0x00);
23847 if (PHY_IPA(pi)) {
23848 write_radio_reg(
23850 RADIO_2056_TX_TX_SSI_MUX
23851 | jtag_core, 0x4);
23852 write_radio_reg(pi,
23853 RADIO_2056_TX_TSSIA |
23854 jtag_core, 0x1);
23855 } else {
23856 write_radio_reg(
23858 RADIO_2056_TX_TX_SSI_MUX
23859 | jtag_core, 0x00);
23860 write_radio_reg(pi,
23861 RADIO_2056_TX_TSSIA |
23862 jtag_core, 0x2f);
23864 write_radio_reg(pi,
23865 RADIO_2056_TX_TSSIG | jtag_core,
23866 0x00);
23867 write_radio_reg(pi,
23868 RADIO_2056_TX_TSSI_MISC1 |
23869 jtag_core, 0x00);
23871 write_radio_reg(pi,
23872 RADIO_2056_TX_TSSI_MISC2 |
23873 jtag_core, 0x00);
23874 write_radio_reg(pi,
23875 RADIO_2056_TX_TSSI_MISC3 |
23876 jtag_core, 0x00);
23877 } else {
23878 write_radio_reg(pi,
23879 RADIO_2056_TX_TX_SSI_MASTER |
23880 jtag_core, 0x06);
23881 write_radio_reg(pi,
23882 RADIO_2056_TX_IQCAL_VCM_HG |
23883 jtag_core, 0x40);
23884 write_radio_reg(pi,
23885 RADIO_2056_TX_IQCAL_IDAC |
23886 jtag_core, 0x55);
23887 write_radio_reg(pi,
23888 RADIO_2056_TX_TSSI_VCM |
23889 jtag_core, 0x00);
23890 write_radio_reg(pi,
23891 RADIO_2056_TX_TX_AMP_DET |
23892 jtag_core, 0x00);
23893 write_radio_reg(pi,
23894 RADIO_2056_TX_TSSIA | jtag_core,
23895 0x00);
23897 if (PHY_IPA(pi)) {
23899 write_radio_reg(
23901 RADIO_2056_TX_TX_SSI_MUX
23902 | jtag_core, 0x06);
23903 if (NREV_LT(pi->pubpi.phy_rev, 5))
23904 write_radio_reg(
23906 RADIO_2056_TX_TSSIG
23907 | jtag_core,
23908 0x11);
23909 else
23910 write_radio_reg(
23912 RADIO_2056_TX_TSSIG
23913 | jtag_core,
23914 0x1);
23915 } else {
23916 write_radio_reg(
23918 RADIO_2056_TX_TX_SSI_MUX
23919 | jtag_core, 0x00);
23920 write_radio_reg(pi,
23921 RADIO_2056_TX_TSSIG |
23922 jtag_core, 0x20);
23925 write_radio_reg(pi,
23926 RADIO_2056_TX_TSSI_MISC1 |
23927 jtag_core, 0x00);
23928 write_radio_reg(pi,
23929 RADIO_2056_TX_TSSI_MISC2 |
23930 jtag_core, 0x00);
23931 write_radio_reg(pi,
23932 RADIO_2056_TX_TSSI_MISC3 |
23933 jtag_core, 0x00);
23936 } else {
23938 pi->tx_rx_cal_radio_saveregs[0] =
23939 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23940 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23941 pi->tx_rx_cal_radio_saveregs[1] =
23942 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23943 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23945 pi->tx_rx_cal_radio_saveregs[2] =
23946 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23947 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23948 pi->tx_rx_cal_radio_saveregs[3] =
23949 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23950 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23952 pi->tx_rx_cal_radio_saveregs[4] =
23953 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23954 pi->tx_rx_cal_radio_saveregs[5] =
23955 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23957 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23958 0) {
23960 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23961 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23962 } else {
23964 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23965 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23968 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23970 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23971 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23972 } else {
23974 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23975 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23980 static void wlc_phy_txcal_radio_cleanup_nphy(struct brcms_phy *pi)
23982 u16 jtag_core, core;
23984 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23985 for (core = 0; core <= 1; core++) {
23987 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23988 TX_SSI_MASTER,
23989 pi->
23990 tx_rx_cal_radio_saveregs[(core * 11) +
23991 0]);
23993 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23994 pi->
23995 tx_rx_cal_radio_saveregs[(core * 11) +
23996 1]);
23998 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23999 pi->
24000 tx_rx_cal_radio_saveregs[(core * 11) +
24001 2]);
24003 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
24004 pi->
24005 tx_rx_cal_radio_saveregs[(core * 11) +
24006 3]);
24008 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
24009 pi->
24010 tx_rx_cal_radio_saveregs[(core * 11) +
24011 5]);
24013 if (pi->pubpi.radiorev != 5)
24014 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24015 TSSIA,
24016 pi->tx_rx_cal_radio_saveregs
24017 [(core * 11) + 6]);
24019 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
24020 pi->
24021 tx_rx_cal_radio_saveregs[(core * 11) +
24022 7]);
24024 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
24025 pi->
24026 tx_rx_cal_radio_saveregs[(core * 11) +
24027 8]);
24029 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24030 for (core = 0; core <= 1; core++) {
24031 jtag_core = (core == PHY_CORE_0) ?
24032 RADIO_2056_TX0 : RADIO_2056_TX1;
24034 write_radio_reg(pi,
24035 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
24036 pi->
24037 tx_rx_cal_radio_saveregs[(core * 11) +
24038 0]);
24040 write_radio_reg(pi,
24041 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
24042 pi->
24043 tx_rx_cal_radio_saveregs[(core * 11) +
24044 1]);
24046 write_radio_reg(pi,
24047 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
24048 pi->
24049 tx_rx_cal_radio_saveregs[(core * 11) +
24050 2]);
24052 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
24053 pi->
24054 tx_rx_cal_radio_saveregs[(core * 11) +
24055 3]);
24057 write_radio_reg(pi,
24058 RADIO_2056_TX_TX_AMP_DET | jtag_core,
24059 pi->
24060 tx_rx_cal_radio_saveregs[(core * 11) +
24061 4]);
24063 write_radio_reg(pi,
24064 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
24065 pi->
24066 tx_rx_cal_radio_saveregs[(core * 11) +
24067 5]);
24069 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
24070 pi->
24071 tx_rx_cal_radio_saveregs[(core * 11) +
24072 6]);
24074 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
24075 pi->
24076 tx_rx_cal_radio_saveregs[(core * 11) +
24077 7]);
24079 write_radio_reg(pi,
24080 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
24081 pi->
24082 tx_rx_cal_radio_saveregs[(core * 11) +
24083 8]);
24085 write_radio_reg(pi,
24086 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
24087 pi->
24088 tx_rx_cal_radio_saveregs[(core * 11) +
24089 9]);
24091 write_radio_reg(pi,
24092 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
24093 pi->
24094 tx_rx_cal_radio_saveregs[(core * 11) +
24095 10]);
24097 } else {
24099 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
24100 pi->tx_rx_cal_radio_saveregs[0]);
24101 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
24102 pi->tx_rx_cal_radio_saveregs[1]);
24103 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
24104 pi->tx_rx_cal_radio_saveregs[2]);
24105 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
24106 pi->tx_rx_cal_radio_saveregs[3]);
24107 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
24108 pi->tx_rx_cal_radio_saveregs[4]);
24109 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
24110 pi->tx_rx_cal_radio_saveregs[5]);
24114 static void wlc_phy_txcal_physetup_nphy(struct brcms_phy *pi)
24116 u16 val, mask;
24118 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24119 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24120 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24122 mask = ((0x3 << 8) | (0x3 << 10));
24123 val = (0x2 << 8);
24124 val |= (0x2 << 10);
24125 mod_phy_reg(pi, 0xa6, mask, val);
24126 mod_phy_reg(pi, 0xa7, mask, val);
24128 val = read_phy_reg(pi, 0x8f);
24129 pi->tx_rx_cal_phy_saveregs[2] = val;
24130 val |= ((0x1 << 9) | (0x1 << 10));
24131 write_phy_reg(pi, 0x8f, val);
24133 val = read_phy_reg(pi, 0xa5);
24134 pi->tx_rx_cal_phy_saveregs[3] = val;
24135 val |= ((0x1 << 9) | (0x1 << 10));
24136 write_phy_reg(pi, 0xa5, val);
24138 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
24139 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
24141 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24142 &val);
24143 pi->tx_rx_cal_phy_saveregs[5] = val;
24144 val = 0;
24145 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24146 &val);
24148 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24149 &val);
24150 pi->tx_rx_cal_phy_saveregs[6] = val;
24151 val = 0;
24152 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24153 &val);
24155 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
24156 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
24158 if (!(pi->use_int_tx_iqlo_cal_nphy))
24159 wlc_phy_rfctrlintc_override_nphy(
24161 NPHY_RfctrlIntc_override_PA,
24163 RADIO_MIMO_CORESEL_CORE1
24165 RADIO_MIMO_CORESEL_CORE2);
24166 else
24167 wlc_phy_rfctrlintc_override_nphy(
24169 NPHY_RfctrlIntc_override_PA,
24171 RADIO_MIMO_CORESEL_CORE1
24173 RADIO_MIMO_CORESEL_CORE2);
24175 wlc_phy_rfctrlintc_override_nphy(pi,
24176 NPHY_RfctrlIntc_override_TRSW,
24177 0x2, RADIO_MIMO_CORESEL_CORE1);
24178 wlc_phy_rfctrlintc_override_nphy(pi,
24179 NPHY_RfctrlIntc_override_TRSW,
24180 0x8, RADIO_MIMO_CORESEL_CORE2);
24182 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
24183 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
24184 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
24185 0x29b, (0x1 << 0), (0) << 0);
24187 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
24188 0x29b, (0x1 << 0), (0) << 0);
24190 if (NREV_IS(pi->pubpi.phy_rev, 7)
24191 || NREV_GE(pi->pubpi.phy_rev, 8))
24192 wlc_phy_rfctrl_override_nphy_rev7(
24193 pi, (0x1 << 7),
24194 wlc_phy_read_lpf_bw_ctl_nphy
24195 (pi,
24196 0), 0, 0,
24197 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24199 if (pi->use_int_tx_iqlo_cal_nphy
24200 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24202 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24204 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24205 1 << 4);
24207 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24208 mod_radio_reg(
24210 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24211 1, 0);
24212 mod_radio_reg(
24214 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24215 1, 0);
24216 } else {
24217 mod_radio_reg(
24219 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24220 1, 0);
24221 mod_radio_reg(
24223 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24224 1, 0);
24226 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24227 wlc_phy_rfctrl_override_nphy_rev7(
24229 (0x1 << 3), 0,
24230 0x3, 0,
24231 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24234 } else {
24235 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
24236 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
24238 mask = ((0x3 << 12) | (0x3 << 14));
24239 val = (0x2 << 12);
24240 val |= (0x2 << 14);
24241 mod_phy_reg(pi, 0xa6, mask, val);
24242 mod_phy_reg(pi, 0xa7, mask, val);
24244 val = read_phy_reg(pi, 0xa5);
24245 pi->tx_rx_cal_phy_saveregs[2] = val;
24246 val |= ((0x1 << 12) | (0x1 << 13));
24247 write_phy_reg(pi, 0xa5, val);
24249 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24250 &val);
24251 pi->tx_rx_cal_phy_saveregs[3] = val;
24252 val |= 0x2000;
24253 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24254 &val);
24256 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24257 &val);
24258 pi->tx_rx_cal_phy_saveregs[4] = val;
24259 val |= 0x2000;
24260 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24261 &val);
24263 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
24264 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
24265 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
24266 write_phy_reg(pi, 0x91, val);
24267 write_phy_reg(pi, 0x92, val);
24271 static void wlc_phy_txcal_phycleanup_nphy(struct brcms_phy *pi)
24273 u16 mask;
24275 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24276 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
24277 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
24278 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
24279 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
24280 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
24282 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
24283 &pi->tx_rx_cal_phy_saveregs[5]);
24284 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
24285 &pi->tx_rx_cal_phy_saveregs[6]);
24287 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
24288 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
24290 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
24291 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
24293 if (NREV_IS(pi->pubpi.phy_rev, 7)
24294 || NREV_GE(pi->pubpi.phy_rev, 8))
24295 wlc_phy_rfctrl_override_nphy_rev7(
24296 pi, (0x1 << 7), 0, 0,
24298 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24300 wlc_phy_resetcca_nphy(pi);
24302 if (pi->use_int_tx_iqlo_cal_nphy
24303 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
24305 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
24306 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24307 mod_radio_reg(
24309 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
24310 1, 1);
24311 mod_radio_reg(
24313 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
24314 1, 1);
24315 } else {
24316 mod_radio_reg(
24318 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
24319 1, 1);
24320 mod_radio_reg(
24322 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
24323 1, 1);
24326 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
24328 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
24329 wlc_phy_rfctrl_override_nphy_rev7(
24331 (0x1 << 3), 0,
24332 0x3, 1,
24333 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24336 } else {
24337 mask = ((0x3 << 12) | (0x3 << 14));
24338 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
24339 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
24340 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
24342 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
24343 &pi->tx_rx_cal_phy_saveregs[3]);
24345 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
24346 &pi->tx_rx_cal_phy_saveregs[4]);
24348 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
24349 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
24353 void
24354 wlc_phy_est_tonepwr_nphy(struct brcms_phy *pi, s32 *qdBm_pwrbuf, u8 num_samps)
24356 u16 tssi_reg;
24357 s32 temp, pwrindex[2];
24358 s32 idle_tssi[2];
24359 s32 rssi_buf[4];
24360 s32 tssival[2];
24361 u8 tssi_type;
24363 tssi_reg = read_phy_reg(pi, 0x1e9);
24365 temp = (s32) (tssi_reg & 0x3f);
24366 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
24368 temp = (s32) ((tssi_reg >> 8) & 0x3f);
24369 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
24371 tssi_type =
24372 CHSPEC_IS5G(pi->radio_chanspec) ?
24373 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
24375 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
24377 tssival[0] = rssi_buf[0] / ((s32) num_samps);
24378 tssival[1] = rssi_buf[2] / ((s32) num_samps);
24380 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
24381 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
24383 if (pwrindex[0] < 0)
24384 pwrindex[0] = 0;
24385 else if (pwrindex[0] > 63)
24386 pwrindex[0] = 63;
24388 if (pwrindex[1] < 0)
24389 pwrindex[1] = 0;
24390 else if (pwrindex[1] > 63)
24391 pwrindex[1] = 63;
24393 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
24394 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
24395 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
24396 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
24399 static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)
24401 int index;
24402 u32 bbmult_scale;
24403 u16 bbmult;
24404 u16 tblentry;
24406 struct nphy_txiqcal_ladder ladder_lo[] = {
24407 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24408 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
24409 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
24412 struct nphy_txiqcal_ladder ladder_iq[] = {
24413 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
24414 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
24415 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
24418 bbmult = (core == PHY_CORE_0) ?
24419 ((pi->nphy_txcal_bbmult >> 8) & 0xff) :
24420 (pi->nphy_txcal_bbmult & 0xff);
24422 for (index = 0; index < 18; index++) {
24423 bbmult_scale = ladder_lo[index].percent * bbmult;
24424 bbmult_scale /= 100;
24426 tblentry =
24427 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
24428 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
24429 &tblentry);
24431 bbmult_scale = ladder_iq[index].percent * bbmult;
24432 bbmult_scale /= 100;
24434 tblentry =
24435 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
24436 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
24437 16, &tblentry);
24441 static u8 wlc_phy_txpwr_idx_cur_get_nphy(struct brcms_phy *pi, u8 core)
24443 u16 tmp;
24444 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
24446 tmp = (tmp & (0x7f << 8)) >> 8;
24447 return (u8) tmp;
24450 static void
24451 wlc_phy_txpwr_idx_cur_set_nphy(struct brcms_phy *pi, u8 idx0, u8 idx1)
24453 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
24455 if (NREV_GT(pi->pubpi.phy_rev, 1))
24456 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
24459 static u16 wlc_phy_ipa_get_bbmult_nphy(struct brcms_phy *pi)
24461 u16 m0m1;
24463 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
24465 return m0m1;
24468 static void wlc_phy_ipa_set_bbmult_nphy(struct brcms_phy *pi, u8 m0, u8 m1)
24470 u16 m0m1 = (u16) ((m0 << 8) | m1);
24472 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
24473 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
24476 static void
24477 wlc_phy_papd_cal_setup_nphy(struct brcms_phy *pi,
24478 struct nphy_papd_restore_state *state, u8 core)
24480 s32 tone_freq;
24481 u8 off_core;
24482 u16 mixgain = 0;
24484 off_core = core ^ 0x1;
24485 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24487 if (NREV_IS(pi->pubpi.phy_rev, 7)
24488 || NREV_GE(pi->pubpi.phy_rev, 8))
24489 wlc_phy_rfctrl_override_nphy_rev7(
24490 pi, (0x1 << 7),
24491 wlc_phy_read_lpf_bw_ctl_nphy
24492 (pi,
24493 0), 0, 0,
24494 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24496 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24497 if (pi->pubpi.radiorev == 5)
24498 mixgain = (core == 0) ? 0x20 : 0x00;
24499 else if ((pi->pubpi.radiorev == 7)
24500 || (pi->pubpi.radiorev == 8))
24501 mixgain = 0x00;
24502 else if ((pi->pubpi.radiorev <= 4)
24503 || (pi->pubpi.radiorev == 6))
24504 mixgain = 0x00;
24505 } else {
24506 if ((pi->pubpi.radiorev == 4) ||
24507 (pi->pubpi.radiorev == 6))
24508 mixgain = 0x50;
24509 else if ((pi->pubpi.radiorev == 3)
24510 || (pi->pubpi.radiorev == 7)
24511 || (pi->pubpi.radiorev == 8))
24512 mixgain = 0x0;
24515 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
24516 mixgain, (1 << core), 0,
24517 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24519 wlc_phy_rfctrl_override_1tomany_nphy(
24521 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24522 1, (1 << core), 0);
24523 wlc_phy_rfctrl_override_1tomany_nphy(
24525 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
24526 0, (1 << off_core), 0);
24528 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
24529 0, 0x3, 0,
24530 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24531 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
24532 (1 << core), 0,
24533 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24534 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
24535 (1 << core), 0,
24536 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24537 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
24538 (1 << core), 0,
24539 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24540 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
24541 (1 << core), 0,
24542 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24543 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
24544 (1 << core), 0,
24545 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24546 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
24547 (1 << core), 0,
24548 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24549 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
24550 (1 << core), 0,
24551 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24553 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
24554 0, (1 << core), 0,
24555 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24556 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
24557 (1 << core), 0,
24558 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24560 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24561 0xa6 : 0xa7);
24562 state->afeoverride[core] =
24563 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24564 state->afectrl[off_core] =
24565 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
24566 state->afeoverride[off_core] =
24567 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
24569 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24570 (0x1 << 2), 0);
24571 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24572 0xa5), (0x1 << 2), (0x1 << 2));
24574 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
24575 (0x1 << 2), (0x1 << 2));
24576 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
24577 0x8f), (0x1 << 2), (0x1 << 2));
24579 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24580 state->pwrup[core] =
24581 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24582 TXRXCOUPLE_2G_PWRUP);
24583 state->atten[core] =
24584 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24585 TXRXCOUPLE_2G_ATTEN);
24586 state->pwrup[off_core] =
24587 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24588 TXRXCOUPLE_2G_PWRUP);
24589 state->atten[off_core] =
24590 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24591 TXRXCOUPLE_2G_ATTEN);
24593 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24594 TXRXCOUPLE_2G_PWRUP, 0xc);
24596 if ((pi->pubpi.radiorev == 3) ||
24597 (pi->pubpi.radiorev == 4) ||
24598 (pi->pubpi.radiorev == 6))
24599 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24600 TXRXCOUPLE_2G_ATTEN, 0xf0);
24601 else if (pi->pubpi.radiorev == 5)
24602 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24603 TXRXCOUPLE_2G_ATTEN,
24604 (core == 0) ? 0xf7 : 0xf2);
24605 else if ((pi->pubpi.radiorev == 7)
24606 || (pi->pubpi.radiorev == 8))
24607 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24608 TXRXCOUPLE_2G_ATTEN, 0xf0);
24610 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24611 TXRXCOUPLE_2G_PWRUP, 0x0);
24612 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24613 TXRXCOUPLE_2G_ATTEN, 0xff);
24614 } else {
24615 state->pwrup[core] =
24616 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24617 TXRXCOUPLE_5G_PWRUP);
24618 state->atten[core] =
24619 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
24620 TXRXCOUPLE_5G_ATTEN);
24621 state->pwrup[off_core] =
24622 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24623 TXRXCOUPLE_5G_PWRUP);
24624 state->atten[off_core] =
24625 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24626 TXRXCOUPLE_5G_ATTEN);
24628 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24629 TXRXCOUPLE_5G_PWRUP, 0xc);
24631 if ((pi->pubpi.radiorev == 7)
24632 || (pi->pubpi.radiorev == 8))
24633 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24634 TXRXCOUPLE_5G_ATTEN, 0xf4);
24636 else
24637 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24638 TXRXCOUPLE_5G_ATTEN, 0xf0);
24640 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24641 TXRXCOUPLE_5G_PWRUP, 0x0);
24642 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
24643 TXRXCOUPLE_5G_ATTEN, 0xff);
24646 tone_freq = 4000;
24648 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24650 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24651 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
24653 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
24654 0x2a4, (0x1 << 13), (1) << 13);
24656 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24657 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
24659 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
24660 0x2a4, (0x1 << 13), (0) << 13);
24662 } else {
24664 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
24666 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
24668 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
24670 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
24671 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
24673 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
24674 0xa6 : 0xa7);
24675 state->afeoverride[core] =
24676 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
24678 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
24679 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
24680 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
24681 0xa5),
24682 (0x1 << 0) |
24683 (0x1 << 1) |
24684 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
24686 state->vga_master[core] =
24687 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
24688 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
24689 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24690 state->fbmix[core] =
24691 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24692 TXFBMIX_G);
24693 state->intpa_master[core] =
24694 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24695 INTPAG_MASTER);
24697 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
24698 0x03);
24699 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24700 INTPAG_MASTER, 0x04);
24701 } else {
24702 state->fbmix[core] =
24703 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
24704 TXFBMIX_A);
24705 state->intpa_master[core] =
24706 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
24707 INTPAA_MASTER);
24709 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
24710 0x03);
24711 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24712 INTPAA_MASTER, 0x04);
24716 tone_freq = 4000;
24718 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
24720 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
24721 0x29b, (0x1 << 0), (1) << 0);
24723 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
24724 0x29b, (0x1 << 0), (0) << 0);
24726 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
24730 static void
24731 wlc_phy_papd_cal_cleanup_nphy(struct brcms_phy *pi,
24732 struct nphy_papd_restore_state *state)
24734 u8 core;
24736 wlc_phy_stopplayback_nphy(pi);
24738 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24740 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24742 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24743 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24744 TXRXCOUPLE_2G_PWRUP, 0);
24745 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24746 TXRXCOUPLE_2G_ATTEN,
24747 state->atten[core]);
24748 } else {
24749 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24750 TXRXCOUPLE_5G_PWRUP, 0);
24751 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
24752 TXRXCOUPLE_5G_ATTEN,
24753 state->atten[core]);
24757 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6))
24758 wlc_phy_rfctrl_override_nphy_rev7(
24759 pi, (0x1 << 2),
24760 1, 0x3, 0,
24761 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24762 else
24763 wlc_phy_rfctrl_override_nphy_rev7(
24764 pi, (0x1 << 2),
24765 0, 0x3, 1,
24766 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24768 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
24769 0, 0x3, 1,
24770 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24771 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24772 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24773 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
24774 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24775 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
24776 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24777 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
24778 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24779 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
24780 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24781 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
24782 NPHY_REV7_RFCTRLOVERRIDE_ID0);
24783 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
24784 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24785 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
24786 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24787 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
24788 NPHY_REV7_RFCTRLOVERRIDE_ID2);
24789 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
24790 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24791 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
24792 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24793 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
24794 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24795 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
24796 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24797 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
24798 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24799 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
24800 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24802 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24804 write_phy_reg(pi, (core == PHY_CORE_0) ?
24805 0xa6 : 0xa7, state->afectrl[core]);
24806 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24807 0xa5, state->afeoverride[core]);
24810 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24811 (state->mm & 0xff));
24813 if (NREV_IS(pi->pubpi.phy_rev, 7)
24814 || NREV_GE(pi->pubpi.phy_rev, 8))
24815 wlc_phy_rfctrl_override_nphy_rev7(
24816 pi, (0x1 << 7), 0, 0,
24818 NPHY_REV7_RFCTRLOVERRIDE_ID1);
24819 } else {
24820 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
24821 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
24822 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
24824 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
24825 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
24827 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24829 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
24830 state->vga_master[core]);
24831 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24832 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24833 TXFBMIX_G, state->fbmix[core]);
24834 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24835 INTPAG_MASTER,
24836 state->intpa_master[core]);
24837 } else {
24838 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
24839 TXFBMIX_A, state->fbmix[core]);
24840 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
24841 INTPAA_MASTER,
24842 state->intpa_master[core]);
24845 write_phy_reg(pi, (core == PHY_CORE_0) ?
24846 0xa6 : 0xa7, state->afectrl[core]);
24847 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
24848 0xa5, state->afeoverride[core]);
24851 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
24852 (state->mm & 0xff));
24854 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
24858 static void
24859 wlc_phy_a1_nphy(struct brcms_phy *pi, u8 core, u32 winsz, u32 start,
24860 u32 end)
24862 u32 *buf, *src, *dst, sz;
24864 sz = end - start + 1;
24866 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
24867 if (NULL == buf)
24868 return;
24870 src = buf;
24871 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
24873 wlc_phy_table_read_nphy(pi,
24874 (core ==
24875 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
24876 NPHY_TBL_ID_EPSILONTBL1),
24877 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
24879 do {
24880 u32 phy_a1, phy_a2;
24881 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
24883 phy_a1 = end - min(end, (winsz >> 1));
24884 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1,
24885 end + (winsz >> 1));
24886 phy_a3 = phy_a2 - phy_a1 + 1;
24887 phy_a6 = 0;
24888 phy_a7 = 0;
24890 do {
24891 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
24892 &phy_a5);
24893 phy_a6 += phy_a4;
24894 phy_a7 += phy_a5;
24895 } while (phy_a2-- != phy_a1);
24897 phy_a6 /= phy_a3;
24898 phy_a7 /= phy_a3;
24899 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
24900 } while (end-- != start);
24902 wlc_phy_table_write_nphy(pi,
24903 (core ==
24904 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
24905 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
24907 kfree(buf);
24910 static void
24911 wlc_phy_a2_nphy(struct brcms_phy *pi, struct nphy_ipa_txcalgains *txgains,
24912 enum phy_cal_mode cal_mode, u8 core)
24914 u16 phy_a1, phy_a2, phy_a3;
24915 u16 phy_a4, phy_a5;
24916 bool phy_a6;
24917 u8 phy_a7, m[2];
24918 u32 phy_a8 = 0;
24919 struct nphy_txgains phy_a9;
24921 if (NREV_LT(pi->pubpi.phy_rev, 3))
24922 return;
24924 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
24926 phy_a6 = ((cal_mode == CAL_GCTRL)
24927 || (cal_mode == CAL_SOFT)) ? true : false;
24929 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24931 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
24933 if (CHSPEC_IS2G(pi->radio_chanspec))
24934 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24935 (phy_a9.txgm[core] << 12) |
24936 (phy_a9.pga[core] << 8) |
24937 (txgains->gains.pad[core] << 3) |
24938 (phy_a9.ipa[core]));
24939 else
24940 phy_a5 = ((phy_a9.txlpf[core] << 15) |
24941 (phy_a9.txgm[core] << 12) |
24942 (txgains->gains.pga[core] << 8) |
24943 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
24945 wlc_phy_rfctrl_override_1tomany_nphy(
24947 NPHY_REV7_RfctrlOverride_cmd_txgain,
24948 phy_a5, (1 << core), 0);
24950 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24951 if ((pi->pubpi.radiorev <= 4)
24952 || (pi->pubpi.radiorev == 6))
24953 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24954 60 : 79;
24955 else
24956 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ?
24957 45 : 64;
24958 } else {
24959 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
24962 m[phy_a7] = 0;
24963 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
24965 phy_a2 = 63;
24967 if (CHSPEC_IS2G(pi->radio_chanspec)) {
24968 if ((pi->pubpi.radiorev == 4)
24969 || (pi->pubpi.radiorev == 6)) {
24970 phy_a1 = 30;
24971 phy_a3 = 30;
24972 } else {
24973 phy_a1 = 25;
24974 phy_a3 = 25;
24976 } else {
24977 if ((pi->pubpi.radiorev == 5)
24978 || (pi->pubpi.radiorev == 7)
24979 || (pi->pubpi.radiorev == 8)) {
24980 phy_a1 = 25;
24981 phy_a3 = 25;
24982 } else {
24983 phy_a1 = 35;
24984 phy_a3 = 35;
24988 if (cal_mode == CAL_GCTRL) {
24989 if ((pi->pubpi.radiorev == 5)
24990 && (CHSPEC_IS2G(pi->radio_chanspec)))
24991 phy_a1 = 55;
24992 else if (((pi->pubpi.radiorev == 7) &&
24993 (CHSPEC_IS2G(pi->radio_chanspec))) ||
24994 ((pi->pubpi.radiorev == 8) &&
24995 (CHSPEC_IS2G(pi->radio_chanspec))))
24996 phy_a1 = 60;
24997 else
24998 phy_a1 = 63;
25000 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
25002 phy_a1 = 35;
25003 phy_a3 = 35;
25006 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25007 0x29b, (0x1 << 0), (1) << 0);
25009 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25010 0x29b, (0x1 << 0), (0) << 0);
25012 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25013 0x2a4, (0x1 << 13), (1) << 13);
25015 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25016 0x2a4, (0x1 << 13), (0) << 13);
25018 write_phy_reg(pi, 0x2a1, 0x80);
25019 write_phy_reg(pi, 0x2a2, 0x100);
25021 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25022 0x2a4, (0x7 << 4), (11) << 4);
25024 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25025 0x2a4, (0x7 << 8), (11) << 8);
25027 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25028 0x2a4, (0x7 << 0), (0x3) << 0);
25030 write_phy_reg(pi, 0x2e5, 0x20);
25032 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25034 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25036 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25038 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25039 1, ((core == 0) ? 1 : 2), 0,
25040 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25041 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25042 0, ((core == 0) ? 2 : 1), 0,
25043 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25045 write_phy_reg(pi, 0x2be, 1);
25046 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25048 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25049 0, 0x3, 0,
25050 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25052 wlc_phy_table_write_nphy(pi,
25053 (core ==
25054 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25055 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25056 32, &phy_a8);
25058 if (cal_mode != CAL_GCTRL) {
25059 if (CHSPEC_IS5G(pi->radio_chanspec))
25060 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
25063 wlc_phy_rfctrl_override_1tomany_nphy(
25065 NPHY_REV7_RfctrlOverride_cmd_txgain,
25066 phy_a5, (1 << core), 1);
25068 } else {
25070 if (txgains) {
25071 if (txgains->useindex) {
25072 phy_a4 = 15 - ((txgains->index) >> 3);
25073 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25074 if (NREV_GE(pi->pubpi.phy_rev, 6))
25075 phy_a5 = 0x00f7 | (phy_a4 << 8);
25077 else
25078 if (NREV_IS(pi->pubpi.phy_rev, 5))
25079 phy_a5 = 0x10f7 | (phy_a4 << 8);
25080 else
25081 phy_a5 = 0x50f7 | (phy_a4 << 8);
25082 } else {
25083 phy_a5 = 0x70f7 | (phy_a4 << 8);
25085 wlc_phy_rfctrl_override_nphy(pi,
25086 (0x1 << 13),
25087 phy_a5,
25088 (1 << core), 0);
25089 } else {
25090 wlc_phy_rfctrl_override_nphy(pi,
25091 (0x1 << 13),
25092 0x5bf7,
25093 (1 << core), 0);
25097 if (CHSPEC_IS2G(pi->radio_chanspec))
25098 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 45 : 64;
25099 else
25100 m[core] = (pi->bw == WL_CHANSPEC_BW_40) ? 75 : 107;
25102 m[phy_a7] = 0;
25103 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
25105 phy_a2 = 63;
25107 if (cal_mode == CAL_FULL) {
25108 phy_a1 = 25;
25109 phy_a3 = 25;
25110 } else if (cal_mode == CAL_SOFT) {
25111 phy_a1 = 25;
25112 phy_a3 = 25;
25113 } else if (cal_mode == CAL_GCTRL) {
25114 phy_a1 = 63;
25115 phy_a3 = 25;
25116 } else {
25118 phy_a1 = 25;
25119 phy_a3 = 25;
25122 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
25123 0x29b, (0x1 << 0), (1) << 0);
25125 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
25126 0x29b, (0x1 << 0), (0) << 0);
25128 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25129 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25130 0x2a4, (0x1 << 13), (1) << 13);
25132 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25133 0x2a4, (0x1 << 13), (0) << 13);
25135 write_phy_reg(pi, 0x2a1, 0x20);
25136 write_phy_reg(pi, 0x2a2, 0x60);
25138 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25139 0x2a4, (0xf << 4), (9) << 4);
25141 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25142 0x2a4, (0xf << 8), (9) << 8);
25144 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25145 0x2a4, (0xf << 0), (0x2) << 0);
25147 write_phy_reg(pi, 0x2e5, 0x20);
25148 } else {
25149 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25150 0x2a4, (0x1 << 11), (1) << 11);
25152 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
25153 0x2a4, (0x1 << 11), (0) << 11);
25155 write_phy_reg(pi, 0x2a1, 0x80);
25156 write_phy_reg(pi, 0x2a2, 0x600);
25158 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25159 0x2a4, (0x7 << 4), (0) << 4);
25161 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25162 0x2a4, (0x7 << 8), (0) << 8);
25164 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
25165 0x2a4, (0x7 << 0), (0x3) << 0);
25167 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
25171 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
25173 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
25175 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
25177 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
25179 write_phy_reg(pi, 0x2be, 1);
25180 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
25182 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
25184 wlc_phy_table_write_nphy(pi,
25185 (core ==
25186 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
25187 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
25188 32, &phy_a8);
25190 if (cal_mode != CAL_GCTRL)
25191 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
25195 static u8 wlc_phy_a3_nphy(struct brcms_phy *pi, u8 start_gain, u8 core)
25197 int phy_a1;
25198 int phy_a2;
25199 bool phy_a3;
25200 struct nphy_ipa_txcalgains phy_a4;
25201 bool phy_a5 = false;
25202 bool phy_a6 = true;
25203 s32 phy_a7, phy_a8;
25204 u32 phy_a9;
25205 int phy_a10;
25206 bool phy_a11 = false;
25207 int phy_a12;
25208 u8 phy_a13 = 0;
25209 u8 phy_a14;
25210 u8 *phy_a15 = NULL;
25212 phy_a4.useindex = true;
25213 phy_a12 = start_gain;
25215 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25217 phy_a2 = 20;
25218 phy_a1 = 1;
25220 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25221 if (pi->pubpi.radiorev == 5) {
25223 phy_a15 = pad_gain_codes_used_2057rev5;
25224 phy_a13 =
25225 sizeof(pad_gain_codes_used_2057rev5) /
25226 sizeof(pad_gain_codes_used_2057rev5
25227 [0]) - 1;
25229 } else if ((pi->pubpi.radiorev == 7)
25230 || (pi->pubpi.radiorev == 8)) {
25232 phy_a15 = pad_gain_codes_used_2057rev7;
25233 phy_a13 =
25234 sizeof(pad_gain_codes_used_2057rev7) /
25235 sizeof(pad_gain_codes_used_2057rev7
25236 [0]) - 1;
25238 } else {
25240 phy_a15 = pad_all_gain_codes_2057;
25241 phy_a13 = sizeof(pad_all_gain_codes_2057) /
25242 sizeof(pad_all_gain_codes_2057[0]) -
25246 } else {
25248 phy_a15 = pga_all_gain_codes_2057;
25249 phy_a13 = sizeof(pga_all_gain_codes_2057) /
25250 sizeof(pga_all_gain_codes_2057[0]) - 1;
25253 phy_a14 = 0;
25255 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25256 if (CHSPEC_IS2G(pi->radio_chanspec))
25257 phy_a4.gains.pad[core] =
25258 (u16) phy_a15[phy_a12];
25259 else
25260 phy_a4.gains.pga[core] =
25261 (u16) phy_a15[phy_a12];
25263 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25265 wlc_phy_table_read_nphy(pi,
25266 (core ==
25267 PHY_CORE_0 ?
25268 NPHY_TBL_ID_EPSILONTBL0 :
25269 NPHY_TBL_ID_EPSILONTBL1), 1,
25270 63, 32, &phy_a9);
25272 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25274 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25275 (phy_a8 == 4095) || (phy_a8 == -4096));
25277 if (!phy_a6 && (phy_a3 != phy_a5)) {
25278 if (!phy_a3)
25279 phy_a12 -= (u8) phy_a1;
25281 phy_a11 = true;
25282 break;
25285 if (phy_a3)
25286 phy_a12 += (u8) phy_a1;
25287 else
25288 phy_a12 -= (u8) phy_a1;
25290 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
25291 if (phy_a12 < phy_a14)
25292 phy_a12 = phy_a14;
25293 else
25294 phy_a12 = phy_a13;
25296 phy_a11 = true;
25297 break;
25300 phy_a6 = false;
25301 phy_a5 = phy_a3;
25304 } else {
25305 phy_a2 = 10;
25306 phy_a1 = 8;
25307 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
25308 phy_a4.index = (u8) phy_a12;
25309 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
25311 wlc_phy_table_read_nphy(pi,
25312 (core ==
25313 PHY_CORE_0 ?
25314 NPHY_TBL_ID_EPSILONTBL0 :
25315 NPHY_TBL_ID_EPSILONTBL1), 1,
25316 63, 32, &phy_a9);
25318 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
25320 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
25321 (phy_a8 == 4095) || (phy_a8 == -4096));
25323 if (!phy_a6 && (phy_a3 != phy_a5)) {
25324 if (!phy_a3)
25325 phy_a12 -= (u8) phy_a1;
25327 phy_a11 = true;
25328 break;
25331 if (phy_a3)
25332 phy_a12 += (u8) phy_a1;
25333 else
25334 phy_a12 -= (u8) phy_a1;
25336 if ((phy_a12 < 0) || (phy_a12 > 127)) {
25337 if (phy_a12 < 0)
25338 phy_a12 = 0;
25339 else
25340 phy_a12 = 127;
25342 phy_a11 = true;
25343 break;
25346 phy_a6 = false;
25347 phy_a5 = phy_a3;
25352 if (NREV_GE(pi->pubpi.phy_rev, 7))
25353 return (u8) phy_a15[phy_a12];
25354 else
25355 return (u8) phy_a12;
25359 static void wlc_phy_a4(struct brcms_phy *pi, bool full_cal)
25361 struct nphy_ipa_txcalgains phy_b1[2];
25362 struct nphy_papd_restore_state phy_b2;
25363 bool phy_b3;
25364 u8 phy_b4;
25365 u8 phy_b5;
25366 s16 phy_b6, phy_b7, phy_b8;
25367 u16 phy_b9;
25368 s16 phy_b10, phy_b11, phy_b12;
25370 phy_b11 = 0;
25371 phy_b12 = 0;
25372 phy_b7 = 0;
25373 phy_b8 = 0;
25374 phy_b6 = 0;
25376 if (pi->nphy_papd_skip == 1)
25377 return;
25379 phy_b3 = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) &
25380 MCTL_EN_MAC));
25381 if (!phy_b3)
25382 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25384 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25386 pi->nphy_force_papd_cal = false;
25388 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
25389 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
25390 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
25392 pi->nphy_papd_last_cal = pi->sh->now;
25393 pi->nphy_papd_recal_counter++;
25395 phy_b4 = pi->nphy_txpwrctrl;
25396 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25398 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
25399 nphy_papd_scaltbl);
25400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
25401 nphy_papd_scaltbl);
25403 phy_b9 = read_phy_reg(pi, 0x01);
25404 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25406 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25407 s32 i, val = 0;
25408 for (i = 0; i < 64; i++)
25409 wlc_phy_table_write_nphy(pi,
25410 ((phy_b5 ==
25411 PHY_CORE_0) ?
25412 NPHY_TBL_ID_EPSILONTBL0 :
25413 NPHY_TBL_ID_EPSILONTBL1), 1,
25414 i, 32, &val);
25417 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
25419 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
25420 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25421 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
25423 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25424 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25425 if ((pi->pubpi.radiorev == 3)
25426 || (pi->pubpi.radiorev == 4)
25427 || (pi->pubpi.radiorev == 6)) {
25428 pi->nphy_papd_cal_gain_index[phy_b5] =
25430 } else if (pi->pubpi.radiorev == 5) {
25431 pi->nphy_papd_cal_gain_index[phy_b5] =
25433 pi->nphy_papd_cal_gain_index[phy_b5] =
25434 wlc_phy_a3_nphy(
25436 pi->
25437 nphy_papd_cal_gain_index
25438 [phy_b5],
25439 phy_b5);
25441 } else if ((pi->pubpi.radiorev == 7)
25442 || (pi->pubpi.radiorev == 8)) {
25444 pi->nphy_papd_cal_gain_index[phy_b5] =
25446 pi->nphy_papd_cal_gain_index[phy_b5] =
25447 wlc_phy_a3_nphy(
25449 pi->
25450 nphy_papd_cal_gain_index
25451 [phy_b5],
25452 phy_b5);
25456 phy_b1[phy_b5].gains.pad[phy_b5] =
25457 pi->nphy_papd_cal_gain_index[phy_b5];
25459 } else {
25460 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
25461 pi->nphy_papd_cal_gain_index[phy_b5] =
25462 wlc_phy_a3_nphy(
25464 pi->
25465 nphy_papd_cal_gain_index
25466 [phy_b5], phy_b5);
25467 phy_b1[phy_b5].gains.pga[phy_b5] =
25468 pi->nphy_papd_cal_gain_index[phy_b5];
25470 } else {
25471 phy_b1[phy_b5].useindex = true;
25472 phy_b1[phy_b5].index = 16;
25473 phy_b1[phy_b5].index =
25474 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index,
25475 phy_b5);
25477 pi->nphy_papd_cal_gain_index[phy_b5] =
25478 15 - ((phy_b1[phy_b5].index) >> 3);
25481 switch (pi->nphy_papd_cal_type) {
25482 case 0:
25483 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
25484 break;
25485 case 1:
25486 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
25487 break;
25490 if (NREV_GE(pi->pubpi.phy_rev, 7))
25491 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25494 if (NREV_LT(pi->pubpi.phy_rev, 7))
25495 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
25497 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
25498 int eps_offset = 0;
25500 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25501 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25502 if (pi->pubpi.radiorev == 3)
25503 eps_offset = -2;
25504 else if (pi->pubpi.radiorev == 5)
25505 eps_offset = 3;
25506 else
25507 eps_offset = -1;
25508 } else {
25509 eps_offset = 2;
25512 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25513 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
25514 phy_b10 = 0;
25515 if ((pi->pubpi.radiorev == 3) ||
25516 (pi->pubpi.radiorev == 4) ||
25517 (pi->pubpi.radiorev == 6)) {
25518 phy_b12 = -(
25519 nphy_papd_padgain_dlt_2g_2057rev3n4
25520 [phy_b8] + 1) / 2;
25521 phy_b10 = -1;
25522 } else if (pi->pubpi.radiorev == 5) {
25523 phy_b12 = -(
25524 nphy_papd_padgain_dlt_2g_2057rev5
25525 [phy_b8] + 1) / 2;
25526 } else if ((pi->pubpi.radiorev == 7) ||
25527 (pi->pubpi.radiorev == 8)) {
25528 phy_b12 = -(
25529 nphy_papd_padgain_dlt_2g_2057rev7
25530 [phy_b8] + 1) / 2;
25532 } else {
25533 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
25534 if ((pi->pubpi.radiorev == 3) ||
25535 (pi->pubpi.radiorev == 4) ||
25536 (pi->pubpi.radiorev == 6))
25537 phy_b11 =
25538 -(nphy_papd_pgagain_dlt_5g_2057
25539 [phy_b7]
25540 + 1) / 2;
25541 else if ((pi->pubpi.radiorev == 7)
25542 || (pi->pubpi.radiorev == 8))
25543 phy_b11 = -(
25544 nphy_papd_pgagain_dlt_5g_2057rev7
25545 [phy_b7] + 1) / 2;
25547 phy_b10 = -9;
25550 if (CHSPEC_IS2G(pi->radio_chanspec))
25551 phy_b6 =
25552 -60 + 27 + eps_offset + phy_b12 +
25553 phy_b10;
25554 else
25555 phy_b6 =
25556 -60 + 27 + eps_offset + phy_b11 +
25557 phy_b10;
25559 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25560 0x29c, (0x1ff << 7), (phy_b6) << 7);
25562 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25563 } else {
25564 if (NREV_LT(pi->pubpi.phy_rev, 5))
25565 eps_offset = 4;
25566 else
25567 eps_offset = 2;
25569 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
25571 if (CHSPEC_IS2G(pi->radio_chanspec)) {
25572 phy_b11 =
25573 -(nphy_papd_pga_gain_delta_ipa_2g[
25574 phy_b7] +
25575 1) / 2;
25576 phy_b10 = 0;
25577 } else {
25578 phy_b11 =
25579 -(nphy_papd_pga_gain_delta_ipa_5g[
25580 phy_b7] +
25581 1) / 2;
25582 phy_b10 = -9;
25585 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
25587 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
25588 0x29c, (0x1ff << 7), (phy_b6) << 7);
25590 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
25594 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25595 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25597 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25598 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
25600 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
25601 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25602 0x2a4, (0x1 << 13), (0) << 13);
25604 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25605 0x2a4, (0x1 << 13), (0) << 13);
25607 } else {
25608 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
25609 0x2a4, (0x1 << 11), (0) << 11);
25611 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
25612 0x2a4, (0x1 << 11), (0) << 11);
25615 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
25617 write_phy_reg(pi, 0x01, phy_b9);
25619 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
25621 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
25622 if (phy_b4 == PHY_TPC_HW_OFF) {
25623 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25624 (s8) (pi->nphy_txpwrindex[0].
25625 index_internal), false);
25626 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25627 (s8) (pi->nphy_txpwrindex[1].
25628 index_internal), false);
25631 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25633 if (!phy_b3)
25634 wlapi_enable_mac(pi->sh->physhim);
25637 void wlc_phy_cal_perical_nphy_run(struct brcms_phy *pi, u8 caltype)
25639 struct nphy_txgains target_gain;
25640 u8 tx_pwr_ctrl_state;
25641 bool fullcal = true;
25642 bool restore_tx_gain = false;
25643 bool mphase;
25645 if (PHY_MUTED(pi))
25646 return;
25648 if (caltype == PHY_PERICAL_AUTO)
25649 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
25650 else if (caltype == PHY_PERICAL_PARTIAL)
25651 fullcal = false;
25653 if (pi->cal_type_override != PHY_PERICAL_AUTO)
25654 fullcal =
25655 (pi->cal_type_override ==
25656 PHY_PERICAL_FULL) ? true : false;
25658 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
25659 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
25660 wlc_phy_cal_perical_mphase_restart(pi);
25663 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL))
25664 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
25666 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25668 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25670 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
25671 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
25672 pi->nphy_cal_orig_pwr_idx[0] =
25673 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
25674 pi->nphy_cal_orig_pwr_idx[1] =
25675 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
25677 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
25678 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
25679 0x110, 16,
25680 pi->nphy_cal_orig_tx_gain);
25681 } else {
25682 pi->nphy_cal_orig_tx_gain[0] = 0;
25683 pi->nphy_cal_orig_tx_gain[1] = 0;
25686 target_gain = wlc_phy_get_tx_gain_nphy(pi);
25687 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
25688 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
25690 if (pi->antsel_type == ANTSEL_2x3)
25691 wlc_phy_antsel_init((struct brcms_phy_pub *) pi, true);
25693 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
25694 if (!mphase) {
25696 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25697 wlc_phy_precal_txgain_nphy(pi);
25698 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25699 restore_tx_gain = true;
25701 target_gain = pi->nphy_cal_target_gain;
25703 if (0 ==
25704 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal,
25705 mphase)) {
25706 if (PHY_IPA(pi))
25707 wlc_phy_a4(pi, true);
25709 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25710 wlapi_enable_mac(pi->sh->physhim);
25711 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
25712 10000);
25713 wlapi_suspend_mac_and_wait(pi->sh->physhim);
25714 wlc_phyreg_enter((struct brcms_phy_pub *) pi);
25716 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
25717 (pi->first_cal_after_assoc ||
25718 (pi->cal_type_override ==
25719 PHY_PERICAL_FULL)) ? 2 : 0, false)) {
25720 wlc_phy_savecal_nphy(pi);
25722 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25724 pi->nphy_perical_last = pi->sh->now;
25727 if (caltype != PHY_PERICAL_AUTO)
25728 wlc_phy_rssi_cal_nphy(pi);
25730 if (pi->first_cal_after_assoc
25731 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
25732 pi->first_cal_after_assoc = false;
25733 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25734 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25737 if (NREV_GE(pi->pubpi.phy_rev, 3))
25738 wlc_phy_radio205x_vcocal_nphy(pi);
25739 } else {
25740 switch (pi->mphase_cal_phase_id) {
25741 case MPHASE_CAL_STATE_INIT:
25742 pi->nphy_perical_last = pi->sh->now;
25743 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
25745 if (NREV_GE(pi->pubpi.phy_rev, 3))
25746 wlc_phy_precal_txgain_nphy(pi);
25748 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
25749 pi->mphase_cal_phase_id++;
25750 break;
25752 case MPHASE_CAL_STATE_TXPHASE0:
25753 case MPHASE_CAL_STATE_TXPHASE1:
25754 case MPHASE_CAL_STATE_TXPHASE2:
25755 case MPHASE_CAL_STATE_TXPHASE3:
25756 case MPHASE_CAL_STATE_TXPHASE4:
25757 case MPHASE_CAL_STATE_TXPHASE5:
25758 if ((pi->radar_percal_mask & 0x10) != 0)
25759 pi->nphy_rxcal_active = true;
25761 if (wlc_phy_cal_txiqlo_nphy
25762 (pi, pi->nphy_cal_target_gain, fullcal,
25763 true) != 0) {
25765 wlc_phy_cal_perical_mphase_reset(pi);
25766 break;
25769 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
25770 (pi->mphase_cal_phase_id ==
25771 MPHASE_CAL_STATE_TXPHASE4))
25772 pi->mphase_cal_phase_id += 2;
25773 else
25774 pi->mphase_cal_phase_id++;
25775 break;
25777 case MPHASE_CAL_STATE_PAPDCAL:
25778 if ((pi->radar_percal_mask & 0x2) != 0)
25779 pi->nphy_rxcal_active = true;
25781 if (PHY_IPA(pi))
25782 wlc_phy_a4(pi, true);
25784 pi->mphase_cal_phase_id++;
25785 break;
25787 case MPHASE_CAL_STATE_RXCAL:
25788 if ((pi->radar_percal_mask & 0x1) != 0)
25789 pi->nphy_rxcal_active = true;
25790 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
25791 (pi->first_cal_after_assoc ||
25792 (pi->cal_type_override ==
25793 PHY_PERICAL_FULL)) ? 2 : 0,
25794 false) == 0)
25795 wlc_phy_savecal_nphy(pi);
25797 pi->mphase_cal_phase_id++;
25798 break;
25800 case MPHASE_CAL_STATE_RSSICAL:
25801 if ((pi->radar_percal_mask & 0x4) != 0)
25802 pi->nphy_rxcal_active = true;
25803 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
25804 wlc_phy_rssi_cal_nphy(pi);
25806 if (NREV_GE(pi->pubpi.phy_rev, 3))
25807 wlc_phy_radio205x_vcocal_nphy(pi);
25809 restore_tx_gain = true;
25811 if (pi->first_cal_after_assoc)
25812 pi->mphase_cal_phase_id++;
25813 else
25814 wlc_phy_cal_perical_mphase_reset(pi);
25816 break;
25818 case MPHASE_CAL_STATE_IDLETSSI:
25819 if ((pi->radar_percal_mask & 0x8) != 0)
25820 pi->nphy_rxcal_active = true;
25822 if (pi->first_cal_after_assoc) {
25823 pi->first_cal_after_assoc = false;
25824 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
25825 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
25828 wlc_phy_cal_perical_mphase_reset(pi);
25829 break;
25831 default:
25832 wlc_phy_cal_perical_mphase_reset(pi);
25833 break;
25837 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
25838 if (restore_tx_gain) {
25839 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
25841 wlc_phy_txpwr_index_nphy(pi, 1,
25842 pi->
25843 nphy_cal_orig_pwr_idx
25844 [0], false);
25845 wlc_phy_txpwr_index_nphy(pi, 2,
25846 pi->
25847 nphy_cal_orig_pwr_idx
25848 [1], false);
25850 pi->nphy_txpwrindex[0].index = -1;
25851 pi->nphy_txpwrindex[1].index = -1;
25852 } else {
25853 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
25854 (s8) (pi->
25855 nphy_txpwrindex
25856 [0].
25857 index_internal),
25858 false);
25859 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
25860 (s8) (pi->
25861 nphy_txpwrindex
25862 [1].
25863 index_internal),
25864 false);
25869 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
25870 wlc_phyreg_exit((struct brcms_phy_pub *) pi);
25871 wlapi_enable_mac(pi->sh->physhim);
25875 wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
25876 bool fullcal, bool mphase)
25878 u16 val;
25879 u16 tbl_buf[11];
25880 u8 cal_cnt;
25881 u16 cal_cmd;
25882 u8 num_cals, max_cal_cmds;
25883 u16 core_no, cal_type;
25884 u16 diq_start = 0;
25885 u8 phy_bw;
25886 u16 max_val;
25887 u16 tone_freq;
25888 u16 gain_save[2];
25889 u16 cal_gain[2];
25890 struct nphy_iqcal_params cal_params[2];
25891 u32 tbl_len;
25892 void *tbl_ptr;
25893 bool ladder_updated[2];
25894 u8 mphase_cal_lastphase = 0;
25895 int bcmerror = 0;
25896 bool phyhang_avoid_state = false;
25898 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
25899 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
25900 0x1902,
25901 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
25902 0x6407
25905 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
25906 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
25907 0x3200,
25908 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
25909 0x6407
25912 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
25913 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
25914 0x1202,
25915 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
25916 0x4707
25919 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
25920 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
25921 0x2300,
25922 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
25923 0x4707
25926 u16 tbl_tx_iqlo_cal_startcoefs[] = {
25927 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25928 0x0000
25931 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
25932 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
25933 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
25936 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
25937 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
25938 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
25941 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
25942 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25943 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
25944 0x0000
25947 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
25948 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
25949 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
25952 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
25953 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
25954 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
25957 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25959 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25960 phyhang_avoid_state = pi->phyhang_avoid;
25961 pi->phyhang_avoid = false;
25964 if (CHSPEC_IS40(pi->radio_chanspec))
25965 phy_bw = 40;
25966 else
25967 phy_bw = 20;
25969 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25971 for (core_no = 0; core_no <= 1; core_no++) {
25972 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25973 &cal_params[core_no]);
25974 cal_gain[core_no] = cal_params[core_no].cal_gain;
25977 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25979 wlc_phy_txcal_radio_setup_nphy(pi);
25981 wlc_phy_txcal_physetup_nphy(pi);
25983 ladder_updated[0] = ladder_updated[1] = false;
25984 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
25985 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
25986 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
25988 if (phy_bw == 40) {
25989 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
25990 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
25991 } else {
25992 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
25993 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
25995 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
25996 16, tbl_ptr);
25998 if (phy_bw == 40) {
25999 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
26000 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
26001 } else {
26002 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
26003 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
26005 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
26006 16, tbl_ptr);
26009 if (NREV_GE(pi->pubpi.phy_rev, 7))
26010 write_phy_reg(pi, 0xc2, 0x8ad9);
26011 else
26012 write_phy_reg(pi, 0xc2, 0x8aa9);
26014 max_val = 250;
26015 tone_freq = (phy_bw == 20) ? 2500 : 5000;
26017 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26018 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
26019 bcmerror = 0;
26020 } else {
26021 bcmerror =
26022 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0,
26023 false);
26026 if (bcmerror == 0) {
26028 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
26029 tbl_ptr = pi->mphase_txcal_bestcoeffs;
26030 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26031 if (NREV_LT(pi->pubpi.phy_rev, 3))
26032 tbl_len -= 2;
26033 } else {
26034 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
26036 tbl_ptr = pi->nphy_txiqlocal_bestc;
26037 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26038 if (NREV_LT(pi->pubpi.phy_rev, 3))
26039 tbl_len -= 2;
26040 } else {
26042 fullcal = true;
26044 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26045 tbl_ptr =
26046 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
26047 tbl_len = ARRAY_SIZE(
26048 tbl_tx_iqlo_cal_startcoefs_nphyrev3);
26049 } else {
26050 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
26051 tbl_len = ARRAY_SIZE(
26052 tbl_tx_iqlo_cal_startcoefs);
26056 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
26057 16, tbl_ptr);
26059 if (fullcal) {
26060 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26061 ARRAY_SIZE(
26062 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
26063 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
26064 } else {
26065 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26066 ARRAY_SIZE(
26067 tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
26068 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
26071 if (mphase) {
26072 cal_cnt = pi->mphase_txcal_cmdidx;
26073 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds)
26074 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
26075 else
26076 num_cals = max_cal_cmds;
26077 } else {
26078 cal_cnt = 0;
26079 num_cals = max_cal_cmds;
26082 for (; cal_cnt < num_cals; cal_cnt++) {
26084 if (fullcal) {
26085 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26086 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
26087 [cal_cnt] :
26088 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
26089 } else {
26090 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
26091 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[
26092 cal_cnt]
26093 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
26096 core_no = ((cal_cmd & 0x3000) >> 12);
26097 cal_type = ((cal_cmd & 0x0F00) >> 8);
26099 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
26100 (NREV_IS(pi->pubpi.phy_rev, 5) &&
26101 PHY_IPA(pi)
26102 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
26103 if (!ladder_updated[core_no]) {
26104 wlc_phy_update_txcal_ladder_nphy(
26106 core_no);
26107 ladder_updated[core_no] = true;
26111 val =
26112 (cal_params[core_no].
26113 ncorr[cal_type] << 8) | NPHY_N_GCTL;
26114 write_phy_reg(pi, 0xc1, val);
26116 if ((cal_type == 1) || (cal_type == 3)
26117 || (cal_type == 4)) {
26119 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26120 1, 69 + core_no, 16,
26121 tbl_buf);
26123 diq_start = tbl_buf[0];
26125 tbl_buf[0] = 0;
26126 wlc_phy_table_write_nphy(pi,
26127 NPHY_TBL_ID_IQLOCAL, 1,
26128 69 + core_no, 16,
26129 tbl_buf);
26132 write_phy_reg(pi, 0xc0, cal_cmd);
26134 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
26135 20000);
26136 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
26137 "HW error: txiq calib"))
26138 return -EIO;
26140 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26141 tbl_len, 96, 16, tbl_buf);
26142 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26143 tbl_len, 64, 16, tbl_buf);
26145 if ((cal_type == 1) || (cal_type == 3)
26146 || (cal_type == 4)) {
26148 tbl_buf[0] = diq_start;
26154 if (mphase) {
26155 pi->mphase_txcal_cmdidx = num_cals;
26156 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
26157 pi->mphase_txcal_cmdidx = 0;
26160 mphase_cal_lastphase =
26161 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
26162 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
26164 if (!mphase
26165 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
26167 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
26168 16, tbl_buf);
26169 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26170 16, tbl_buf);
26172 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26174 tbl_buf[0] = 0;
26175 tbl_buf[1] = 0;
26176 tbl_buf[2] = 0;
26177 tbl_buf[3] = 0;
26180 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26181 16, tbl_buf);
26183 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
26184 16, tbl_buf);
26185 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26186 16, tbl_buf);
26188 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26189 16, tbl_buf);
26191 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
26192 if (NREV_LT(pi->pubpi.phy_rev, 3))
26193 tbl_len -= 2;
26195 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26196 tbl_len, 96, 16,
26197 pi->nphy_txiqlocal_bestc);
26199 pi->nphy_txiqlocal_coeffsvalid = true;
26200 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
26201 } else {
26202 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
26203 if (NREV_LT(pi->pubpi.phy_rev, 3))
26204 tbl_len -= 2;
26206 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26207 tbl_len, 96, 16,
26208 pi->mphase_txcal_bestcoeffs);
26211 wlc_phy_stopplayback_nphy(pi);
26213 write_phy_reg(pi, 0xc2, 0x0000);
26217 wlc_phy_txcal_phycleanup_nphy(pi);
26219 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26220 gain_save);
26222 wlc_phy_txcal_radio_cleanup_nphy(pi);
26224 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
26225 if (!mphase
26226 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
26227 wlc_phy_tx_iq_war_nphy(pi);
26230 if (NREV_GE(pi->pubpi.phy_rev, 4))
26231 pi->phyhang_avoid = phyhang_avoid_state;
26233 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26235 return bcmerror;
26238 static void wlc_phy_reapply_txcal_coeffs_nphy(struct brcms_phy *pi)
26240 u16 tbl_buf[7];
26242 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
26243 (pi->nphy_txiqlocal_coeffsvalid)) {
26244 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
26245 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
26247 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
26248 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
26249 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
26250 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
26252 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
26253 16, pi->nphy_txiqlocal_bestc);
26255 tbl_buf[0] = 0;
26256 tbl_buf[1] = 0;
26257 tbl_buf[2] = 0;
26258 tbl_buf[3] = 0;
26259 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
26260 16, tbl_buf);
26262 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
26264 &pi->nphy_txiqlocal_bestc[5]);
26266 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
26268 &pi->nphy_txiqlocal_bestc[5]);
26273 void
26274 wlc_phy_rx_iq_coeffs_nphy(struct brcms_phy *pi, u8 write,
26275 struct nphy_iq_comp *pcomp)
26277 if (write) {
26278 write_phy_reg(pi, 0x9a, pcomp->a0);
26279 write_phy_reg(pi, 0x9b, pcomp->b0);
26280 write_phy_reg(pi, 0x9c, pcomp->a1);
26281 write_phy_reg(pi, 0x9d, pcomp->b1);
26282 } else {
26283 pcomp->a0 = read_phy_reg(pi, 0x9a);
26284 pcomp->b0 = read_phy_reg(pi, 0x9b);
26285 pcomp->a1 = read_phy_reg(pi, 0x9c);
26286 pcomp->b1 = read_phy_reg(pi, 0x9d);
26290 void
26291 wlc_phy_rx_iq_est_nphy(struct brcms_phy *pi, struct phy_iq_est *est,
26292 u16 num_samps, u8 wait_time, u8 wait_for_crs)
26294 u8 core;
26296 write_phy_reg(pi, 0x12b, num_samps);
26297 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
26298 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
26299 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
26301 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
26303 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
26304 10000);
26305 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
26306 "HW error: rxiq est"))
26307 return;
26309 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
26310 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26311 est[core].i_pwr =
26312 (read_phy_reg(pi,
26313 NPHY_IqestipwrAccHi(core)) << 16)
26314 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
26315 est[core].q_pwr =
26316 (read_phy_reg(pi,
26317 NPHY_IqestqpwrAccHi(core)) << 16)
26318 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
26319 est[core].iq_prod =
26320 (read_phy_reg(pi,
26321 NPHY_IqestIqAccHi(core)) << 16) |
26322 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
26327 #define CAL_RETRY_CNT 2
26328 static void wlc_phy_calc_rx_iq_comp_nphy(struct brcms_phy *pi, u8 core_mask)
26330 u8 curr_core;
26331 struct phy_iq_est est[PHY_CORE_MAX];
26332 struct nphy_iq_comp old_comp, new_comp;
26333 s32 iq = 0;
26334 u32 ii = 0, qq = 0;
26335 s16 iq_nbits, qq_nbits, brsh, arsh;
26336 s32 a, b, temp;
26337 int bcmerror = 0;
26338 uint cal_retry = 0;
26340 if (core_mask == 0x0)
26341 return;
26343 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
26344 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
26345 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26347 cal_try:
26348 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
26350 new_comp = old_comp;
26352 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
26354 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26355 iq = est[curr_core].iq_prod;
26356 ii = est[curr_core].i_pwr;
26357 qq = est[curr_core].q_pwr;
26358 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26359 iq = est[curr_core].iq_prod;
26360 ii = est[curr_core].i_pwr;
26361 qq = est[curr_core].q_pwr;
26362 } else {
26363 continue;
26366 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
26367 bcmerror = -EBADE;
26368 break;
26371 iq_nbits = wlc_phy_nbits(iq);
26372 qq_nbits = wlc_phy_nbits(qq);
26374 arsh = 10 - (30 - iq_nbits);
26375 if (arsh >= 0) {
26376 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
26377 temp = (s32) (ii >> arsh);
26378 if (temp == 0) {
26379 bcmerror = -EBADE;
26380 break;
26382 } else {
26383 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
26384 temp = (s32) (ii << -arsh);
26385 if (temp == 0) {
26386 bcmerror = -EBADE;
26387 break;
26391 a /= temp;
26393 brsh = qq_nbits - 31 + 20;
26394 if (brsh >= 0) {
26395 b = (qq << (31 - qq_nbits));
26396 temp = (s32) (ii >> brsh);
26397 if (temp == 0) {
26398 bcmerror = -EBADE;
26399 break;
26401 } else {
26402 b = (qq << (31 - qq_nbits));
26403 temp = (s32) (ii << -brsh);
26404 if (temp == 0) {
26405 bcmerror = -EBADE;
26406 break;
26409 b /= temp;
26410 b -= a * a;
26411 b = (s32) int_sqrt((unsigned long) b);
26412 b -= (1 << 10);
26414 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
26415 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26416 new_comp.a0 = (s16) a & 0x3ff;
26417 new_comp.b0 = (s16) b & 0x3ff;
26418 } else {
26420 new_comp.a0 = (s16) b & 0x3ff;
26421 new_comp.b0 = (s16) a & 0x3ff;
26424 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
26425 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26426 new_comp.a1 = (s16) a & 0x3ff;
26427 new_comp.b1 = (s16) b & 0x3ff;
26428 } else {
26430 new_comp.a1 = (s16) b & 0x3ff;
26431 new_comp.b1 = (s16) a & 0x3ff;
26436 if (bcmerror != 0) {
26437 printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
26438 cal_retry);
26440 if (cal_retry < CAL_RETRY_CNT) {
26441 cal_retry++;
26442 goto cal_try;
26445 new_comp = old_comp;
26448 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
26451 static void wlc_phy_rxcal_radio_setup_nphy(struct brcms_phy *pi, u8 rx_core)
26453 u16 offtune_val;
26454 u16 bias_g = 0;
26455 u16 bias_a = 0;
26457 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26458 if (rx_core == PHY_CORE_0) {
26459 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26460 pi->tx_rx_cal_radio_saveregs[0] =
26461 read_radio_reg(pi,
26462 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
26463 pi->tx_rx_cal_radio_saveregs[1] =
26464 read_radio_reg(pi,
26465 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
26467 write_radio_reg(pi,
26468 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26469 0x3);
26470 write_radio_reg(pi,
26471 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26472 0xaf);
26474 } else {
26475 pi->tx_rx_cal_radio_saveregs[0] =
26476 read_radio_reg(pi,
26477 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
26478 pi->tx_rx_cal_radio_saveregs[1] =
26479 read_radio_reg(pi,
26480 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
26482 write_radio_reg(
26484 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26485 0x3);
26486 write_radio_reg(
26488 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26489 0x7f);
26492 } else {
26493 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26494 pi->tx_rx_cal_radio_saveregs[0] =
26495 read_radio_reg(pi,
26496 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
26497 pi->tx_rx_cal_radio_saveregs[1] =
26498 read_radio_reg(pi,
26499 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
26501 write_radio_reg(
26503 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26504 0x3);
26505 write_radio_reg(
26507 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26508 0xaf);
26510 } else {
26511 pi->tx_rx_cal_radio_saveregs[0] =
26512 read_radio_reg(pi,
26513 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
26514 pi->tx_rx_cal_radio_saveregs[1] =
26515 read_radio_reg(pi,
26516 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
26518 write_radio_reg(pi,
26519 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26520 0x3);
26521 write_radio_reg(pi,
26522 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26523 0x7f);
26527 } else {
26528 if (rx_core == PHY_CORE_0) {
26529 pi->tx_rx_cal_radio_saveregs[0] =
26530 read_radio_reg(pi,
26531 RADIO_2056_TX_RXIQCAL_TXMUX |
26532 RADIO_2056_TX1);
26533 pi->tx_rx_cal_radio_saveregs[1] =
26534 read_radio_reg(pi,
26535 RADIO_2056_RX_RXIQCAL_RXMUX |
26536 RADIO_2056_RX0);
26538 if (pi->pubpi.radiorev >= 5) {
26539 pi->tx_rx_cal_radio_saveregs[2] =
26540 read_radio_reg(pi,
26541 RADIO_2056_RX_RXSPARE2 |
26542 RADIO_2056_RX0);
26543 pi->tx_rx_cal_radio_saveregs[3] =
26544 read_radio_reg(pi,
26545 RADIO_2056_TX_TXSPARE2 |
26546 RADIO_2056_TX1);
26549 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26551 if (pi->pubpi.radiorev >= 5) {
26552 pi->tx_rx_cal_radio_saveregs[4] =
26553 read_radio_reg(pi,
26554 RADIO_2056_RX_LNAA_MASTER
26555 | RADIO_2056_RX0);
26557 write_radio_reg(
26559 RADIO_2056_RX_LNAA_MASTER
26560 | RADIO_2056_RX0, 0x40);
26562 write_radio_reg(pi,
26563 RADIO_2056_TX_TXSPARE2 |
26564 RADIO_2056_TX1, bias_a);
26566 write_radio_reg(pi,
26567 RADIO_2056_RX_RXSPARE2 |
26568 RADIO_2056_RX0, bias_a);
26569 } else {
26570 pi->tx_rx_cal_radio_saveregs[4] =
26571 read_radio_reg(pi,
26572 RADIO_2056_RX_LNAA_TUNE
26573 | RADIO_2056_RX0);
26575 offtune_val =
26576 (pi->tx_rx_cal_radio_saveregs
26577 [2] & 0xF0) >> 8;
26578 offtune_val =
26579 (offtune_val <= 0x7) ? 0xF : 0;
26581 mod_radio_reg(pi,
26582 RADIO_2056_RX_LNAA_TUNE |
26583 RADIO_2056_RX0, 0xF0,
26584 (offtune_val << 8));
26587 write_radio_reg(pi,
26588 RADIO_2056_TX_RXIQCAL_TXMUX |
26589 RADIO_2056_TX1, 0x9);
26590 write_radio_reg(pi,
26591 RADIO_2056_RX_RXIQCAL_RXMUX |
26592 RADIO_2056_RX0, 0x9);
26593 } else {
26594 if (pi->pubpi.radiorev >= 5) {
26595 pi->tx_rx_cal_radio_saveregs[4] =
26596 read_radio_reg(
26598 RADIO_2056_RX_LNAG_MASTER
26599 | RADIO_2056_RX0);
26601 write_radio_reg(
26603 RADIO_2056_RX_LNAG_MASTER
26604 | RADIO_2056_RX0, 0x40);
26606 write_radio_reg(
26608 RADIO_2056_TX_TXSPARE2
26610 RADIO_2056_TX1, bias_g);
26612 write_radio_reg(
26614 RADIO_2056_RX_RXSPARE2
26616 RADIO_2056_RX0, bias_g);
26618 } else {
26619 pi->tx_rx_cal_radio_saveregs[4] =
26620 read_radio_reg(
26622 RADIO_2056_RX_LNAG_TUNE
26623 | RADIO_2056_RX0);
26625 offtune_val =
26626 (pi->
26627 tx_rx_cal_radio_saveregs[2] &
26628 0xF0) >> 8;
26629 offtune_val =
26630 (offtune_val <= 0x7) ? 0xF : 0;
26632 mod_radio_reg(pi,
26633 RADIO_2056_RX_LNAG_TUNE |
26634 RADIO_2056_RX0, 0xF0,
26635 (offtune_val << 8));
26638 write_radio_reg(pi,
26639 RADIO_2056_TX_RXIQCAL_TXMUX |
26640 RADIO_2056_TX1, 0x6);
26641 write_radio_reg(pi,
26642 RADIO_2056_RX_RXIQCAL_RXMUX |
26643 RADIO_2056_RX0, 0x6);
26646 } else {
26647 pi->tx_rx_cal_radio_saveregs[0] =
26648 read_radio_reg(pi,
26649 RADIO_2056_TX_RXIQCAL_TXMUX |
26650 RADIO_2056_TX0);
26651 pi->tx_rx_cal_radio_saveregs[1] =
26652 read_radio_reg(pi,
26653 RADIO_2056_RX_RXIQCAL_RXMUX |
26654 RADIO_2056_RX1);
26656 if (pi->pubpi.radiorev >= 5) {
26657 pi->tx_rx_cal_radio_saveregs[2] =
26658 read_radio_reg(pi,
26659 RADIO_2056_RX_RXSPARE2 |
26660 RADIO_2056_RX1);
26661 pi->tx_rx_cal_radio_saveregs[3] =
26662 read_radio_reg(pi,
26663 RADIO_2056_TX_TXSPARE2 |
26664 RADIO_2056_TX0);
26667 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26669 if (pi->pubpi.radiorev >= 5) {
26670 pi->tx_rx_cal_radio_saveregs[4] =
26671 read_radio_reg(
26673 RADIO_2056_RX_LNAA_MASTER
26674 | RADIO_2056_RX1);
26676 write_radio_reg(
26678 RADIO_2056_RX_LNAA_MASTER |
26679 RADIO_2056_RX1, 0x40);
26681 write_radio_reg(
26683 RADIO_2056_TX_TXSPARE2
26685 RADIO_2056_TX0, bias_a);
26687 write_radio_reg(
26689 RADIO_2056_RX_RXSPARE2
26691 RADIO_2056_RX1, bias_a);
26692 } else {
26693 pi->tx_rx_cal_radio_saveregs[4] =
26694 read_radio_reg(
26696 RADIO_2056_RX_LNAA_TUNE
26697 | RADIO_2056_RX1);
26699 offtune_val =
26700 (pi->
26701 tx_rx_cal_radio_saveregs[2] &
26702 0xF0) >> 8;
26703 offtune_val =
26704 (offtune_val <= 0x7) ? 0xF : 0;
26706 mod_radio_reg(pi,
26707 RADIO_2056_RX_LNAA_TUNE |
26708 RADIO_2056_RX1, 0xF0,
26709 (offtune_val << 8));
26712 write_radio_reg(pi,
26713 RADIO_2056_TX_RXIQCAL_TXMUX |
26714 RADIO_2056_TX0, 0x9);
26715 write_radio_reg(pi,
26716 RADIO_2056_RX_RXIQCAL_RXMUX |
26717 RADIO_2056_RX1, 0x9);
26718 } else {
26719 if (pi->pubpi.radiorev >= 5) {
26720 pi->tx_rx_cal_radio_saveregs[4] =
26721 read_radio_reg(
26723 RADIO_2056_RX_LNAG_MASTER
26724 | RADIO_2056_RX1);
26726 write_radio_reg(
26728 RADIO_2056_RX_LNAG_MASTER
26729 | RADIO_2056_RX1, 0x40);
26731 write_radio_reg(
26733 RADIO_2056_TX_TXSPARE2
26735 RADIO_2056_TX0, bias_g);
26737 write_radio_reg(
26739 RADIO_2056_RX_RXSPARE2
26741 RADIO_2056_RX1, bias_g);
26742 } else {
26743 pi->tx_rx_cal_radio_saveregs[4] =
26744 read_radio_reg(
26746 RADIO_2056_RX_LNAG_TUNE
26747 | RADIO_2056_RX1);
26749 offtune_val =
26750 (pi->
26751 tx_rx_cal_radio_saveregs[2] &
26752 0xF0) >> 8;
26753 offtune_val =
26754 (offtune_val <= 0x7) ? 0xF : 0;
26756 mod_radio_reg(pi,
26757 RADIO_2056_RX_LNAG_TUNE |
26758 RADIO_2056_RX1, 0xF0,
26759 (offtune_val << 8));
26762 write_radio_reg(pi,
26763 RADIO_2056_TX_RXIQCAL_TXMUX |
26764 RADIO_2056_TX0, 0x6);
26765 write_radio_reg(pi,
26766 RADIO_2056_RX_RXIQCAL_RXMUX |
26767 RADIO_2056_RX1, 0x6);
26773 static void wlc_phy_rxcal_radio_cleanup_nphy(struct brcms_phy *pi, u8 rx_core)
26775 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26776 if (rx_core == PHY_CORE_0) {
26777 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26778 write_radio_reg(
26780 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
26781 pi->
26782 tx_rx_cal_radio_saveregs[0]);
26783 write_radio_reg(
26785 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
26786 pi->
26787 tx_rx_cal_radio_saveregs[1]);
26789 } else {
26790 write_radio_reg(
26792 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
26793 pi->
26794 tx_rx_cal_radio_saveregs[0]);
26795 write_radio_reg(
26797 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
26798 pi->
26799 tx_rx_cal_radio_saveregs[1]);
26802 } else {
26803 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26804 write_radio_reg(
26806 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
26807 pi->
26808 tx_rx_cal_radio_saveregs[0]);
26809 write_radio_reg(
26811 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
26812 pi->
26813 tx_rx_cal_radio_saveregs[1]);
26815 } else {
26816 write_radio_reg(
26818 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
26819 pi->
26820 tx_rx_cal_radio_saveregs[0]);
26821 write_radio_reg(
26823 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
26824 pi->
26825 tx_rx_cal_radio_saveregs[1]);
26829 } else {
26830 if (rx_core == PHY_CORE_0) {
26831 write_radio_reg(pi,
26832 RADIO_2056_TX_RXIQCAL_TXMUX |
26833 RADIO_2056_TX1,
26834 pi->tx_rx_cal_radio_saveregs[0]);
26836 write_radio_reg(pi,
26837 RADIO_2056_RX_RXIQCAL_RXMUX |
26838 RADIO_2056_RX0,
26839 pi->tx_rx_cal_radio_saveregs[1]);
26841 if (pi->pubpi.radiorev >= 5) {
26842 write_radio_reg(pi,
26843 RADIO_2056_RX_RXSPARE2 |
26844 RADIO_2056_RX0,
26845 pi->
26846 tx_rx_cal_radio_saveregs[2]);
26848 write_radio_reg(pi,
26849 RADIO_2056_TX_TXSPARE2 |
26850 RADIO_2056_TX1,
26851 pi->
26852 tx_rx_cal_radio_saveregs[3]);
26855 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26856 if (pi->pubpi.radiorev >= 5)
26857 write_radio_reg(
26859 RADIO_2056_RX_LNAA_MASTER
26860 | RADIO_2056_RX0,
26861 pi->
26862 tx_rx_cal_radio_saveregs
26863 [4]);
26864 else
26865 write_radio_reg(
26867 RADIO_2056_RX_LNAA_TUNE
26868 | RADIO_2056_RX0,
26869 pi->
26870 tx_rx_cal_radio_saveregs
26871 [4]);
26872 } else {
26873 if (pi->pubpi.radiorev >= 5)
26874 write_radio_reg(
26876 RADIO_2056_RX_LNAG_MASTER
26877 | RADIO_2056_RX0,
26878 pi->
26879 tx_rx_cal_radio_saveregs
26880 [4]);
26881 else
26882 write_radio_reg(
26884 RADIO_2056_RX_LNAG_TUNE
26885 | RADIO_2056_RX0,
26886 pi->
26887 tx_rx_cal_radio_saveregs
26888 [4]);
26891 } else {
26892 write_radio_reg(pi,
26893 RADIO_2056_TX_RXIQCAL_TXMUX |
26894 RADIO_2056_TX0,
26895 pi->tx_rx_cal_radio_saveregs[0]);
26897 write_radio_reg(pi,
26898 RADIO_2056_RX_RXIQCAL_RXMUX |
26899 RADIO_2056_RX1,
26900 pi->tx_rx_cal_radio_saveregs[1]);
26902 if (pi->pubpi.radiorev >= 5) {
26903 write_radio_reg(pi,
26904 RADIO_2056_RX_RXSPARE2 |
26905 RADIO_2056_RX1,
26906 pi->
26907 tx_rx_cal_radio_saveregs[2]);
26909 write_radio_reg(pi,
26910 RADIO_2056_TX_TXSPARE2 |
26911 RADIO_2056_TX0,
26912 pi->
26913 tx_rx_cal_radio_saveregs[3]);
26916 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26917 if (pi->pubpi.radiorev >= 5)
26918 write_radio_reg(
26920 RADIO_2056_RX_LNAA_MASTER
26921 | RADIO_2056_RX1,
26922 pi->
26923 tx_rx_cal_radio_saveregs
26924 [4]);
26925 else
26926 write_radio_reg(
26928 RADIO_2056_RX_LNAA_TUNE
26929 | RADIO_2056_RX1,
26930 pi->
26931 tx_rx_cal_radio_saveregs
26932 [4]);
26933 } else {
26934 if (pi->pubpi.radiorev >= 5)
26935 write_radio_reg(
26937 RADIO_2056_RX_LNAG_MASTER
26938 | RADIO_2056_RX1,
26939 pi->
26940 tx_rx_cal_radio_saveregs
26941 [4]);
26942 else
26943 write_radio_reg(
26945 RADIO_2056_RX_LNAG_TUNE
26946 | RADIO_2056_RX1,
26947 pi->
26948 tx_rx_cal_radio_saveregs
26949 [4]);
26955 static void wlc_phy_rxcal_physetup_nphy(struct brcms_phy *pi, u8 rx_core)
26957 u8 tx_core;
26958 u16 rx_antval, tx_antval;
26960 if (NREV_GE(pi->pubpi.phy_rev, 7))
26961 tx_core = rx_core;
26962 else
26963 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
26965 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
26966 pi->tx_rx_cal_phy_saveregs[1] =
26967 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
26968 pi->tx_rx_cal_phy_saveregs[2] =
26969 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
26970 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
26971 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
26972 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
26973 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
26974 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
26975 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
26976 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26977 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
26978 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
26979 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
26980 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
26983 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
26984 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
26985 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
26986 0x29b, (0x1 << 0), (0) << 0);
26988 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
26989 0x29b, (0x1 << 0), (0) << 0);
26991 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26993 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
26995 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
26997 } else {
26999 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27000 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27001 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
27002 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
27005 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
27006 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27007 (0x1 << 2), (0x1 << 2));
27008 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27009 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27010 (0x1 << 0) | (0x1 << 1), 0);
27011 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27012 0x8f : 0xa5,
27013 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
27016 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
27017 RADIO_MIMO_CORESEL_CORE1 |
27018 RADIO_MIMO_CORESEL_CORE2);
27020 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27021 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
27022 0, 0, 0,
27023 NPHY_REV7_RFCTRLOVERRIDE_ID0);
27024 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
27025 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27026 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
27027 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27028 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
27029 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27030 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
27031 NPHY_REV7_RFCTRLOVERRIDE_ID2);
27032 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
27033 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27034 if (CHSPEC_IS40(pi->radio_chanspec))
27035 wlc_phy_rfctrl_override_nphy_rev7(
27037 (0x1 << 7),
27038 2, 0, 0,
27039 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27040 else
27041 wlc_phy_rfctrl_override_nphy_rev7(
27043 (0x1 << 7),
27044 0, 0, 0,
27045 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27047 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
27048 0, 0, 0,
27049 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27050 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
27051 NPHY_REV7_RFCTRLOVERRIDE_ID1);
27052 } else {
27053 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
27056 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
27058 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27060 wlc_phy_rfctrlintc_override_nphy(pi,
27061 NPHY_RfctrlIntc_override_TRSW,
27062 0x1, rx_core + 1);
27063 } else {
27065 if (rx_core == PHY_CORE_0) {
27066 rx_antval = 0x1;
27067 tx_antval = 0x8;
27068 } else {
27069 rx_antval = 0x4;
27070 tx_antval = 0x2;
27073 wlc_phy_rfctrlintc_override_nphy(pi,
27074 NPHY_RfctrlIntc_override_TRSW,
27075 rx_antval, rx_core + 1);
27076 wlc_phy_rfctrlintc_override_nphy(pi,
27077 NPHY_RfctrlIntc_override_TRSW,
27078 tx_antval, tx_core + 1);
27082 static void wlc_phy_rxcal_phycleanup_nphy(struct brcms_phy *pi, u8 rx_core)
27085 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
27086 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
27087 pi->tx_rx_cal_phy_saveregs[1]);
27088 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
27089 pi->tx_rx_cal_phy_saveregs[2]);
27090 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
27091 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
27093 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
27094 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
27095 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
27096 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
27097 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27098 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
27099 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
27100 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
27101 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
27104 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
27105 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
27108 static void
27109 wlc_phy_rxcal_gainctrl_nphy_rev5(struct brcms_phy *pi, u8 rx_core,
27110 u16 *rxgain, u8 cal_type)
27113 u16 num_samps;
27114 struct phy_iq_est est[PHY_CORE_MAX];
27115 u8 tx_core;
27116 struct nphy_iq_comp save_comp, zero_comp;
27117 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0,
27118 thresh_pwr = 10000;
27119 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
27120 bool gainctrl_done = false;
27121 u8 mix_tia_gain = 3;
27122 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
27123 s8 curr_gaintbl_index = 3;
27124 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
27125 const struct nphy_ipa_txrxgain *nphy_rxcal_gaintbl;
27126 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
27127 int fine_gain_idx;
27128 s8 txpwrindex;
27129 u16 nphy_rxcal_txgain[2];
27131 if (NREV_GE(pi->pubpi.phy_rev, 7))
27132 tx_core = rx_core;
27133 else
27134 tx_core = 1 - rx_core;
27136 num_samps = 1024;
27137 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
27139 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
27140 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
27141 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
27143 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27144 if (NREV_GE(pi->pubpi.phy_rev, 7))
27145 mix_tia_gain = 3;
27146 else if (NREV_GE(pi->pubpi.phy_rev, 4))
27147 mix_tia_gain = 4;
27148 else
27149 mix_tia_gain = 6;
27150 if (NREV_GE(pi->pubpi.phy_rev, 7))
27151 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
27152 else
27153 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
27154 } else {
27155 if (NREV_GE(pi->pubpi.phy_rev, 7))
27156 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
27157 else
27158 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
27161 do {
27163 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
27164 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
27165 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
27166 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
27167 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
27168 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
27169 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
27171 if (NREV_GE(pi->pubpi.phy_rev, 7))
27172 wlc_phy_rfctrl_override_1tomany_nphy(
27174 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27175 ((lpf_biq1 << 12) |
27176 (lpf_biq0 << 8) |
27177 (mix_tia_gain << 4) | (lna2 << 2)
27178 | lna1), 0x3, 0);
27179 else
27180 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27181 ((hpvga << 12) |
27182 (lpf_biq1 << 10) |
27183 (lpf_biq0 << 8) |
27184 (mix_tia_gain << 4) |
27185 (lna2 << 2) | lna1), 0x3,
27188 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
27190 if (txpwrindex == -1) {
27191 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
27192 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
27193 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
27194 2, 0x110, 16,
27195 nphy_rxcal_txgain);
27196 } else {
27197 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
27198 false);
27201 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
27202 NPHY_RXCAL_TONEFREQ_40MHz :
27203 NPHY_RXCAL_TONEFREQ_20MHz,
27204 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
27206 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27207 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
27208 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
27209 curr_pwr = i_pwr + q_pwr;
27211 switch (gainctrl_dirn) {
27212 case NPHY_RXCAL_GAIN_INIT:
27213 if (curr_pwr > thresh_pwr) {
27214 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
27215 prev_gaintbl_index = curr_gaintbl_index;
27216 curr_gaintbl_index--;
27217 } else {
27218 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
27219 prev_gaintbl_index = curr_gaintbl_index;
27220 curr_gaintbl_index++;
27222 break;
27224 case NPHY_RXCAL_GAIN_UP:
27225 if (curr_pwr > thresh_pwr) {
27226 gainctrl_done = true;
27227 optim_pwr = prev_pwr;
27228 optim_gaintbl_index = prev_gaintbl_index;
27229 } else {
27230 prev_gaintbl_index = curr_gaintbl_index;
27231 curr_gaintbl_index++;
27233 break;
27235 case NPHY_RXCAL_GAIN_DOWN:
27236 if (curr_pwr > thresh_pwr) {
27237 prev_gaintbl_index = curr_gaintbl_index;
27238 curr_gaintbl_index--;
27239 } else {
27240 gainctrl_done = true;
27241 optim_pwr = curr_pwr;
27242 optim_gaintbl_index = curr_gaintbl_index;
27244 break;
27246 default:
27247 break;
27250 if ((curr_gaintbl_index < 0) ||
27251 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
27252 gainctrl_done = true;
27253 optim_pwr = curr_pwr;
27254 optim_gaintbl_index = prev_gaintbl_index;
27255 } else {
27256 prev_pwr = curr_pwr;
27259 wlc_phy_stopplayback_nphy(pi);
27260 } while (!gainctrl_done);
27262 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
27263 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
27264 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
27265 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
27266 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
27267 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
27269 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
27270 delta_pwr = desired_log2_pwr - actual_log2_pwr;
27272 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27273 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
27275 if (fine_gain_idx + (int)lpf_biq0 > 10)
27276 lpf_biq1 = 10 - lpf_biq0;
27277 else
27278 lpf_biq1 = (u16) max(fine_gain_idx, 0);
27280 wlc_phy_rfctrl_override_1tomany_nphy(
27282 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27283 ((lpf_biq1 << 12) |
27284 (lpf_biq0 << 8) |
27285 (mix_tia_gain << 4) |
27286 (lna2 << 2) | lna1), 0x3,
27288 } else {
27289 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
27290 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
27291 ((hpvga << 12) |
27292 (lpf_biq1 << 10) |
27293 (lpf_biq0 << 8) |
27294 (mix_tia_gain << 4) |
27295 (lna2 << 2) |
27296 lna1), 0x3, 0);
27299 if (rxgain != NULL) {
27300 *rxgain++ = lna1;
27301 *rxgain++ = lna2;
27302 *rxgain++ = mix_tia_gain;
27303 *rxgain++ = lpf_biq0;
27304 *rxgain++ = lpf_biq1;
27305 *rxgain = hpvga;
27308 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
27311 static void
27312 wlc_phy_rxcal_gainctrl_nphy(struct brcms_phy *pi, u8 rx_core, u16 *rxgain,
27313 u8 cal_type)
27315 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
27318 static u8
27319 wlc_phy_rc_sweep_nphy(struct brcms_phy *pi, u8 core_idx, u8 loopback_type)
27321 u32 target_bws[2] = { 9500, 21000 };
27322 u32 ref_tones[2] = { 3000, 6000 };
27323 u32 target_bw, ref_tone;
27325 u32 target_pwr_ratios[2] = { 28606, 18468 };
27326 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
27328 u16 start_rccal_ovr_val = 128;
27329 u16 txlpf_rccal_lpc_ovr_val = 128;
27330 u16 rxlpf_rccal_hpc_ovr_val = 159;
27332 u16 orig_txlpf_rccal_lpc_ovr_val;
27333 u16 orig_rxlpf_rccal_hpc_ovr_val;
27334 u16 radio_addr_offset_rx;
27335 u16 radio_addr_offset_tx;
27336 u16 orig_dcBypass;
27337 u16 orig_RxStrnFilt40Num[6];
27338 u16 orig_RxStrnFilt40Den[4];
27339 u16 orig_rfctrloverride[2];
27340 u16 orig_rfctrlauxreg[2];
27341 u16 orig_rfctrlrssiothers;
27342 u16 tx_lpf_bw = 4;
27344 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
27345 u16 lpf_hpc = 7, hpvga_hpc = 7;
27347 s8 rccal_stepsize;
27348 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
27349 u32 ref_iq_vals = 0, target_iq_vals = 0;
27350 u16 num_samps, log_num_samps = 10;
27351 struct phy_iq_est est[PHY_CORE_MAX];
27353 if (NREV_GE(pi->pubpi.phy_rev, 7))
27354 return 0;
27356 num_samps = (1 << log_num_samps);
27358 if (CHSPEC_IS40(pi->radio_chanspec)) {
27359 target_bw = target_bws[1];
27360 target_pwr_ratio = target_pwr_ratios[1];
27361 ref_tone = ref_tones[1];
27362 rx_lpf_bw = rx_lpf_bws[1];
27363 } else {
27364 target_bw = target_bws[0];
27365 target_pwr_ratio = target_pwr_ratios[0];
27366 ref_tone = ref_tones[0];
27367 rx_lpf_bw = rx_lpf_bws[0];
27370 if (core_idx == 0) {
27371 radio_addr_offset_rx = RADIO_2056_RX0;
27372 radio_addr_offset_tx =
27373 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
27374 } else {
27375 radio_addr_offset_rx = RADIO_2056_RX1;
27376 radio_addr_offset_tx =
27377 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
27380 orig_txlpf_rccal_lpc_ovr_val =
27381 read_radio_reg(pi,
27382 (RADIO_2056_TX_TXLPF_RCCAL |
27383 radio_addr_offset_tx));
27384 orig_rxlpf_rccal_hpc_ovr_val =
27385 read_radio_reg(pi,
27386 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27387 radio_addr_offset_rx));
27389 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
27391 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
27392 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
27393 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
27394 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
27395 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
27396 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
27397 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
27398 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
27399 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
27400 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
27402 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
27403 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
27404 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
27405 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
27406 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
27408 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27409 txlpf_rccal_lpc_ovr_val);
27411 write_radio_reg(pi,
27412 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27413 rxlpf_rccal_hpc_ovr_val);
27415 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
27417 write_phy_reg(pi, 0x267, 0x02d4);
27418 write_phy_reg(pi, 0x268, 0x0000);
27419 write_phy_reg(pi, 0x269, 0x0000);
27420 write_phy_reg(pi, 0x26a, 0x0000);
27421 write_phy_reg(pi, 0x26b, 0x0000);
27422 write_phy_reg(pi, 0x26c, 0x02d4);
27423 write_phy_reg(pi, 0x26d, 0x0000);
27424 write_phy_reg(pi, 0x26e, 0x0000);
27425 write_phy_reg(pi, 0x26f, 0x0000);
27426 write_phy_reg(pi, 0x270, 0x0000);
27428 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
27429 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
27430 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
27431 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
27433 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
27434 (0x7 << 10), (tx_lpf_bw << 10));
27435 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27436 (0x7 << 0), (hpvga_hpc << 0));
27437 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
27438 (0x7 << 4), (lpf_hpc << 4));
27439 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
27440 (0x7 << 8), (rx_lpf_bw << 8));
27442 rccal_stepsize = 16;
27443 rccal_val = start_rccal_ovr_val + rccal_stepsize;
27445 while (rccal_stepsize >= 0) {
27446 write_radio_reg(pi,
27447 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27448 radio_addr_offset_rx), rccal_val);
27450 if (rccal_stepsize == 16) {
27452 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
27453 0, 1, false);
27454 udelay(2);
27456 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27458 if (core_idx == 0)
27459 ref_iq_vals =
27460 max_t(u32, (est[0].i_pwr +
27461 est[0].q_pwr) >>
27462 (log_num_samps + 1),
27464 else
27465 ref_iq_vals =
27466 max_t(u32, (est[1].i_pwr +
27467 est[1].q_pwr) >>
27468 (log_num_samps + 1),
27471 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
27472 0, 1, false);
27473 udelay(2);
27476 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
27478 if (core_idx == 0)
27479 target_iq_vals = (est[0].i_pwr + est[0].q_pwr) >>
27480 (log_num_samps + 1);
27481 else
27482 target_iq_vals =
27483 (est[1].i_pwr +
27484 est[1].q_pwr) >> (log_num_samps + 1);
27486 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
27488 if (rccal_stepsize == 0)
27489 rccal_stepsize--;
27490 else if (rccal_stepsize == 1) {
27491 last_rccal_val = rccal_val;
27492 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
27493 last_pwr_ratio = pwr_ratio;
27494 rccal_stepsize--;
27495 } else {
27496 rccal_stepsize = (rccal_stepsize >> 1);
27497 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
27498 rccal_stepsize : (-rccal_stepsize));
27501 if (rccal_stepsize == -1) {
27502 best_rccal_val =
27503 (abs((int)last_pwr_ratio -
27504 (int)target_pwr_ratio) <
27505 abs((int)pwr_ratio -
27506 (int)target_pwr_ratio)) ? last_rccal_val :
27507 rccal_val;
27509 if (CHSPEC_IS40(pi->radio_chanspec)) {
27510 if ((best_rccal_val > 140)
27511 || (best_rccal_val < 135))
27512 best_rccal_val = 138;
27513 } else {
27514 if ((best_rccal_val > 142)
27515 || (best_rccal_val < 137))
27516 best_rccal_val = 140;
27519 write_radio_reg(pi,
27520 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27521 radio_addr_offset_rx), best_rccal_val);
27525 wlc_phy_stopplayback_nphy(pi);
27527 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
27528 orig_txlpf_rccal_lpc_ovr_val);
27529 write_radio_reg(pi,
27530 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
27531 orig_rxlpf_rccal_hpc_ovr_val);
27533 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
27535 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
27536 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
27537 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
27538 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
27539 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
27540 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
27541 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
27542 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
27543 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
27544 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
27546 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
27547 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
27548 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
27549 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
27550 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
27552 pi->nphy_anarxlpf_adjusted = false;
27554 return best_rccal_val - 0x80;
27557 #define WAIT_FOR_SCOPE 4000
27558 static int wlc_phy_cal_rxiq_nphy_rev3(struct brcms_phy *pi,
27559 struct nphy_txgains target_gain,
27560 u8 cal_type, bool debug)
27562 u16 orig_BBConfig;
27563 u8 core_no, rx_core;
27564 u8 best_rccal[2];
27565 u16 gain_save[2];
27566 u16 cal_gain[2];
27567 struct nphy_iqcal_params cal_params[2];
27568 u8 rxcore_state;
27569 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
27570 s8 txlpf_idac;
27571 bool phyhang_avoid_state = false;
27572 bool skip_rxiqcal = false;
27574 orig_BBConfig = read_phy_reg(pi, 0x01);
27575 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27577 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27579 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
27580 phyhang_avoid_state = pi->phyhang_avoid;
27581 pi->phyhang_avoid = false;
27584 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27586 for (core_no = 0; core_no <= 1; core_no++) {
27587 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27588 &cal_params[core_no]);
27589 cal_gain[core_no] = cal_params[core_no].cal_gain;
27592 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27594 rxcore_state = wlc_phy_rxcore_getstate_nphy(
27595 (struct brcms_phy_pub *) pi);
27597 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27599 skip_rxiqcal =
27600 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
27602 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
27604 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
27606 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
27608 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
27610 wlc_phy_tx_tone_nphy(pi,
27611 (CHSPEC_IS40(
27612 pi->radio_chanspec)) ?
27613 NPHY_RXCAL_TONEFREQ_40MHz :
27614 NPHY_RXCAL_TONEFREQ_20MHz,
27615 NPHY_RXCAL_TONEAMP, 0, cal_type,
27616 false);
27618 if (debug)
27619 mdelay(WAIT_FOR_SCOPE);
27621 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
27622 wlc_phy_stopplayback_nphy(pi);
27625 if (((cal_type == 1) || (cal_type == 2))
27626 && NREV_LT(pi->pubpi.phy_rev, 7)) {
27628 if (rx_core == PHY_CORE_1) {
27630 if (rxcore_state == 1)
27631 wlc_phy_rxcore_setstate_nphy(
27632 (struct brcms_phy_pub *) pi, 3);
27634 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
27637 best_rccal[rx_core] =
27638 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
27639 pi->nphy_rccal_value = best_rccal[rx_core];
27641 if (rxcore_state == 1)
27642 wlc_phy_rxcore_setstate_nphy(
27643 (struct brcms_phy_pub *) pi,
27644 rxcore_state);
27648 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
27650 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
27651 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27654 if ((cal_type == 1) || (cal_type == 2)) {
27656 best_rccal[0] = best_rccal[1];
27657 write_radio_reg(pi,
27658 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
27659 RADIO_2056_RX0), (best_rccal[0] | 0x80));
27661 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
27662 rxlpf_rccal_hpc =
27663 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
27664 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
27666 if (PHY_IPA(pi)) {
27667 txlpf_rccal_lpc +=
27668 (pi->bw == WL_CHANSPEC_BW_40) ? 24 : 12;
27669 txlpf_idac = (pi->bw == WL_CHANSPEC_BW_40) ?
27670 0x0e : 0x13;
27671 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
27672 TXLPF_IDAC_4, txlpf_idac);
27675 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31),
27677 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31),
27680 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
27681 ((rx_core ==
27682 PHY_CORE_0) ? RADIO_2056_RX0 :
27683 RADIO_2056_RX1)),
27684 (rxlpf_rccal_hpc | 0x80));
27686 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
27687 ((rx_core ==
27688 PHY_CORE_0) ? RADIO_2056_TX0 :
27689 RADIO_2056_TX1)),
27690 (txlpf_rccal_lpc | 0x80));
27694 write_phy_reg(pi, 0x01, orig_BBConfig);
27696 wlc_phy_resetcca_nphy(pi);
27698 if (NREV_GE(pi->pubpi.phy_rev, 7))
27699 wlc_phy_rfctrl_override_1tomany_nphy(
27701 NPHY_REV7_RfctrlOverride_cmd_rxgain,
27702 0, 0x3, 1);
27703 else
27704 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
27706 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27708 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27709 gain_save);
27711 if (NREV_GE(pi->pubpi.phy_rev, 4))
27712 pi->phyhang_avoid = phyhang_avoid_state;
27714 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27716 return 0;
27719 static int
27720 wlc_phy_cal_rxiq_nphy_rev2(struct brcms_phy *pi,
27721 struct nphy_txgains target_gain, bool debug)
27723 struct phy_iq_est est[PHY_CORE_MAX];
27724 u8 core_num, rx_core, tx_core;
27725 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
27726 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
27727 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
27728 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
27729 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
27730 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
27731 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
27732 u16 num_samps;
27733 u32 i_pwr, q_pwr, tot_pwr[3];
27734 u8 gain_pass, use_hpf_num;
27735 u16 mask, val1, val2;
27736 u16 core_no;
27737 u16 gain_save[2];
27738 u16 cal_gain[2];
27739 struct nphy_iqcal_params cal_params[2];
27740 u8 phy_bw;
27741 int bcmerror = 0;
27742 bool first_playtone = true;
27744 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27746 if (NREV_LT(pi->pubpi.phy_rev, 2))
27747 wlc_phy_reapply_txcal_coeffs_nphy(pi);
27749 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
27751 for (core_no = 0; core_no <= 1; core_no++) {
27752 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
27753 &cal_params[core_no]);
27754 cal_gain[core_no] = cal_params[core_no].cal_gain;
27757 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
27759 num_samps = 1024;
27760 desired_log2_pwr = 13;
27762 for (core_num = 0; core_num < 2; core_num++) {
27764 rx_core = core_num;
27765 tx_core = 1 - core_num;
27767 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
27768 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27769 0xa6 : 0xa7);
27770 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
27771 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
27772 0x91 : 0x92);
27773 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
27774 0x91 : 0x92);
27776 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
27777 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
27779 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
27780 ((0x1 << 1) | (0x1 << 2)));
27781 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
27783 if (((pi->nphy_rxcalparams) & 0xff000000))
27784 write_phy_reg(pi,
27785 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27786 (CHSPEC_IS5G(pi->radio_chanspec) ?
27787 0x140 : 0x110));
27788 else
27789 write_phy_reg(pi,
27790 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
27791 (CHSPEC_IS5G(pi->radio_chanspec) ?
27792 0x180 : 0x120));
27794 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
27795 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
27796 0x114));
27798 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
27799 if (rx_core == PHY_CORE_0) {
27800 val1 = RADIO_2055_COUPLE_RX_MASK;
27801 val2 = RADIO_2055_COUPLE_TX_MASK;
27802 } else {
27803 val1 = RADIO_2055_COUPLE_TX_MASK;
27804 val2 = RADIO_2055_COUPLE_RX_MASK;
27807 if ((pi->nphy_rxcalparams & 0x10000)) {
27808 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
27809 val1);
27810 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
27811 val2);
27814 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
27816 if (debug)
27817 mdelay(WAIT_FOR_SCOPE);
27819 if (gain_pass < 3) {
27820 curr_lna = lna_vals[gain_pass];
27821 curr_hpf1 = hpf1_vals[gain_pass];
27822 curr_hpf2 = hpf2_vals[gain_pass];
27823 } else {
27825 if (tot_pwr[1] > 10000) {
27826 curr_lna = lna_vals[2];
27827 curr_hpf1 = hpf1_vals[2];
27828 curr_hpf2 = hpf2_vals[2];
27829 use_hpf_num = 1;
27830 curr_hpf = curr_hpf1;
27831 actual_log2_pwr =
27832 wlc_phy_nbits(tot_pwr[2]);
27833 } else {
27834 if (tot_pwr[0] > 10000) {
27835 curr_lna = lna_vals[1];
27836 curr_hpf1 = hpf1_vals[1];
27837 curr_hpf2 = hpf2_vals[1];
27838 use_hpf_num = 1;
27839 curr_hpf = curr_hpf1;
27840 actual_log2_pwr =
27841 wlc_phy_nbits(
27842 tot_pwr[1]);
27843 } else {
27844 curr_lna = lna_vals[0];
27845 curr_hpf1 = hpf1_vals[0];
27846 curr_hpf2 = hpf2_vals[0];
27847 use_hpf_num = 2;
27848 curr_hpf = curr_hpf2;
27849 actual_log2_pwr =
27850 wlc_phy_nbits(
27851 tot_pwr[0]);
27855 hpf_change = desired_log2_pwr - actual_log2_pwr;
27856 curr_hpf += hpf_change;
27857 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
27858 if (use_hpf_num == 1)
27859 curr_hpf1 = curr_hpf;
27860 else
27861 curr_hpf2 = curr_hpf;
27864 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
27865 ((curr_hpf2 << 8) |
27866 (curr_hpf1 << 4) |
27867 (curr_lna << 2)), 0x3, 0);
27868 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27870 wlc_phy_stopplayback_nphy(pi);
27872 if (first_playtone) {
27873 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
27874 (u16) (pi->nphy_rxcalparams &
27875 0xffff), 0, 0, true);
27876 first_playtone = false;
27877 } else {
27878 phy_bw = (CHSPEC_IS40(pi->radio_chanspec)) ?
27879 40 : 20;
27880 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
27881 0, 0, 0, true);
27884 if (bcmerror == 0) {
27885 if (gain_pass < 3) {
27887 wlc_phy_rx_iq_est_nphy(pi, est,
27888 num_samps, 32,
27890 i_pwr = (est[rx_core].i_pwr +
27891 num_samps / 2) / num_samps;
27892 q_pwr = (est[rx_core].q_pwr +
27893 num_samps / 2) / num_samps;
27894 tot_pwr[gain_pass] = i_pwr + q_pwr;
27895 } else {
27897 wlc_phy_calc_rx_iq_comp_nphy(pi,
27898 (1 <<
27899 rx_core));
27902 wlc_phy_stopplayback_nphy(pi);
27905 if (bcmerror != 0)
27906 break;
27909 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
27910 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
27912 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
27913 0x92, orig_RfctrlIntcTx);
27914 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
27915 0x92, orig_RfctrlIntcRx);
27916 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
27917 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
27918 0xa7, orig_AfectrlCore);
27919 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
27921 if (bcmerror != 0)
27922 break;
27925 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
27926 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
27928 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
27929 gain_save);
27931 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27933 return bcmerror;
27937 wlc_phy_cal_rxiq_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,
27938 u8 cal_type, bool debug)
27940 if (NREV_GE(pi->pubpi.phy_rev, 7))
27941 cal_type = 0;
27943 if (NREV_GE(pi->pubpi.phy_rev, 3))
27944 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
27945 debug);
27946 else
27947 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
27950 void wlc_phy_txpwr_fixpower_nphy(struct brcms_phy *pi)
27952 uint core;
27953 u32 txgain;
27954 u16 rad_gain, dac_gain, bbmult, m1m2;
27955 u8 txpi[2], chan_freq_range;
27956 s32 rfpwr_offset;
27958 if (pi->phyhang_avoid)
27959 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27961 if (pi->sh->sromrev < 4) {
27962 txpi[0] = txpi[1] = 72;
27963 } else {
27965 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27966 switch (chan_freq_range) {
27967 case WL_CHAN_FREQ_RANGE_2G:
27968 case WL_CHAN_FREQ_RANGE_5GL:
27969 case WL_CHAN_FREQ_RANGE_5GM:
27970 case WL_CHAN_FREQ_RANGE_5GH:
27971 txpi[0] = 0;
27972 txpi[1] = 0;
27973 break;
27974 default:
27975 txpi[0] = txpi[1] = 91;
27976 break;
27980 if (NREV_GE(pi->pubpi.phy_rev, 7))
27981 txpi[0] = txpi[1] = 30;
27982 else if (NREV_GE(pi->pubpi.phy_rev, 3))
27983 txpi[0] = txpi[1] = 40;
27985 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27987 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27988 (txpi[1] < 40) || (txpi[1] > 100))
27989 txpi[0] = txpi[1] = 91;
27992 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27993 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27994 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27995 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27997 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27998 uint phyrev = pi->pubpi.phy_rev;
28000 if (NREV_GE(phyrev, 3)) {
28001 if (PHY_IPA(pi)) {
28002 u32 *tx_gaintbl =
28003 wlc_phy_get_ipa_gaintbl_nphy(pi);
28004 txgain = tx_gaintbl[txpi[core]];
28005 } else {
28006 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28007 if (NREV_IS(phyrev, 3)) {
28008 txgain =
28009 nphy_tpc_5GHz_txgain_rev3
28010 [txpi[core]];
28011 } else if (NREV_IS(phyrev, 4)) {
28012 txgain = (
28013 pi->srom_fem5g.extpagain ==
28014 3) ?
28015 nphy_tpc_5GHz_txgain_HiPwrEPA
28016 [txpi[core]] :
28017 nphy_tpc_5GHz_txgain_rev4
28018 [txpi[core]];
28019 } else {
28020 txgain =
28021 nphy_tpc_5GHz_txgain_rev5
28022 [txpi[core]];
28024 } else {
28025 if (NREV_GE(phyrev, 5) &&
28026 (pi->srom_fem2g.extpagain == 3)) {
28027 txgain =
28028 nphy_tpc_txgain_HiPwrEPA
28029 [txpi[core]];
28030 } else {
28031 txgain = nphy_tpc_txgain_rev3
28032 [txpi[core]];
28036 } else {
28037 txgain = nphy_tpc_txgain[txpi[core]];
28040 if (NREV_GE(phyrev, 3))
28041 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
28042 else
28043 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
28045 if (NREV_GE(phyrev, 7))
28046 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
28047 else
28048 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28050 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28052 if (NREV_GE(phyrev, 3))
28053 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28054 0xa5), (0x1 << 8), (0x1 << 8));
28055 else
28056 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28058 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
28060 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28061 &rad_gain);
28063 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28064 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28065 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
28066 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28068 if (PHY_IPA(pi)) {
28069 wlc_phy_table_read_nphy(pi,
28070 (core ==
28071 PHY_CORE_0 ?
28072 NPHY_TBL_ID_CORE1TXPWRCTL :
28073 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
28074 576 + txpi[core], 32,
28075 &rfpwr_offset);
28077 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28078 0x29b, (0x1ff << 4),
28079 ((s16) rfpwr_offset) << 4);
28081 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28082 0x29b, (0x1 << 2), (1) << 2);
28087 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
28089 if (pi->phyhang_avoid)
28090 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28093 static void
28094 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
28095 u8 tmp_max_pwr, u8 rate_start,
28096 u8 rate_end)
28098 u8 rate;
28099 u8 word_num, nibble_num;
28100 u8 tmp_nibble;
28102 for (rate = rate_start; rate <= rate_end; rate++) {
28103 word_num = (rate - rate_start) >> 2;
28104 nibble_num = (rate - rate_start) & 0x3;
28105 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
28107 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
28111 static void
28112 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
28113 u8 rate_start, u8 rate_end)
28115 u8 rate;
28117 for (rate = rate_start; rate <= rate_end; rate++)
28118 srom_max[rate] -= 2 * pwr_offset;
28121 void
28122 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
28123 u8 rate_mcs_end, u8 rate_ofdm_start)
28125 u8 rate1, rate2;
28127 rate2 = rate_ofdm_start;
28128 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
28129 power[rate1] = power[rate2];
28130 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
28132 power[rate_mcs_end] = power[rate_mcs_end - 1];
28135 void
28136 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
28137 u8 rate_ofdm_end, u8 rate_mcs_start)
28139 u8 rate1, rate2;
28141 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
28142 rate1 <= rate_ofdm_end; rate1++, rate2++) {
28143 power[rate1] = power[rate2];
28144 if (rate1 == rate_ofdm_start)
28145 power[++rate1] = power[rate2];
28149 void wlc_phy_txpwr_apply_nphy(struct brcms_phy *pi)
28151 uint rate1, rate2, band_num;
28152 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
28153 u8 tmp_max_pwr = 0;
28154 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
28155 u8 *tx_srom_max_rate = NULL;
28157 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP);
28158 band_num++) {
28159 switch (band_num) {
28160 case 0:
28162 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
28163 pi->nphy_pwrctrl_info[1].max_pwr_2g);
28165 pwr_offsets1[0] = pi->cck2gpo;
28166 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
28167 pwr_offsets1,
28168 tmp_max_pwr,
28169 TXP_FIRST_CCK,
28170 TXP_LAST_CCK);
28172 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
28173 pwr_offsets1[1] =
28174 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
28176 pwr_offsets2 = pi->mcs2gpo;
28178 tmp_cddpo = pi->cdd2gpo;
28179 tmp_stbcpo = pi->stbc2gpo;
28180 tmp_bw40po = pi->bw402gpo;
28182 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
28183 break;
28184 case 1:
28186 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
28187 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
28189 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
28190 pwr_offsets1[1] =
28191 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
28193 pwr_offsets2 = pi->mcs5gpo;
28195 tmp_cddpo = pi->cdd5gpo;
28196 tmp_stbcpo = pi->stbc5gpo;
28197 tmp_bw40po = pi->bw405gpo;
28199 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
28200 break;
28201 case 2:
28203 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
28204 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
28206 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
28207 pwr_offsets1[1] =
28208 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
28210 pwr_offsets2 = pi->mcs5glpo;
28212 tmp_cddpo = pi->cdd5glpo;
28213 tmp_stbcpo = pi->stbc5glpo;
28214 tmp_bw40po = pi->bw405glpo;
28216 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
28217 break;
28218 case 3:
28220 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
28221 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
28223 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
28224 pwr_offsets1[1] =
28225 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
28227 pwr_offsets2 = pi->mcs5ghpo;
28229 tmp_cddpo = pi->cdd5ghpo;
28230 tmp_stbcpo = pi->stbc5ghpo;
28231 tmp_bw40po = pi->bw405ghpo;
28233 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
28234 break;
28237 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
28238 tmp_max_pwr, TXP_FIRST_OFDM,
28239 TXP_LAST_OFDM);
28241 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
28242 TXP_FIRST_MCS_20_SISO,
28243 TXP_LAST_MCS_20_SISO,
28244 TXP_FIRST_OFDM);
28246 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28247 tmp_max_pwr,
28248 TXP_FIRST_MCS_20_CDD,
28249 TXP_LAST_MCS_20_CDD);
28251 if (NREV_GE(pi->pubpi.phy_rev, 3))
28252 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28253 TXP_FIRST_MCS_20_CDD,
28254 TXP_LAST_MCS_20_CDD);
28256 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28257 TXP_FIRST_OFDM_20_CDD,
28258 TXP_LAST_OFDM_20_CDD,
28259 TXP_FIRST_MCS_20_CDD);
28261 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
28262 tmp_max_pwr,
28263 TXP_FIRST_MCS_20_STBC,
28264 TXP_LAST_MCS_20_STBC);
28266 if (NREV_GE(pi->pubpi.phy_rev, 3))
28267 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28268 tmp_stbcpo,
28269 TXP_FIRST_MCS_20_STBC,
28270 TXP_LAST_MCS_20_STBC);
28272 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28273 &pwr_offsets2[2], tmp_max_pwr,
28274 TXP_FIRST_MCS_20_SDM,
28275 TXP_LAST_MCS_20_SDM);
28277 if (NPHY_IS_SROM_REINTERPRET) {
28279 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28280 &pwr_offsets2[4],
28281 tmp_max_pwr,
28282 TXP_FIRST_MCS_40_SISO,
28283 TXP_LAST_MCS_40_SISO);
28285 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28286 TXP_FIRST_OFDM_40_SISO,
28287 TXP_LAST_OFDM_40_SISO,
28288 TXP_FIRST_MCS_40_SISO);
28290 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28291 &pwr_offsets2[4],
28292 tmp_max_pwr,
28293 TXP_FIRST_MCS_40_CDD,
28294 TXP_LAST_MCS_40_CDD);
28296 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
28297 TXP_FIRST_MCS_40_CDD,
28298 TXP_LAST_MCS_40_CDD);
28300 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
28301 TXP_FIRST_OFDM_40_CDD,
28302 TXP_LAST_OFDM_40_CDD,
28303 TXP_FIRST_MCS_40_CDD);
28305 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28306 &pwr_offsets2[4],
28307 tmp_max_pwr,
28308 TXP_FIRST_MCS_40_STBC,
28309 TXP_LAST_MCS_40_STBC);
28311 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28312 tmp_stbcpo,
28313 TXP_FIRST_MCS_40_STBC,
28314 TXP_LAST_MCS_40_STBC);
28316 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
28317 &pwr_offsets2[6],
28318 tmp_max_pwr,
28319 TXP_FIRST_MCS_40_SDM,
28320 TXP_LAST_MCS_40_SDM);
28321 } else {
28323 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
28324 TXP_FIRST_OFDM;
28325 rate1 <= TXP_LAST_MCS_40_SDM;
28326 rate1++, rate2++)
28327 tx_srom_max_rate[rate1] =
28328 tx_srom_max_rate[rate2];
28331 if (NREV_GE(pi->pubpi.phy_rev, 3))
28332 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
28333 tmp_bw40po,
28334 TXP_FIRST_OFDM_40_SISO,
28335 TXP_LAST_MCS_40_SDM);
28337 tx_srom_max_rate[TXP_MCS_32] =
28338 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
28341 return;
28344 void wlc_phy_txpower_recalc_target_nphy(struct brcms_phy *pi)
28346 u8 tx_pwr_ctrl_state;
28347 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28348 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28350 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28352 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28353 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28354 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
28355 udelay(1);
28358 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28360 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28361 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28364 static bool wlc_phy_txpwr_ison_nphy(struct brcms_phy *pi)
28366 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28367 (0x1 << 14) | (0x1 << 13));
28370 u16 wlc_phy_txpwr_idx_get_nphy(struct brcms_phy *pi)
28372 u16 tmp;
28373 u16 pwr_idx[2];
28375 if (wlc_phy_txpwr_ison_nphy(pi)) {
28376 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28377 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28379 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28380 } else {
28381 tmp = ((pi->nphy_txpwrindex[PHY_CORE_0].index_internal & 0xff)
28382 << 8) |
28383 (pi->nphy_txpwrindex[PHY_CORE_1].index_internal & 0xff);
28386 return tmp;
28389 void wlc_phy_txpwr_papd_cal_nphy(struct brcms_phy *pi)
28391 if (PHY_IPA(pi)
28392 && (pi->nphy_force_papd_cal
28393 || (wlc_phy_txpwr_ison_nphy(pi)
28395 (((u32)
28396 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28397 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28398 || ((u32)
28399 abs(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28400 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4)))))
28401 wlc_phy_a4(pi, true);
28404 void wlc_phy_txpwrctrl_enable_nphy(struct brcms_phy *pi, u8 ctrl_type)
28406 u16 mask = 0, val = 0, ishw = 0;
28407 u8 ctr;
28408 uint core;
28409 u32 tbl_offset;
28410 u32 tbl_len;
28411 u16 regval[84];
28413 if (pi->phyhang_avoid)
28414 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28416 switch (ctrl_type) {
28417 case PHY_TPC_HW_OFF:
28418 case PHY_TPC_HW_ON:
28419 pi->nphy_txpwrctrl = ctrl_type;
28420 break;
28421 default:
28422 break;
28425 if (ctrl_type == PHY_TPC_HW_OFF) {
28426 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28428 if (wlc_phy_txpwr_ison_nphy(pi)) {
28429 for (core = 0; core < pi->pubpi.phy_corenum;
28430 core++)
28431 pi->nphy_txpwr_idx[core] =
28432 wlc_phy_txpwr_idx_cur_get_nphy(
28434 (u8) core);
28439 tbl_len = 84;
28440 tbl_offset = 64;
28441 for (ctr = 0; ctr < tbl_len; ctr++)
28442 regval[ctr] = 0;
28443 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28444 regval);
28445 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28446 regval);
28448 if (NREV_GE(pi->pubpi.phy_rev, 3))
28449 and_phy_reg(pi, 0x1e7,
28450 (u16) (~((0x1 << 15) |
28451 (0x1 << 14) | (0x1 << 13))));
28452 else
28453 and_phy_reg(pi, 0x1e7,
28454 (u16) (~((0x1 << 14) | (0x1 << 13))));
28456 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28457 or_phy_reg(pi, 0x8f, (0x1 << 8));
28458 or_phy_reg(pi, 0xa5, (0x1 << 8));
28459 } else {
28460 or_phy_reg(pi, 0xa5, (0x1 << 14));
28463 if (NREV_IS(pi->pubpi.phy_rev, 2))
28464 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28465 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28466 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28468 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28469 pi->bw == WL_CHANSPEC_BW_40)
28470 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28471 MHF1_IQSWAP_WAR, BRCM_BAND_ALL);
28473 } else {
28475 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28476 8, pi->adj_pwr_tbl_nphy);
28477 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28478 8, pi->adj_pwr_tbl_nphy);
28480 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28481 mask = (0x1 << 14) | (0x1 << 13);
28482 val = (ishw << 14) | (ishw << 13);
28484 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28485 mask |= (0x1 << 15);
28486 val |= (ishw << 15);
28489 mod_phy_reg(pi, 0x1e7, mask, val);
28491 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28492 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28493 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28494 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28495 } else {
28496 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28497 if (NREV_GT(pi->pubpi.phy_rev, 1))
28498 mod_phy_reg(pi, 0x222,
28499 (0xff << 0), 0x64);
28503 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28504 if ((pi->nphy_txpwr_idx[0] != 128)
28505 && (pi->nphy_txpwr_idx[1] != 128))
28506 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28507 pi->
28508 nphy_txpwr_idx
28509 [0],
28510 pi->
28511 nphy_txpwr_idx
28512 [1]);
28515 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28516 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28517 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28518 } else {
28519 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28522 if (NREV_IS(pi->pubpi.phy_rev, 2))
28523 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28524 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28525 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28527 if (NREV_LT(pi->pubpi.phy_rev, 2) &&
28528 pi->bw == WL_CHANSPEC_BW_40)
28529 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28530 0x0, BRCM_BAND_ALL);
28532 if (PHY_IPA(pi)) {
28533 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28534 0x29b, (0x1 << 2), (0) << 2);
28536 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28537 0x29b, (0x1 << 2), (0) << 2);
28543 if (pi->phyhang_avoid)
28544 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28547 void
28548 wlc_phy_txpwr_index_nphy(struct brcms_phy *pi, u8 core_mask, s8 txpwrindex,
28549 bool restore_cals)
28551 u8 core, txpwrctl_tbl;
28552 u16 tx_ind0, iq_ind0, lo_ind0;
28553 u16 m1m2;
28554 u32 txgain;
28555 u16 rad_gain, dac_gain;
28556 u8 bbmult;
28557 u32 iqcomp;
28558 u16 iqcomp_a, iqcomp_b;
28559 u32 locomp;
28560 u16 tmpval;
28561 u8 tx_pwr_ctrl_state;
28562 s32 rfpwr_offset;
28563 u16 regval[2];
28565 if (pi->phyhang_avoid)
28566 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28568 tx_ind0 = 192;
28569 iq_ind0 = 320;
28570 lo_ind0 = 448;
28572 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28574 if ((core_mask & (1 << core)) == 0)
28575 continue;
28577 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28579 if (txpwrindex < 0) {
28580 if (pi->nphy_txpwrindex[core].index < 0)
28581 continue;
28583 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28584 mod_phy_reg(pi, 0x8f,
28585 (0x1 << 8),
28586 pi->nphy_txpwrindex[core].
28587 AfectrlOverride);
28588 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28589 pi->nphy_txpwrindex[core].
28590 AfectrlOverride);
28591 } else {
28592 mod_phy_reg(pi, 0xa5,
28593 (0x1 << 14),
28594 pi->nphy_txpwrindex[core].
28595 AfectrlOverride);
28598 write_phy_reg(pi, (core == PHY_CORE_0) ?
28599 0xaa : 0xab,
28600 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28602 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28603 &pi->nphy_txpwrindex[core].
28604 rad_gain);
28606 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28607 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28608 m1m2 |= ((core == PHY_CORE_0) ?
28609 (pi->nphy_txpwrindex[core].bbmult << 8) :
28610 (pi->nphy_txpwrindex[core].bbmult << 0));
28611 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28613 if (restore_cals) {
28614 wlc_phy_table_write_nphy(
28615 pi, 15, 2, (80 + 2 * core), 16,
28616 &pi->nphy_txpwrindex[core].iqcomp_a);
28617 wlc_phy_table_write_nphy(
28618 pi, 15, 1, (85 + core), 16,
28619 &pi->nphy_txpwrindex[core].locomp);
28620 wlc_phy_table_write_nphy(
28621 pi, 15, 1, (93 + core), 16,
28622 &pi->nphy_txpwrindex[core].locomp);
28625 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28627 pi->nphy_txpwrindex[core].index_internal =
28628 pi->nphy_txpwrindex[core].index_internal_save;
28629 } else {
28631 if (pi->nphy_txpwrindex[core].index < 0) {
28633 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28634 mod_phy_reg(pi, 0x8f,
28635 (0x1 << 8),
28636 pi->nphy_txpwrindex[core].
28637 AfectrlOverride);
28638 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28639 pi->nphy_txpwrindex[core].
28640 AfectrlOverride);
28641 } else {
28642 pi->nphy_txpwrindex[core].
28643 AfectrlOverride =
28644 read_phy_reg(pi, 0xa5);
28647 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28648 read_phy_reg(pi, (core == PHY_CORE_0) ?
28649 0xaa : 0xab);
28651 wlc_phy_table_read_nphy(pi, 7, 1,
28652 (0x110 + core), 16,
28653 &pi->
28654 nphy_txpwrindex[core].
28655 rad_gain);
28657 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28658 &tmpval);
28659 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28660 tmpval &= 0xff;
28661 pi->nphy_txpwrindex[core].bbmult = (u8) tmpval;
28663 wlc_phy_table_read_nphy(pi, 15, 2,
28664 (80 + 2 * core), 16,
28665 &pi->
28666 nphy_txpwrindex[core].
28667 iqcomp_a);
28669 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28671 &pi->
28672 nphy_txpwrindex[core].
28673 locomp);
28675 pi->nphy_txpwrindex[core].index_internal_save =
28676 pi->nphy_txpwrindex[core].
28677 index_internal;
28680 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28681 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
28683 if (NREV_IS(pi->pubpi.phy_rev, 1))
28684 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
28686 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28687 (tx_ind0 + txpwrindex), 32,
28688 &txgain);
28690 if (NREV_GE(pi->pubpi.phy_rev, 3))
28691 rad_gain = (txgain >> 16) &
28692 ((1 << (32 - 16 + 1)) - 1);
28693 else
28694 rad_gain = (txgain >> 16) &
28695 ((1 << (28 - 16 + 1)) - 1);
28697 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
28698 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
28700 if (NREV_GE(pi->pubpi.phy_rev, 3))
28701 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
28702 0xa5), (0x1 << 8), (0x1 << 8));
28703 else
28704 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
28706 write_phy_reg(pi, (core == PHY_CORE_0) ?
28707 0xaa : 0xab, dac_gain);
28709 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28710 &rad_gain);
28712 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28713 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28714 m1m2 |= ((core == PHY_CORE_0) ?
28715 (bbmult << 8) : (bbmult << 0));
28717 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28719 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28720 (iq_ind0 + txpwrindex), 32,
28721 &iqcomp);
28722 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
28723 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
28725 if (restore_cals) {
28726 regval[0] = (u16) iqcomp_a;
28727 regval[1] = (u16) iqcomp_b;
28728 wlc_phy_table_write_nphy(pi, 15, 2,
28729 (80 + 2 * core), 16,
28730 regval);
28733 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
28734 (lo_ind0 + txpwrindex), 32,
28735 &locomp);
28736 if (restore_cals)
28737 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28738 16, &locomp);
28740 if (NREV_IS(pi->pubpi.phy_rev, 1))
28741 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
28743 if (PHY_IPA(pi)) {
28744 wlc_phy_table_read_nphy(pi,
28745 (core == PHY_CORE_0 ?
28746 NPHY_TBL_ID_CORE1TXPWRCTL :
28747 NPHY_TBL_ID_CORE2TXPWRCTL),
28748 1, 576 + txpwrindex, 32,
28749 &rfpwr_offset);
28751 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28752 0x29b, (0x1ff << 4),
28753 ((s16) rfpwr_offset) << 4);
28755 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
28756 0x29b, (0x1 << 2), (1) << 2);
28760 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28763 pi->nphy_txpwrindex[core].index = txpwrindex;
28766 if (pi->phyhang_avoid)
28767 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28770 void
28771 wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
28772 u8 txp_rate_idx)
28774 u8 chan_freq_range;
28776 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
28777 switch (chan_freq_range) {
28778 case WL_CHAN_FREQ_RANGE_2G:
28779 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28780 break;
28781 case WL_CHAN_FREQ_RANGE_5GM:
28782 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
28783 break;
28784 case WL_CHAN_FREQ_RANGE_5GL:
28785 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
28786 break;
28787 case WL_CHAN_FREQ_RANGE_5GH:
28788 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
28789 break;
28790 default:
28791 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
28792 break;
28795 return;
28798 void wlc_phy_stay_in_carriersearch_nphy(struct brcms_phy *pi, bool enable)
28800 u16 clip_off[] = { 0xffff, 0xffff };
28802 if (enable) {
28803 if (pi->nphy_deaf_count == 0) {
28804 pi->classifier_state =
28805 wlc_phy_classifier_nphy(pi, 0, 0);
28806 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
28807 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
28808 wlc_phy_clip_det_nphy(pi, 1, clip_off);
28811 pi->nphy_deaf_count++;
28813 wlc_phy_resetcca_nphy(pi);
28815 } else {
28816 pi->nphy_deaf_count--;
28818 if (pi->nphy_deaf_count == 0) {
28819 wlc_phy_classifier_nphy(pi, (0x7 << 0),
28820 pi->classifier_state);
28821 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
28826 void wlc_nphy_deaf_mode(struct brcms_phy *pi, bool mode)
28828 wlapi_suspend_mac_and_wait(pi->sh->physhim);
28830 if (mode) {
28831 if (pi->nphy_deaf_count == 0)
28832 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28833 } else if (pi->nphy_deaf_count > 0) {
28834 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28837 wlapi_enable_mac(pi->sh->physhim);