staging: brcm80211: remove usage of struct osl_info for register access
[deliverable/linux.git] / drivers / staging / brcm80211 / brcmsmac / phy / wlc_phy_n.c
1 /*
2 * Copyright (c) 2010 Broadcom Corporation
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 #include <linux/kernel.h>
18 #include <linux/string.h>
19 #include <bcmdefs.h>
20 #include <wlc_cfg.h>
21 #include <linux/delay.h>
22 #include <linux/pci.h>
23 #include <osl.h>
24 #include <siutils.h>
25 #include <sbchipc.h>
26 #include <hndpmu.h>
27
28 #include <bcmdevs.h>
29 #include <sbhnddma.h>
30
31 #include <wlc_phy_radio.h>
32 #include <wlc_phy_int.h>
33 #include <wlc_phyreg_n.h>
34 #include <wlc_phytbl_n.h>
35
36 #define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
37 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
38 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1))
39 #define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
40 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
41 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1), value);
42 #define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
43 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value);
44
45 #define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
46 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
47 radio_type##_##jspace##1##_##reg_name));
48 #define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
49 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
50 radio_type##_##jspace##1##_##reg_name), value);
51 #define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
52 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
53 radio_type##_##reg_name##_##jspace##1));
54 #define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
55 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
56 radio_type##_##reg_name##_##jspace##1), value);
57
58 #define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
59 #define NPHY_ACI_CHANNEL_DELTA 5
60 #define NPHY_ACI_CHANNEL_SKIP 4
61 #define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
62 #define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
63 #define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
64 #define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
65 #define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
66 #define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
67
68 #define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
69
70 #define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
71
72 #define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
73
74 #define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
75
76 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
77
78 #define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
79
80 #define NPHY_NOISE_NOASSOC_ENTER_TH 400
81
82 #define NPHY_NOISE_ASSOC_ENTER_TH 400
83
84 #define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
85
86 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
87 #define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
88
89 #define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
90
91 #define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
92
93 #define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
94
95 #define NPHY_RSSICAL_MAXREAD 31
96
97 #define NPHY_RSSICAL_NPOLL 8
98 #define NPHY_RSSICAL_MAXD (1<<20)
99 #define NPHY_MIN_RXIQ_PWR 2
100
101 #define NPHY_RSSICAL_W1_TARGET 25
102 #define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
103 #define NPHY_RSSICAL_NB_TARGET 0
104
105 #define NPHY_RSSICAL_W1_TARGET_REV3 29
106 #define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
107
108 #define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
109 #define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
110 #define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
111 #define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - NPHY_RSSICAL_MAXREAD)
112 #define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
113 #define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - NPHY_RSSICAL_MAXREAD)
114 #define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
115 #define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
116 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
117 #define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
118 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
119 #define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
120 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
121
122 #define NPHY_IQCAL_NUMGAINS 9
123 #define NPHY_N_GCTL 0x66
124
125 #define NPHY_PAPD_EPS_TBL_SIZE 64
126 #define NPHY_PAPD_SCL_TBL_SIZE 64
127 #define NPHY_NUM_DIG_FILT_COEFFS 15
128
129 #define NPHY_PAPD_COMP_OFF 0
130 #define NPHY_PAPD_COMP_ON 1
131
132 #define NPHY_SROM_TEMPSHIFT 32
133 #define NPHY_SROM_MAXTEMPOFFSET 16
134 #define NPHY_SROM_MINTEMPOFFSET -16
135
136 #define NPHY_CAL_MAXTEMPDELTA 64
137
138 #define NPHY_NOISEVAR_TBLLEN40 256
139 #define NPHY_NOISEVAR_TBLLEN20 128
140
141 #define NPHY_ANARXLPFBW_REDUCTIONFACT 7
142
143 #define NPHY_ADJUSTED_MINCRSPOWER 0x1e
144
145 typedef struct _nphy_iqcal_params {
146 u16 txlpf;
147 u16 txgm;
148 u16 pga;
149 u16 pad;
150 u16 ipa;
151 u16 cal_gain;
152 u16 ncorr[5];
153 } nphy_iqcal_params_t;
154
155 typedef struct _nphy_txiqcal_ladder {
156 u8 percent;
157 u8 g_env;
158 } nphy_txiqcal_ladder_t;
159
160 typedef struct {
161 nphy_txgains_t gains;
162 bool useindex;
163 u8 index;
164 } nphy_ipa_txcalgains_t;
165
166 typedef struct nphy_papd_restore_state_t {
167 u16 fbmix[2];
168 u16 vga_master[2];
169 u16 intpa_master[2];
170 u16 afectrl[2];
171 u16 afeoverride[2];
172 u16 pwrup[2];
173 u16 atten[2];
174 u16 mm;
175 } nphy_papd_restore_state;
176
177 typedef struct _nphy_ipa_txrxgain {
178 u16 hpvga;
179 u16 lpf_biq1;
180 u16 lpf_biq0;
181 u16 lna2;
182 u16 lna1;
183 s8 txpwrindex;
184 } nphy_ipa_txrxgain_t;
185
186 #define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
187
188 nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz[] = { {0, 0, 0, 0, 0, 100},
189 {0, 0, 0, 0, 0, 50},
190 {0, 0, 0, 0, 0, -1},
191 {0, 0, 0, 3, 0, -1},
192 {0, 0, 3, 3, 0, -1},
193 {0, 2, 3, 3, 0, -1}
194 };
195
196 nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz[] = { {0, 0, 0, 0, 0, 128},
197 {0, 0, 0, 0, 0, 70},
198 {0, 0, 0, 0, 0, 20},
199 {0, 0, 0, 3, 0, 20},
200 {0, 0, 3, 3, 0, 20},
201 {0, 2, 3, 3, 0, 20}
202 };
203
204 nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = { {0, 0, 0, 0, 0, 100},
205 {0, 0, 0, 0, 0, 50},
206 {0, 0, 0, 0, 0, -1},
207 {0, 0, 0, 3, 0, -1},
208 {0, 0, 3, 3, 0, -1},
209 {0, 0, 5, 3, 0, -1}
210 };
211
212 nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = { {0, 0, 0, 0, 0, 10},
213 {0, 0, 0, 1, 0, 10},
214 {0, 0, 1, 2, 0, 10},
215 {0, 0, 1, 3, 0, 10},
216 {0, 0, 4, 3, 0, 10},
217 {0, 0, 6, 3, 0, 10}
218 };
219
220 #define NPHY_RXCAL_TONEAMP 181
221 #define NPHY_RXCAL_TONEFREQ_40MHz 4000
222 #define NPHY_RXCAL_TONEFREQ_20MHz 2000
223
224 enum {
225 NPHY_RXCAL_GAIN_INIT = 0,
226 NPHY_RXCAL_GAIN_UP,
227 NPHY_RXCAL_GAIN_DOWN
228 };
229
230 #define wlc_phy_get_papd_nphy(pi) \
231 (read_phy_reg((pi), 0x1e7) & \
232 ((0x1 << 15) | \
233 (0x1 << 14) | \
234 (0x1 << 13)))
235
236 #define TXFILT_SHAPING_OFDM20 0
237 #define TXFILT_SHAPING_OFDM40 1
238 #define TXFILT_SHAPING_CCK 2
239 #define TXFILT_DEFAULT_OFDM20 3
240 #define TXFILT_DEFAULT_OFDM40 4
241
242 u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
243 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
244 230, -44, 230, 201, -191, 201},
245 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
246 26, 34, -32, 34},
247 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
248 121, -73, 121, 91, 124, 91},
249 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
250 151, 301, 151, 602, -752, 602},
251 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
252 12, 25, 12, 13, 27, 13},
253 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
254 230, -44, 230, 201, -191, 201},
255 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
256 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
257 };
258
259 typedef struct _chan_info_nphy_2055 {
260 u16 chan;
261 u16 freq;
262 uint unknown;
263 u8 RF_pll_ref;
264 u8 RF_rf_pll_mod1;
265 u8 RF_rf_pll_mod0;
266 u8 RF_vco_cap_tail;
267 u8 RF_vco_cal1;
268 u8 RF_vco_cal2;
269 u8 RF_pll_lf_c1;
270 u8 RF_pll_lf_r1;
271 u8 RF_pll_lf_c2;
272 u8 RF_lgbuf_cen_buf;
273 u8 RF_lgen_tune1;
274 u8 RF_lgen_tune2;
275 u8 RF_core1_lgbuf_a_tune;
276 u8 RF_core1_lgbuf_g_tune;
277 u8 RF_core1_rxrf_reg1;
278 u8 RF_core1_tx_pga_pad_tn;
279 u8 RF_core1_tx_mx_bgtrim;
280 u8 RF_core2_lgbuf_a_tune;
281 u8 RF_core2_lgbuf_g_tune;
282 u8 RF_core2_rxrf_reg1;
283 u8 RF_core2_tx_pga_pad_tn;
284 u8 RF_core2_tx_mx_bgtrim;
285 u16 PHY_BW1a;
286 u16 PHY_BW2;
287 u16 PHY_BW3;
288 u16 PHY_BW4;
289 u16 PHY_BW5;
290 u16 PHY_BW6;
291 } chan_info_nphy_2055_t;
292
293 typedef struct _chan_info_nphy_radio205x {
294 u16 chan;
295 u16 freq;
296 u8 RF_SYN_pll_vcocal1;
297 u8 RF_SYN_pll_vcocal2;
298 u8 RF_SYN_pll_refdiv;
299 u8 RF_SYN_pll_mmd2;
300 u8 RF_SYN_pll_mmd1;
301 u8 RF_SYN_pll_loopfilter1;
302 u8 RF_SYN_pll_loopfilter2;
303 u8 RF_SYN_pll_loopfilter3;
304 u8 RF_SYN_pll_loopfilter4;
305 u8 RF_SYN_pll_loopfilter5;
306 u8 RF_SYN_reserved_addr27;
307 u8 RF_SYN_reserved_addr28;
308 u8 RF_SYN_reserved_addr29;
309 u8 RF_SYN_logen_VCOBUF1;
310 u8 RF_SYN_logen_MIXER2;
311 u8 RF_SYN_logen_BUF3;
312 u8 RF_SYN_logen_BUF4;
313 u8 RF_RX0_lnaa_tune;
314 u8 RF_RX0_lnag_tune;
315 u8 RF_TX0_intpaa_boost_tune;
316 u8 RF_TX0_intpag_boost_tune;
317 u8 RF_TX0_pada_boost_tune;
318 u8 RF_TX0_padg_boost_tune;
319 u8 RF_TX0_pgaa_boost_tune;
320 u8 RF_TX0_pgag_boost_tune;
321 u8 RF_TX0_mixa_boost_tune;
322 u8 RF_TX0_mixg_boost_tune;
323 u8 RF_RX1_lnaa_tune;
324 u8 RF_RX1_lnag_tune;
325 u8 RF_TX1_intpaa_boost_tune;
326 u8 RF_TX1_intpag_boost_tune;
327 u8 RF_TX1_pada_boost_tune;
328 u8 RF_TX1_padg_boost_tune;
329 u8 RF_TX1_pgaa_boost_tune;
330 u8 RF_TX1_pgag_boost_tune;
331 u8 RF_TX1_mixa_boost_tune;
332 u8 RF_TX1_mixg_boost_tune;
333 u16 PHY_BW1a;
334 u16 PHY_BW2;
335 u16 PHY_BW3;
336 u16 PHY_BW4;
337 u16 PHY_BW5;
338 u16 PHY_BW6;
339 } chan_info_nphy_radio205x_t;
340
341 typedef struct _chan_info_nphy_radio2057 {
342 u16 chan;
343 u16 freq;
344 u8 RF_vcocal_countval0;
345 u8 RF_vcocal_countval1;
346 u8 RF_rfpll_refmaster_sparextalsize;
347 u8 RF_rfpll_loopfilter_r1;
348 u8 RF_rfpll_loopfilter_c2;
349 u8 RF_rfpll_loopfilter_c1;
350 u8 RF_cp_kpd_idac;
351 u8 RF_rfpll_mmd0;
352 u8 RF_rfpll_mmd1;
353 u8 RF_vcobuf_tune;
354 u8 RF_logen_mx2g_tune;
355 u8 RF_logen_mx5g_tune;
356 u8 RF_logen_indbuf2g_tune;
357 u8 RF_logen_indbuf5g_tune;
358 u8 RF_txmix2g_tune_boost_pu_core0;
359 u8 RF_pad2g_tune_pus_core0;
360 u8 RF_pga_boost_tune_core0;
361 u8 RF_txmix5g_boost_tune_core0;
362 u8 RF_pad5g_tune_misc_pus_core0;
363 u8 RF_lna2g_tune_core0;
364 u8 RF_lna5g_tune_core0;
365 u8 RF_txmix2g_tune_boost_pu_core1;
366 u8 RF_pad2g_tune_pus_core1;
367 u8 RF_pga_boost_tune_core1;
368 u8 RF_txmix5g_boost_tune_core1;
369 u8 RF_pad5g_tune_misc_pus_core1;
370 u8 RF_lna2g_tune_core1;
371 u8 RF_lna5g_tune_core1;
372 u16 PHY_BW1a;
373 u16 PHY_BW2;
374 u16 PHY_BW3;
375 u16 PHY_BW4;
376 u16 PHY_BW5;
377 u16 PHY_BW6;
378 } chan_info_nphy_radio2057_t;
379
380 typedef struct _chan_info_nphy_radio2057_rev5 {
381 u16 chan;
382 u16 freq;
383 u8 RF_vcocal_countval0;
384 u8 RF_vcocal_countval1;
385 u8 RF_rfpll_refmaster_sparextalsize;
386 u8 RF_rfpll_loopfilter_r1;
387 u8 RF_rfpll_loopfilter_c2;
388 u8 RF_rfpll_loopfilter_c1;
389 u8 RF_cp_kpd_idac;
390 u8 RF_rfpll_mmd0;
391 u8 RF_rfpll_mmd1;
392 u8 RF_vcobuf_tune;
393 u8 RF_logen_mx2g_tune;
394 u8 RF_logen_indbuf2g_tune;
395 u8 RF_txmix2g_tune_boost_pu_core0;
396 u8 RF_pad2g_tune_pus_core0;
397 u8 RF_lna2g_tune_core0;
398 u8 RF_txmix2g_tune_boost_pu_core1;
399 u8 RF_pad2g_tune_pus_core1;
400 u8 RF_lna2g_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;
407 } chan_info_nphy_radio2057_rev5_t;
408
409 typedef struct nphy_sfo_cfg {
410 u16 PHY_BW1a;
411 u16 PHY_BW2;
412 u16 PHY_BW3;
413 u16 PHY_BW4;
414 u16 PHY_BW5;
415 u16 PHY_BW6;
416 } nphy_sfo_cfg_t;
417
418 static chan_info_nphy_2055_t chan_info_nphy_2055[] = {
419 {
420 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
421 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
422 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
423 {
424 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
425 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
426 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
427 {
428 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
429 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
430 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
431 {
432 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
433 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
434 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
435 {
436 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
437 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
438 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
439 {
440 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
441 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
442 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
443 {
444 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
445 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
446 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
447 {
448 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
449 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
450 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
451 {
452 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
453 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
454 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
455 {
456 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
457 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
458 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
459 {
460 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
461 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
462 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
463 {
464 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
465 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
466 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
467 {
468 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
469 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
470 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
471 {
472 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
473 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
474 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
475 {
476 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
477 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
478 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
479 {
480 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
481 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
482 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
483 {
484 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
485 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
486 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
487 {
488 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
489 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
490 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
491 {
492 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
493 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
494 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
495 {
496 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
497 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
498 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
499 {
500 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
501 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
502 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
503 {
504 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
505 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
506 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
507 {
508 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
509 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
510 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
511 {
512 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
513 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
514 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
515 {
516 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
517 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
518 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
519 {
520 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
521 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
522 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
523 {
524 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
525 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
526 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
527 {
528 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
529 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
530 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
531 {
532 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
533 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
534 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
535 {
536 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
537 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
538 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
539 {
540 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
541 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
542 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
543 {
544 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
545 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
546 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
547 {
548 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
549 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
550 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
551 {
552 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
553 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
554 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
555 {
556 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
557 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
558 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
559 {
560 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
561 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
562 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
563 {
564 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
565 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
566 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
567 {
568 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
569 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
570 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
571 {
572 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
573 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
574 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
575 {
576 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
577 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
578 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
579 {
580 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
581 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
582 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
583 {
584 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
585 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
586 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
587 {
588 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
589 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
590 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
591 {
592 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
593 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
594 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
595 {
596 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
597 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
598 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
599 {
600 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
601 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
602 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
603 {
604 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
605 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
606 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
607 {
608 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
609 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
610 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
611 {
612 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
613 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
614 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
615 {
616 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
617 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
618 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
619 {
620 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
621 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
622 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
623 {
624 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
625 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
626 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
627 {
628 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
629 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
630 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
631 {
632 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
633 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
634 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
635 {
636 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
637 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
638 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
639 {
640 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
641 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
642 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
643 {
644 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
645 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
646 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
647 {
648 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
649 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
650 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
651 {
652 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
653 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
654 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
655 {
656 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
657 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
658 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
659 {
660 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
661 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
662 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
663 {
664 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
665 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
666 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
667 {
668 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
669 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
670 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
671 {
672 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
673 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
674 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
675 {
676 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
677 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
678 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
679 {
680 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
681 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
682 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
683 {
684 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
685 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
686 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
687 {
688 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
689 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
690 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
691 {
692 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
693 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
694 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
695 {
696 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
697 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
698 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
699 {
700 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
701 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
702 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
703 {
704 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
705 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
706 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
707 {
708 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
709 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
710 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
711 {
712 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
713 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
714 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
715 {
716 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
717 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
718 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
719 {
720 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
721 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
722 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
723 {
724 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
725 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
726 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
727 {
728 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
729 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
730 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
731 {
732 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
733 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
734 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
735 {
736 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
737 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
738 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
739 {
740 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
741 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
742 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
743 {
744 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
745 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
746 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
747 {
748 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
749 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
750 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
751 {
752 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
753 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
754 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
755 {
756 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
757 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
758 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
759 {
760 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
761 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
762 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
763 {
764 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
765 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
766 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
767 {
768 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
769 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
770 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
771 {
772 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
773 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
774 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
775 {
776 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
777 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
778 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
779 {
780 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
781 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
782 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
783 {
784 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
785 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
786 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
787 {
788 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
789 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
790 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
791 {
792 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
793 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
794 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
795 {
796 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
797 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
798 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
799 {
800 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
801 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
802 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
803 {
804 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
805 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
806 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
807 {
808 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
809 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
810 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
811 {
812 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
813 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
814 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
815 {
816 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
817 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
818 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
819 {
820 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
821 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
822 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
823 {
824 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
825 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
826 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
827 {
828 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
829 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
830 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
831 {
832 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
833 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
834 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
835 {
836 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
837 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
838 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
839 {
840 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
841 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
842 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
843 {
844 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
845 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
846 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
847 {
848 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
849 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
850 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
851 {
852 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
853 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
854 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
855 {
856 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
857 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
858 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
859 {
860 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
861 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
862 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
863 {
864 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
865 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
866 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
867 {
868 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
869 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
870 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
871 {
872 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
873 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
874 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
875 {
876 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
877 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
878 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
879 {
880 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
881 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
882 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
883 {
884 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
885 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
886 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
887 {
888 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
889 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
890 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
891 {
892 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
893 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
894 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
895 {
896 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
897 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
898 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
899 {
900 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
901 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
902 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
903 {
904 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
905 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
906 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
907 {
908 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
909 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
910 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
911 {
912 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
913 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
914 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
915 };
916
917 static chan_info_nphy_radio205x_t chan_info_nphyrev3_2056[] = {
918 {
919 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
920 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
921 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
922 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
923 {
924 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
925 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
926 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
927 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
928 {
929 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
930 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
931 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
932 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
933 {
934 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
935 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
936 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
937 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
938 {
939 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
940 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
941 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
942 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
943 {
944 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
945 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
946 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
947 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
948 {
949 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
950 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
951 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
952 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
953 {
954 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
955 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
956 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
957 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
958 {
959 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
960 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
961 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
962 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
963 {
964 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
965 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
966 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
967 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
968 {
969 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
970 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
971 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
972 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
973 {
974 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
975 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
976 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
977 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
978 {
979 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
980 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
981 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
982 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
983 {
984 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
985 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
986 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
987 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
988 {
989 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
990 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
991 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
992 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
993 {
994 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
995 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
996 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
997 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
998 {
999 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1000 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1001 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1002 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1003 {
1004 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1005 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1006 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1007 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1008 {
1009 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1010 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1011 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1012 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1013 {
1014 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1015 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1016 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1017 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1018 {
1019 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1020 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1021 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1022 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1023 {
1024 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1025 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1026 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1027 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1028 {
1029 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1030 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1031 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1032 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1033 {
1034 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1035 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1036 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1037 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1038 {
1039 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1040 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1041 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1042 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1043 {
1044 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1045 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1046 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1047 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1048 {
1049 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1050 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1051 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1052 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1053 {
1054 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1055 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1056 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1057 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1058 {
1059 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1060 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1061 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1062 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1063 {
1064 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1065 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1066 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1067 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1068 {
1069 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1070 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1071 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1072 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1073 {
1074 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1075 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1076 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1077 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1078 {
1079 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1080 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1081 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1082 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1083 {
1084 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1085 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1086 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1087 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1088 {
1089 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1090 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1091 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1092 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1093 {
1094 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1095 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1096 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1097 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1098 {
1099 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1100 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1101 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1102 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1103 {
1104 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1105 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1106 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1107 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1108 {
1109 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1110 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1111 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1112 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1113 {
1114 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1115 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1116 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1117 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1118 {
1119 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1120 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1121 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1122 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1123 {
1124 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1125 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1126 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1127 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1128 {
1129 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1130 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1131 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1132 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1133 {
1134 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1135 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1136 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1137 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1138 {
1139 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1140 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1141 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1142 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1143 {
1144 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1145 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1146 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1147 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1148 {
1149 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1150 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1151 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1152 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1153 {
1154 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1155 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1156 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1157 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1158 {
1159 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1160 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1161 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1162 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1163 {
1164 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1165 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1166 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1167 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1168 {
1169 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1170 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1171 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1172 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1173 {
1174 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1175 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1176 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1177 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1178 {
1179 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1180 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1181 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1182 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1183 {
1184 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1185 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1186 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1187 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1188 {
1189 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1190 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1191 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1192 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1193 {
1194 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1195 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1196 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1197 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1198 {
1199 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1200 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1201 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1202 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1203 {
1204 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1205 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1206 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1207 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1208 {
1209 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1210 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1211 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1212 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1213 {
1214 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1215 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1216 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1217 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1218 {
1219 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1220 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1221 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1222 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1223 {
1224 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1225 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1226 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1227 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1228 {
1229 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1230 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1231 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1232 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1233 {
1234 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1235 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1236 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1237 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1238 {
1239 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1240 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1241 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1242 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1243 {
1244 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1245 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1246 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1247 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1248 {
1249 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1250 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1251 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1252 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1253 {
1254 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1255 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1256 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1257 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1258 {
1259 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1260 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1261 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1262 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1263 {
1264 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1265 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1266 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1267 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1268 {
1269 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1270 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1271 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1272 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1273 {
1274 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1275 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1276 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1277 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1278 {
1279 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1280 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1281 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1282 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1283 {
1284 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1285 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1286 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1287 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1288 {
1289 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1290 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1291 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1292 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1293 {
1294 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1295 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1296 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1297 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1298 {
1299 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1300 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1301 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1302 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1303 {
1304 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1305 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1306 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1307 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1308 {
1309 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1310 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1311 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1312 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1313 {
1314 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1315 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1316 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1317 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1318 {
1319 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1320 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1321 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1322 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1323 {
1324 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1325 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1326 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1327 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1328 {
1329 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1330 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1331 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1332 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1333 {
1334 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1335 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1336 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1337 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1338 {
1339 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1340 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1341 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1342 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1343 {
1344 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1345 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1346 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1347 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1348 {
1349 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1350 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1351 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1352 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1353 {
1354 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1355 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1356 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1357 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1358 {
1359 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1360 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1361 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1362 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1363 {
1364 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1365 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1366 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1367 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1368 {
1369 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1370 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1371 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1372 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1373 {
1374 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1375 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1376 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1377 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1378 {
1379 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1380 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1381 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1382 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1383 {
1384 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1385 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1386 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1387 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1388 {
1389 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1390 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1391 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1392 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1393 {
1394 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1395 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1396 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1397 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1398 {
1399 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1400 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1401 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1402 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1403 {
1404 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1405 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1406 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1407 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1408 {
1409 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1410 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1411 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1412 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1413 {
1414 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1415 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1416 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1417 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1418 {
1419 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1420 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1421 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1422 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1423 {
1424 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1425 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1426 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1427 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1428 {
1429 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1430 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1431 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1432 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1433 {
1434 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1435 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1436 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1437 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1438 {
1439 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1440 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1441 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1442 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1443 {
1444 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1445 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1446 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1447 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1448 {
1449 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1450 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1451 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1452 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1453 {
1454 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1455 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1456 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1457 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1458 {
1459 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1460 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1461 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1462 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1463 {
1464 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1465 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1466 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1467 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1468 {
1469 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1470 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1471 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1472 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1473 {
1474 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1475 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1476 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1477 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1478 {
1479 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1480 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1481 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1482 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1483 {
1484 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1485 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1486 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1487 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1488 {
1489 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1490 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1491 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1492 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1493 {
1494 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1495 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1496 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1497 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1498 {
1499 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1500 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1501 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1502 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1503 {
1504 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1505 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1506 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1507 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1508 {
1509 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1510 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1511 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1512 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1513 {
1514 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1515 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1516 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1517 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1518 {
1519 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1520 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1521 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1522 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1523 {
1524 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1525 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1526 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1527 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1528 {
1529 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1530 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1531 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1532 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1533 {
1534 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1535 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1536 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1537 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1538 };
1539
1540 static chan_info_nphy_radio205x_t chan_info_nphyrev4_2056_A1[] = {
1541 {
1542 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1543 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1544 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1545 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1546 {
1547 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1548 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1549 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1550 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1551 {
1552 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1553 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1554 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1555 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1556 {
1557 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1558 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1559 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1560 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1561 {
1562 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1563 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1564 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1565 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1566 {
1567 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1568 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1569 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1570 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1571 {
1572 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1573 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1574 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1575 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1576 {
1577 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1578 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1579 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1580 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1581 {
1582 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1583 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1584 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1585 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1586 {
1587 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1588 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1589 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1590 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1591 {
1592 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1593 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1594 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1595 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1596 {
1597 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1598 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1599 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1600 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1601 {
1602 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1603 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1604 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1605 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1606 {
1607 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1608 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1609 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1610 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1611 {
1612 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1613 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1614 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1615 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1616 {
1617 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1618 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1619 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1620 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1621 {
1622 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1623 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1624 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1625 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1626 {
1627 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1628 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1629 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1630 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1631 {
1632 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1633 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1634 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1635 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1636 {
1637 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1638 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1639 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1640 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1641 {
1642 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1643 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1644 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1645 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1646 {
1647 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1648 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1649 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1650 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1651 {
1652 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1653 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1654 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1655 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1656 {
1657 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1658 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1659 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1660 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1661 {
1662 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1663 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1664 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1665 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1666 {
1667 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1668 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1669 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1670 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1671 {
1672 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1673 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1674 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1675 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1676 {
1677 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1678 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1679 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1680 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1681 {
1682 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1683 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1684 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1685 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1686 {
1687 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1688 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1689 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1690 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1691 {
1692 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1693 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1694 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1695 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1696 {
1697 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1698 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1699 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1700 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1701 {
1702 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1703 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1704 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1705 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1706 {
1707 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1708 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1709 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1710 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1711 {
1712 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1713 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1714 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1715 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1716 {
1717 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1718 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1719 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1720 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1721 {
1722 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1723 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1724 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1725 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1726 {
1727 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1728 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1729 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1730 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1731 {
1732 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1733 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1734 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1735 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1736 {
1737 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1738 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1739 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1740 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1741 {
1742 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1743 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1744 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1745 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1746 {
1747 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1748 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1749 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1750 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1751 {
1752 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1753 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1754 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1755 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1756 {
1757 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1758 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1759 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1760 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1761 {
1762 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1763 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1764 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1765 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1766 {
1767 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1768 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1769 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1770 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1771 {
1772 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1773 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1774 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1775 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1776 {
1777 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1778 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1779 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1780 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1781 {
1782 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1783 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1784 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1785 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1786 {
1787 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1788 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1789 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1790 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1791 {
1792 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1793 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1794 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1795 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1796 {
1797 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1798 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1799 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1800 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1801 {
1802 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1803 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1804 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1805 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1806 {
1807 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1808 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1809 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1810 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1811 {
1812 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1813 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1814 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1815 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1816 {
1817 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1818 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1819 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1820 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1821 {
1822 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1823 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1824 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1825 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1826 {
1827 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1828 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1829 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1830 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1831 {
1832 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1833 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1834 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1835 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1836 {
1837 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1838 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1839 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1840 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1841 {
1842 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1843 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1844 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1845 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1846 {
1847 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1848 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1849 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1850 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1851 {
1852 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1853 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1854 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1855 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1856 {
1857 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1858 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1859 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1860 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1861 {
1862 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1863 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1864 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1865 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1866 {
1867 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1868 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1869 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1870 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1871 {
1872 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1873 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1874 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1875 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1876 {
1877 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1878 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1879 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1880 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1881 {
1882 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1883 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1884 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1885 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1886 {
1887 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1888 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1889 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1890 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1891 {
1892 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1893 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1894 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1895 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1896 {
1897 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1898 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1899 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1900 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1901 {
1902 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1903 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1904 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1905 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1906 {
1907 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1908 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1909 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1910 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1911 {
1912 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1913 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1914 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1915 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1916 {
1917 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1918 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1919 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1920 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1921 {
1922 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1923 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1924 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1925 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1926 {
1927 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1928 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1929 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1930 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1931 {
1932 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1933 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1934 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1935 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1936 {
1937 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1938 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1939 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1940 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1941 {
1942 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1943 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1944 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1945 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1946 {
1947 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1948 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1949 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1950 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1951 {
1952 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1953 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1954 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1955 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1956 {
1957 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1958 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1959 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1960 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1961 {
1962 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1963 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1964 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1965 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1966 {
1967 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1968 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1969 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1970 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1971 {
1972 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1973 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1974 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1975 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1976 {
1977 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1978 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1979 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1980 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1981 {
1982 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1983 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1984 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1985 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1986 {
1987 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1988 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1989 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1990 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1991 {
1992 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1993 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1994 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1995 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1996 {
1997 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1998 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1999 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2000 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2001 {
2002 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2003 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2004 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2005 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2006 {
2007 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2008 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2009 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2010 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2011 {
2012 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2013 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2014 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2015 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2016 {
2017 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2018 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2019 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2020 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2021 {
2022 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2023 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2024 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2025 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2026 {
2027 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2028 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2029 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2030 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2031 {
2032 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2033 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2034 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2035 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2036 {
2037 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2038 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2039 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2040 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2041 {
2042 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2043 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2044 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2045 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2046 {
2047 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2048 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2049 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2050 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2051 {
2052 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2053 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2054 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2055 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2056 {
2057 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2058 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2059 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2060 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2061 {
2062 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2063 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2064 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2065 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2066 {
2067 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2068 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2069 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2070 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2071 {
2072 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2073 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2074 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2075 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2076 {
2077 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2078 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2079 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2080 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2081 {
2082 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2083 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2084 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2085 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2086 {
2087 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2088 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2089 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2090 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2091 {
2092 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2093 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2094 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2095 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2096 {
2097 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2098 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2099 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2100 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2101 {
2102 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2103 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2104 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2105 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2106 {
2107 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2108 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2109 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2110 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2111 {
2112 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2113 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2114 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2115 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2116 {
2117 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2118 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2119 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2120 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2121 {
2122 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2123 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2124 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2125 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2126 {
2127 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2128 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2129 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2130 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2131 {
2132 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2133 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2134 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2135 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2136 {
2137 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2138 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2139 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2140 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2141 {
2142 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2143 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2144 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2145 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2146 {
2147 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2148 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2149 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2150 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2151 {
2152 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2153 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2154 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2155 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2156 {
2157 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2158 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2159 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2160 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2161 };
2162
2163 static chan_info_nphy_radio205x_t chan_info_nphyrev5_2056v5[] = {
2164 {
2165 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2166 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2167 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2168 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2169 {
2170 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2171 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2172 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2173 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2174 {
2175 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2176 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2177 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2178 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2179 {
2180 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2181 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2182 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2183 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2184 {
2185 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2186 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2187 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2188 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2189 {
2190 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2191 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2192 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2193 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2194 {
2195 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2196 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2197 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2198 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2199 {
2200 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2201 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2202 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2203 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2204 {
2205 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2206 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2207 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2208 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2209 {
2210 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2211 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2212 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2213 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2214 {
2215 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2216 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2217 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2218 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2219 {
2220 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2221 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2222 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2223 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2224 {
2225 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2226 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2227 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2228 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2229 {
2230 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2231 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2232 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2233 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2234 {
2235 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2236 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2237 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2238 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2239 {
2240 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2241 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2242 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2243 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2244 {
2245 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2246 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2247 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2248 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2249 {
2250 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2251 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2252 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2253 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2254 {
2255 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2256 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2257 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2258 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2259 {
2260 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2261 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2262 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2263 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2264 {
2265 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2266 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2267 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2268 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2269 {
2270 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2271 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2272 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2273 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2274 {
2275 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2276 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2277 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2278 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2279 {
2280 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2281 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2282 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2283 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2284 {
2285 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2286 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2287 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2288 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2289 {
2290 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2291 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2292 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2293 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2294 {
2295 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2296 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2297 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2298 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2299 {
2300 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2301 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2302 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2303 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2304 {
2305 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2306 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2307 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2308 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2309 {
2310 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2311 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2312 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2313 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2314 {
2315 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2316 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2317 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2318 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2319 {
2320 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2321 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2322 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2323 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2324 {
2325 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2326 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2327 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2328 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2329 {
2330 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2331 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2332 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2333 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2334 {
2335 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2336 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2337 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2338 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2339 {
2340 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2341 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2342 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2343 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2344 {
2345 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2346 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2347 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2348 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2349 {
2350 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2351 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2352 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2353 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2354 {
2355 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2356 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2357 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2358 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2359 {
2360 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2361 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2362 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2363 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2364 {
2365 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2366 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2367 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2368 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2369 {
2370 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2371 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2372 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2373 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2374 {
2375 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2376 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2377 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2378 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2379 {
2380 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2381 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2382 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2383 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2384 {
2385 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2386 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2387 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2388 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2389 {
2390 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2391 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2392 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2393 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2394 {
2395 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2396 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2397 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2398 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2399 {
2400 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2401 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2402 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2403 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2404 {
2405 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2406 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2407 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2408 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2409 {
2410 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2411 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2412 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2413 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2414 {
2415 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2416 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2417 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2418 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2419 {
2420 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2421 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2422 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2423 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2424 {
2425 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2426 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2427 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2428 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2429 {
2430 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2431 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2432 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2433 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2434 {
2435 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2436 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2437 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2438 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2439 {
2440 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2441 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2442 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2443 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2444 {
2445 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2446 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2447 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2448 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2449 {
2450 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2451 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2452 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2453 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2454 {
2455 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2456 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2457 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2458 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2459 {
2460 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2461 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2462 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2463 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2464 {
2465 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2466 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2467 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2468 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2469 {
2470 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2471 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2472 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2473 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2474 {
2475 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2476 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2477 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2478 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2479 {
2480 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2481 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2482 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2483 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2484 {
2485 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2486 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2487 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2488 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2489 {
2490 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2491 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2492 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2493 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2494 {
2495 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2496 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2497 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2498 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2499 {
2500 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2501 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2502 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2503 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2504 {
2505 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2506 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2507 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2508 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2509 {
2510 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2511 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2512 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2513 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2514 {
2515 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2516 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2517 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2518 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2519 {
2520 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2521 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2522 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2523 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2524 {
2525 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2526 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2527 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2528 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2529 {
2530 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2531 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2532 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2533 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2534 {
2535 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2536 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2537 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2538 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2539 {
2540 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2541 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2542 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2543 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2544 {
2545 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2546 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2547 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2548 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2549 {
2550 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2551 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2552 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2553 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2554 {
2555 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2556 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2557 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2558 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2559 {
2560 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2561 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2562 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2563 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2564 {
2565 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2566 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2567 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2568 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2569 {
2570 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2571 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2572 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2573 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2574 {
2575 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2576 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2577 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2578 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2579 {
2580 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2581 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2582 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2583 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2584 {
2585 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2586 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2587 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2588 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2589 {
2590 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2591 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2592 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2593 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2594 {
2595 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2596 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2597 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2598 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2599 {
2600 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2601 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2602 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2603 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2604 {
2605 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2606 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2607 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2608 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2609 {
2610 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2611 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2612 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2613 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2614 {
2615 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2616 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2617 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2618 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2619 {
2620 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2621 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2622 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2623 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2624 {
2625 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2626 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2627 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2628 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2629 {
2630 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2631 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2632 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2633 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2634 {
2635 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2636 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2637 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2638 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2639 {
2640 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2641 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2642 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2643 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2644 {
2645 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2646 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2647 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2648 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2649 {
2650 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2651 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2652 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2653 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2654 {
2655 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2656 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2657 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2658 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2659 {
2660 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2661 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2662 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2663 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2664 {
2665 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2666 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2667 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2668 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2669 {
2670 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2671 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2672 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2673 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2674 {
2675 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2676 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2677 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2678 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2679 {
2680 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2681 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2682 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2683 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2684 {
2685 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2686 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2687 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2688 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2689 {
2690 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2691 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2692 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2693 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2694 {
2695 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2696 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2697 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2698 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2699 {
2700 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2701 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2702 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2703 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2704 {
2705 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2706 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2707 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2708 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2709 {
2710 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2711 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2712 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2713 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2714 {
2715 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2716 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2717 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2718 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2719 {
2720 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2721 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2722 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2723 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2724 {
2725 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2726 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2727 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2728 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2729 {
2730 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2731 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2732 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2733 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2734 {
2735 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2736 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2737 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2738 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2739 {
2740 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2741 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2742 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2743 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2744 {
2745 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2746 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2747 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2748 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2749 {
2750 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2751 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2752 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2753 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2754 {
2755 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2756 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2757 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2758 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2759 {
2760 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2761 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2762 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2763 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2764 {
2765 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2766 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2767 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2768 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2769 {
2770 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2771 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2772 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2773 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2774 {
2775 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2776 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2777 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2778 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2779 {
2780 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2781 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2782 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2783 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2784 };
2785
2786 static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v6[] = {
2787 {
2788 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2789 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2790 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2791 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2792 {
2793 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2794 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2795 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2796 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2797 {
2798 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2799 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2800 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2801 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2802 {
2803 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2804 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2805 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2806 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2807 {
2808 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2809 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2810 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2811 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2812 {
2813 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2814 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2815 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2816 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2817 {
2818 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2819 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2820 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2821 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2822 {
2823 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2824 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2825 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2826 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2827 {
2828 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2829 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2830 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2831 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2832 {
2833 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2834 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2835 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2836 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2837 {
2838 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2839 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2840 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2841 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2842 {
2843 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2844 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2845 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2846 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2847 {
2848 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2849 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2850 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2851 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2852 {
2853 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2854 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2855 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2856 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2857 {
2858 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2859 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2860 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2861 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2862 {
2863 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2864 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2865 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2866 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2867 {
2868 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2869 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2870 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2871 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2872 {
2873 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2874 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2875 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2876 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2877 {
2878 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2879 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2880 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2881 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2882 {
2883 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2884 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2885 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2886 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2887 {
2888 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2889 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2890 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2891 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2892 {
2893 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2894 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2895 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2896 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2897 {
2898 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2899 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2900 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2901 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2902 {
2903 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2904 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2905 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2906 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2907 {
2908 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2909 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2910 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2911 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2912 {
2913 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2914 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2915 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2916 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2917 {
2918 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2919 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2920 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2921 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2922 {
2923 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2924 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2925 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2926 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2927 {
2928 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2929 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2930 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2931 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2932 {
2933 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2934 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2935 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2936 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2937 {
2938 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2939 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2940 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2941 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2942 {
2943 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2944 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2945 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2946 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2947 {
2948 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2949 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2950 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2951 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2952 {
2953 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2954 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2955 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2956 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2957 {
2958 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2959 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2960 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2961 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2962 {
2963 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2964 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2965 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2966 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2967 {
2968 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2969 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2970 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2971 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2972 {
2973 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2974 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2975 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2976 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2977 {
2978 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2979 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2980 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2981 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2982 {
2983 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2984 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
2985 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2986 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2987 {
2988 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2989 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
2990 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2991 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2992 {
2993 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2994 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2995 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2996 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2997 {
2998 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2999 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3000 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3001 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3002 {
3003 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3004 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3005 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3006 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3007 {
3008 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3009 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3010 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3011 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3012 {
3013 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3014 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3015 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3016 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3017 {
3018 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3019 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3020 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3021 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3022 {
3023 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3024 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3025 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3026 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3027 {
3028 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3029 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3030 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3031 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3032 {
3033 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3034 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3035 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3036 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3037 {
3038 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3039 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3040 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3041 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3042 {
3043 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3044 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3045 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3046 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3047 {
3048 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3049 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3050 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3051 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3052 {
3053 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3054 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3055 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3056 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3057 {
3058 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3059 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3060 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3061 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3062 {
3063 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3064 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3065 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3066 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3067 {
3068 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3069 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3070 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3071 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3072 {
3073 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3074 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3075 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3076 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3077 {
3078 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3079 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3080 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3081 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3082 {
3083 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3084 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3085 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3086 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3087 {
3088 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3089 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3090 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3091 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3092 {
3093 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3094 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3095 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3096 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3097 {
3098 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3099 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3100 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3101 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3102 {
3103 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3104 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3105 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3106 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3107 {
3108 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3109 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3110 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3111 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3112 {
3113 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3114 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3115 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3116 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3117 {
3118 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3119 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3120 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3121 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3122 {
3123 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3124 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3125 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3126 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3127 {
3128 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3129 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3130 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3131 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3132 {
3133 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3134 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3135 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3136 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3137 {
3138 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3139 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3140 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3141 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3142 {
3143 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3144 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3145 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3146 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3147 {
3148 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3149 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3150 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3151 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3152 {
3153 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3154 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3155 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3156 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3157 {
3158 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3159 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3160 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3161 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3162 {
3163 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3164 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3165 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3166 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3167 {
3168 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3169 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3170 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3171 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3172 {
3173 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3174 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3175 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3176 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3177 {
3178 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3179 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3180 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3181 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3182 {
3183 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3184 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3185 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3186 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3187 {
3188 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3189 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3190 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3191 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3192 {
3193 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3194 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3195 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3196 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3197 {
3198 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3199 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3200 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3201 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3202 {
3203 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3204 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3205 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3206 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3207 {
3208 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3209 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3210 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3211 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3212 {
3213 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3214 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3215 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3216 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3217 {
3218 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3219 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3220 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3221 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3222 {
3223 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3224 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3225 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3226 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3227 {
3228 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3229 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3230 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3231 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3232 {
3233 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3234 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3235 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3236 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3237 {
3238 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3239 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3240 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3241 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3242 {
3243 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3244 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3245 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3246 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3247 {
3248 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3249 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3250 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3251 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3252 {
3253 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3254 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3255 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3256 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3257 {
3258 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3259 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3260 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3261 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3262 {
3263 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3264 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3265 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3266 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3267 {
3268 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3269 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3270 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3271 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3272 {
3273 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3274 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3275 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3276 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3277 {
3278 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3279 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3280 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3281 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3282 {
3283 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3284 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3285 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3286 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3287 {
3288 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3289 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3290 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3291 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3292 {
3293 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3294 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3295 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3296 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3297 {
3298 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3299 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3300 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3301 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3302 {
3303 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3304 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3305 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3306 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3307 {
3308 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3309 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3310 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3311 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3312 {
3313 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3314 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3315 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3316 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3317 {
3318 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3319 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3320 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3321 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3322 {
3323 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3324 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3325 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3326 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3327 {
3328 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3329 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3330 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3331 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3332 {
3333 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3334 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3335 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3336 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3337 {
3338 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3339 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3340 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3341 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3342 {
3343 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3344 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3345 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3346 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3347 {
3348 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3349 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3350 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3351 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3352 {
3353 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3354 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3355 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3356 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3357 {
3358 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3359 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3360 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3361 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3362 {
3363 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3364 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3365 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3366 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3367 {
3368 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3369 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3370 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3371 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3372 {
3373 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3374 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3375 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3376 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3377 {
3378 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3379 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3380 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3381 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3382 {
3383 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3384 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3385 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3386 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3387 {
3388 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3389 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3390 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3391 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3392 {
3393 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3394 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3395 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3396 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3397 {
3398 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3399 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3400 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3401 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3402 {
3403 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3404 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3405 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3406 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3407 };
3408
3409 static chan_info_nphy_radio205x_t chan_info_nphyrev5n6_2056v7[] = {
3410 {
3411 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3412 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3413 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3414 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3415 {
3416 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3417 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3418 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3419 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3420 {
3421 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3422 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3423 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3424 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3425 {
3426 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3427 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3428 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3429 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3430 {
3431 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3432 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3433 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3434 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3435 {
3436 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3437 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3438 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3439 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3440 {
3441 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3442 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3443 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3444 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3445 {
3446 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3447 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3448 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3449 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3450 {
3451 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3452 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3453 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3454 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3455 {
3456 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3457 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3458 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3459 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3460 {
3461 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3462 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3463 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3464 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3465 {
3466 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3467 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3468 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3469 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3470 {
3471 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3472 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3473 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3474 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3475 {
3476 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3477 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3478 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3479 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3480 {
3481 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3482 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3483 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3484 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3485 {
3486 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3487 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3488 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3489 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3490 {
3491 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3492 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3493 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3494 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3495 {
3496 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3497 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3498 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3499 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3500 {
3501 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3502 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3503 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3504 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3505 {
3506 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3507 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3508 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3509 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3510 {
3511 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3512 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3513 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3514 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3515 {
3516 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3517 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3518 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3519 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3520 {
3521 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3522 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3523 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3524 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3525 {
3526 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3527 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3528 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3529 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3530 {
3531 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3532 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3533 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3534 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3535 {
3536 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3537 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3538 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3539 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3540 {
3541 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3542 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3543 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3544 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3545 {
3546 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3547 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3548 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3549 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3550 {
3551 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3552 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3553 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3554 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3555 {
3556 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3557 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3558 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3559 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3560 {
3561 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3562 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3563 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3564 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3565 {
3566 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3567 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3568 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3569 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3570 {
3571 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3572 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3573 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3574 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3575 {
3576 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3577 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3578 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3579 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3580 {
3581 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3582 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3583 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3584 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3585 {
3586 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3587 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3588 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3589 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3590 {
3591 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3592 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3593 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3594 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3595 {
3596 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3597 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3598 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3599 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3600 {
3601 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3602 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3603 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3604 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3605 {
3606 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3607 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3608 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3609 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3610 {
3611 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3612 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3613 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3614 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3615 {
3616 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3617 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3618 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3619 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3620 {
3621 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3622 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3623 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3624 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3625 {
3626 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3627 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3628 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3629 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3630 {
3631 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3632 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3633 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3634 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3635 {
3636 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3637 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3638 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3639 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3640 {
3641 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3642 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3643 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3644 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3645 {
3646 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3647 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3648 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3649 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3650 {
3651 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3652 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3653 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3654 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3655 {
3656 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3657 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3658 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3659 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3660 {
3661 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3662 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3663 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3664 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3665 {
3666 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3667 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3668 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3669 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3670 {
3671 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3672 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3673 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3674 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3675 {
3676 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3677 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3678 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3679 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3680 {
3681 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3682 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3683 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3684 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3685 {
3686 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3687 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3688 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3689 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3690 {
3691 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3692 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3693 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3694 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3695 {
3696 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3697 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3698 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3699 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3700 {
3701 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3702 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3703 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3704 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3705 {
3706 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3707 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3708 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3709 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3710 {
3711 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3712 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3713 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3714 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3715 {
3716 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3717 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3718 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3719 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3720 {
3721 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3722 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3723 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3724 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3725 {
3726 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3727 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3728 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3729 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3730 {
3731 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3732 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3733 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3734 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3735 {
3736 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3737 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3738 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3739 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3740 {
3741 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3742 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3743 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3744 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3745 {
3746 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3747 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3748 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3749 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3750 {
3751 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3752 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3753 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3754 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3755 {
3756 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3757 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3758 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3759 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3760 {
3761 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3762 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3763 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3764 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3765 {
3766 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3767 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3768 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3769 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3770 {
3771 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3772 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3773 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3774 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3775 {
3776 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3777 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3778 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3779 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3780 {
3781 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3782 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3783 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3784 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3785 {
3786 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3787 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3788 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3789 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3790 {
3791 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3792 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3793 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3794 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3795 {
3796 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3797 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3798 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3799 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3800 {
3801 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3802 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3803 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3804 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3805 {
3806 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3807 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3808 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3809 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3810 {
3811 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3812 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3813 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3814 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3815 {
3816 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3817 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3818 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3819 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3820 {
3821 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3822 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3823 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3824 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3825 {
3826 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3827 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3828 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3829 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3830 {
3831 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3832 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3833 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3834 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3835 {
3836 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3837 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3838 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3839 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3840 {
3841 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3842 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3843 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3844 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3845 {
3846 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3847 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3848 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3849 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3850 {
3851 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3852 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3853 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3854 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3855 {
3856 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3857 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3858 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3859 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3860 {
3861 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3862 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3863 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3864 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3865 {
3866 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3867 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3868 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3869 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3870 {
3871 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3872 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3873 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3874 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3875 {
3876 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3877 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3878 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3879 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3880 {
3881 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3882 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3883 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3884 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3885 {
3886 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3887 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3888 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3889 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3890 {
3891 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3892 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3893 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3894 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3895 {
3896 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3897 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3898 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3899 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3900 {
3901 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3902 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3903 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3904 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3905 {
3906 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3907 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3908 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3909 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3910 {
3911 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3912 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3913 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3914 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3915 {
3916 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3917 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3918 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3919 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3920 {
3921 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3922 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3923 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3924 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3925 {
3926 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3927 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3928 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3929 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3930 {
3931 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3932 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3933 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3934 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3935 {
3936 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3937 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3938 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3939 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3940 {
3941 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3942 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3943 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3944 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3945 {
3946 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3947 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3948 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3949 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3950 {
3951 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3952 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3953 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3954 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3955 {
3956 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3957 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3958 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3959 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3960 {
3961 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3962 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3963 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3964 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3965 {
3966 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3967 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3968 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3969 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3970 {
3971 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3972 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3973 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3974 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3975 {
3976 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3977 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3978 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3979 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3980 {
3981 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3982 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
3983 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
3984 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3985 {
3986 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3987 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
3988 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
3989 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3990 {
3991 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3992 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
3993 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
3994 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3995 {
3996 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3997 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
3998 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
3999 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4000 {
4001 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4002 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4003 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4004 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4005 {
4006 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4007 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4008 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4009 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4010 {
4011 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4012 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4013 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4014 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4015 {
4016 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4017 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4018 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4019 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4020 {
4021 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4022 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4023 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4024 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4025 {
4026 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4027 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4028 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4029 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4030 };
4031
4032 static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v8[] = {
4033 {
4034 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4035 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4036 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4037 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4038 {
4039 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4040 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4041 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4042 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4043 {
4044 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4045 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4046 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4047 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4048 {
4049 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4050 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4051 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4052 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4053 {
4054 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4055 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4056 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4057 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4058 {
4059 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4060 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4061 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4062 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4063 {
4064 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4065 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4066 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4067 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4068 {
4069 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4070 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4071 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4072 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4073 {
4074 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4075 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4076 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4077 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4078 {
4079 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4080 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4081 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4082 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4083 {
4084 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4085 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4086 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4087 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4088 {
4089 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4090 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4091 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4092 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4093 {
4094 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4095 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4096 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4097 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4098 {
4099 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4100 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4101 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4102 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4103 {
4104 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4105 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4106 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4107 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4108 {
4109 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4110 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4111 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4112 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4113 {
4114 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4115 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4116 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4117 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4118 {
4119 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4120 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4121 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4122 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4123 {
4124 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4125 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4126 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4127 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4128 {
4129 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4130 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4131 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4132 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4133 {
4134 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4135 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4136 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4137 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4138 {
4139 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4140 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4141 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4142 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4143 {
4144 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4145 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4146 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4147 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4148 {
4149 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4150 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4151 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4152 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4153 {
4154 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4155 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4156 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4157 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4158 {
4159 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4160 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4161 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4162 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4163 {
4164 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4165 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4166 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4167 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4168 {
4169 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4170 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4171 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4172 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4173 {
4174 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4175 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4176 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4177 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4178 {
4179 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4180 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4181 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4182 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4183 {
4184 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4185 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4186 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4187 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4188 {
4189 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4190 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4191 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4192 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4193 {
4194 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4195 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4196 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4197 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4198 {
4199 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4200 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4201 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4202 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4203 {
4204 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4205 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4206 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4207 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4208 {
4209 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4210 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4211 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4212 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4213 {
4214 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4215 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4216 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4217 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4218 {
4219 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4220 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4221 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4222 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4223 {
4224 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4225 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4226 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4227 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4228 {
4229 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4230 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4231 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4232 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4233 {
4234 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4235 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4236 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4237 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4238 {
4239 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4240 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4241 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4242 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4243 {
4244 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4245 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4246 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4247 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4248 {
4249 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4250 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4251 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4252 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4253 {
4254 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4255 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4256 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4257 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4258 {
4259 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4260 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4261 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4262 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4263 {
4264 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4265 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4266 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4267 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4268 {
4269 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4270 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4271 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4272 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4273 {
4274 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4275 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4276 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4277 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4278 {
4279 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4280 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4281 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4282 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4283 {
4284 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4285 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4286 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4287 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4288 {
4289 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4290 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4291 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4292 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4293 {
4294 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4295 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4296 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4297 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4298 {
4299 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4300 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4301 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4302 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4303 {
4304 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4305 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4306 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4307 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4308 {
4309 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4310 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4311 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4312 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4313 {
4314 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4315 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4316 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4317 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4318 {
4319 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4320 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4321 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4322 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4323 {
4324 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4325 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4326 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4327 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4328 {
4329 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4330 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4331 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4332 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4333 {
4334 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4335 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4336 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4337 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4338 {
4339 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4340 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4341 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4342 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4343 {
4344 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4345 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4346 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4347 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4348 {
4349 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4350 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4351 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4352 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4353 {
4354 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4355 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4356 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4357 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4358 {
4359 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4360 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4361 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4362 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4363 {
4364 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4365 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4366 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4367 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4368 {
4369 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4370 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4371 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4372 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4373 {
4374 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4375 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4376 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4377 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4378 {
4379 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4380 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4381 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4382 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4383 {
4384 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4385 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4386 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4387 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4388 {
4389 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4390 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4391 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4392 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4393 {
4394 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4395 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4396 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4397 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4398 {
4399 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4400 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4401 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4402 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4403 {
4404 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4405 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4406 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4407 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4408 {
4409 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4410 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4411 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4412 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4413 {
4414 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4415 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4416 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4417 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4418 {
4419 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4420 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4421 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4422 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4423 {
4424 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4425 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4426 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4427 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4428 {
4429 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4430 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4431 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4432 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4433 {
4434 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4435 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4436 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4437 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4438 {
4439 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4440 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4441 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4442 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4443 {
4444 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4445 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4446 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4447 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4448 {
4449 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4450 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4451 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4452 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4453 {
4454 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4455 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4456 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4457 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4458 {
4459 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4460 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4461 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4462 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4463 {
4464 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4465 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4466 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4467 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4468 {
4469 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4470 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4471 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4472 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4473 {
4474 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4475 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4476 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4477 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4478 {
4479 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4480 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4481 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4482 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4483 {
4484 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4485 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4486 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4487 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4488 {
4489 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4490 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4491 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4492 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4493 {
4494 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4495 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4496 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4497 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4498 {
4499 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4500 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4501 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4502 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4503 {
4504 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4505 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4506 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4507 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4508 {
4509 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4510 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4511 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4512 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4513 {
4514 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4515 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4516 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4517 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4518 {
4519 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4520 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4521 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4522 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4523 {
4524 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4525 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4526 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4527 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4528 {
4529 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4530 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4531 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4532 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4533 {
4534 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4535 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4536 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4537 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4538 {
4539 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4540 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4541 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4542 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4543 {
4544 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4545 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4546 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4547 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4548 {
4549 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4550 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4551 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4552 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4553 {
4554 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4555 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4556 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4557 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4558 {
4559 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4560 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4561 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4562 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4563 {
4564 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4565 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4566 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4567 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4568 {
4569 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4570 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4571 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4572 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4573 {
4574 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4575 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4576 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4577 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4578 {
4579 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4580 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4581 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4582 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4583 {
4584 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4585 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4586 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4587 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4588 {
4589 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4590 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4591 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4592 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4593 {
4594 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4595 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4596 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4597 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4598 {
4599 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4600 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4601 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4602 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4603 {
4604 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4605 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4606 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4607 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4608 {
4609 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4610 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4611 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4612 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4613 {
4614 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4615 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4616 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4617 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4618 {
4619 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4620 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4621 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4622 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4623 {
4624 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4625 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4626 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4627 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4628 {
4629 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4630 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4631 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4632 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4633 {
4634 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4635 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4636 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4637 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4638 {
4639 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4640 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4641 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4642 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4643 {
4644 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4645 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4646 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4647 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4648 {
4649 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4650 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4651 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4652 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4653 };
4654
4655 static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v11[] = {
4656 {
4657 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4658 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4659 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4660 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4661 {
4662 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4663 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4664 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4665 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4666 {
4667 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4668 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4669 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4670 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4671 {
4672 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4673 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4674 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4675 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4676 {
4677 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4678 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4679 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4680 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4681 {
4682 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4683 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4684 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4685 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4686 {
4687 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4688 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4689 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4690 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4691 {
4692 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4693 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4694 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4695 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4696 {
4697 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4698 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4699 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4700 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4701 {
4702 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4703 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4704 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4705 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4706 {
4707 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4708 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4709 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4710 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4711 {
4712 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4713 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4714 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4715 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4716 {
4717 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4718 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4719 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4720 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4721 {
4722 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4723 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4724 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4725 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4726 {
4727 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4728 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4729 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4730 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4731 {
4732 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4733 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4734 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4735 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4736 {
4737 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4738 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4739 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4740 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4741 {
4742 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4743 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4744 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4745 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4746 {
4747 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4748 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4749 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4750 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4751 {
4752 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4753 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4754 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4755 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4756 {
4757 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4758 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4759 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4760 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4761 {
4762 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4763 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4764 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4765 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4766 {
4767 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4768 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4769 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4770 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4771 {
4772 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4773 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4774 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4775 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4776 {
4777 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4778 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4779 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4780 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4781 {
4782 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4783 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4784 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4785 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4786 {
4787 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4788 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4789 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4790 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4791 {
4792 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4793 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4794 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4795 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4796 {
4797 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4798 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4799 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4800 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4801 {
4802 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4803 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4804 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4805 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4806 {
4807 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4808 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4809 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4810 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4811 {
4812 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4813 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4814 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4815 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4816 {
4817 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4818 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4819 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4820 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4821 {
4822 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4823 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4824 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4825 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4826 {
4827 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4828 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4829 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4830 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4831 {
4832 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4833 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4834 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4835 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4836 {
4837 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4838 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4839 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4840 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4841 {
4842 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4843 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4844 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4845 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4846 {
4847 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4848 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4849 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4850 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4851 {
4852 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4853 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4854 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4855 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4856 {
4857 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4858 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4859 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4860 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4861 {
4862 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4863 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4864 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4865 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4866 {
4867 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4868 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4869 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4870 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4871 {
4872 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4873 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4874 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4875 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4876 {
4877 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4878 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4879 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4880 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4881 {
4882 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4883 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4884 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4885 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4886 {
4887 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4888 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4889 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4890 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4891 {
4892 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4893 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4894 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4895 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4896 {
4897 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4898 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4899 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4900 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4901 {
4902 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4903 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4904 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4905 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4906 {
4907 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4908 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4909 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4910 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4911 {
4912 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4913 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4914 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4915 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4916 {
4917 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4918 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4919 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4920 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4921 {
4922 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4923 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4924 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4925 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4926 {
4927 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4928 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4929 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4930 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4931 {
4932 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4933 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4934 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4935 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4936 {
4937 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4938 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4939 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4940 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4941 {
4942 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4943 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4944 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4945 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4946 {
4947 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4948 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4949 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4950 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4951 {
4952 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4953 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4954 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4955 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4956 {
4957 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4958 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4959 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4960 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4961 {
4962 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4963 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4964 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4965 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4966 {
4967 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4968 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4969 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4970 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4971 {
4972 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4973 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4974 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4975 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4976 {
4977 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4978 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4979 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4980 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4981 {
4982 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4983 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4984 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4985 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4986 {
4987 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4988 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4989 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4990 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4991 {
4992 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
4993 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4994 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4995 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4996 {
4997 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
4998 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4999 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5000 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5001 {
5002 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5003 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5004 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5005 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5006 {
5007 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5008 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5009 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5010 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5011 {
5012 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5013 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5014 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5015 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5016 {
5017 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5018 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5019 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5020 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5021 {
5022 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5023 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5024 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5025 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5026 {
5027 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5028 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5029 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5030 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5031 {
5032 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5033 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5034 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5035 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5036 {
5037 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5038 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5039 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5040 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5041 {
5042 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5043 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5044 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5045 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5046 {
5047 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5048 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5049 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5050 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5051 {
5052 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5053 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5054 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5055 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5056 {
5057 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5058 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5059 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5060 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5061 {
5062 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5063 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5064 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5065 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5066 {
5067 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5068 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5069 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5070 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5071 {
5072 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5073 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5074 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5075 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5076 {
5077 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5078 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5079 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5080 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5081 {
5082 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5083 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5084 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5085 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5086 {
5087 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5088 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5089 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5090 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5091 {
5092 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5093 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5094 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5095 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5096 {
5097 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5098 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5099 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5100 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5101 {
5102 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5103 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5104 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5105 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5106 {
5107 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5108 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5109 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5110 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5111 {
5112 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5113 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5114 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5115 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5116 {
5117 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5118 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5119 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5120 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5121 {
5122 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5123 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5124 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5125 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5126 {
5127 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5128 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5129 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5130 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5131 {
5132 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5133 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5134 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5135 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5136 {
5137 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5138 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5139 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5140 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5141 {
5142 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5143 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5144 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5145 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5146 {
5147 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5148 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5149 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5150 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5151 {
5152 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5153 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5154 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5155 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5156 {
5157 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5158 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5159 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5160 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5161 {
5162 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5163 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5164 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5165 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5166 {
5167 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5168 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5169 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5170 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5171 {
5172 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5173 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5174 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5175 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5176 {
5177 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5178 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5179 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5180 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5181 {
5182 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5183 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5184 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5185 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5186 {
5187 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5188 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5189 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5190 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5191 {
5192 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5193 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5194 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5195 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5196 {
5197 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5198 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5199 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5200 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5201 {
5202 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5203 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5204 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5205 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5206 {
5207 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5208 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5209 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5210 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5211 {
5212 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5213 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5214 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5215 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5216 {
5217 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5218 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5219 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5220 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5221 {
5222 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5223 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5224 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5225 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5226 {
5227 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5228 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5229 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5230 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5231 {
5232 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5233 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5234 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5235 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5236 {
5237 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5238 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5239 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5240 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5241 {
5242 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5243 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5244 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5245 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5246 {
5247 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5248 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5249 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5250 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5251 {
5252 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5253 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5254 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5255 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5256 {
5257 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5258 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5259 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5260 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5261 {
5262 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5263 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5264 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5265 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5266 {
5267 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5268 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5269 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5270 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5271 {
5272 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5273 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5274 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5275 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5276 };
5277
5278 static chan_info_nphy_radio2057_t chan_info_nphyrev7_2057_rev4[] = {
5279 {
5280 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5281 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5282 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5283 0x0215,
5284 0x0216,
5285 },
5286 {
5287 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5288 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5289 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5290 0x0214,
5291 0x0215,
5292 },
5293 {
5294 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5295 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5296 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5297 0x0213,
5298 0x0214,
5299 },
5300 {
5301 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5302 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5303 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5304 0x0212,
5305 0x0213,
5306 },
5307 {
5308 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5309 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5310 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5311 0x0211,
5312 0x0212,
5313 },
5314 {
5315 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5316 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5317 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5318 0x020f,
5319 0x0211,
5320 },
5321 {
5322 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5323 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5324 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5325 0x020e,
5326 0x020f,
5327 },
5328 {
5329 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5330 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5331 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5332 0x020d,
5333 0x020e,
5334 },
5335 {
5336 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5337 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5338 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5339 0x020c,
5340 0x020d,
5341 },
5342 {
5343 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5344 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5345 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5346 0x020b,
5347 0x020c,
5348 },
5349 {
5350 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5351 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5352 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5353 0x020a,
5354 0x020b,
5355 },
5356 {
5357 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5358 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5359 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5360 0x0209,
5361 0x020a,
5362 },
5363 {
5364 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5365 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5366 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5367 0x0208,
5368 0x0209,
5369 },
5370 {
5371 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5372 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5373 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5374 0x0207,
5375 0x0208,
5376 },
5377 {
5378 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5379 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5380 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5381 0x0206,
5382 0x0207,
5383 },
5384 {
5385 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5386 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5387 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5388 0x0205,
5389 0x0206,
5390 },
5391 {
5392 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5393 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5394 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5395 0x0204,
5396 0x0205,
5397 },
5398 {
5399 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5400 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5401 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5402 0x0203,
5403 0x0204,
5404 },
5405 {
5406 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5407 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5408 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5409 0x0202,
5410 0x0203,
5411 },
5412 {
5413 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5414 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5415 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5416 0x0201,
5417 0x0202,
5418 },
5419 {
5420 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5421 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5422 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5423 0x0200,
5424 0x0201,
5425 },
5426 {
5427 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5428 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5429 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5430 0x01ff,
5431 0x0200,
5432 },
5433 {
5434 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5435 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5436 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5437 0x01fe,
5438 0x01ff,
5439 },
5440 {
5441 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5442 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5443 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5444 0x01fc,
5445 0x01fd,
5446 },
5447 {
5448 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5449 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5450 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5451 0x01fb,
5452 0x01fc,
5453 },
5454 {
5455 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5456 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5457 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5458 0x01fa,
5459 0x01fb,
5460 },
5461 {
5462 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5463 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5464 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5465 0x01f9,
5466 0x01fa,
5467 },
5468 {
5469 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5470 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5471 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5472 0x01f8,
5473 0x01f9,
5474 },
5475 {
5476 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5477 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5478 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5479 0x01f7,
5480 0x01f8,
5481 },
5482 {
5483 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5484 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5485 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5486 0x01f6,
5487 0x01f7,
5488 },
5489 {
5490 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5491 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5492 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5493 0x01f5,
5494 0x01f6,
5495 },
5496 {
5497 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5498 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5499 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5500 0x01f4,
5501 0x01f5,
5502 },
5503 {
5504 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5505 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5506 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5507 0x01f3,
5508 0x01f4,
5509 },
5510 {
5511 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5512 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5513 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5514 0x01f2,
5515 0x01f3,
5516 },
5517 {
5518 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5519 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5520 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5521 0x01f1,
5522 0x01f2,
5523 },
5524 {
5525 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5526 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5527 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5528 0x01f0,
5529 0x01f1,
5530 },
5531 {
5532 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5533 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5534 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5535 0x01f0,
5536 0x01f0,
5537 },
5538 {
5539 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5540 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5541 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5542 0x01ef,
5543 0x01f0,
5544 },
5545 {
5546 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5547 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5548 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5549 0x01ee,
5550 0x01ef,
5551 },
5552 {
5553 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5554 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5555 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5556 0x01ed,
5557 0x01ee,
5558 },
5559 {
5560 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5561 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5562 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5563 0x01ec,
5564 0x01ed,
5565 },
5566 {
5567 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5568 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5569 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5570 0x01eb,
5571 0x01ec,
5572 },
5573 {
5574 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5575 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5576 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5577 0x01ea,
5578 0x01eb,
5579 },
5580 {
5581 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5582 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5583 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5584 0x01e9,
5585 0x01ea,
5586 },
5587 {
5588 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5589 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5590 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5591 0x01e8,
5592 0x01e9,
5593 },
5594 {
5595 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5596 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5597 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5598 0x01e7,
5599 0x01e8,
5600 },
5601 {
5602 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5603 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5604 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5605 0x01e6,
5606 0x01e7,
5607 },
5608 {
5609 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5610 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5611 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5612 0x01e5,
5613 0x01e6,
5614 },
5615 {
5616 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5617 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5618 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5619 0x01e5,
5620 0x01e5,
5621 },
5622 {
5623 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5624 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5625 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5626 0x01e4,
5627 0x01e5,
5628 },
5629 {
5630 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5631 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5632 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5633 0x01e3,
5634 0x01e4,
5635 },
5636 {
5637 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5638 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5639 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5640 0x01e2,
5641 0x01e3,
5642 },
5643 {
5644 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5645 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5646 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5647 0x01e1,
5648 0x01e2,
5649 },
5650 {
5651 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5652 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5653 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5654 0x01e0,
5655 0x01e1,
5656 },
5657 {
5658 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5659 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5660 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5661 0x01df,
5662 0x01e0,
5663 },
5664 {
5665 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5666 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5667 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5668 0x01de,
5669 0x01df,
5670 },
5671 {
5672 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5673 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5674 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5675 0x01dd,
5676 0x01de,
5677 },
5678 {
5679 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5680 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5681 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5682 0x01dd,
5683 0x01dd,
5684 },
5685 {
5686 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5687 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5688 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5689 0x01dc,
5690 0x01dd,
5691 },
5692 {
5693 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5694 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5695 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5696 0x01db,
5697 0x01dc,
5698 },
5699 {
5700 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5701 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5702 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5703 0x01da,
5704 0x01db,
5705 },
5706 {
5707 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5708 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5709 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5710 0x01d9,
5711 0x01da,
5712 },
5713 {
5714 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5715 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5716 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5717 0x01d8,
5718 0x01d9,
5719 },
5720 {
5721 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5722 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5723 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5724 0x01d7,
5725 0x01d8,
5726 },
5727 {
5728 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5729 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5730 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5731 0x01d7,
5732 0x01d7,
5733 },
5734 {
5735 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5736 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5737 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5738 0x01d6,
5739 0x01d7,
5740 },
5741 {
5742 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5743 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5744 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5745 0x01d5,
5746 0x01d6,
5747 },
5748 {
5749 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5750 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5751 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5752 0x01d4,
5753 0x01d5,
5754 },
5755 {
5756 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5757 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5758 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5759 0x01d3,
5760 0x01d4,
5761 },
5762 {
5763 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5764 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5765 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5766 0x01d2,
5767 0x01d3,
5768 },
5769 {
5770 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5771 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5772 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5773 0x01d2,
5774 0x01d2,
5775 },
5776 {
5777 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5778 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5779 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5780 0x01d1,
5781 0x01d2,
5782 },
5783 {
5784 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5785 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5786 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5787 0x01d0,
5788 0x01d1,
5789 },
5790 {
5791 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5792 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5793 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5794 0x01cf,
5795 0x01d0,
5796 },
5797 {
5798 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5799 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5800 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5801 0x01ce,
5802 0x01cf,
5803 },
5804 {
5805 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5806 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5807 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5808 0x01ce,
5809 0x01ce,
5810 },
5811 {
5812 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5813 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5814 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5815 0x01cd,
5816 0x01ce,
5817 },
5818 {
5819 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5820 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5821 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5822 0x01cc,
5823 0x01cd,
5824 },
5825 {
5826 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5827 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5828 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5829 0x01cb,
5830 0x01cc,
5831 },
5832 {
5833 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5834 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5835 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5836 0x01ca,
5837 0x01cb,
5838 },
5839 {
5840 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5841 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5842 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5843 0x01ca,
5844 0x01cb,
5845 },
5846 {
5847 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5848 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5849 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5850 0x01c9,
5851 0x01ca,
5852 },
5853 {
5854 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5855 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5856 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5857 0x01c9,
5858 0x01ca,
5859 },
5860 {
5861 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5862 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5863 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5864 0x01c9,
5865 0x01c9,
5866 },
5867 {
5868 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5869 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5870 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5871 0x01c8,
5872 0x01c9,
5873 },
5874 {
5875 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5876 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5877 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5878 0x01c8,
5879 0x01c9,
5880 },
5881 {
5882 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5883 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5884 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5885 0x01c8,
5886 0x01c8,
5887 },
5888 {
5889 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5890 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5891 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5892 0x01c7,
5893 0x01c8,
5894 },
5895 {
5896 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5897 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5898 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5899 0x01c7,
5900 0x01c8,
5901 },
5902 {
5903 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5904 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5905 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5906 0x01c6,
5907 0x01c7,
5908 },
5909 {
5910 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5911 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5912 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5913 0x01c6,
5914 0x01c7,
5915 },
5916 {
5917 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5918 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5919 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5920 0x01c6,
5921 0x01c6,
5922 },
5923 {
5924 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5925 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5926 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5927 0x01c5,
5928 0x01c6,
5929 },
5930 {
5931 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5932 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5933 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5934 0x01c5,
5935 0x01c6,
5936 },
5937 {
5938 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5939 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5940 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5941 0x01c4,
5942 0x01c5,
5943 },
5944 {
5945 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5946 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5947 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5948 0x01c4,
5949 0x01c5,
5950 },
5951 {
5952 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5953 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5954 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5955 0x01c4,
5956 0x01c4,
5957 },
5958 {
5959 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5960 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5961 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5962 0x01c3,
5963 0x01c4,
5964 },
5965 {
5966 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5967 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5968 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5969 0x01c3,
5970 0x01c4,
5971 },
5972 {
5973 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5974 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5975 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5976 0x01c2,
5977 0x01c3,
5978 },
5979 {
5980 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
5981 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5982 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
5983 0x01c2,
5984 0x01c3,
5985 },
5986 {
5987 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
5988 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5989 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
5990 0x01c2,
5991 0x01c2,
5992 },
5993 {
5994 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
5995 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5996 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
5997 0x01c1,
5998 0x01c2,
5999 },
6000 {
6001 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6002 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6003 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6004 0x01c0,
6005 0x01c1,
6006 },
6007 {
6008 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6009 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6010 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6011 0x01bf,
6012 0x01c0,
6013 },
6014 {
6015 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6016 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6017 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6018 0x01bf,
6019 0x01bf,
6020 },
6021 {
6022 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6023 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6024 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6025 0x01be,
6026 0x01bf,
6027 },
6028 {
6029 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6030 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6031 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6032 0x01bd,
6033 0x01be,
6034 },
6035 {
6036 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6037 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6038 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6039 0x01bc,
6040 0x01bd,
6041 },
6042 {
6043 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6044 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6045 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6046 0x043f,
6047 0x0443,
6048 },
6049 {
6050 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6051 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6052 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6053 0x043d,
6054 0x0441,
6055 },
6056 {
6057 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6058 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6059 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6060 0x043a,
6061 0x043f,
6062 },
6063 {
6064 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6065 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6066 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6067 0x0438,
6068 0x043d,
6069 },
6070 {
6071 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6072 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6073 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6074 0x0436,
6075 0x043a,
6076 },
6077 {
6078 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6079 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6080 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6081 0x0434,
6082 0x0438,
6083 },
6084 {
6085 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6086 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6087 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6088 0x0431,
6089 0x0436,
6090 },
6091 {
6092 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6093 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6094 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6095 0x042f,
6096 0x0434,
6097 },
6098 {
6099 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6100 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6101 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6102 0x042d,
6103 0x0431,
6104 },
6105 {
6106 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6107 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6108 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6109 0x042b,
6110 0x042f,
6111 },
6112 {
6113 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6114 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6115 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6116 0x0429,
6117 0x042d,
6118 },
6119 {
6120 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6121 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6122 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6123 0x0427,
6124 0x042b,
6125 },
6126 {
6127 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6128 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6129 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6130 0x0424,
6131 0x0429,
6132 },
6133 {
6134 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6135 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6136 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6137 0x041f,
6138 0x0424}
6139 };
6140
6141 static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev8_2057_rev5[] = {
6142 {
6143 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6144 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6145 0x043a, 0x043f, 0x0443},
6146 {
6147 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6148 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6149 0x0438, 0x043d, 0x0441},
6150 {
6151 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6152 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6153 0x0436, 0x043a, 0x043f},
6154 {
6155 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6156 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6157 0x0434, 0x0438, 0x043d},
6158 {
6159 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6160 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6161 0x0431, 0x0436, 0x043a},
6162 {
6163 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6164 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6165 0x042f, 0x0434, 0x0438},
6166 {
6167 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6168 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6169 0x042d, 0x0431, 0x0436},
6170 {
6171 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6172 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6173 0x042b, 0x042f, 0x0434},
6174 {
6175 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6176 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6177 0x0429, 0x042d, 0x0431},
6178 {
6179 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6180 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6181 0x0427, 0x042b, 0x042f},
6182 {
6183 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6184 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6185 0x0424, 0x0429, 0x042d},
6186 {
6187 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6188 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6189 0x0422, 0x0427, 0x042b},
6190 {
6191 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6192 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6193 0x0420, 0x0424, 0x0429},
6194 {
6195 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6196 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6197 0x041b, 0x041f, 0x0424}
6198 };
6199
6200 static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev9_2057_rev5v1[] = {
6201 {
6202 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6203 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6204 0x043a, 0x043f, 0x0443},
6205 {
6206 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6207 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6208 0x0438, 0x043d, 0x0441},
6209 {
6210 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6211 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6212 0x0436, 0x043a, 0x043f},
6213 {
6214 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6215 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6216 0x0434, 0x0438, 0x043d},
6217 {
6218 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6219 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6220 0x0431, 0x0436, 0x043a},
6221 {
6222 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6223 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6224 0x042f, 0x0434, 0x0438},
6225 {
6226 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6227 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6228 0x042d, 0x0431, 0x0436},
6229 {
6230 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6231 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6232 0x042b, 0x042f, 0x0434},
6233 {
6234 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6235 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6236 0x0429, 0x042d, 0x0431},
6237 {
6238 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6239 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6240 0x0427, 0x042b, 0x042f},
6241 {
6242 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6243 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6244 0x0424, 0x0429, 0x042d},
6245 {
6246 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6247 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6248 0x0422, 0x0427, 0x042b},
6249 {
6250 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6251 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6252 0x0420, 0x0424, 0x0429},
6253 {
6254 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6255 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6256 0x041b, 0x041f, 0x0424}
6257 };
6258
6259 static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev7[] = {
6260 {
6261 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6262 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6263 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6264 0x0215,
6265 0x0216},
6266 {
6267 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6268 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6269 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6270 0x0214,
6271 0x0215},
6272 {
6273 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6274 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6275 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6276 0x0213,
6277 0x0214},
6278 {
6279 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6280 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6281 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6282 0x0212,
6283 0x0213},
6284 {
6285 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6286 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6287 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6288 0x0211,
6289 0x0212},
6290 {
6291 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6292 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6293 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6294 0x020f,
6295 0x0211},
6296 {
6297 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6298 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6299 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6300 0x020e,
6301 0x020f},
6302 {
6303 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6304 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6305 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6306 0x020d,
6307 0x020e},
6308 {
6309 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6311 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6312 0x020c,
6313 0x020d},
6314 {
6315 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6316 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6317 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6318 0x020b,
6319 0x020c},
6320 {
6321 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6322 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6323 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6324 0x020a,
6325 0x020b},
6326 {
6327 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6328 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6329 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6330 0x0209,
6331 0x020a},
6332 {
6333 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6334 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6335 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6336 0x0208,
6337 0x0209},
6338 {
6339 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6340 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6341 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6342 0x0207,
6343 0x0208},
6344 {
6345 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6346 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6347 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6348 0x0206,
6349 0x0207},
6350 {
6351 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6352 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6353 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6354 0x0205,
6355 0x0206},
6356 {
6357 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6358 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6359 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6360 0x0204,
6361 0x0205},
6362 {
6363 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6364 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6365 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6366 0x0203,
6367 0x0204},
6368 {
6369 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6370 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6371 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6372 0x0202,
6373 0x0203},
6374 {
6375 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6376 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6377 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6378 0x0201,
6379 0x0202},
6380 {
6381 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6382 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6383 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6384 0x0200,
6385 0x0201},
6386 {
6387 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6388 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6389 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6390 0x01ff,
6391 0x0200},
6392 {
6393 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6394 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6395 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6396 0x01fe,
6397 0x01ff},
6398 {
6399 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6400 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6401 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6402 0x01fc,
6403 0x01fd},
6404 {
6405 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6406 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6407 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6408 0x01fb,
6409 0x01fc},
6410 {
6411 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6412 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6413 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6414 0x01fa,
6415 0x01fb},
6416 {
6417 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6418 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6419 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6420 0x01f9,
6421 0x01fa},
6422 {
6423 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6424 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6425 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6426 0x01f8,
6427 0x01f9},
6428 {
6429 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6430 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6431 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6432 0x01f7,
6433 0x01f8},
6434 {
6435 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6436 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6437 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6438 0x01f6,
6439 0x01f7},
6440 {
6441 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6442 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6443 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6444 0x01f5,
6445 0x01f6},
6446 {
6447 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6448 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6449 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6450 0x01f4,
6451 0x01f5},
6452 {
6453 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6454 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6455 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6456 0x01f3,
6457 0x01f4},
6458 {
6459 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6460 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6461 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6462 0x01f2,
6463 0x01f3},
6464 {
6465 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6466 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6467 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6468 0x01f1,
6469 0x01f2},
6470 {
6471 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6472 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6473 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6474 0x01f0,
6475 0x01f1},
6476 {
6477 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6478 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6479 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6480 0x01f0,
6481 0x01f0},
6482 {
6483 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6484 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6485 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6486 0x01ef,
6487 0x01f0},
6488 {
6489 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6490 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6491 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6492 0x01ee,
6493 0x01ef},
6494 {
6495 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6496 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6497 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6498 0x01ed,
6499 0x01ee},
6500 {
6501 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6502 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6503 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6504 0x01ec,
6505 0x01ed},
6506 {
6507 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6508 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6509 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6510 0x01eb,
6511 0x01ec},
6512 {
6513 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6514 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6515 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6516 0x01ea,
6517 0x01eb},
6518 {
6519 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6520 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6521 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6522 0x01e9,
6523 0x01ea},
6524 {
6525 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6526 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6527 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6528 0x01e8,
6529 0x01e9},
6530 {
6531 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6532 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6533 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6534 0x01e7,
6535 0x01e8},
6536 {
6537 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6538 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6539 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6540 0x01e6,
6541 0x01e7},
6542 {
6543 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6544 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6545 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6546 0x01e5,
6547 0x01e6},
6548 {
6549 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6550 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6551 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6552 0x01e5,
6553 0x01e5},
6554 {
6555 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6556 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6557 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6558 0x01e4,
6559 0x01e5},
6560 {
6561 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6562 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6563 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6564 0x01e3,
6565 0x01e4},
6566 {
6567 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6568 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6569 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6570 0x01e2,
6571 0x01e3},
6572 {
6573 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6574 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6575 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6576 0x01e1,
6577 0x01e2},
6578 {
6579 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6580 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6581 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6582 0x01e0,
6583 0x01e1},
6584 {
6585 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6586 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6587 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6588 0x01df,
6589 0x01e0},
6590 {
6591 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6592 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6593 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6594 0x01de,
6595 0x01df},
6596 {
6597 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6598 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6599 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6600 0x01dd,
6601 0x01de},
6602 {
6603 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6604 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6605 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6606 0x01dd,
6607 0x01dd},
6608 {
6609 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6610 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6611 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6612 0x01dc,
6613 0x01dd},
6614 {
6615 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6616 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6617 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6618 0x01db,
6619 0x01dc},
6620 {
6621 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6622 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6623 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6624 0x01da,
6625 0x01db},
6626 {
6627 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6628 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6629 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6630 0x01d9,
6631 0x01da},
6632 {
6633 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6634 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6635 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6636 0x01d8,
6637 0x01d9},
6638 {
6639 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6640 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6641 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6642 0x01d7,
6643 0x01d8},
6644 {
6645 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6646 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6647 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6648 0x01d7,
6649 0x01d7},
6650 {
6651 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6652 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6653 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6654 0x01d6,
6655 0x01d7},
6656 {
6657 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6658 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6659 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6660 0x01d5,
6661 0x01d6},
6662 {
6663 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6664 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6665 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6666 0x01d4,
6667 0x01d5},
6668 {
6669 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6670 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6671 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6672 0x01d3,
6673 0x01d4},
6674 {
6675 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6676 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6677 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6678 0x01d2,
6679 0x01d3},
6680 {
6681 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6682 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6683 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6684 0x01d2,
6685 0x01d2},
6686 {
6687 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6688 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6689 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6690 0x01d1,
6691 0x01d2},
6692 {
6693 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6694 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6695 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6696 0x01d0,
6697 0x01d1},
6698 {
6699 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6700 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6701 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6702 0x01cf,
6703 0x01d0},
6704 {
6705 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6706 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6707 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6708 0x01ce,
6709 0x01cf},
6710 {
6711 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6712 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6713 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6714 0x01ce,
6715 0x01ce},
6716 {
6717 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6718 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6719 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6720 0x01cd,
6721 0x01ce},
6722 {
6723 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6724 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6725 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6726 0x01cc,
6727 0x01cd},
6728 {
6729 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6730 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6731 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6732 0x01cb,
6733 0x01cc},
6734 {
6735 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6736 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6737 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6738 0x01ca,
6739 0x01cb},
6740 {
6741 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6742 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6743 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6744 0x01ca,
6745 0x01cb},
6746 {
6747 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6748 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6749 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6750 0x01c9,
6751 0x01ca},
6752 {
6753 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6754 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6755 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6756 0x01c9,
6757 0x01ca},
6758 {
6759 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6760 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6761 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6762 0x01c9,
6763 0x01c9},
6764 {
6765 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6766 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6767 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6768 0x01c8,
6769 0x01c9},
6770 {
6771 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6772 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6773 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6774 0x01c8,
6775 0x01c9},
6776 {
6777 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6778 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6779 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6780 0x01c8,
6781 0x01c8},
6782 {
6783 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6784 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6785 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6786 0x01c7,
6787 0x01c8},
6788 {
6789 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6790 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6791 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6792 0x01c7,
6793 0x01c8},
6794 {
6795 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6796 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6797 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6798 0x01c6,
6799 0x01c7},
6800 {
6801 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6802 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6803 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6804 0x01c6,
6805 0x01c7},
6806 {
6807 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6808 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6809 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6810 0x01c6,
6811 0x01c6},
6812 {
6813 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6814 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6815 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6816 0x01c5,
6817 0x01c6},
6818 {
6819 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6820 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6821 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6822 0x01c5,
6823 0x01c6},
6824 {
6825 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6826 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6827 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6828 0x01c4,
6829 0x01c5},
6830 {
6831 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6832 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6833 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6834 0x01c4,
6835 0x01c5},
6836 {
6837 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6838 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6839 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6840 0x01c4,
6841 0x01c4},
6842 {
6843 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6844 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6845 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6846 0x01c3,
6847 0x01c4},
6848 {
6849 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6850 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6851 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6852 0x01c3,
6853 0x01c4},
6854 {
6855 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6856 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6857 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6858 0x01c2,
6859 0x01c3},
6860 {
6861 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6862 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6863 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6864 0x01c2,
6865 0x01c3},
6866 {
6867 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6868 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6869 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6870 0x01c2,
6871 0x01c2},
6872 {
6873 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6874 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6875 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6876 0x01c1,
6877 0x01c2},
6878 {
6879 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6880 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6881 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6882 0x01c0,
6883 0x01c1},
6884 {
6885 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6886 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6887 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6888 0x01bf,
6889 0x01c0},
6890 {
6891 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6892 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6893 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6894 0x01bf,
6895 0x01bf},
6896 {
6897 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6898 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6899 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6900 0x01be,
6901 0x01bf},
6902 {
6903 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6904 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6905 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6906 0x01bd,
6907 0x01be},
6908 {
6909 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6910 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6911 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6912 0x01bc,
6913 0x01bd},
6914 {
6915 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6916 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6917 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6918 0x043f,
6919 0x0443},
6920 {
6921 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6922 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6923 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6924 0x043d,
6925 0x0441},
6926 {
6927 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6928 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6929 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6930 0x043a,
6931 0x043f},
6932 {
6933 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6934 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6935 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6936 0x0438,
6937 0x043d},
6938 {
6939 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6940 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6941 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6942 0x0436,
6943 0x043a},
6944 {
6945 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6946 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6947 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6948 0x0434,
6949 0x0438},
6950 {
6951 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6952 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6953 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6954 0x0431,
6955 0x0436},
6956 {
6957 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6958 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6959 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6960 0x042f,
6961 0x0434},
6962 {
6963 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6964 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6965 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6966 0x042d,
6967 0x0431},
6968 {
6969 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6970 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6971 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6972 0x042b,
6973 0x042f},
6974 {
6975 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6976 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6977 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6978 0x0429,
6979 0x042d},
6980 {
6981 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6982 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6983 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6984 0x0427,
6985 0x042b},
6986 {
6987 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6988 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6989 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6990 0x0424,
6991 0x0429},
6992 {
6993 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6994 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
6995 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6996 0x041f,
6997 0x0424}
6998 };
6999
7000 static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev8[] = {
7001 {
7002 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7003 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7004 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7005 0x0214,
7006 0x0215},
7007 {
7008 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7009 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7010 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7011 0x0213,
7012 0x0214},
7013 {
7014 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7015 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7016 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7017 0x0212,
7018 0x0213},
7019 {
7020 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7021 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7022 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7023 0x0211,
7024 0x0212},
7025 {
7026 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7027 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7028 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7029 0x020f,
7030 0x0211},
7031 {
7032 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7033 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7034 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7035 0x020e,
7036 0x020f},
7037 {
7038 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7039 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7040 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7041 0x020d,
7042 0x020e},
7043 {
7044 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7045 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7046 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7047 0x020c,
7048 0x020d},
7049 {
7050 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7051 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7052 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7053 0x020b,
7054 0x020c},
7055 {
7056 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7057 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7058 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7059 0x020a,
7060 0x020b},
7061 {
7062 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7063 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7064 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7065 0x0209,
7066 0x020a},
7067 {
7068 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7069 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7070 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7071 0x0208,
7072 0x0209},
7073 {
7074 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7075 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7076 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7077 0x0207,
7078 0x0208},
7079 {
7080 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7081 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7082 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7083 0x0206,
7084 0x0207},
7085 {
7086 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7087 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7088 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7089 0x0205,
7090 0x0206},
7091 {
7092 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7093 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7094 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7095 0x0204,
7096 0x0205},
7097 {
7098 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7099 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7100 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7101 0x0203,
7102 0x0204},
7103 {
7104 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7105 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7106 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7107 0x0202,
7108 0x0203},
7109 {
7110 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7111 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7112 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7113 0x0201,
7114 0x0202},
7115 {
7116 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7117 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7118 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7119 0x0200,
7120 0x0201},
7121 {
7122 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7123 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7124 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7125 0x01ff,
7126 0x0200},
7127 {
7128 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7129 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7130 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7131 0x01fe,
7132 0x01ff},
7133 {
7134 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7135 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7136 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7137 0x01fc,
7138 0x01fd},
7139 {
7140 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7141 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7142 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7143 0x01fb,
7144 0x01fc},
7145 {
7146 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7147 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7148 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7149 0x01fa,
7150 0x01fb},
7151 {
7152 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7153 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7154 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7155 0x01f9,
7156 0x01fa},
7157 {
7158 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7159 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7160 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7161 0x01f8,
7162 0x01f9},
7163 {
7164 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7165 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7166 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7167 0x01f7,
7168 0x01f8},
7169 {
7170 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7171 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7172 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7173 0x01f6,
7174 0x01f7},
7175 {
7176 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7177 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7178 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7179 0x01f5,
7180 0x01f6},
7181 {
7182 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7183 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7184 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7185 0x01f4,
7186 0x01f5},
7187 {
7188 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7189 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7190 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7191 0x01f3,
7192 0x01f4},
7193 {
7194 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7195 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7196 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7197 0x01f2,
7198 0x01f3},
7199 {
7200 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7201 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7202 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7203 0x01f1,
7204 0x01f2},
7205 {
7206 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7207 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7208 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7209 0x01f0,
7210 0x01f1},
7211 {
7212 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7213 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7214 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7215 0x01f0,
7216 0x01f0},
7217 {
7218 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7219 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7220 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7221 0x01ef,
7222 0x01f0},
7223 {
7224 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7225 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7226 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7227 0x01ee,
7228 0x01ef},
7229 {
7230 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7231 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7232 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7233 0x01ed,
7234 0x01ee},
7235 {
7236 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7237 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7238 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7239 0x01ec,
7240 0x01ed},
7241 {
7242 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7243 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7244 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7245 0x01eb,
7246 0x01ec},
7247 {
7248 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7249 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7250 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7251 0x01ea,
7252 0x01eb},
7253 {
7254 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7255 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7256 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7257 0x01e9,
7258 0x01ea},
7259 {
7260 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7261 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7262 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7263 0x01e8,
7264 0x01e9},
7265 {
7266 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7267 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7268 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7269 0x01e7,
7270 0x01e8},
7271 {
7272 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7273 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7274 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7275 0x01e6,
7276 0x01e7},
7277 {
7278 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7279 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7280 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7281 0x01e5,
7282 0x01e6},
7283 {
7284 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7285 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7286 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7287 0x01e5,
7288 0x01e5},
7289 {
7290 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7291 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7292 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7293 0x01e4,
7294 0x01e5},
7295 {
7296 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7297 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7298 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7299 0x01e3,
7300 0x01e4},
7301 {
7302 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7303 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7304 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7305 0x01e2,
7306 0x01e3},
7307 {
7308 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7309 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7310 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7311 0x01e1,
7312 0x01e2},
7313 {
7314 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7315 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7316 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7317 0x01e0,
7318 0x01e1},
7319 {
7320 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7321 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7322 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7323 0x01df,
7324 0x01e0},
7325 {
7326 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7327 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7328 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7329 0x01de,
7330 0x01df},
7331 {
7332 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7333 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7334 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7335 0x01dd,
7336 0x01de},
7337 {
7338 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7339 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7340 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7341 0x01dd,
7342 0x01dd},
7343 {
7344 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7345 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7346 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7347 0x01dc,
7348 0x01dd},
7349 {
7350 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7351 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7352 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7353 0x01db,
7354 0x01dc},
7355 {
7356 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7357 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7358 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7359 0x01da,
7360 0x01db},
7361 {
7362 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7363 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7364 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7365 0x01d9,
7366 0x01da},
7367 {
7368 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7369 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7370 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7371 0x01d8,
7372 0x01d9},
7373 {
7374 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7375 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7376 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7377 0x01d7,
7378 0x01d8},
7379 {
7380 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7381 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7382 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7383 0x01d7,
7384 0x01d7},
7385 {
7386 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7387 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7388 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7389 0x01d6,
7390 0x01d7},
7391 {
7392 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7393 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7394 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7395 0x01d5,
7396 0x01d6},
7397 {
7398 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7399 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7400 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7401 0x01d4,
7402 0x01d5},
7403 {
7404 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7405 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7406 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7407 0x01d3,
7408 0x01d4},
7409 {
7410 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7411 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7412 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7413 0x01d2,
7414 0x01d3},
7415 {
7416 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7417 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7418 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7419 0x01d2,
7420 0x01d2},
7421 {
7422 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7423 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7424 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7425 0x01d1,
7426 0x01d2},
7427 {
7428 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7429 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7430 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7431 0x01d0,
7432 0x01d1},
7433 {
7434 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7435 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7436 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7437 0x01cf,
7438 0x01d0},
7439 {
7440 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7441 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7442 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7443 0x01ce,
7444 0x01cf},
7445 {
7446 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7447 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7448 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7449 0x01ce,
7450 0x01ce},
7451 {
7452 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7453 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7454 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7455 0x01cd,
7456 0x01ce},
7457 {
7458 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7459 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7460 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7461 0x01cc,
7462 0x01cd},
7463 {
7464 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7465 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7466 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7467 0x01cb,
7468 0x01cc},
7469 {
7470 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7471 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7472 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7473 0x01ca,
7474 0x01cb},
7475 {
7476 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7477 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7478 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7479 0x01ca,
7480 0x01cb},
7481 {
7482 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7483 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7484 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7485 0x01c9,
7486 0x01ca},
7487 {
7488 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7489 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7490 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7491 0x01c9,
7492 0x01ca},
7493 {
7494 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7495 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7496 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7497 0x01c9,
7498 0x01c9},
7499 {
7500 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7501 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7502 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7503 0x01c8,
7504 0x01c9},
7505 {
7506 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7507 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7508 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7509 0x01c8,
7510 0x01c9},
7511 {
7512 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7513 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7514 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7515 0x01c8,
7516 0x01c8},
7517 {
7518 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7519 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7520 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7521 0x01c7,
7522 0x01c8},
7523 {
7524 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7525 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7526 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7527 0x01c7,
7528 0x01c8},
7529 {
7530 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7531 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7532 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7533 0x01c6,
7534 0x01c7},
7535 {
7536 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7537 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7538 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7539 0x01c6,
7540 0x01c7},
7541 {
7542 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7543 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7544 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7545 0x01c6,
7546 0x01c6},
7547 {
7548 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7549 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7550 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7551 0x01c5,
7552 0x01c6},
7553 {
7554 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7555 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7556 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7557 0x01c5,
7558 0x01c6},
7559 {
7560 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7561 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7562 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7563 0x01c4,
7564 0x01c5},
7565 {
7566 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7567 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7568 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7569 0x01c4,
7570 0x01c5},
7571 {
7572 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7573 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7574 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7575 0x01c4,
7576 0x01c4},
7577 {
7578 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7579 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7580 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7581 0x01c3,
7582 0x01c4},
7583 {
7584 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7585 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7586 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7587 0x01c3,
7588 0x01c4},
7589 {
7590 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7591 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7592 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7593 0x01c2,
7594 0x01c3},
7595 {
7596 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7597 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7598 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7599 0x01c2,
7600 0x01c3},
7601 {
7602 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7603 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7604 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7605 0x01c2,
7606 0x01c2},
7607 {
7608 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7609 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7610 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7611 0x01c1,
7612 0x01c2},
7613 {
7614 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7615 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7616 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7617 0x01c0,
7618 0x01c1},
7619 {
7620 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7621 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7622 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7623 0x01bf,
7624 0x01c0},
7625 {
7626 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7627 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7628 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7629 0x01bf,
7630 0x01bf},
7631 {
7632 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7633 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7634 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7635 0x01be,
7636 0x01bf},
7637 {
7638 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7639 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7640 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7641 0x01bd,
7642 0x01be},
7643 {
7644 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7645 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7646 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7647 0x01bc,
7648 0x01bd},
7649 {
7650 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7651 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7652 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7653 0x043f,
7654 0x0443},
7655 {
7656 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7657 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7658 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7659 0x043d,
7660 0x0441},
7661 {
7662 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7663 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7664 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7665 0x043a,
7666 0x043f},
7667 {
7668 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7669 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7670 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7671 0x0438,
7672 0x043d},
7673 {
7674 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7675 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7676 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7677 0x0436,
7678 0x043a},
7679 {
7680 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7681 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7682 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7683 0x0434,
7684 0x0438},
7685 {
7686 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7687 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7688 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7689 0x0431,
7690 0x0436},
7691 {
7692 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7693 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7694 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7695 0x042f,
7696 0x0434},
7697 {
7698 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7699 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7700 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7701 0x042d,
7702 0x0431},
7703 {
7704 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7705 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7706 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7707 0x042b,
7708 0x042f},
7709 {
7710 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7711 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7712 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7713 0x0429,
7714 0x042d},
7715 {
7716 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7717 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7718 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7719 0x0427,
7720 0x042b},
7721 {
7722 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7723 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7724 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7725 0x0424,
7726 0x0429},
7727 {
7728 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7729 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7730 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7731 0x041f,
7732 0x0424}
7733 };
7734
7735 radio_regs_t regs_2055[] = {
7736 {0x02, 0x80, 0x80, 0, 0},
7737 {0x03, 0, 0, 0, 0},
7738 {0x04, 0x27, 0x27, 0, 0},
7739 {0x05, 0, 0, 0, 0},
7740 {0x06, 0x27, 0x27, 0, 0},
7741 {0x07, 0x7f, 0x7f, 1, 1},
7742 {0x08, 0x7, 0x7, 1, 1},
7743 {0x09, 0x7f, 0x7f, 1, 1},
7744 {0x0A, 0x7, 0x7, 1, 1},
7745 {0x0B, 0x15, 0x15, 0, 0},
7746 {0x0C, 0x15, 0x15, 0, 0},
7747 {0x0D, 0x4f, 0x4f, 1, 1},
7748 {0x0E, 0x5, 0x5, 1, 1},
7749 {0x0F, 0x4f, 0x4f, 1, 1},
7750 {0x10, 0x5, 0x5, 1, 1},
7751 {0x11, 0xd0, 0xd0, 0, 0},
7752 {0x12, 0x2, 0x2, 0, 0},
7753 {0x13, 0, 0, 0, 0},
7754 {0x14, 0x40, 0x40, 0, 0},
7755 {0x15, 0, 0, 0, 0},
7756 {0x16, 0, 0, 0, 0},
7757 {0x17, 0, 0, 0, 0},
7758 {0x18, 0, 0, 0, 0},
7759 {0x19, 0, 0, 0, 0},
7760 {0x1A, 0, 0, 0, 0},
7761 {0x1B, 0, 0, 0, 0},
7762 {0x1C, 0, 0, 0, 0},
7763 {0x1D, 0xc0, 0xc0, 0, 0},
7764 {0x1E, 0xff, 0xff, 0, 0},
7765 {0x1F, 0xc0, 0xc0, 0, 0},
7766 {0x20, 0xff, 0xff, 0, 0},
7767 {0x21, 0xc0, 0xc0, 0, 0},
7768 {0x22, 0, 0, 0, 0},
7769 {0x23, 0x2c, 0x2c, 0, 0},
7770 {0x24, 0, 0, 0, 0},
7771 {0x25, 0, 0, 0, 0},
7772 {0x26, 0, 0, 0, 0},
7773 {0x27, 0, 0, 0, 0},
7774 {0x28, 0, 0, 0, 0},
7775 {0x29, 0, 0, 0, 0},
7776 {0x2A, 0, 0, 0, 0},
7777 {0x2B, 0, 0, 0, 0},
7778 {0x2C, 0, 0, 0, 0},
7779 {0x2D, 0xa4, 0xa4, 0, 0},
7780 {0x2E, 0x38, 0x38, 0, 0},
7781 {0x2F, 0, 0, 0, 0},
7782 {0x30, 0x4, 0x4, 1, 1},
7783 {0x31, 0, 0, 0, 0},
7784 {0x32, 0xa, 0xa, 0, 0},
7785 {0x33, 0x87, 0x87, 0, 0},
7786 {0x34, 0x9, 0x9, 0, 0},
7787 {0x35, 0x70, 0x70, 0, 0},
7788 {0x36, 0x11, 0x11, 0, 0},
7789 {0x37, 0x18, 0x18, 1, 1},
7790 {0x38, 0x6, 0x6, 0, 0},
7791 {0x39, 0x4, 0x4, 1, 1},
7792 {0x3A, 0x6, 0x6, 0, 0},
7793 {0x3B, 0x9e, 0x9e, 0, 0},
7794 {0x3C, 0x9, 0x9, 0, 0},
7795 {0x3D, 0xc8, 0xc8, 1, 1},
7796 {0x3E, 0x88, 0x88, 0, 0},
7797 {0x3F, 0, 0, 0, 0},
7798 {0x40, 0, 0, 0, 0},
7799 {0x41, 0, 0, 0, 0},
7800 {0x42, 0x1, 0x1, 0, 0},
7801 {0x43, 0x2, 0x2, 0, 0},
7802 {0x44, 0x96, 0x96, 0, 0},
7803 {0x45, 0x3e, 0x3e, 0, 0},
7804 {0x46, 0x3e, 0x3e, 0, 0},
7805 {0x47, 0x13, 0x13, 0, 0},
7806 {0x48, 0x2, 0x2, 0, 0},
7807 {0x49, 0x15, 0x15, 0, 0},
7808 {0x4A, 0x7, 0x7, 0, 0},
7809 {0x4B, 0, 0, 0, 0},
7810 {0x4C, 0, 0, 0, 0},
7811 {0x4D, 0, 0, 0, 0},
7812 {0x4E, 0, 0, 0, 0},
7813 {0x4F, 0, 0, 0, 0},
7814 {0x50, 0x8, 0x8, 0, 0},
7815 {0x51, 0x8, 0x8, 0, 0},
7816 {0x52, 0x6, 0x6, 0, 0},
7817 {0x53, 0x84, 0x84, 1, 1},
7818 {0x54, 0xc3, 0xc3, 0, 0},
7819 {0x55, 0x8f, 0x8f, 0, 0},
7820 {0x56, 0xff, 0xff, 0, 0},
7821 {0x57, 0xff, 0xff, 0, 0},
7822 {0x58, 0x88, 0x88, 0, 0},
7823 {0x59, 0x88, 0x88, 0, 0},
7824 {0x5A, 0, 0, 0, 0},
7825 {0x5B, 0xcc, 0xcc, 0, 0},
7826 {0x5C, 0x6, 0x6, 0, 0},
7827 {0x5D, 0x80, 0x80, 0, 0},
7828 {0x5E, 0x80, 0x80, 0, 0},
7829 {0x5F, 0xf8, 0xf8, 0, 0},
7830 {0x60, 0x88, 0x88, 0, 0},
7831 {0x61, 0x88, 0x88, 0, 0},
7832 {0x62, 0x88, 0x8, 1, 1},
7833 {0x63, 0x88, 0x88, 0, 0},
7834 {0x64, 0, 0, 0, 0},
7835 {0x65, 0x1, 0x1, 1, 1},
7836 {0x66, 0x8a, 0x8a, 0, 0},
7837 {0x67, 0x8, 0x8, 0, 0},
7838 {0x68, 0x83, 0x83, 0, 0},
7839 {0x69, 0x6, 0x6, 0, 0},
7840 {0x6A, 0xa0, 0xa0, 0, 0},
7841 {0x6B, 0xa, 0xa, 0, 0},
7842 {0x6C, 0x87, 0x87, 1, 1},
7843 {0x6D, 0x2a, 0x2a, 0, 0},
7844 {0x6E, 0x2a, 0x2a, 0, 0},
7845 {0x6F, 0x2a, 0x2a, 0, 0},
7846 {0x70, 0x2a, 0x2a, 0, 0},
7847 {0x71, 0x18, 0x18, 0, 0},
7848 {0x72, 0x6a, 0x6a, 1, 1},
7849 {0x73, 0xab, 0xab, 1, 1},
7850 {0x74, 0x13, 0x13, 1, 1},
7851 {0x75, 0xc1, 0xc1, 1, 1},
7852 {0x76, 0xaa, 0xaa, 1, 1},
7853 {0x77, 0x87, 0x87, 1, 1},
7854 {0x78, 0, 0, 0, 0},
7855 {0x79, 0x6, 0x6, 0, 0},
7856 {0x7A, 0x7, 0x7, 0, 0},
7857 {0x7B, 0x7, 0x7, 0, 0},
7858 {0x7C, 0x15, 0x15, 0, 0},
7859 {0x7D, 0x55, 0x55, 0, 0},
7860 {0x7E, 0x97, 0x97, 1, 1},
7861 {0x7F, 0x8, 0x8, 0, 0},
7862 {0x80, 0x14, 0x14, 1, 1},
7863 {0x81, 0x33, 0x33, 0, 0},
7864 {0x82, 0x88, 0x88, 0, 0},
7865 {0x83, 0x6, 0x6, 0, 0},
7866 {0x84, 0x3, 0x3, 1, 1},
7867 {0x85, 0xa, 0xa, 0, 0},
7868 {0x86, 0x3, 0x3, 1, 1},
7869 {0x87, 0x2a, 0x2a, 0, 0},
7870 {0x88, 0xa4, 0xa4, 0, 0},
7871 {0x89, 0x18, 0x18, 0, 0},
7872 {0x8A, 0x28, 0x28, 0, 0},
7873 {0x8B, 0, 0, 0, 0},
7874 {0x8C, 0x4a, 0x4a, 0, 0},
7875 {0x8D, 0, 0, 0, 0},
7876 {0x8E, 0xf8, 0xf8, 0, 0},
7877 {0x8F, 0x88, 0x88, 0, 0},
7878 {0x90, 0x88, 0x88, 0, 0},
7879 {0x91, 0x88, 0x8, 1, 1},
7880 {0x92, 0x88, 0x88, 0, 0},
7881 {0x93, 0, 0, 0, 0},
7882 {0x94, 0x1, 0x1, 1, 1},
7883 {0x95, 0x8a, 0x8a, 0, 0},
7884 {0x96, 0x8, 0x8, 0, 0},
7885 {0x97, 0x83, 0x83, 0, 0},
7886 {0x98, 0x6, 0x6, 0, 0},
7887 {0x99, 0xa0, 0xa0, 0, 0},
7888 {0x9A, 0xa, 0xa, 0, 0},
7889 {0x9B, 0x87, 0x87, 1, 1},
7890 {0x9C, 0x2a, 0x2a, 0, 0},
7891 {0x9D, 0x2a, 0x2a, 0, 0},
7892 {0x9E, 0x2a, 0x2a, 0, 0},
7893 {0x9F, 0x2a, 0x2a, 0, 0},
7894 {0xA0, 0x18, 0x18, 0, 0},
7895 {0xA1, 0x6a, 0x6a, 1, 1},
7896 {0xA2, 0xab, 0xab, 1, 1},
7897 {0xA3, 0x13, 0x13, 1, 1},
7898 {0xA4, 0xc1, 0xc1, 1, 1},
7899 {0xA5, 0xaa, 0xaa, 1, 1},
7900 {0xA6, 0x87, 0x87, 1, 1},
7901 {0xA7, 0, 0, 0, 0},
7902 {0xA8, 0x6, 0x6, 0, 0},
7903 {0xA9, 0x7, 0x7, 0, 0},
7904 {0xAA, 0x7, 0x7, 0, 0},
7905 {0xAB, 0x15, 0x15, 0, 0},
7906 {0xAC, 0x55, 0x55, 0, 0},
7907 {0xAD, 0x97, 0x97, 1, 1},
7908 {0xAE, 0x8, 0x8, 0, 0},
7909 {0xAF, 0x14, 0x14, 1, 1},
7910 {0xB0, 0x33, 0x33, 0, 0},
7911 {0xB1, 0x88, 0x88, 0, 0},
7912 {0xB2, 0x6, 0x6, 0, 0},
7913 {0xB3, 0x3, 0x3, 1, 1},
7914 {0xB4, 0xa, 0xa, 0, 0},
7915 {0xB5, 0x3, 0x3, 1, 1},
7916 {0xB6, 0x2a, 0x2a, 0, 0},
7917 {0xB7, 0xa4, 0xa4, 0, 0},
7918 {0xB8, 0x18, 0x18, 0, 0},
7919 {0xB9, 0x28, 0x28, 0, 0},
7920 {0xBA, 0, 0, 0, 0},
7921 {0xBB, 0x4a, 0x4a, 0, 0},
7922 {0xBC, 0, 0, 0, 0},
7923 {0xBD, 0x71, 0x71, 0, 0},
7924 {0xBE, 0x72, 0x72, 0, 0},
7925 {0xBF, 0x73, 0x73, 0, 0},
7926 {0xC0, 0x74, 0x74, 0, 0},
7927 {0xC1, 0x75, 0x75, 0, 0},
7928 {0xC2, 0x76, 0x76, 0, 0},
7929 {0xC3, 0x77, 0x77, 0, 0},
7930 {0xC4, 0x78, 0x78, 0, 0},
7931 {0xC5, 0x79, 0x79, 0, 0},
7932 {0xC6, 0x7a, 0x7a, 0, 0},
7933 {0xC7, 0, 0, 0, 0},
7934 {0xC8, 0, 0, 0, 0},
7935 {0xC9, 0, 0, 0, 0},
7936 {0xCA, 0, 0, 0, 0},
7937 {0xCB, 0, 0, 0, 0},
7938 {0xCC, 0, 0, 0, 0},
7939 {0xCD, 0, 0, 0, 0},
7940 {0xCE, 0x6, 0x6, 0, 0},
7941 {0xCF, 0, 0, 0, 0},
7942 {0xD0, 0, 0, 0, 0},
7943 {0xD1, 0x18, 0x18, 0, 0},
7944 {0xD2, 0x88, 0x88, 0, 0},
7945 {0xD3, 0, 0, 0, 0},
7946 {0xD4, 0, 0, 0, 0},
7947 {0xD5, 0, 0, 0, 0},
7948 {0xD6, 0, 0, 0, 0},
7949 {0xD7, 0, 0, 0, 0},
7950 {0xD8, 0, 0, 0, 0},
7951 {0xD9, 0, 0, 0, 0},
7952 {0xDA, 0x6, 0x6, 0, 0},
7953 {0xDB, 0, 0, 0, 0},
7954 {0xDC, 0, 0, 0, 0},
7955 {0xDD, 0x18, 0x18, 0, 0},
7956 {0xDE, 0x88, 0x88, 0, 0},
7957 {0xDF, 0, 0, 0, 0},
7958 {0xE0, 0, 0, 0, 0},
7959 {0xE1, 0, 0, 0, 0},
7960 {0xE2, 0, 0, 0, 0},
7961 {0xFFFF, 0, 0, 0, 0},
7962 };
7963
7964 radio_regs_t regs_SYN_2056[] = {
7965 {0x02, 0, 0, 0, 0},
7966 {0x03, 0, 0, 0, 0},
7967 {0x04, 0, 0, 0, 0},
7968 {0x05, 0, 0, 0, 0},
7969 {0x06, 0, 0, 0, 0},
7970 {0x07, 0, 0, 0, 0},
7971 {0x08, 0, 0, 0, 0},
7972 {0x09, 0x1, 0x1, 0, 0},
7973 {0x0A, 0, 0, 0, 0},
7974 {0x0B, 0, 0, 0, 0},
7975 {0x0C, 0, 0, 0, 0},
7976 {0x0D, 0, 0, 0, 0},
7977 {0x0E, 0, 0, 0, 0},
7978 {0x0F, 0, 0, 0, 0},
7979 {0x10, 0, 0, 0, 0},
7980 {0x11, 0, 0, 0, 0},
7981 {0x12, 0, 0, 0, 0},
7982 {0x13, 0, 0, 0, 0},
7983 {0x14, 0, 0, 0, 0},
7984 {0x15, 0, 0, 0, 0},
7985 {0x16, 0, 0, 0, 0},
7986 {0x17, 0, 0, 0, 0},
7987 {0x18, 0, 0, 0, 0},
7988 {0x19, 0, 0, 0, 0},
7989 {0x1A, 0, 0, 0, 0},
7990 {0x1B, 0, 0, 0, 0},
7991 {0x1C, 0, 0, 0, 0},
7992 {0x1D, 0, 0, 0, 0},
7993 {0x1E, 0, 0, 0, 0},
7994 {0x1F, 0, 0, 0, 0},
7995 {0x20, 0, 0, 0, 0},
7996 {0x21, 0, 0, 0, 0},
7997 {0x22, 0x60, 0x60, 0, 0},
7998 {0x23, 0x6, 0x6, 0, 0},
7999 {0x24, 0xc, 0xc, 0, 0},
8000 {0x25, 0, 0, 0, 0},
8001 {0x26, 0, 0, 0, 0},
8002 {0x27, 0, 0, 0, 0},
8003 {0x28, 0x1, 0x1, 0, 0},
8004 {0x29, 0, 0, 0, 0},
8005 {0x2A, 0, 0, 0, 0},
8006 {0x2B, 0, 0, 0, 0},
8007 {0x2C, 0, 0, 0, 0},
8008 {0x2D, 0, 0, 0, 0},
8009 {0x2E, 0xd, 0xd, 0, 0},
8010 {0x2F, 0x1f, 0x1f, 0, 0},
8011 {0x30, 0x15, 0x15, 0, 0},
8012 {0x31, 0xf, 0xf, 0, 0},
8013 {0x32, 0, 0, 0, 0},
8014 {0x33, 0, 0, 0, 0},
8015 {0x34, 0, 0, 0, 0},
8016 {0x35, 0, 0, 0, 0},
8017 {0x36, 0, 0, 0, 0},
8018 {0x37, 0, 0, 0, 0},
8019 {0x38, 0, 0, 0, 0},
8020 {0x39, 0, 0, 0, 0},
8021 {0x3A, 0, 0, 0, 0},
8022 {0x3B, 0, 0, 0, 0},
8023 {0x3C, 0x13, 0x13, 0, 0},
8024 {0x3D, 0xf, 0xf, 0, 0},
8025 {0x3E, 0x18, 0x18, 0, 0},
8026 {0x3F, 0, 0, 0, 0},
8027 {0x40, 0, 0, 0, 0},
8028 {0x41, 0x20, 0x20, 0, 0},
8029 {0x42, 0x20, 0x20, 0, 0},
8030 {0x43, 0, 0, 0, 0},
8031 {0x44, 0x77, 0x77, 0, 0},
8032 {0x45, 0x7, 0x7, 0, 0},
8033 {0x46, 0x1, 0x1, 0, 0},
8034 {0x47, 0x4, 0x4, 0, 0},
8035 {0x48, 0xf, 0xf, 0, 0},
8036 {0x49, 0x30, 0x30, 0, 0},
8037 {0x4A, 0x32, 0x32, 0, 0},
8038 {0x4B, 0xd, 0xd, 0, 0},
8039 {0x4C, 0xd, 0xd, 0, 0},
8040 {0x4D, 0x4, 0x4, 0, 0},
8041 {0x4E, 0x6, 0x6, 0, 0},
8042 {0x4F, 0x1, 0x1, 0, 0},
8043 {0x50, 0x1c, 0x1c, 0, 0},
8044 {0x51, 0x2, 0x2, 0, 0},
8045 {0x52, 0x2, 0x2, 0, 0},
8046 {0x53, 0xf7, 0xf7, 1, 1},
8047 {0x54, 0xb4, 0xb4, 0, 0},
8048 {0x55, 0xd2, 0xd2, 0, 0},
8049 {0x56, 0, 0, 0, 0},
8050 {0x57, 0, 0, 0, 0},
8051 {0x58, 0x4, 0x4, 0, 0},
8052 {0x59, 0x96, 0x96, 0, 0},
8053 {0x5A, 0x3e, 0x3e, 0, 0},
8054 {0x5B, 0x3e, 0x3e, 0, 0},
8055 {0x5C, 0x13, 0x13, 0, 0},
8056 {0x5D, 0x2, 0x2, 0, 0},
8057 {0x5E, 0, 0, 0, 0},
8058 {0x5F, 0x7, 0x7, 0, 0},
8059 {0x60, 0x7, 0x7, 1, 1},
8060 {0x61, 0x8, 0x8, 0, 0},
8061 {0x62, 0x3, 0x3, 0, 0},
8062 {0x63, 0, 0, 0, 0},
8063 {0x64, 0, 0, 0, 0},
8064 {0x65, 0, 0, 0, 0},
8065 {0x66, 0, 0, 0, 0},
8066 {0x67, 0, 0, 0, 0},
8067 {0x68, 0x40, 0x40, 0, 0},
8068 {0x69, 0, 0, 0, 0},
8069 {0x6A, 0, 0, 0, 0},
8070 {0x6B, 0, 0, 0, 0},
8071 {0x6C, 0, 0, 0, 0},
8072 {0x6D, 0x1, 0x1, 0, 0},
8073 {0x6E, 0, 0, 0, 0},
8074 {0x6F, 0, 0, 0, 0},
8075 {0x70, 0x60, 0x60, 0, 0},
8076 {0x71, 0x66, 0x66, 0, 0},
8077 {0x72, 0xc, 0xc, 0, 0},
8078 {0x73, 0x66, 0x66, 0, 0},
8079 {0x74, 0x8f, 0x8f, 1, 1},
8080 {0x75, 0, 0, 0, 0},
8081 {0x76, 0xcc, 0xcc, 0, 0},
8082 {0x77, 0x1, 0x1, 0, 0},
8083 {0x78, 0x66, 0x66, 0, 0},
8084 {0x79, 0x66, 0x66, 0, 0},
8085 {0x7A, 0, 0, 0, 0},
8086 {0x7B, 0, 0, 0, 0},
8087 {0x7C, 0, 0, 0, 0},
8088 {0x7D, 0, 0, 0, 0},
8089 {0x7E, 0, 0, 0, 0},
8090 {0x7F, 0, 0, 0, 0},
8091 {0x80, 0, 0, 0, 0},
8092 {0x81, 0, 0, 0, 0},
8093 {0x82, 0, 0, 0, 0},
8094 {0x83, 0, 0, 0, 0},
8095 {0x84, 0, 0, 0, 0},
8096 {0x85, 0xff, 0xff, 0, 0},
8097 {0x86, 0, 0, 0, 0},
8098 {0x87, 0, 0, 0, 0},
8099 {0x88, 0, 0, 0, 0},
8100 {0x89, 0, 0, 0, 0},
8101 {0x8A, 0, 0, 0, 0},
8102 {0x8B, 0, 0, 0, 0},
8103 {0x8C, 0, 0, 0, 0},
8104 {0x8D, 0, 0, 0, 0},
8105 {0x8E, 0, 0, 0, 0},
8106 {0x8F, 0, 0, 0, 0},
8107 {0x90, 0, 0, 0, 0},
8108 {0x91, 0, 0, 0, 0},
8109 {0x92, 0, 0, 0, 0},
8110 {0x93, 0, 0, 0, 0},
8111 {0x94, 0, 0, 0, 0},
8112 {0x95, 0, 0, 0, 0},
8113 {0x96, 0, 0, 0, 0},
8114 {0x97, 0, 0, 0, 0},
8115 {0x98, 0, 0, 0, 0},
8116 {0x99, 0, 0, 0, 0},
8117 {0x9A, 0, 0, 0, 0},
8118 {0x9B, 0, 0, 0, 0},
8119 {0x9C, 0, 0, 0, 0},
8120 {0x9D, 0, 0, 0, 0},
8121 {0x9E, 0, 0, 0, 0},
8122 {0x9F, 0x6, 0x6, 0, 0},
8123 {0xA0, 0x66, 0x66, 0, 0},
8124 {0xA1, 0x66, 0x66, 0, 0},
8125 {0xA2, 0x66, 0x66, 0, 0},
8126 {0xA3, 0x66, 0x66, 0, 0},
8127 {0xA4, 0x66, 0x66, 0, 0},
8128 {0xA5, 0x66, 0x66, 0, 0},
8129 {0xA6, 0x66, 0x66, 0, 0},
8130 {0xA7, 0x66, 0x66, 0, 0},
8131 {0xA8, 0x66, 0x66, 0, 0},
8132 {0xA9, 0x66, 0x66, 0, 0},
8133 {0xAA, 0x66, 0x66, 0, 0},
8134 {0xAB, 0x66, 0x66, 0, 0},
8135 {0xAC, 0x66, 0x66, 0, 0},
8136 {0xAD, 0x66, 0x66, 0, 0},
8137 {0xAE, 0x66, 0x66, 0, 0},
8138 {0xAF, 0x66, 0x66, 0, 0},
8139 {0xB0, 0x66, 0x66, 0, 0},
8140 {0xB1, 0x66, 0x66, 0, 0},
8141 {0xB2, 0x66, 0x66, 0, 0},
8142 {0xB3, 0xa, 0xa, 0, 0},
8143 {0xB4, 0, 0, 0, 0},
8144 {0xB5, 0, 0, 0, 0},
8145 {0xB6, 0, 0, 0, 0},
8146 {0xFFFF, 0, 0, 0, 0}
8147 };
8148
8149 radio_regs_t regs_TX_2056[] = {
8150 {0x02, 0, 0, 0, 0},
8151 {0x03, 0, 0, 0, 0},
8152 {0x04, 0, 0, 0, 0},
8153 {0x05, 0, 0, 0, 0},
8154 {0x06, 0, 0, 0, 0},
8155 {0x07, 0, 0, 0, 0},
8156 {0x08, 0, 0, 0, 0},
8157 {0x09, 0, 0, 0, 0},
8158 {0x0A, 0, 0, 0, 0},
8159 {0x0B, 0, 0, 0, 0},
8160 {0x0C, 0, 0, 0, 0},
8161 {0x0D, 0, 0, 0, 0},
8162 {0x0E, 0, 0, 0, 0},
8163 {0x0F, 0, 0, 0, 0},
8164 {0x10, 0, 0, 0, 0},
8165 {0x11, 0, 0, 0, 0},
8166 {0x12, 0, 0, 0, 0},
8167 {0x13, 0, 0, 0, 0},
8168 {0x14, 0, 0, 0, 0},
8169 {0x15, 0, 0, 0, 0},
8170 {0x16, 0, 0, 0, 0},
8171 {0x17, 0, 0, 0, 0},
8172 {0x18, 0, 0, 0, 0},
8173 {0x19, 0, 0, 0, 0},
8174 {0x1A, 0, 0, 0, 0},
8175 {0x1B, 0, 0, 0, 0},
8176 {0x1C, 0, 0, 0, 0},
8177 {0x1D, 0, 0, 0, 0},
8178 {0x1E, 0, 0, 0, 0},
8179 {0x1F, 0, 0, 0, 0},
8180 {0x20, 0, 0, 0, 0},
8181 {0x21, 0x88, 0x88, 0, 0},
8182 {0x22, 0x88, 0x88, 0, 0},
8183 {0x23, 0x88, 0x88, 0, 0},
8184 {0x24, 0x88, 0x88, 0, 0},
8185 {0x25, 0xc, 0xc, 0, 0},
8186 {0x26, 0, 0, 0, 0},
8187 {0x27, 0x3, 0x3, 0, 0},
8188 {0x28, 0, 0, 0, 0},
8189 {0x29, 0x3, 0x3, 0, 0},
8190 {0x2A, 0x37, 0x37, 0, 0},
8191 {0x2B, 0x3, 0x3, 0, 0},
8192 {0x2C, 0, 0, 0, 0},
8193 {0x2D, 0, 0, 0, 0},
8194 {0x2E, 0x1, 0x1, 0, 0},
8195 {0x2F, 0x1, 0x1, 0, 0},
8196 {0x30, 0, 0, 0, 0},
8197 {0x31, 0, 0, 0, 0},
8198 {0x32, 0, 0, 0, 0},
8199 {0x33, 0x11, 0x11, 0, 0},
8200 {0x34, 0x11, 0x11, 0, 0},
8201 {0x35, 0, 0, 0, 0},
8202 {0x36, 0, 0, 0, 0},
8203 {0x37, 0x3, 0x3, 0, 0},
8204 {0x38, 0xf, 0xf, 0, 0},
8205 {0x39, 0, 0, 0, 0},
8206 {0x3A, 0x2d, 0x2d, 0, 0},
8207 {0x3B, 0, 0, 0, 0},
8208 {0x3C, 0x6e, 0x6e, 0, 0},
8209 {0x3D, 0xf0, 0xf0, 1, 1},
8210 {0x3E, 0, 0, 0, 0},
8211 {0x3F, 0, 0, 0, 0},
8212 {0x40, 0, 0, 0, 0},
8213 {0x41, 0x3, 0x3, 0, 0},
8214 {0x42, 0x3, 0x3, 0, 0},
8215 {0x43, 0, 0, 0, 0},
8216 {0x44, 0x1e, 0x1e, 0, 0},
8217 {0x45, 0, 0, 0, 0},
8218 {0x46, 0x6e, 0x6e, 0, 0},
8219 {0x47, 0xf0, 0xf0, 1, 1},
8220 {0x48, 0, 0, 0, 0},
8221 {0x49, 0x2, 0x2, 0, 0},
8222 {0x4A, 0xff, 0xff, 1, 1},
8223 {0x4B, 0xc, 0xc, 0, 0},
8224 {0x4C, 0, 0, 0, 0},
8225 {0x4D, 0x38, 0x38, 0, 0},
8226 {0x4E, 0x70, 0x70, 1, 1},
8227 {0x4F, 0x2, 0x2, 0, 0},
8228 {0x50, 0x88, 0x88, 0, 0},
8229 {0x51, 0xc, 0xc, 0, 0},
8230 {0x52, 0, 0, 0, 0},
8231 {0x53, 0x8, 0x8, 0, 0},
8232 {0x54, 0x70, 0x70, 1, 1},
8233 {0x55, 0x2, 0x2, 0, 0},
8234 {0x56, 0xff, 0xff, 1, 1},
8235 {0x57, 0, 0, 0, 0},
8236 {0x58, 0x83, 0x83, 0, 0},
8237 {0x59, 0x77, 0x77, 1, 1},
8238 {0x5A, 0, 0, 0, 0},
8239 {0x5B, 0x2, 0x2, 0, 0},
8240 {0x5C, 0x88, 0x88, 0, 0},
8241 {0x5D, 0, 0, 0, 0},
8242 {0x5E, 0x8, 0x8, 0, 0},
8243 {0x5F, 0x77, 0x77, 1, 1},
8244 {0x60, 0x1, 0x1, 0, 0},
8245 {0x61, 0, 0, 0, 0},
8246 {0x62, 0x7, 0x7, 0, 0},
8247 {0x63, 0, 0, 0, 0},
8248 {0x64, 0x7, 0x7, 0, 0},
8249 {0x65, 0, 0, 0, 0},
8250 {0x66, 0, 0, 0, 0},
8251 {0x67, 0x74, 0x74, 1, 1},
8252 {0x68, 0, 0, 0, 0},
8253 {0x69, 0xa, 0xa, 0, 0},
8254 {0x6A, 0, 0, 0, 0},
8255 {0x6B, 0, 0, 0, 0},
8256 {0x6C, 0, 0, 0, 0},
8257 {0x6D, 0, 0, 0, 0},
8258 {0x6E, 0, 0, 0, 0},
8259 {0x6F, 0, 0, 0, 0},
8260 {0x70, 0, 0, 0, 0},
8261 {0x71, 0x2, 0x2, 0, 0},
8262 {0x72, 0, 0, 0, 0},
8263 {0x73, 0, 0, 0, 0},
8264 {0x74, 0xe, 0xe, 0, 0},
8265 {0x75, 0xe, 0xe, 0, 0},
8266 {0x76, 0xe, 0xe, 0, 0},
8267 {0x77, 0x13, 0x13, 0, 0},
8268 {0x78, 0x13, 0x13, 0, 0},
8269 {0x79, 0x1b, 0x1b, 0, 0},
8270 {0x7A, 0x1b, 0x1b, 0, 0},
8271 {0x7B, 0x55, 0x55, 0, 0},
8272 {0x7C, 0x5b, 0x5b, 0, 0},
8273 {0x7D, 0, 0, 0, 0},
8274 {0x7E, 0, 0, 0, 0},
8275 {0x7F, 0, 0, 0, 0},
8276 {0x80, 0, 0, 0, 0},
8277 {0x81, 0, 0, 0, 0},
8278 {0x82, 0, 0, 0, 0},
8279 {0x83, 0, 0, 0, 0},
8280 {0x84, 0, 0, 0, 0},
8281 {0x85, 0, 0, 0, 0},
8282 {0x86, 0, 0, 0, 0},
8283 {0x87, 0, 0, 0, 0},
8284 {0x88, 0, 0, 0, 0},
8285 {0x89, 0, 0, 0, 0},
8286 {0x8A, 0, 0, 0, 0},
8287 {0x8B, 0, 0, 0, 0},
8288 {0x8C, 0, 0, 0, 0},
8289 {0x8D, 0, 0, 0, 0},
8290 {0x8E, 0, 0, 0, 0},
8291 {0x8F, 0, 0, 0, 0},
8292 {0x90, 0, 0, 0, 0},
8293 {0x91, 0, 0, 0, 0},
8294 {0x92, 0, 0, 0, 0},
8295 {0xFFFF, 0, 0, 0, 0}
8296 };
8297
8298 radio_regs_t regs_RX_2056[] = {
8299 {0x02, 0, 0, 0, 0},
8300 {0x03, 0, 0, 0, 0},
8301 {0x04, 0, 0, 0, 0},
8302 {0x05, 0, 0, 0, 0},
8303 {0x06, 0, 0, 0, 0},
8304 {0x07, 0, 0, 0, 0},
8305 {0x08, 0, 0, 0, 0},
8306 {0x09, 0, 0, 0, 0},
8307 {0x0A, 0, 0, 0, 0},
8308 {0x0B, 0, 0, 0, 0},
8309 {0x0C, 0, 0, 0, 0},
8310 {0x0D, 0, 0, 0, 0},
8311 {0x0E, 0, 0, 0, 0},
8312 {0x0F, 0, 0, 0, 0},
8313 {0x10, 0, 0, 0, 0},
8314 {0x11, 0, 0, 0, 0},
8315 {0x12, 0, 0, 0, 0},
8316 {0x13, 0, 0, 0, 0},
8317 {0x14, 0, 0, 0, 0},
8318 {0x15, 0, 0, 0, 0},
8319 {0x16, 0, 0, 0, 0},
8320 {0x17, 0, 0, 0, 0},
8321 {0x18, 0, 0, 0, 0},
8322 {0x19, 0, 0, 0, 0},
8323 {0x1A, 0, 0, 0, 0},
8324 {0x1B, 0, 0, 0, 0},
8325 {0x1C, 0, 0, 0, 0},
8326 {0x1D, 0, 0, 0, 0},
8327 {0x1E, 0, 0, 0, 0},
8328 {0x1F, 0, 0, 0, 0},
8329 {0x20, 0x3, 0x3, 0, 0},
8330 {0x21, 0, 0, 0, 0},
8331 {0x22, 0, 0, 0, 0},
8332 {0x23, 0x90, 0x90, 0, 0},
8333 {0x24, 0x55, 0x55, 0, 0},
8334 {0x25, 0x15, 0x15, 0, 0},
8335 {0x26, 0x5, 0x5, 0, 0},
8336 {0x27, 0x15, 0x15, 0, 0},
8337 {0x28, 0x5, 0x5, 0, 0},
8338 {0x29, 0x20, 0x20, 0, 0},
8339 {0x2A, 0x11, 0x11, 0, 0},
8340 {0x2B, 0x90, 0x90, 0, 0},
8341 {0x2C, 0, 0, 0, 0},
8342 {0x2D, 0x88, 0x88, 0, 0},
8343 {0x2E, 0x32, 0x32, 0, 0},
8344 {0x2F, 0x77, 0x77, 0, 0},
8345 {0x30, 0x17, 0x17, 1, 1},
8346 {0x31, 0xff, 0xff, 1, 1},
8347 {0x32, 0x20, 0x20, 0, 0},
8348 {0x33, 0, 0, 0, 0},
8349 {0x34, 0x88, 0x88, 0, 0},
8350 {0x35, 0x32, 0x32, 0, 0},
8351 {0x36, 0x77, 0x77, 0, 0},
8352 {0x37, 0x17, 0x17, 1, 1},
8353 {0x38, 0xf0, 0xf0, 1, 1},
8354 {0x39, 0x20, 0x20, 0, 0},
8355 {0x3A, 0x8, 0x8, 0, 0},
8356 {0x3B, 0x99, 0x99, 0, 0},
8357 {0x3C, 0, 0, 0, 0},
8358 {0x3D, 0x44, 0x44, 1, 1},
8359 {0x3E, 0, 0, 0, 0},
8360 {0x3F, 0x44, 0x44, 0, 0},
8361 {0x40, 0xf, 0xf, 1, 1},
8362 {0x41, 0x6, 0x6, 0, 0},
8363 {0x42, 0x4, 0x4, 0, 0},
8364 {0x43, 0x50, 0x50, 1, 1},
8365 {0x44, 0x8, 0x8, 0, 0},
8366 {0x45, 0x99, 0x99, 0, 0},
8367 {0x46, 0, 0, 0, 0},
8368 {0x47, 0x11, 0x11, 0, 0},
8369 {0x48, 0, 0, 0, 0},
8370 {0x49, 0x44, 0x44, 0, 0},
8371 {0x4A, 0x7, 0x7, 0, 0},
8372 {0x4B, 0x6, 0x6, 0, 0},
8373 {0x4C, 0x4, 0x4, 0, 0},
8374 {0x4D, 0, 0, 0, 0},
8375 {0x4E, 0, 0, 0, 0},
8376 {0x4F, 0x66, 0x66, 0, 0},
8377 {0x50, 0x66, 0x66, 0, 0},
8378 {0x51, 0x57, 0x57, 0, 0},
8379 {0x52, 0x57, 0x57, 0, 0},
8380 {0x53, 0x44, 0x44, 0, 0},
8381 {0x54, 0, 0, 0, 0},
8382 {0x55, 0, 0, 0, 0},
8383 {0x56, 0x8, 0x8, 0, 0},
8384 {0x57, 0x8, 0x8, 0, 0},
8385 {0x58, 0x7, 0x7, 0, 0},
8386 {0x59, 0x22, 0x22, 0, 0},
8387 {0x5A, 0x22, 0x22, 0, 0},
8388 {0x5B, 0x2, 0x2, 0, 0},
8389 {0x5C, 0x23, 0x23, 0, 0},
8390 {0x5D, 0x7, 0x7, 0, 0},
8391 {0x5E, 0x55, 0x55, 0, 0},
8392 {0x5F, 0x23, 0x23, 0, 0},
8393 {0x60, 0x41, 0x41, 0, 0},
8394 {0x61, 0x1, 0x1, 0, 0},
8395 {0x62, 0xa, 0xa, 0, 0},
8396 {0x63, 0, 0, 0, 0},
8397 {0x64, 0, 0, 0, 0},
8398 {0x65, 0, 0, 0, 0},
8399 {0x66, 0, 0, 0, 0},
8400 {0x67, 0, 0, 0, 0},
8401 {0x68, 0, 0, 0, 0},
8402 {0x69, 0, 0, 0, 0},
8403 {0x6A, 0, 0, 0, 0},
8404 {0x6B, 0xc, 0xc, 0, 0},
8405 {0x6C, 0, 0, 0, 0},
8406 {0x6D, 0, 0, 0, 0},
8407 {0x6E, 0, 0, 0, 0},
8408 {0x6F, 0, 0, 0, 0},
8409 {0x70, 0, 0, 0, 0},
8410 {0x71, 0, 0, 0, 0},
8411 {0x72, 0x22, 0x22, 0, 0},
8412 {0x73, 0x22, 0x22, 0, 0},
8413 {0x74, 0x2, 0x2, 0, 0},
8414 {0x75, 0xa, 0xa, 0, 0},
8415 {0x76, 0x1, 0x1, 0, 0},
8416 {0x77, 0x22, 0x22, 0, 0},
8417 {0x78, 0x30, 0x30, 0, 0},
8418 {0x79, 0, 0, 0, 0},
8419 {0x7A, 0, 0, 0, 0},
8420 {0x7B, 0, 0, 0, 0},
8421 {0x7C, 0, 0, 0, 0},
8422 {0x7D, 0, 0, 0, 0},
8423 {0x7E, 0, 0, 0, 0},
8424 {0x7F, 0, 0, 0, 0},
8425 {0x80, 0, 0, 0, 0},
8426 {0x81, 0, 0, 0, 0},
8427 {0x82, 0, 0, 0, 0},
8428 {0x83, 0, 0, 0, 0},
8429 {0x84, 0, 0, 0, 0},
8430 {0x85, 0, 0, 0, 0},
8431 {0x86, 0, 0, 0, 0},
8432 {0x87, 0, 0, 0, 0},
8433 {0x88, 0, 0, 0, 0},
8434 {0x89, 0, 0, 0, 0},
8435 {0x8A, 0, 0, 0, 0},
8436 {0x8B, 0, 0, 0, 0},
8437 {0x8C, 0, 0, 0, 0},
8438 {0x8D, 0, 0, 0, 0},
8439 {0x8E, 0, 0, 0, 0},
8440 {0x8F, 0, 0, 0, 0},
8441 {0x90, 0, 0, 0, 0},
8442 {0x91, 0, 0, 0, 0},
8443 {0x92, 0, 0, 0, 0},
8444 {0x93, 0, 0, 0, 0},
8445 {0x94, 0, 0, 0, 0},
8446 {0xFFFF, 0, 0, 0, 0}
8447 };
8448
8449 radio_regs_t regs_SYN_2056_A1[] = {
8450 {0x02, 0, 0, 0, 0},
8451 {0x03, 0, 0, 0, 0},
8452 {0x04, 0, 0, 0, 0},
8453 {0x05, 0, 0, 0, 0},
8454 {0x06, 0, 0, 0, 0},
8455 {0x07, 0, 0, 0, 0},
8456 {0x08, 0, 0, 0, 0},
8457 {0x09, 0x1, 0x1, 0, 0},
8458 {0x0A, 0, 0, 0, 0},
8459 {0x0B, 0, 0, 0, 0},
8460 {0x0C, 0, 0, 0, 0},
8461 {0x0D, 0, 0, 0, 0},
8462 {0x0E, 0, 0, 0, 0},
8463 {0x0F, 0, 0, 0, 0},
8464 {0x10, 0, 0, 0, 0},
8465 {0x11, 0, 0, 0, 0},
8466 {0x12, 0, 0, 0, 0},
8467 {0x13, 0, 0, 0, 0},
8468 {0x14, 0, 0, 0, 0},
8469 {0x15, 0, 0, 0, 0},
8470 {0x16, 0, 0, 0, 0},
8471 {0x17, 0, 0, 0, 0},
8472 {0x18, 0, 0, 0, 0},
8473 {0x19, 0, 0, 0, 0},
8474 {0x1A, 0, 0, 0, 0},
8475 {0x1B, 0, 0, 0, 0},
8476 {0x1C, 0, 0, 0, 0},
8477 {0x1D, 0, 0, 0, 0},
8478 {0x1E, 0, 0, 0, 0},
8479 {0x1F, 0, 0, 0, 0},
8480 {0x20, 0, 0, 0, 0},
8481 {0x21, 0, 0, 0, 0},
8482 {0x22, 0x60, 0x60, 0, 0},
8483 {0x23, 0x6, 0x6, 0, 0},
8484 {0x24, 0xc, 0xc, 0, 0},
8485 {0x25, 0, 0, 0, 0},
8486 {0x26, 0, 0, 0, 0},
8487 {0x27, 0, 0, 0, 0},
8488 {0x28, 0x1, 0x1, 0, 0},
8489 {0x29, 0, 0, 0, 0},
8490 {0x2A, 0, 0, 0, 0},
8491 {0x2B, 0, 0, 0, 0},
8492 {0x2C, 0, 0, 0, 0},
8493 {0x2D, 0, 0, 0, 0},
8494 {0x2E, 0xd, 0xd, 0, 0},
8495 {0x2F, 0x1f, 0x1f, 0, 0},
8496 {0x30, 0x15, 0x15, 0, 0},
8497 {0x31, 0xf, 0xf, 0, 0},
8498 {0x32, 0, 0, 0, 0},
8499 {0x33, 0, 0, 0, 0},
8500 {0x34, 0, 0, 0, 0},
8501 {0x35, 0, 0, 0, 0},
8502 {0x36, 0, 0, 0, 0},
8503 {0x37, 0, 0, 0, 0},
8504 {0x38, 0, 0, 0, 0},
8505 {0x39, 0, 0, 0, 0},
8506 {0x3A, 0, 0, 0, 0},
8507 {0x3B, 0, 0, 0, 0},
8508 {0x3C, 0x13, 0x13, 0, 0},
8509 {0x3D, 0xf, 0xf, 0, 0},
8510 {0x3E, 0x18, 0x18, 0, 0},
8511 {0x3F, 0, 0, 0, 0},
8512 {0x40, 0, 0, 0, 0},
8513 {0x41, 0x20, 0x20, 0, 0},
8514 {0x42, 0x20, 0x20, 0, 0},
8515 {0x43, 0, 0, 0, 0},
8516 {0x44, 0x77, 0x77, 0, 0},
8517 {0x45, 0x7, 0x7, 0, 0},
8518 {0x46, 0x1, 0x1, 0, 0},
8519 {0x47, 0x4, 0x4, 0, 0},
8520 {0x48, 0xf, 0xf, 0, 0},
8521 {0x49, 0x30, 0x30, 0, 0},
8522 {0x4A, 0x32, 0x32, 0, 0},
8523 {0x4B, 0xd, 0xd, 0, 0},
8524 {0x4C, 0xd, 0xd, 0, 0},
8525 {0x4D, 0x4, 0x4, 0, 0},
8526 {0x4E, 0x6, 0x6, 0, 0},
8527 {0x4F, 0x1, 0x1, 0, 0},
8528 {0x50, 0x1c, 0x1c, 0, 0},
8529 {0x51, 0x2, 0x2, 0, 0},
8530 {0x52, 0x2, 0x2, 0, 0},
8531 {0x53, 0xf7, 0xf7, 1, 1},
8532 {0x54, 0xb4, 0xb4, 0, 0},
8533 {0x55, 0xd2, 0xd2, 0, 0},
8534 {0x56, 0, 0, 0, 0},
8535 {0x57, 0, 0, 0, 0},
8536 {0x58, 0x4, 0x4, 0, 0},
8537 {0x59, 0x96, 0x96, 0, 0},
8538 {0x5A, 0x3e, 0x3e, 0, 0},
8539 {0x5B, 0x3e, 0x3e, 0, 0},
8540 {0x5C, 0x13, 0x13, 0, 0},
8541 {0x5D, 0x2, 0x2, 0, 0},
8542 {0x5E, 0, 0, 0, 0},
8543 {0x5F, 0x7, 0x7, 0, 0},
8544 {0x60, 0x7, 0x7, 1, 1},
8545 {0x61, 0x8, 0x8, 0, 0},
8546 {0x62, 0x3, 0x3, 0, 0},
8547 {0x63, 0, 0, 0, 0},
8548 {0x64, 0, 0, 0, 0},
8549 {0x65, 0, 0, 0, 0},
8550 {0x66, 0, 0, 0, 0},
8551 {0x67, 0, 0, 0, 0},
8552 {0x68, 0x40, 0x40, 0, 0},
8553 {0x69, 0, 0, 0, 0},
8554 {0x6A, 0, 0, 0, 0},
8555 {0x6B, 0, 0, 0, 0},
8556 {0x6C, 0, 0, 0, 0},
8557 {0x6D, 0x1, 0x1, 0, 0},
8558 {0x6E, 0, 0, 0, 0},
8559 {0x6F, 0, 0, 0, 0},
8560 {0x70, 0x60, 0x60, 0, 0},
8561 {0x71, 0x66, 0x66, 0, 0},
8562 {0x72, 0xc, 0xc, 0, 0},
8563 {0x73, 0x66, 0x66, 0, 0},
8564 {0x74, 0x8f, 0x8f, 1, 1},
8565 {0x75, 0, 0, 0, 0},
8566 {0x76, 0xcc, 0xcc, 0, 0},
8567 {0x77, 0x1, 0x1, 0, 0},
8568 {0x78, 0x66, 0x66, 0, 0},
8569 {0x79, 0x66, 0x66, 0, 0},
8570 {0x7A, 0, 0, 0, 0},
8571 {0x7B, 0, 0, 0, 0},
8572 {0x7C, 0, 0, 0, 0},
8573 {0x7D, 0, 0, 0, 0},
8574 {0x7E, 0, 0, 0, 0},
8575 {0x7F, 0, 0, 0, 0},
8576 {0x80, 0, 0, 0, 0},
8577 {0x81, 0, 0, 0, 0},
8578 {0x82, 0, 0, 0, 0},
8579 {0x83, 0, 0, 0, 0},
8580 {0x84, 0, 0, 0, 0},
8581 {0x85, 0xff, 0xff, 0, 0},
8582 {0x86, 0, 0, 0, 0},
8583 {0x87, 0, 0, 0, 0},
8584 {0x88, 0, 0, 0, 0},
8585 {0x89, 0, 0, 0, 0},
8586 {0x8A, 0, 0, 0, 0},
8587 {0x8B, 0, 0, 0, 0},
8588 {0x8C, 0, 0, 0, 0},
8589 {0x8D, 0, 0, 0, 0},
8590 {0x8E, 0, 0, 0, 0},
8591 {0x8F, 0, 0, 0, 0},
8592 {0x90, 0, 0, 0, 0},
8593 {0x91, 0, 0, 0, 0},
8594 {0x92, 0, 0, 0, 0},
8595 {0x93, 0, 0, 0, 0},
8596 {0x94, 0, 0, 0, 0},
8597 {0x95, 0, 0, 0, 0},
8598 {0x96, 0, 0, 0, 0},
8599 {0x97, 0, 0, 0, 0},
8600 {0x98, 0, 0, 0, 0},
8601 {0x99, 0, 0, 0, 0},
8602 {0x9A, 0, 0, 0, 0},
8603 {0x9B, 0, 0, 0, 0},
8604 {0x9C, 0, 0, 0, 0},
8605 {0x9D, 0, 0, 0, 0},
8606 {0x9E, 0, 0, 0, 0},
8607 {0x9F, 0x6, 0x6, 0, 0},
8608 {0xA0, 0x66, 0x66, 0, 0},
8609 {0xA1, 0x66, 0x66, 0, 0},
8610 {0xA2, 0x66, 0x66, 0, 0},
8611 {0xA3, 0x66, 0x66, 0, 0},
8612 {0xA4, 0x66, 0x66, 0, 0},
8613 {0xA5, 0x66, 0x66, 0, 0},
8614 {0xA6, 0x66, 0x66, 0, 0},
8615 {0xA7, 0x66, 0x66, 0, 0},
8616 {0xA8, 0x66, 0x66, 0, 0},
8617 {0xA9, 0x66, 0x66, 0, 0},
8618 {0xAA, 0x66, 0x66, 0, 0},
8619 {0xAB, 0x66, 0x66, 0, 0},
8620 {0xAC, 0x66, 0x66, 0, 0},
8621 {0xAD, 0x66, 0x66, 0, 0},
8622 {0xAE, 0x66, 0x66, 0, 0},
8623 {0xAF, 0x66, 0x66, 0, 0},
8624 {0xB0, 0x66, 0x66, 0, 0},
8625 {0xB1, 0x66, 0x66, 0, 0},
8626 {0xB2, 0x66, 0x66, 0, 0},
8627 {0xB3, 0xa, 0xa, 0, 0},
8628 {0xB4, 0, 0, 0, 0},
8629 {0xB5, 0, 0, 0, 0},
8630 {0xB6, 0, 0, 0, 0},
8631 {0xFFFF, 0, 0, 0, 0}
8632 };
8633
8634 radio_regs_t regs_TX_2056_A1[] = {
8635 {0x02, 0, 0, 0, 0},
8636 {0x03, 0, 0, 0, 0},
8637 {0x04, 0, 0, 0, 0},
8638 {0x05, 0, 0, 0, 0},
8639 {0x06, 0, 0, 0, 0},
8640 {0x07, 0, 0, 0, 0},
8641 {0x08, 0, 0, 0, 0},
8642 {0x09, 0, 0, 0, 0},
8643 {0x0A, 0, 0, 0, 0},
8644 {0x0B, 0, 0, 0, 0},
8645 {0x0C, 0, 0, 0, 0},
8646 {0x0D, 0, 0, 0, 0},
8647 {0x0E, 0, 0, 0, 0},
8648 {0x0F, 0, 0, 0, 0},
8649 {0x10, 0, 0, 0, 0},
8650 {0x11, 0, 0, 0, 0},
8651 {0x12, 0, 0, 0, 0},
8652 {0x13, 0, 0, 0, 0},
8653 {0x14, 0, 0, 0, 0},
8654 {0x15, 0, 0, 0, 0},
8655 {0x16, 0, 0, 0, 0},
8656 {0x17, 0, 0, 0, 0},
8657 {0x18, 0, 0, 0, 0},
8658 {0x19, 0, 0, 0, 0},
8659 {0x1A, 0, 0, 0, 0},
8660 {0x1B, 0, 0, 0, 0},
8661 {0x1C, 0, 0, 0, 0},
8662 {0x1D, 0, 0, 0, 0},
8663 {0x1E, 0, 0, 0, 0},
8664 {0x1F, 0, 0, 0, 0},
8665 {0x20, 0, 0, 0, 0},
8666 {0x21, 0x88, 0x88, 0, 0},
8667 {0x22, 0x88, 0x88, 0, 0},
8668 {0x23, 0x88, 0x88, 0, 0},
8669 {0x24, 0x88, 0x88, 0, 0},
8670 {0x25, 0xc, 0xc, 0, 0},
8671 {0x26, 0, 0, 0, 0},
8672 {0x27, 0x3, 0x3, 0, 0},
8673 {0x28, 0, 0, 0, 0},
8674 {0x29, 0x3, 0x3, 0, 0},
8675 {0x2A, 0x37, 0x37, 0, 0},
8676 {0x2B, 0x3, 0x3, 0, 0},
8677 {0x2C, 0, 0, 0, 0},
8678 {0x2D, 0, 0, 0, 0},
8679 {0x2E, 0x1, 0x1, 0, 0},
8680 {0x2F, 0x1, 0x1, 0, 0},
8681 {0x30, 0, 0, 0, 0},
8682 {0x31, 0, 0, 0, 0},
8683 {0x32, 0, 0, 0, 0},
8684 {0x33, 0x11, 0x11, 0, 0},
8685 {0x34, 0x11, 0x11, 0, 0},
8686 {0x35, 0, 0, 0, 0},
8687 {0x36, 0, 0, 0, 0},
8688 {0x37, 0x3, 0x3, 0, 0},
8689 {0x38, 0xf, 0xf, 0, 0},
8690 {0x39, 0, 0, 0, 0},
8691 {0x3A, 0x2d, 0x2d, 0, 0},
8692 {0x3B, 0, 0, 0, 0},
8693 {0x3C, 0x6e, 0x6e, 0, 0},
8694 {0x3D, 0xf0, 0xf0, 1, 1},
8695 {0x3E, 0, 0, 0, 0},
8696 {0x3F, 0, 0, 0, 0},
8697 {0x40, 0, 0, 0, 0},
8698 {0x41, 0x3, 0x3, 0, 0},
8699 {0x42, 0x3, 0x3, 0, 0},
8700 {0x43, 0, 0, 0, 0},
8701 {0x44, 0x1e, 0x1e, 0, 0},
8702 {0x45, 0, 0, 0, 0},
8703 {0x46, 0x6e, 0x6e, 0, 0},
8704 {0x47, 0xf0, 0xf0, 1, 1},
8705 {0x48, 0, 0, 0, 0},
8706 {0x49, 0x2, 0x2, 0, 0},
8707 {0x4A, 0xff, 0xff, 1, 1},
8708 {0x4B, 0xc, 0xc, 0, 0},
8709 {0x4C, 0, 0, 0, 0},
8710 {0x4D, 0x38, 0x38, 0, 0},
8711 {0x4E, 0x70, 0x70, 1, 1},
8712 {0x4F, 0x2, 0x2, 0, 0},
8713 {0x50, 0x88, 0x88, 0, 0},
8714 {0x51, 0xc, 0xc, 0, 0},
8715 {0x52, 0, 0, 0, 0},
8716 {0x53, 0x8, 0x8, 0, 0},
8717 {0x54, 0x70, 0x70, 1, 1},
8718 {0x55, 0x2, 0x2, 0, 0},
8719 {0x56, 0xff, 0xff, 1, 1},
8720 {0x57, 0, 0, 0, 0},
8721 {0x58, 0x83, 0x83, 0, 0},
8722 {0x59, 0x77, 0x77, 1, 1},
8723 {0x5A, 0, 0, 0, 0},
8724 {0x5B, 0x2, 0x2, 0, 0},
8725 {0x5C, 0x88, 0x88, 0, 0},
8726 {0x5D, 0, 0, 0, 0},
8727 {0x5E, 0x8, 0x8, 0, 0},
8728 {0x5F, 0x77, 0x77, 1, 1},
8729 {0x60, 0x1, 0x1, 0, 0},
8730 {0x61, 0, 0, 0, 0},
8731 {0x62, 0x7, 0x7, 0, 0},
8732 {0x63, 0, 0, 0, 0},
8733 {0x64, 0x7, 0x7, 0, 0},
8734 {0x65, 0, 0, 0, 0},
8735 {0x66, 0, 0, 0, 0},
8736 {0x67, 0x72, 0x72, 1, 1},
8737 {0x68, 0, 0, 0, 0},
8738 {0x69, 0xa, 0xa, 0, 0},
8739 {0x6A, 0, 0, 0, 0},
8740 {0x6B, 0, 0, 0, 0},
8741 {0x6C, 0, 0, 0, 0},
8742 {0x6D, 0, 0, 0, 0},
8743 {0x6E, 0, 0, 0, 0},
8744 {0x6F, 0, 0, 0, 0},
8745 {0x70, 0, 0, 0, 0},
8746 {0x71, 0x2, 0x2, 0, 0},
8747 {0x72, 0, 0, 0, 0},
8748 {0x73, 0, 0, 0, 0},
8749 {0x74, 0xe, 0xe, 0, 0},
8750 {0x75, 0xe, 0xe, 0, 0},
8751 {0x76, 0xe, 0xe, 0, 0},
8752 {0x77, 0x13, 0x13, 0, 0},
8753 {0x78, 0x13, 0x13, 0, 0},
8754 {0x79, 0x1b, 0x1b, 0, 0},
8755 {0x7A, 0x1b, 0x1b, 0, 0},
8756 {0x7B, 0x55, 0x55, 0, 0},
8757 {0x7C, 0x5b, 0x5b, 0, 0},
8758 {0x7D, 0, 0, 0, 0},
8759 {0x7E, 0, 0, 0, 0},
8760 {0x7F, 0, 0, 0, 0},
8761 {0x80, 0, 0, 0, 0},
8762 {0x81, 0, 0, 0, 0},
8763 {0x82, 0, 0, 0, 0},
8764 {0x83, 0, 0, 0, 0},
8765 {0x84, 0, 0, 0, 0},
8766 {0x85, 0, 0, 0, 0},
8767 {0x86, 0, 0, 0, 0},
8768 {0x87, 0, 0, 0, 0},
8769 {0x88, 0, 0, 0, 0},
8770 {0x89, 0, 0, 0, 0},
8771 {0x8A, 0, 0, 0, 0},
8772 {0x8B, 0, 0, 0, 0},
8773 {0x8C, 0, 0, 0, 0},
8774 {0x8D, 0, 0, 0, 0},
8775 {0x8E, 0, 0, 0, 0},
8776 {0x8F, 0, 0, 0, 0},
8777 {0x90, 0, 0, 0, 0},
8778 {0x91, 0, 0, 0, 0},
8779 {0x92, 0, 0, 0, 0},
8780 {0xFFFF, 0, 0, 0, 0}
8781 };
8782
8783 radio_regs_t regs_RX_2056_A1[] = {
8784 {0x02, 0, 0, 0, 0},
8785 {0x03, 0, 0, 0, 0},
8786 {0x04, 0, 0, 0, 0},
8787 {0x05, 0, 0, 0, 0},
8788 {0x06, 0, 0, 0, 0},
8789 {0x07, 0, 0, 0, 0},
8790 {0x08, 0, 0, 0, 0},
8791 {0x09, 0, 0, 0, 0},
8792 {0x0A, 0, 0, 0, 0},
8793 {0x0B, 0, 0, 0, 0},
8794 {0x0C, 0, 0, 0, 0},
8795 {0x0D, 0, 0, 0, 0},
8796 {0x0E, 0, 0, 0, 0},
8797 {0x0F, 0, 0, 0, 0},
8798 {0x10, 0, 0, 0, 0},
8799 {0x11, 0, 0, 0, 0},
8800 {0x12, 0, 0, 0, 0},
8801 {0x13, 0, 0, 0, 0},
8802 {0x14, 0, 0, 0, 0},
8803 {0x15, 0, 0, 0, 0},
8804 {0x16, 0, 0, 0, 0},
8805 {0x17, 0, 0, 0, 0},
8806 {0x18, 0, 0, 0, 0},
8807 {0x19, 0, 0, 0, 0},
8808 {0x1A, 0, 0, 0, 0},
8809 {0x1B, 0, 0, 0, 0},
8810 {0x1C, 0, 0, 0, 0},
8811 {0x1D, 0, 0, 0, 0},
8812 {0x1E, 0, 0, 0, 0},
8813 {0x1F, 0, 0, 0, 0},
8814 {0x20, 0x3, 0x3, 0, 0},
8815 {0x21, 0, 0, 0, 0},
8816 {0x22, 0, 0, 0, 0},
8817 {0x23, 0x90, 0x90, 0, 0},
8818 {0x24, 0x55, 0x55, 0, 0},
8819 {0x25, 0x15, 0x15, 0, 0},
8820 {0x26, 0x5, 0x5, 0, 0},
8821 {0x27, 0x15, 0x15, 0, 0},
8822 {0x28, 0x5, 0x5, 0, 0},
8823 {0x29, 0x20, 0x20, 0, 0},
8824 {0x2A, 0x11, 0x11, 0, 0},
8825 {0x2B, 0x90, 0x90, 0, 0},
8826 {0x2C, 0, 0, 0, 0},
8827 {0x2D, 0x88, 0x88, 0, 0},
8828 {0x2E, 0x32, 0x32, 0, 0},
8829 {0x2F, 0x77, 0x77, 0, 0},
8830 {0x30, 0x17, 0x17, 1, 1},
8831 {0x31, 0xff, 0xff, 1, 1},
8832 {0x32, 0x20, 0x20, 0, 0},
8833 {0x33, 0, 0, 0, 0},
8834 {0x34, 0x88, 0x88, 0, 0},
8835 {0x35, 0x32, 0x32, 0, 0},
8836 {0x36, 0x77, 0x77, 0, 0},
8837 {0x37, 0x17, 0x17, 1, 1},
8838 {0x38, 0xf0, 0xf0, 1, 1},
8839 {0x39, 0x20, 0x20, 0, 0},
8840 {0x3A, 0x8, 0x8, 0, 0},
8841 {0x3B, 0x55, 0x55, 1, 1},
8842 {0x3C, 0, 0, 0, 0},
8843 {0x3D, 0x44, 0x44, 1, 1},
8844 {0x3E, 0, 0, 0, 0},
8845 {0x3F, 0x44, 0x44, 0, 0},
8846 {0x40, 0xf, 0xf, 1, 1},
8847 {0x41, 0x6, 0x6, 0, 0},
8848 {0x42, 0x4, 0x4, 0, 0},
8849 {0x43, 0x50, 0x50, 1, 1},
8850 {0x44, 0x8, 0x8, 0, 0},
8851 {0x45, 0x55, 0x55, 1, 1},
8852 {0x46, 0, 0, 0, 0},
8853 {0x47, 0x11, 0x11, 0, 0},
8854 {0x48, 0, 0, 0, 0},
8855 {0x49, 0x44, 0x44, 0, 0},
8856 {0x4A, 0x7, 0x7, 0, 0},
8857 {0x4B, 0x6, 0x6, 0, 0},
8858 {0x4C, 0x4, 0x4, 0, 0},
8859 {0x4D, 0, 0, 0, 0},
8860 {0x4E, 0, 0, 0, 0},
8861 {0x4F, 0x26, 0x26, 1, 1},
8862 {0x50, 0x26, 0x26, 1, 1},
8863 {0x51, 0xf, 0xf, 1, 1},
8864 {0x52, 0xf, 0xf, 1, 1},
8865 {0x53, 0x44, 0x44, 0, 0},
8866 {0x54, 0, 0, 0, 0},
8867 {0x55, 0, 0, 0, 0},
8868 {0x56, 0x8, 0x8, 0, 0},
8869 {0x57, 0x8, 0x8, 0, 0},
8870 {0x58, 0x7, 0x7, 0, 0},
8871 {0x59, 0x22, 0x22, 0, 0},
8872 {0x5A, 0x22, 0x22, 0, 0},
8873 {0x5B, 0x2, 0x2, 0, 0},
8874 {0x5C, 0x2f, 0x2f, 1, 1},
8875 {0x5D, 0x7, 0x7, 0, 0},
8876 {0x5E, 0x55, 0x55, 0, 0},
8877 {0x5F, 0x23, 0x23, 0, 0},
8878 {0x60, 0x41, 0x41, 0, 0},
8879 {0x61, 0x1, 0x1, 0, 0},
8880 {0x62, 0xa, 0xa, 0, 0},
8881 {0x63, 0, 0, 0, 0},
8882 {0x64, 0, 0, 0, 0},
8883 {0x65, 0, 0, 0, 0},
8884 {0x66, 0, 0, 0, 0},
8885 {0x67, 0, 0, 0, 0},
8886 {0x68, 0, 0, 0, 0},
8887 {0x69, 0, 0, 0, 0},
8888 {0x6A, 0, 0, 0, 0},
8889 {0x6B, 0xc, 0xc, 0, 0},
8890 {0x6C, 0, 0, 0, 0},
8891 {0x6D, 0, 0, 0, 0},
8892 {0x6E, 0, 0, 0, 0},
8893 {0x6F, 0, 0, 0, 0},
8894 {0x70, 0, 0, 0, 0},
8895 {0x71, 0, 0, 0, 0},
8896 {0x72, 0x22, 0x22, 0, 0},
8897 {0x73, 0x22, 0x22, 0, 0},
8898 {0x74, 0, 0, 1, 1},
8899 {0x75, 0xa, 0xa, 0, 0},
8900 {0x76, 0x1, 0x1, 0, 0},
8901 {0x77, 0x22, 0x22, 0, 0},
8902 {0x78, 0x30, 0x30, 0, 0},
8903 {0x79, 0, 0, 0, 0},
8904 {0x7A, 0, 0, 0, 0},
8905 {0x7B, 0, 0, 0, 0},
8906 {0x7C, 0, 0, 0, 0},
8907 {0x7D, 0, 0, 0, 0},
8908 {0x7E, 0, 0, 0, 0},
8909 {0x7F, 0, 0, 0, 0},
8910 {0x80, 0, 0, 0, 0},
8911 {0x81, 0, 0, 0, 0},
8912 {0x82, 0, 0, 0, 0},
8913 {0x83, 0, 0, 0, 0},
8914 {0x84, 0, 0, 0, 0},
8915 {0x85, 0, 0, 0, 0},
8916 {0x86, 0, 0, 0, 0},
8917 {0x87, 0, 0, 0, 0},
8918 {0x88, 0, 0, 0, 0},
8919 {0x89, 0, 0, 0, 0},
8920 {0x8A, 0, 0, 0, 0},
8921 {0x8B, 0, 0, 0, 0},
8922 {0x8C, 0, 0, 0, 0},
8923 {0x8D, 0, 0, 0, 0},
8924 {0x8E, 0, 0, 0, 0},
8925 {0x8F, 0, 0, 0, 0},
8926 {0x90, 0, 0, 0, 0},
8927 {0x91, 0, 0, 0, 0},
8928 {0x92, 0, 0, 0, 0},
8929 {0x93, 0, 0, 0, 0},
8930 {0x94, 0, 0, 0, 0},
8931 {0xFFFF, 0, 0, 0, 0}
8932 };
8933
8934 radio_regs_t regs_SYN_2056_rev5[] = {
8935 {0x02, 0, 0, 0, 0},
8936 {0x03, 0, 0, 0, 0},
8937 {0x04, 0, 0, 0, 0},
8938 {0x05, 0, 0, 0, 0},
8939 {0x06, 0, 0, 0, 0},
8940 {0x07, 0, 0, 0, 0},
8941 {0x08, 0, 0, 0, 0},
8942 {0x09, 0x1, 0x1, 0, 0},
8943 {0x0A, 0, 0, 0, 0},
8944 {0x0B, 0, 0, 0, 0},
8945 {0x0C, 0, 0, 0, 0},
8946 {0x0D, 0, 0, 0, 0},
8947 {0x0E, 0, 0, 0, 0},
8948 {0x0F, 0, 0, 0, 0},
8949 {0x10, 0, 0, 0, 0},
8950 {0x11, 0, 0, 0, 0},
8951 {0x12, 0, 0, 0, 0},
8952 {0x13, 0, 0, 0, 0},
8953 {0x14, 0, 0, 0, 0},
8954 {0x15, 0, 0, 0, 0},
8955 {0x16, 0, 0, 0, 0},
8956 {0x17, 0, 0, 0, 0},
8957 {0x18, 0, 0, 0, 0},
8958 {0x19, 0, 0, 0, 0},
8959 {0x1A, 0, 0, 0, 0},
8960 {0x1B, 0, 0, 0, 0},
8961 {0x1C, 0, 0, 0, 0},
8962 {0x1D, 0, 0, 0, 0},
8963 {0x1E, 0, 0, 0, 0},
8964 {0x1F, 0, 0, 0, 0},
8965 {0x20, 0, 0, 0, 0},
8966 {0x21, 0, 0, 0, 0},
8967 {0x22, 0x60, 0x60, 0, 0},
8968 {0x23, 0x6, 0x6, 0, 0},
8969 {0x24, 0xc, 0xc, 0, 0},
8970 {0x25, 0, 0, 0, 0},
8971 {0x26, 0, 0, 0, 0},
8972 {0x27, 0, 0, 0, 0},
8973 {0x28, 0x1, 0x1, 0, 0},
8974 {0x29, 0, 0, 0, 0},
8975 {0x2A, 0, 0, 0, 0},
8976 {0x2B, 0, 0, 0, 0},
8977 {0x2C, 0, 0, 0, 0},
8978 {0x2D, 0, 0, 0, 0},
8979 {0x2E, 0, 0, 0, 0},
8980 {0x2F, 0x1f, 0x1f, 0, 0},
8981 {0x30, 0x15, 0x15, 0, 0},
8982 {0x31, 0xf, 0xf, 0, 0},
8983 {0x32, 0, 0, 0, 0},
8984 {0x33, 0, 0, 0, 0},
8985 {0x34, 0, 0, 0, 0},
8986 {0x35, 0, 0, 0, 0},
8987 {0x36, 0, 0, 0, 0},
8988 {0x37, 0, 0, 0, 0},
8989 {0x38, 0, 0, 0, 0},
8990 {0x39, 0, 0, 0, 0},
8991 {0x3A, 0, 0, 0, 0},
8992 {0x3B, 0, 0, 0, 0},
8993 {0x3C, 0x13, 0x13, 0, 0},
8994 {0x3D, 0xf, 0xf, 0, 0},
8995 {0x3E, 0x18, 0x18, 0, 0},
8996 {0x3F, 0, 0, 0, 0},
8997 {0x40, 0, 0, 0, 0},
8998 {0x41, 0x20, 0x20, 0, 0},
8999 {0x42, 0x20, 0x20, 0, 0},
9000 {0x43, 0, 0, 0, 0},
9001 {0x44, 0x77, 0x77, 0, 0},
9002 {0x45, 0x7, 0x7, 0, 0},
9003 {0x46, 0x1, 0x1, 0, 0},
9004 {0x47, 0x4, 0x4, 0, 0},
9005 {0x48, 0xf, 0xf, 0, 0},
9006 {0x49, 0x30, 0x30, 0, 0},
9007 {0x4A, 0x32, 0x32, 0, 0},
9008 {0x4B, 0xd, 0xd, 0, 0},
9009 {0x4C, 0xd, 0xd, 0, 0},
9010 {0x4D, 0x4, 0x4, 0, 0},
9011 {0x4E, 0x6, 0x6, 0, 0},
9012 {0x4F, 0x1, 0x1, 0, 0},
9013 {0x50, 0x1c, 0x1c, 0, 0},
9014 {0x51, 0x2, 0x2, 0, 0},
9015 {0x52, 0x2, 0x2, 0, 0},
9016 {0x53, 0xf7, 0xf7, 1, 1},
9017 {0x54, 0xb4, 0xb4, 0, 0},
9018 {0x55, 0xd2, 0xd2, 0, 0},
9019 {0x56, 0, 0, 0, 0},
9020 {0x57, 0, 0, 0, 0},
9021 {0x58, 0x4, 0x4, 0, 0},
9022 {0x59, 0x96, 0x96, 0, 0},
9023 {0x5A, 0x3e, 0x3e, 0, 0},
9024 {0x5B, 0x3e, 0x3e, 0, 0},
9025 {0x5C, 0x13, 0x13, 0, 0},
9026 {0x5D, 0x2, 0x2, 0, 0},
9027 {0x5E, 0, 0, 0, 0},
9028 {0x5F, 0x7, 0x7, 0, 0},
9029 {0x60, 0x7, 0x7, 1, 1},
9030 {0x61, 0x8, 0x8, 0, 0},
9031 {0x62, 0x3, 0x3, 0, 0},
9032 {0x63, 0, 0, 0, 0},
9033 {0x64, 0, 0, 0, 0},
9034 {0x65, 0, 0, 0, 0},
9035 {0x66, 0, 0, 0, 0},
9036 {0x67, 0, 0, 0, 0},
9037 {0x68, 0x40, 0x40, 0, 0},
9038 {0x69, 0, 0, 0, 0},
9039 {0x6A, 0, 0, 0, 0},
9040 {0x6B, 0, 0, 0, 0},
9041 {0x6C, 0, 0, 0, 0},
9042 {0x6D, 0x1, 0x1, 0, 0},
9043 {0x6E, 0, 0, 0, 0},
9044 {0x6F, 0, 0, 0, 0},
9045 {0x70, 0x60, 0x60, 0, 0},
9046 {0x71, 0x66, 0x66, 0, 0},
9047 {0x72, 0xc, 0xc, 0, 0},
9048 {0x73, 0x66, 0x66, 0, 0},
9049 {0x74, 0x8f, 0x8f, 1, 1},
9050 {0x75, 0, 0, 0, 0},
9051 {0x76, 0xcc, 0xcc, 0, 0},
9052 {0x77, 0x1, 0x1, 0, 0},
9053 {0x78, 0x66, 0x66, 0, 0},
9054 {0x79, 0x66, 0x66, 0, 0},
9055 {0x7A, 0, 0, 0, 0},
9056 {0x7B, 0, 0, 0, 0},
9057 {0x7C, 0, 0, 0, 0},
9058 {0x7D, 0, 0, 0, 0},
9059 {0x7E, 0, 0, 0, 0},
9060 {0x7F, 0, 0, 0, 0},
9061 {0x80, 0, 0, 0, 0},
9062 {0x81, 0, 0, 0, 0},
9063 {0x82, 0, 0, 0, 0},
9064 {0x83, 0, 0, 0, 0},
9065 {0x84, 0, 0, 0, 0},
9066 {0x85, 0xff, 0xff, 0, 0},
9067 {0x86, 0, 0, 0, 0},
9068 {0x87, 0, 0, 0, 0},
9069 {0x88, 0, 0, 0, 0},
9070 {0x89, 0, 0, 0, 0},
9071 {0x8A, 0, 0, 0, 0},
9072 {0x8B, 0, 0, 0, 0},
9073 {0x8C, 0, 0, 0, 0},
9074 {0x8D, 0, 0, 0, 0},
9075 {0x8E, 0, 0, 0, 0},
9076 {0x8F, 0, 0, 0, 0},
9077 {0x90, 0, 0, 0, 0},
9078 {0x91, 0, 0, 0, 0},
9079 {0x92, 0, 0, 0, 0},
9080 {0x93, 0, 0, 0, 0},
9081 {0x94, 0, 0, 0, 0},
9082 {0x95, 0, 0, 0, 0},
9083 {0x96, 0, 0, 0, 0},
9084 {0x97, 0, 0, 0, 0},
9085 {0x98, 0, 0, 0, 0},
9086 {0x99, 0, 0, 0, 0},
9087 {0x9A, 0, 0, 0, 0},
9088 {0x9B, 0, 0, 0, 0},
9089 {0x9C, 0, 0, 0, 0},
9090 {0x9D, 0, 0, 0, 0},
9091 {0x9E, 0, 0, 0, 0},
9092 {0x9F, 0x6, 0x6, 0, 0},
9093 {0xA0, 0x66, 0x66, 0, 0},
9094 {0xA1, 0x66, 0x66, 0, 0},
9095 {0xA2, 0x66, 0x66, 0, 0},
9096 {0xA3, 0x66, 0x66, 0, 0},
9097 {0xA4, 0x66, 0x66, 0, 0},
9098 {0xA5, 0x66, 0x66, 0, 0},
9099 {0xA6, 0x66, 0x66, 0, 0},
9100 {0xA7, 0x66, 0x66, 0, 0},
9101 {0xA8, 0x66, 0x66, 0, 0},
9102 {0xA9, 0x66, 0x66, 0, 0},
9103 {0xAA, 0x66, 0x66, 0, 0},
9104 {0xAB, 0x66, 0x66, 0, 0},
9105 {0xAC, 0x66, 0x66, 0, 0},
9106 {0xAD, 0x66, 0x66, 0, 0},
9107 {0xAE, 0x66, 0x66, 0, 0},
9108 {0xAF, 0x66, 0x66, 0, 0},
9109 {0xB0, 0x66, 0x66, 0, 0},
9110 {0xB1, 0x66, 0x66, 0, 0},
9111 {0xB2, 0x66, 0x66, 0, 0},
9112 {0xB3, 0xa, 0xa, 0, 0},
9113 {0xB4, 0, 0, 0, 0},
9114 {0xB5, 0, 0, 0, 0},
9115 {0xB6, 0, 0, 0, 0},
9116 {0xFFFF, 0, 0, 0, 0}
9117 };
9118
9119 radio_regs_t regs_TX_2056_rev5[] = {
9120 {0x02, 0, 0, 0, 0},
9121 {0x03, 0, 0, 0, 0},
9122 {0x04, 0, 0, 0, 0},
9123 {0x05, 0, 0, 0, 0},
9124 {0x06, 0, 0, 0, 0},
9125 {0x07, 0, 0, 0, 0},
9126 {0x08, 0, 0, 0, 0},
9127 {0x09, 0, 0, 0, 0},
9128 {0x0A, 0, 0, 0, 0},
9129 {0x0B, 0, 0, 0, 0},
9130 {0x0C, 0, 0, 0, 0},
9131 {0x0D, 0, 0, 0, 0},
9132 {0x0E, 0, 0, 0, 0},
9133 {0x0F, 0, 0, 0, 0},
9134 {0x10, 0, 0, 0, 0},
9135 {0x11, 0, 0, 0, 0},
9136 {0x12, 0, 0, 0, 0},
9137 {0x13, 0, 0, 0, 0},
9138 {0x14, 0, 0, 0, 0},
9139 {0x15, 0, 0, 0, 0},
9140 {0x16, 0, 0, 0, 0},
9141 {0x17, 0, 0, 0, 0},
9142 {0x18, 0, 0, 0, 0},
9143 {0x19, 0, 0, 0, 0},
9144 {0x1A, 0, 0, 0, 0},
9145 {0x1B, 0, 0, 0, 0},
9146 {0x1C, 0, 0, 0, 0},
9147 {0x1D, 0, 0, 0, 0},
9148 {0x1E, 0, 0, 0, 0},
9149 {0x1F, 0, 0, 0, 0},
9150 {0x20, 0, 0, 0, 0},
9151 {0x21, 0x88, 0x88, 0, 0},
9152 {0x22, 0x88, 0x88, 0, 0},
9153 {0x23, 0x88, 0x88, 0, 0},
9154 {0x24, 0x88, 0x88, 0, 0},
9155 {0x25, 0xc, 0xc, 0, 0},
9156 {0x26, 0, 0, 0, 0},
9157 {0x27, 0x3, 0x3, 0, 0},
9158 {0x28, 0, 0, 0, 0},
9159 {0x29, 0x3, 0x3, 0, 0},
9160 {0x2A, 0x37, 0x37, 0, 0},
9161 {0x2B, 0x3, 0x3, 0, 0},
9162 {0x2C, 0, 0, 0, 0},
9163 {0x2D, 0, 0, 0, 0},
9164 {0x2E, 0x1, 0x1, 0, 0},
9165 {0x2F, 0x1, 0x1, 0, 0},
9166 {0x30, 0, 0, 0, 0},
9167 {0x31, 0, 0, 0, 0},
9168 {0x32, 0, 0, 0, 0},
9169 {0x33, 0x11, 0x11, 0, 0},
9170 {0x34, 0x11, 0x11, 0, 0},
9171 {0x35, 0, 0, 0, 0},
9172 {0x36, 0, 0, 0, 0},
9173 {0x37, 0x3, 0x3, 0, 0},
9174 {0x38, 0xf, 0xf, 0, 0},
9175 {0x39, 0, 0, 0, 0},
9176 {0x3A, 0x2d, 0x2d, 0, 0},
9177 {0x3B, 0, 0, 0, 0},
9178 {0x3C, 0x6e, 0x6e, 0, 0},
9179 {0x3D, 0xf0, 0xf0, 1, 1},
9180 {0x3E, 0, 0, 0, 0},
9181 {0x3F, 0, 0, 0, 0},
9182 {0x40, 0, 0, 0, 0},
9183 {0x41, 0x3, 0x3, 0, 0},
9184 {0x42, 0x3, 0x3, 0, 0},
9185 {0x43, 0, 0, 0, 0},
9186 {0x44, 0x1e, 0x1e, 0, 0},
9187 {0x45, 0, 0, 0, 0},
9188 {0x46, 0x6e, 0x6e, 0, 0},
9189 {0x47, 0xf0, 0xf0, 1, 1},
9190 {0x48, 0, 0, 0, 0},
9191 {0x49, 0x2, 0x2, 0, 0},
9192 {0x4A, 0xff, 0xff, 1, 1},
9193 {0x4B, 0xc, 0xc, 0, 0},
9194 {0x4C, 0, 0, 0, 0},
9195 {0x4D, 0x38, 0x38, 0, 0},
9196 {0x4E, 0x70, 0x70, 1, 1},
9197 {0x4F, 0x2, 0x2, 0, 0},
9198 {0x50, 0x88, 0x88, 0, 0},
9199 {0x51, 0xc, 0xc, 0, 0},
9200 {0x52, 0, 0, 0, 0},
9201 {0x53, 0x8, 0x8, 0, 0},
9202 {0x54, 0x70, 0x70, 1, 1},
9203 {0x55, 0x2, 0x2, 0, 0},
9204 {0x56, 0xff, 0xff, 1, 1},
9205 {0x57, 0, 0, 0, 0},
9206 {0x58, 0x83, 0x83, 0, 0},
9207 {0x59, 0x77, 0x77, 1, 1},
9208 {0x5A, 0, 0, 0, 0},
9209 {0x5B, 0x2, 0x2, 0, 0},
9210 {0x5C, 0x88, 0x88, 0, 0},
9211 {0x5D, 0, 0, 0, 0},
9212 {0x5E, 0x8, 0x8, 0, 0},
9213 {0x5F, 0x77, 0x77, 1, 1},
9214 {0x60, 0x1, 0x1, 0, 0},
9215 {0x61, 0, 0, 0, 0},
9216 {0x62, 0x7, 0x7, 0, 0},
9217 {0x63, 0, 0, 0, 0},
9218 {0x64, 0x7, 0x7, 0, 0},
9219 {0x65, 0, 0, 0, 0},
9220 {0x66, 0, 0, 0, 0},
9221 {0x67, 0, 0, 1, 1},
9222 {0x68, 0, 0, 0, 0},
9223 {0x69, 0xa, 0xa, 0, 0},
9224 {0x6A, 0, 0, 0, 0},
9225 {0x6B, 0, 0, 0, 0},
9226 {0x6C, 0, 0, 0, 0},
9227 {0x6D, 0, 0, 0, 0},
9228 {0x6E, 0, 0, 0, 0},
9229 {0x6F, 0, 0, 0, 0},
9230 {0x70, 0, 0, 0, 0},
9231 {0x71, 0x2, 0x2, 0, 0},
9232 {0x72, 0, 0, 0, 0},
9233 {0x73, 0, 0, 0, 0},
9234 {0x74, 0xe, 0xe, 0, 0},
9235 {0x75, 0xe, 0xe, 0, 0},
9236 {0x76, 0xe, 0xe, 0, 0},
9237 {0x77, 0x13, 0x13, 0, 0},
9238 {0x78, 0x13, 0x13, 0, 0},
9239 {0x79, 0x1b, 0x1b, 0, 0},
9240 {0x7A, 0x1b, 0x1b, 0, 0},
9241 {0x7B, 0x55, 0x55, 0, 0},
9242 {0x7C, 0x5b, 0x5b, 0, 0},
9243 {0x7D, 0, 0, 0, 0},
9244 {0x7E, 0, 0, 0, 0},
9245 {0x7F, 0, 0, 0, 0},
9246 {0x80, 0, 0, 0, 0},
9247 {0x81, 0, 0, 0, 0},
9248 {0x82, 0, 0, 0, 0},
9249 {0x83, 0, 0, 0, 0},
9250 {0x84, 0, 0, 0, 0},
9251 {0x85, 0, 0, 0, 0},
9252 {0x86, 0, 0, 0, 0},
9253 {0x87, 0, 0, 0, 0},
9254 {0x88, 0, 0, 0, 0},
9255 {0x89, 0, 0, 0, 0},
9256 {0x8A, 0, 0, 0, 0},
9257 {0x8B, 0, 0, 0, 0},
9258 {0x8C, 0, 0, 0, 0},
9259 {0x8D, 0, 0, 0, 0},
9260 {0x8E, 0, 0, 0, 0},
9261 {0x8F, 0, 0, 0, 0},
9262 {0x90, 0, 0, 0, 0},
9263 {0x91, 0, 0, 0, 0},
9264 {0x92, 0, 0, 0, 0},
9265 {0x93, 0x70, 0x70, 0, 0},
9266 {0x94, 0x70, 0x70, 0, 0},
9267 {0x95, 0x71, 0x71, 1, 1},
9268 {0x96, 0x71, 0x71, 1, 1},
9269 {0x97, 0x72, 0x72, 1, 1},
9270 {0x98, 0x73, 0x73, 1, 1},
9271 {0x99, 0x74, 0x74, 1, 1},
9272 {0x9A, 0x75, 0x75, 1, 1},
9273 {0xFFFF, 0, 0, 0, 0}
9274 };
9275
9276 radio_regs_t regs_RX_2056_rev5[] = {
9277 {0x02, 0, 0, 0, 0},
9278 {0x03, 0, 0, 0, 0},
9279 {0x04, 0, 0, 0, 0},
9280 {0x05, 0, 0, 0, 0},
9281 {0x06, 0, 0, 0, 0},
9282 {0x07, 0, 0, 0, 0},
9283 {0x08, 0, 0, 0, 0},
9284 {0x09, 0, 0, 0, 0},
9285 {0x0A, 0, 0, 0, 0},
9286 {0x0B, 0, 0, 0, 0},
9287 {0x0C, 0, 0, 0, 0},
9288 {0x0D, 0, 0, 0, 0},
9289 {0x0E, 0, 0, 0, 0},
9290 {0x0F, 0, 0, 0, 0},
9291 {0x10, 0, 0, 0, 0},
9292 {0x11, 0, 0, 0, 0},
9293 {0x12, 0, 0, 0, 0},
9294 {0x13, 0, 0, 0, 0},
9295 {0x14, 0, 0, 0, 0},
9296 {0x15, 0, 0, 0, 0},
9297 {0x16, 0, 0, 0, 0},
9298 {0x17, 0, 0, 0, 0},
9299 {0x18, 0, 0, 0, 0},
9300 {0x19, 0, 0, 0, 0},
9301 {0x1A, 0, 0, 0, 0},
9302 {0x1B, 0, 0, 0, 0},
9303 {0x1C, 0, 0, 0, 0},
9304 {0x1D, 0, 0, 0, 0},
9305 {0x1E, 0, 0, 0, 0},
9306 {0x1F, 0, 0, 0, 0},
9307 {0x20, 0x3, 0x3, 0, 0},
9308 {0x21, 0, 0, 0, 0},
9309 {0x22, 0, 0, 0, 0},
9310 {0x23, 0x90, 0x90, 0, 0},
9311 {0x24, 0x55, 0x55, 0, 0},
9312 {0x25, 0x15, 0x15, 0, 0},
9313 {0x26, 0x5, 0x5, 0, 0},
9314 {0x27, 0x15, 0x15, 0, 0},
9315 {0x28, 0x5, 0x5, 0, 0},
9316 {0x29, 0x20, 0x20, 0, 0},
9317 {0x2A, 0x11, 0x11, 0, 0},
9318 {0x2B, 0x90, 0x90, 0, 0},
9319 {0x2C, 0, 0, 0, 0},
9320 {0x2D, 0x88, 0x88, 0, 0},
9321 {0x2E, 0x32, 0x32, 0, 0},
9322 {0x2F, 0x77, 0x77, 0, 0},
9323 {0x30, 0x17, 0x17, 1, 1},
9324 {0x31, 0xff, 0xff, 1, 1},
9325 {0x32, 0x20, 0x20, 0, 0},
9326 {0x33, 0, 0, 0, 0},
9327 {0x34, 0x88, 0x88, 0, 0},
9328 {0x35, 0x32, 0x32, 0, 0},
9329 {0x36, 0x77, 0x77, 0, 0},
9330 {0x37, 0x17, 0x17, 1, 1},
9331 {0x38, 0xf0, 0xf0, 1, 1},
9332 {0x39, 0x20, 0x20, 0, 0},
9333 {0x3A, 0x8, 0x8, 0, 0},
9334 {0x3B, 0x55, 0x55, 1, 1},
9335 {0x3C, 0, 0, 0, 0},
9336 {0x3D, 0x88, 0x88, 1, 1},
9337 {0x3E, 0, 0, 0, 0},
9338 {0x3F, 0, 0, 1, 1},
9339 {0x40, 0x7, 0x7, 1, 1},
9340 {0x41, 0x6, 0x6, 0, 0},
9341 {0x42, 0x4, 0x4, 0, 0},
9342 {0x43, 0, 0, 0, 0},
9343 {0x44, 0x8, 0x8, 0, 0},
9344 {0x45, 0x55, 0x55, 1, 1},
9345 {0x46, 0, 0, 0, 0},
9346 {0x47, 0x11, 0x11, 0, 0},
9347 {0x48, 0, 0, 0, 0},
9348 {0x49, 0, 0, 1, 1},
9349 {0x4A, 0x7, 0x7, 0, 0},
9350 {0x4B, 0x6, 0x6, 0, 0},
9351 {0x4C, 0x4, 0x4, 0, 0},
9352 {0x4D, 0, 0, 0, 0},
9353 {0x4E, 0, 0, 0, 0},
9354 {0x4F, 0x26, 0x26, 1, 1},
9355 {0x50, 0x26, 0x26, 1, 1},
9356 {0x51, 0xf, 0xf, 1, 1},
9357 {0x52, 0xf, 0xf, 1, 1},
9358 {0x53, 0x44, 0x44, 0, 0},
9359 {0x54, 0, 0, 0, 0},
9360 {0x55, 0, 0, 0, 0},
9361 {0x56, 0x8, 0x8, 0, 0},
9362 {0x57, 0x8, 0x8, 0, 0},
9363 {0x58, 0x7, 0x7, 0, 0},
9364 {0x59, 0x22, 0x22, 0, 0},
9365 {0x5A, 0x22, 0x22, 0, 0},
9366 {0x5B, 0x2, 0x2, 0, 0},
9367 {0x5C, 0x4, 0x4, 1, 1},
9368 {0x5D, 0x7, 0x7, 0, 0},
9369 {0x5E, 0x55, 0x55, 0, 0},
9370 {0x5F, 0x23, 0x23, 0, 0},
9371 {0x60, 0x41, 0x41, 0, 0},
9372 {0x61, 0x1, 0x1, 0, 0},
9373 {0x62, 0xa, 0xa, 0, 0},
9374 {0x63, 0, 0, 0, 0},
9375 {0x64, 0, 0, 0, 0},
9376 {0x65, 0, 0, 0, 0},
9377 {0x66, 0, 0, 0, 0},
9378 {0x67, 0, 0, 0, 0},
9379 {0x68, 0, 0, 0, 0},
9380 {0x69, 0, 0, 0, 0},
9381 {0x6A, 0, 0, 0, 0},
9382 {0x6B, 0xc, 0xc, 0, 0},
9383 {0x6C, 0, 0, 0, 0},
9384 {0x6D, 0, 0, 0, 0},
9385 {0x6E, 0, 0, 0, 0},
9386 {0x6F, 0, 0, 0, 0},
9387 {0x70, 0, 0, 0, 0},
9388 {0x71, 0, 0, 0, 0},
9389 {0x72, 0x22, 0x22, 0, 0},
9390 {0x73, 0x22, 0x22, 0, 0},
9391 {0x74, 0, 0, 1, 1},
9392 {0x75, 0xa, 0xa, 0, 0},
9393 {0x76, 0x1, 0x1, 0, 0},
9394 {0x77, 0x22, 0x22, 0, 0},
9395 {0x78, 0x30, 0x30, 0, 0},
9396 {0x79, 0, 0, 0, 0},
9397 {0x7A, 0, 0, 0, 0},
9398 {0x7B, 0, 0, 0, 0},
9399 {0x7C, 0, 0, 0, 0},
9400 {0x7D, 0, 0, 0, 0},
9401 {0x7E, 0, 0, 0, 0},
9402 {0x7F, 0, 0, 0, 0},
9403 {0x80, 0, 0, 0, 0},
9404 {0x81, 0, 0, 0, 0},
9405 {0x82, 0, 0, 0, 0},
9406 {0x83, 0, 0, 0, 0},
9407 {0x84, 0, 0, 0, 0},
9408 {0x85, 0, 0, 0, 0},
9409 {0x86, 0, 0, 0, 0},
9410 {0x87, 0, 0, 0, 0},
9411 {0x88, 0, 0, 0, 0},
9412 {0x89, 0, 0, 0, 0},
9413 {0x8A, 0, 0, 0, 0},
9414 {0x8B, 0, 0, 0, 0},
9415 {0x8C, 0, 0, 0, 0},
9416 {0x8D, 0, 0, 0, 0},
9417 {0x8E, 0, 0, 0, 0},
9418 {0x8F, 0, 0, 0, 0},
9419 {0x90, 0, 0, 0, 0},
9420 {0x91, 0, 0, 0, 0},
9421 {0x92, 0, 0, 0, 0},
9422 {0x93, 0, 0, 0, 0},
9423 {0x94, 0, 0, 0, 0},
9424 {0xFFFF, 0, 0, 0, 0}
9425 };
9426
9427 radio_regs_t regs_SYN_2056_rev6[] = {
9428 {0x02, 0, 0, 0, 0},
9429 {0x03, 0, 0, 0, 0},
9430 {0x04, 0, 0, 0, 0},
9431 {0x05, 0, 0, 0, 0},
9432 {0x06, 0, 0, 0, 0},
9433 {0x07, 0, 0, 0, 0},
9434 {0x08, 0, 0, 0, 0},
9435 {0x09, 0x1, 0x1, 0, 0},
9436 {0x0A, 0, 0, 0, 0},
9437 {0x0B, 0, 0, 0, 0},
9438 {0x0C, 0, 0, 0, 0},
9439 {0x0D, 0, 0, 0, 0},
9440 {0x0E, 0, 0, 0, 0},
9441 {0x0F, 0, 0, 0, 0},
9442 {0x10, 0, 0, 0, 0},
9443 {0x11, 0, 0, 0, 0},
9444 {0x12, 0, 0, 0, 0},
9445 {0x13, 0, 0, 0, 0},
9446 {0x14, 0, 0, 0, 0},
9447 {0x15, 0, 0, 0, 0},
9448 {0x16, 0, 0, 0, 0},
9449 {0x17, 0, 0, 0, 0},
9450 {0x18, 0, 0, 0, 0},
9451 {0x19, 0, 0, 0, 0},
9452 {0x1A, 0, 0, 0, 0},
9453 {0x1B, 0, 0, 0, 0},
9454 {0x1C, 0, 0, 0, 0},
9455 {0x1D, 0, 0, 0, 0},
9456 {0x1E, 0, 0, 0, 0},
9457 {0x1F, 0, 0, 0, 0},
9458 {0x20, 0, 0, 0, 0},
9459 {0x21, 0, 0, 0, 0},
9460 {0x22, 0x60, 0x60, 0, 0},
9461 {0x23, 0x6, 0x6, 0, 0},
9462 {0x24, 0xc, 0xc, 0, 0},
9463 {0x25, 0, 0, 0, 0},
9464 {0x26, 0, 0, 0, 0},
9465 {0x27, 0, 0, 0, 0},
9466 {0x28, 0x1, 0x1, 0, 0},
9467 {0x29, 0, 0, 0, 0},
9468 {0x2A, 0, 0, 0, 0},
9469 {0x2B, 0, 0, 0, 0},
9470 {0x2C, 0, 0, 0, 0},
9471 {0x2D, 0, 0, 0, 0},
9472 {0x2E, 0, 0, 0, 0},
9473 {0x2F, 0x1f, 0x1f, 0, 0},
9474 {0x30, 0x15, 0x15, 0, 0},
9475 {0x31, 0xf, 0xf, 0, 0},
9476 {0x32, 0, 0, 0, 0},
9477 {0x33, 0, 0, 0, 0},
9478 {0x34, 0, 0, 0, 0},
9479 {0x35, 0, 0, 0, 0},
9480 {0x36, 0, 0, 0, 0},
9481 {0x37, 0, 0, 0, 0},
9482 {0x38, 0, 0, 0, 0},
9483 {0x39, 0, 0, 0, 0},
9484 {0x3A, 0, 0, 0, 0},
9485 {0x3B, 0, 0, 0, 0},
9486 {0x3C, 0x13, 0x13, 0, 0},
9487 {0x3D, 0xf, 0xf, 0, 0},
9488 {0x3E, 0x18, 0x18, 0, 0},
9489 {0x3F, 0, 0, 0, 0},
9490 {0x40, 0, 0, 0, 0},
9491 {0x41, 0x20, 0x20, 0, 0},
9492 {0x42, 0x20, 0x20, 0, 0},
9493 {0x43, 0, 0, 0, 0},
9494 {0x44, 0x77, 0x77, 0, 0},
9495 {0x45, 0x7, 0x7, 0, 0},
9496 {0x46, 0x1, 0x1, 0, 0},
9497 {0x47, 0x4, 0x4, 0, 0},
9498 {0x48, 0xf, 0xf, 0, 0},
9499 {0x49, 0x30, 0x30, 0, 0},
9500 {0x4A, 0x32, 0x32, 0, 0},
9501 {0x4B, 0xd, 0xd, 0, 0},
9502 {0x4C, 0xd, 0xd, 0, 0},
9503 {0x4D, 0x4, 0x4, 0, 0},
9504 {0x4E, 0x6, 0x6, 0, 0},
9505 {0x4F, 0x1, 0x1, 0, 0},
9506 {0x50, 0x1c, 0x1c, 0, 0},
9507 {0x51, 0x2, 0x2, 0, 0},
9508 {0x52, 0x2, 0x2, 0, 0},
9509 {0x53, 0xf7, 0xf7, 1, 1},
9510 {0x54, 0xb4, 0xb4, 0, 0},
9511 {0x55, 0xd2, 0xd2, 0, 0},
9512 {0x56, 0, 0, 0, 0},
9513 {0x57, 0, 0, 0, 0},
9514 {0x58, 0x4, 0x4, 0, 0},
9515 {0x59, 0x96, 0x96, 0, 0},
9516 {0x5A, 0x3e, 0x3e, 0, 0},
9517 {0x5B, 0x3e, 0x3e, 0, 0},
9518 {0x5C, 0x13, 0x13, 0, 0},
9519 {0x5D, 0x2, 0x2, 0, 0},
9520 {0x5E, 0, 0, 0, 0},
9521 {0x5F, 0x7, 0x7, 0, 0},
9522 {0x60, 0x7, 0x7, 1, 1},
9523 {0x61, 0x8, 0x8, 0, 0},
9524 {0x62, 0x3, 0x3, 0, 0},
9525 {0x63, 0, 0, 0, 0},
9526 {0x64, 0, 0, 0, 0},
9527 {0x65, 0, 0, 0, 0},
9528 {0x66, 0, 0, 0, 0},
9529 {0x67, 0, 0, 0, 0},
9530 {0x68, 0x40, 0x40, 0, 0},
9531 {0x69, 0, 0, 0, 0},
9532 {0x6A, 0, 0, 0, 0},
9533 {0x6B, 0, 0, 0, 0},
9534 {0x6C, 0, 0, 0, 0},
9535 {0x6D, 0x1, 0x1, 0, 0},
9536 {0x6E, 0, 0, 0, 0},
9537 {0x6F, 0, 0, 0, 0},
9538 {0x70, 0x60, 0x60, 0, 0},
9539 {0x71, 0x66, 0x66, 0, 0},
9540 {0x72, 0xc, 0xc, 0, 0},
9541 {0x73, 0x66, 0x66, 0, 0},
9542 {0x74, 0x8f, 0x8f, 1, 1},
9543 {0x75, 0, 0, 0, 0},
9544 {0x76, 0xcc, 0xcc, 0, 0},
9545 {0x77, 0x1, 0x1, 0, 0},
9546 {0x78, 0x66, 0x66, 0, 0},
9547 {0x79, 0x66, 0x66, 0, 0},
9548 {0x7A, 0, 0, 0, 0},
9549 {0x7B, 0, 0, 0, 0},
9550 {0x7C, 0, 0, 0, 0},
9551 {0x7D, 0, 0, 0, 0},
9552 {0x7E, 0, 0, 0, 0},
9553 {0x7F, 0, 0, 0, 0},
9554 {0x80, 0, 0, 0, 0},
9555 {0x81, 0, 0, 0, 0},
9556 {0x82, 0, 0, 0, 0},
9557 {0x83, 0, 0, 0, 0},
9558 {0x84, 0, 0, 0, 0},
9559 {0x85, 0xff, 0xff, 0, 0},
9560 {0x86, 0, 0, 0, 0},
9561 {0x87, 0, 0, 0, 0},
9562 {0x88, 0, 0, 0, 0},
9563 {0x89, 0, 0, 0, 0},
9564 {0x8A, 0, 0, 0, 0},
9565 {0x8B, 0, 0, 0, 0},
9566 {0x8C, 0, 0, 0, 0},
9567 {0x8D, 0, 0, 0, 0},
9568 {0x8E, 0, 0, 0, 0},
9569 {0x8F, 0, 0, 0, 0},
9570 {0x90, 0, 0, 0, 0},
9571 {0x91, 0, 0, 0, 0},
9572 {0x92, 0, 0, 0, 0},
9573 {0x93, 0, 0, 0, 0},
9574 {0x94, 0, 0, 0, 0},
9575 {0x95, 0, 0, 0, 0},
9576 {0x96, 0, 0, 0, 0},
9577 {0x97, 0, 0, 0, 0},
9578 {0x98, 0, 0, 0, 0},
9579 {0x99, 0, 0, 0, 0},
9580 {0x9A, 0, 0, 0, 0},
9581 {0x9B, 0, 0, 0, 0},
9582 {0x9C, 0, 0, 0, 0},
9583 {0x9D, 0, 0, 0, 0},
9584 {0x9E, 0, 0, 0, 0},
9585 {0x9F, 0x6, 0x6, 0, 0},
9586 {0xA0, 0x66, 0x66, 0, 0},
9587 {0xA1, 0x66, 0x66, 0, 0},
9588 {0xA2, 0x66, 0x66, 0, 0},
9589 {0xA3, 0x66, 0x66, 0, 0},
9590 {0xA4, 0x66, 0x66, 0, 0},
9591 {0xA5, 0x66, 0x66, 0, 0},
9592 {0xA6, 0x66, 0x66, 0, 0},
9593 {0xA7, 0x66, 0x66, 0, 0},
9594 {0xA8, 0x66, 0x66, 0, 0},
9595 {0xA9, 0x66, 0x66, 0, 0},
9596 {0xAA, 0x66, 0x66, 0, 0},
9597 {0xAB, 0x66, 0x66, 0, 0},
9598 {0xAC, 0x66, 0x66, 0, 0},
9599 {0xAD, 0x66, 0x66, 0, 0},
9600 {0xAE, 0x66, 0x66, 0, 0},
9601 {0xAF, 0x66, 0x66, 0, 0},
9602 {0xB0, 0x66, 0x66, 0, 0},
9603 {0xB1, 0x66, 0x66, 0, 0},
9604 {0xB2, 0x66, 0x66, 0, 0},
9605 {0xB3, 0xa, 0xa, 0, 0},
9606 {0xB4, 0, 0, 0, 0},
9607 {0xB5, 0, 0, 0, 0},
9608 {0xB6, 0, 0, 0, 0},
9609 {0xFFFF, 0, 0, 0, 0}
9610 };
9611
9612 radio_regs_t regs_TX_2056_rev6[] = {
9613 {0x02, 0, 0, 0, 0},
9614 {0x03, 0, 0, 0, 0},
9615 {0x04, 0, 0, 0, 0},
9616 {0x05, 0, 0, 0, 0},
9617 {0x06, 0, 0, 0, 0},
9618 {0x07, 0, 0, 0, 0},
9619 {0x08, 0, 0, 0, 0},
9620 {0x09, 0, 0, 0, 0},
9621 {0x0A, 0, 0, 0, 0},
9622 {0x0B, 0, 0, 0, 0},
9623 {0x0C, 0, 0, 0, 0},
9624 {0x0D, 0, 0, 0, 0},
9625 {0x0E, 0, 0, 0, 0},
9626 {0x0F, 0, 0, 0, 0},
9627 {0x10, 0, 0, 0, 0},
9628 {0x11, 0, 0, 0, 0},
9629 {0x12, 0, 0, 0, 0},
9630 {0x13, 0, 0, 0, 0},
9631 {0x14, 0, 0, 0, 0},
9632 {0x15, 0, 0, 0, 0},
9633 {0x16, 0, 0, 0, 0},
9634 {0x17, 0, 0, 0, 0},
9635 {0x18, 0, 0, 0, 0},
9636 {0x19, 0, 0, 0, 0},
9637 {0x1A, 0, 0, 0, 0},
9638 {0x1B, 0, 0, 0, 0},
9639 {0x1C, 0, 0, 0, 0},
9640 {0x1D, 0, 0, 0, 0},
9641 {0x1E, 0, 0, 0, 0},
9642 {0x1F, 0, 0, 0, 0},
9643 {0x20, 0, 0, 0, 0},
9644 {0x21, 0x88, 0x88, 0, 0},
9645 {0x22, 0x88, 0x88, 0, 0},
9646 {0x23, 0x88, 0x88, 0, 0},
9647 {0x24, 0x88, 0x88, 0, 0},
9648 {0x25, 0xc, 0xc, 0, 0},
9649 {0x26, 0, 0, 0, 0},
9650 {0x27, 0x3, 0x3, 0, 0},
9651 {0x28, 0, 0, 0, 0},
9652 {0x29, 0x3, 0x3, 0, 0},
9653 {0x2A, 0x37, 0x37, 0, 0},
9654 {0x2B, 0x3, 0x3, 0, 0},
9655 {0x2C, 0, 0, 0, 0},
9656 {0x2D, 0, 0, 0, 0},
9657 {0x2E, 0x1, 0x1, 0, 0},
9658 {0x2F, 0x1, 0x1, 0, 0},
9659 {0x30, 0, 0, 0, 0},
9660 {0x31, 0, 0, 0, 0},
9661 {0x32, 0, 0, 0, 0},
9662 {0x33, 0x11, 0x11, 0, 0},
9663 {0x34, 0xee, 0xee, 1, 1},
9664 {0x35, 0, 0, 0, 0},
9665 {0x36, 0, 0, 0, 0},
9666 {0x37, 0x3, 0x3, 0, 0},
9667 {0x38, 0x50, 0x50, 1, 1},
9668 {0x39, 0, 0, 0, 0},
9669 {0x3A, 0x50, 0x50, 1, 1},
9670 {0x3B, 0, 0, 0, 0},
9671 {0x3C, 0x6e, 0x6e, 0, 0},
9672 {0x3D, 0xf0, 0xf0, 1, 1},
9673 {0x3E, 0, 0, 0, 0},
9674 {0x3F, 0, 0, 0, 0},
9675 {0x40, 0, 0, 0, 0},
9676 {0x41, 0x3, 0x3, 0, 0},
9677 {0x42, 0x3, 0x3, 0, 0},
9678 {0x43, 0, 0, 0, 0},
9679 {0x44, 0x1e, 0x1e, 0, 0},
9680 {0x45, 0, 0, 0, 0},
9681 {0x46, 0x6e, 0x6e, 0, 0},
9682 {0x47, 0xf0, 0xf0, 1, 1},
9683 {0x48, 0, 0, 0, 0},
9684 {0x49, 0x2, 0x2, 0, 0},
9685 {0x4A, 0xff, 0xff, 1, 1},
9686 {0x4B, 0xc, 0xc, 0, 0},
9687 {0x4C, 0, 0, 0, 0},
9688 {0x4D, 0x38, 0x38, 0, 0},
9689 {0x4E, 0x70, 0x70, 1, 1},
9690 {0x4F, 0x2, 0x2, 0, 0},
9691 {0x50, 0x88, 0x88, 0, 0},
9692 {0x51, 0xc, 0xc, 0, 0},
9693 {0x52, 0, 0, 0, 0},
9694 {0x53, 0x8, 0x8, 0, 0},
9695 {0x54, 0x70, 0x70, 1, 1},
9696 {0x55, 0x2, 0x2, 0, 0},
9697 {0x56, 0xff, 0xff, 1, 1},
9698 {0x57, 0, 0, 0, 0},
9699 {0x58, 0x83, 0x83, 0, 0},
9700 {0x59, 0x77, 0x77, 1, 1},
9701 {0x5A, 0, 0, 0, 0},
9702 {0x5B, 0x2, 0x2, 0, 0},
9703 {0x5C, 0x88, 0x88, 0, 0},
9704 {0x5D, 0, 0, 0, 0},
9705 {0x5E, 0x8, 0x8, 0, 0},
9706 {0x5F, 0x77, 0x77, 1, 1},
9707 {0x60, 0x1, 0x1, 0, 0},
9708 {0x61, 0, 0, 0, 0},
9709 {0x62, 0x7, 0x7, 0, 0},
9710 {0x63, 0, 0, 0, 0},
9711 {0x64, 0x7, 0x7, 0, 0},
9712 {0x65, 0, 0, 0, 0},
9713 {0x66, 0, 0, 0, 0},
9714 {0x67, 0, 0, 1, 1},
9715 {0x68, 0, 0, 0, 0},
9716 {0x69, 0xa, 0xa, 0, 0},
9717 {0x6A, 0, 0, 0, 0},
9718 {0x6B, 0, 0, 0, 0},
9719 {0x6C, 0, 0, 0, 0},
9720 {0x6D, 0, 0, 0, 0},
9721 {0x6E, 0, 0, 0, 0},
9722 {0x6F, 0, 0, 0, 0},
9723 {0x70, 0, 0, 0, 0},
9724 {0x71, 0x2, 0x2, 0, 0},
9725 {0x72, 0, 0, 0, 0},
9726 {0x73, 0, 0, 0, 0},
9727 {0x74, 0xe, 0xe, 0, 0},
9728 {0x75, 0xe, 0xe, 0, 0},
9729 {0x76, 0xe, 0xe, 0, 0},
9730 {0x77, 0x13, 0x13, 0, 0},
9731 {0x78, 0x13, 0x13, 0, 0},
9732 {0x79, 0x1b, 0x1b, 0, 0},
9733 {0x7A, 0x1b, 0x1b, 0, 0},
9734 {0x7B, 0x55, 0x55, 0, 0},
9735 {0x7C, 0x5b, 0x5b, 0, 0},
9736 {0x7D, 0x30, 0x30, 1, 1},
9737 {0x7E, 0, 0, 0, 0},
9738 {0x7F, 0, 0, 0, 0},
9739 {0x80, 0, 0, 0, 0},
9740 {0x81, 0, 0, 0, 0},
9741 {0x82, 0, 0, 0, 0},
9742 {0x83, 0, 0, 0, 0},
9743 {0x84, 0, 0, 0, 0},
9744 {0x85, 0, 0, 0, 0},
9745 {0x86, 0, 0, 0, 0},
9746 {0x87, 0, 0, 0, 0},
9747 {0x88, 0, 0, 0, 0},
9748 {0x89, 0, 0, 0, 0},
9749 {0x8A, 0, 0, 0, 0},
9750 {0x8B, 0, 0, 0, 0},
9751 {0x8C, 0, 0, 0, 0},
9752 {0x8D, 0, 0, 0, 0},
9753 {0x8E, 0, 0, 0, 0},
9754 {0x8F, 0, 0, 0, 0},
9755 {0x90, 0, 0, 0, 0},
9756 {0x91, 0, 0, 0, 0},
9757 {0x92, 0, 0, 0, 0},
9758 {0x93, 0x70, 0x70, 0, 0},
9759 {0x94, 0x70, 0x70, 0, 0},
9760 {0x95, 0x70, 0x70, 0, 0},
9761 {0x96, 0x70, 0x70, 0, 0},
9762 {0x97, 0x70, 0x70, 0, 0},
9763 {0x98, 0x70, 0x70, 0, 0},
9764 {0x99, 0x70, 0x70, 0, 0},
9765 {0x9A, 0x70, 0x70, 0, 0},
9766 {0xFFFF, 0, 0, 0, 0}
9767 };
9768
9769 radio_regs_t regs_RX_2056_rev6[] = {
9770 {0x02, 0, 0, 0, 0},
9771 {0x03, 0, 0, 0, 0},
9772 {0x04, 0, 0, 0, 0},
9773 {0x05, 0, 0, 0, 0},
9774 {0x06, 0, 0, 0, 0},
9775 {0x07, 0, 0, 0, 0},
9776 {0x08, 0, 0, 0, 0},
9777 {0x09, 0, 0, 0, 0},
9778 {0x0A, 0, 0, 0, 0},
9779 {0x0B, 0, 0, 0, 0},
9780 {0x0C, 0, 0, 0, 0},
9781 {0x0D, 0, 0, 0, 0},
9782 {0x0E, 0, 0, 0, 0},
9783 {0x0F, 0, 0, 0, 0},
9784 {0x10, 0, 0, 0, 0},
9785 {0x11, 0, 0, 0, 0},
9786 {0x12, 0, 0, 0, 0},
9787 {0x13, 0, 0, 0, 0},
9788 {0x14, 0, 0, 0, 0},
9789 {0x15, 0, 0, 0, 0},
9790 {0x16, 0, 0, 0, 0},
9791 {0x17, 0, 0, 0, 0},
9792 {0x18, 0, 0, 0, 0},
9793 {0x19, 0, 0, 0, 0},
9794 {0x1A, 0, 0, 0, 0},
9795 {0x1B, 0, 0, 0, 0},
9796 {0x1C, 0, 0, 0, 0},
9797 {0x1D, 0, 0, 0, 0},
9798 {0x1E, 0, 0, 0, 0},
9799 {0x1F, 0, 0, 0, 0},
9800 {0x20, 0x3, 0x3, 0, 0},
9801 {0x21, 0, 0, 0, 0},
9802 {0x22, 0, 0, 0, 0},
9803 {0x23, 0x90, 0x90, 0, 0},
9804 {0x24, 0x55, 0x55, 0, 0},
9805 {0x25, 0x15, 0x15, 0, 0},
9806 {0x26, 0x5, 0x5, 0, 0},
9807 {0x27, 0x15, 0x15, 0, 0},
9808 {0x28, 0x5, 0x5, 0, 0},
9809 {0x29, 0x20, 0x20, 0, 0},
9810 {0x2A, 0x11, 0x11, 0, 0},
9811 {0x2B, 0x90, 0x90, 0, 0},
9812 {0x2C, 0, 0, 0, 0},
9813 {0x2D, 0x88, 0x88, 0, 0},
9814 {0x2E, 0x32, 0x32, 0, 0},
9815 {0x2F, 0x77, 0x77, 0, 0},
9816 {0x30, 0x17, 0x17, 1, 1},
9817 {0x31, 0xff, 0xff, 1, 1},
9818 {0x32, 0x20, 0x20, 0, 0},
9819 {0x33, 0, 0, 0, 0},
9820 {0x34, 0x88, 0x88, 0, 0},
9821 {0x35, 0x32, 0x32, 0, 0},
9822 {0x36, 0x77, 0x77, 0, 0},
9823 {0x37, 0x17, 0x17, 1, 1},
9824 {0x38, 0xf0, 0xf0, 1, 1},
9825 {0x39, 0x20, 0x20, 0, 0},
9826 {0x3A, 0x8, 0x8, 0, 0},
9827 {0x3B, 0x55, 0x55, 1, 1},
9828 {0x3C, 0, 0, 0, 0},
9829 {0x3D, 0x88, 0x88, 1, 1},
9830 {0x3E, 0, 0, 0, 0},
9831 {0x3F, 0x44, 0x44, 0, 0},
9832 {0x40, 0x7, 0x7, 1, 1},
9833 {0x41, 0x6, 0x6, 0, 0},
9834 {0x42, 0x4, 0x4, 0, 0},
9835 {0x43, 0, 0, 0, 0},
9836 {0x44, 0x8, 0x8, 0, 0},
9837 {0x45, 0x55, 0x55, 1, 1},
9838 {0x46, 0, 0, 0, 0},
9839 {0x47, 0x11, 0x11, 0, 0},
9840 {0x48, 0, 0, 0, 0},
9841 {0x49, 0x44, 0x44, 0, 0},
9842 {0x4A, 0x7, 0x7, 0, 0},
9843 {0x4B, 0x6, 0x6, 0, 0},
9844 {0x4C, 0x4, 0x4, 0, 0},
9845 {0x4D, 0, 0, 0, 0},
9846 {0x4E, 0, 0, 0, 0},
9847 {0x4F, 0x26, 0x26, 1, 1},
9848 {0x50, 0x26, 0x26, 1, 1},
9849 {0x51, 0xf, 0xf, 1, 1},
9850 {0x52, 0xf, 0xf, 1, 1},
9851 {0x53, 0x44, 0x44, 0, 0},
9852 {0x54, 0, 0, 0, 0},
9853 {0x55, 0, 0, 0, 0},
9854 {0x56, 0x8, 0x8, 0, 0},
9855 {0x57, 0x8, 0x8, 0, 0},
9856 {0x58, 0x7, 0x7, 0, 0},
9857 {0x59, 0x22, 0x22, 0, 0},
9858 {0x5A, 0x22, 0x22, 0, 0},
9859 {0x5B, 0x2, 0x2, 0, 0},
9860 {0x5C, 0x4, 0x4, 1, 1},
9861 {0x5D, 0x7, 0x7, 0, 0},
9862 {0x5E, 0x55, 0x55, 0, 0},
9863 {0x5F, 0x23, 0x23, 0, 0},
9864 {0x60, 0x41, 0x41, 0, 0},
9865 {0x61, 0x1, 0x1, 0, 0},
9866 {0x62, 0xa, 0xa, 0, 0},
9867 {0x63, 0, 0, 0, 0},
9868 {0x64, 0, 0, 0, 0},
9869 {0x65, 0, 0, 0, 0},
9870 {0x66, 0, 0, 0, 0},
9871 {0x67, 0, 0, 0, 0},
9872 {0x68, 0, 0, 0, 0},
9873 {0x69, 0, 0, 0, 0},
9874 {0x6A, 0, 0, 0, 0},
9875 {0x6B, 0xc, 0xc, 0, 0},
9876 {0x6C, 0, 0, 0, 0},
9877 {0x6D, 0, 0, 0, 0},
9878 {0x6E, 0, 0, 0, 0},
9879 {0x6F, 0, 0, 0, 0},
9880 {0x70, 0, 0, 0, 0},
9881 {0x71, 0, 0, 0, 0},
9882 {0x72, 0x22, 0x22, 0, 0},
9883 {0x73, 0x22, 0x22, 0, 0},
9884 {0x74, 0, 0, 1, 1},
9885 {0x75, 0xa, 0xa, 0, 0},
9886 {0x76, 0x1, 0x1, 0, 0},
9887 {0x77, 0x22, 0x22, 0, 0},
9888 {0x78, 0x30, 0x30, 0, 0},
9889 {0x79, 0, 0, 0, 0},
9890 {0x7A, 0, 0, 0, 0},
9891 {0x7B, 0, 0, 0, 0},
9892 {0x7C, 0, 0, 0, 0},
9893 {0x7D, 0x5, 0x5, 1, 1},
9894 {0x7E, 0, 0, 0, 0},
9895 {0x7F, 0, 0, 0, 0},
9896 {0x80, 0, 0, 0, 0},
9897 {0x81, 0, 0, 0, 0},
9898 {0x82, 0, 0, 0, 0},
9899 {0x83, 0, 0, 0, 0},
9900 {0x84, 0, 0, 0, 0},
9901 {0x85, 0, 0, 0, 0},
9902 {0x86, 0, 0, 0, 0},
9903 {0x87, 0, 0, 0, 0},
9904 {0x88, 0, 0, 0, 0},
9905 {0x89, 0, 0, 0, 0},
9906 {0x8A, 0, 0, 0, 0},
9907 {0x8B, 0, 0, 0, 0},
9908 {0x8C, 0, 0, 0, 0},
9909 {0x8D, 0, 0, 0, 0},
9910 {0x8E, 0, 0, 0, 0},
9911 {0x8F, 0, 0, 0, 0},
9912 {0x90, 0, 0, 0, 0},
9913 {0x91, 0, 0, 0, 0},
9914 {0x92, 0, 0, 0, 0},
9915 {0x93, 0, 0, 0, 0},
9916 {0x94, 0, 0, 0, 0},
9917 {0xFFFF, 0, 0, 0, 0}
9918 };
9919
9920 radio_regs_t regs_SYN_2056_rev7[] = {
9921 {0x02, 0, 0, 0, 0},
9922 {0x03, 0, 0, 0, 0},
9923 {0x04, 0, 0, 0, 0},
9924 {0x05, 0, 0, 0, 0},
9925 {0x06, 0, 0, 0, 0},
9926 {0x07, 0, 0, 0, 0},
9927 {0x08, 0, 0, 0, 0},
9928 {0x09, 0x1, 0x1, 0, 0},
9929 {0x0A, 0, 0, 0, 0},
9930 {0x0B, 0, 0, 0, 0},
9931 {0x0C, 0, 0, 0, 0},
9932 {0x0D, 0, 0, 0, 0},
9933 {0x0E, 0, 0, 0, 0},
9934 {0x0F, 0, 0, 0, 0},
9935 {0x10, 0, 0, 0, 0},
9936 {0x11, 0, 0, 0, 0},
9937 {0x12, 0, 0, 0, 0},
9938 {0x13, 0, 0, 0, 0},
9939 {0x14, 0, 0, 0, 0},
9940 {0x15, 0, 0, 0, 0},
9941 {0x16, 0, 0, 0, 0},
9942 {0x17, 0, 0, 0, 0},
9943 {0x18, 0, 0, 0, 0},
9944 {0x19, 0, 0, 0, 0},
9945 {0x1A, 0, 0, 0, 0},
9946 {0x1B, 0, 0, 0, 0},
9947 {0x1C, 0, 0, 0, 0},
9948 {0x1D, 0, 0, 0, 0},
9949 {0x1E, 0, 0, 0, 0},
9950 {0x1F, 0, 0, 0, 0},
9951 {0x20, 0, 0, 0, 0},
9952 {0x21, 0, 0, 0, 0},
9953 {0x22, 0x60, 0x60, 0, 0},
9954 {0x23, 0x6, 0x6, 0, 0},
9955 {0x24, 0xc, 0xc, 0, 0},
9956 {0x25, 0, 0, 0, 0},
9957 {0x26, 0, 0, 0, 0},
9958 {0x27, 0, 0, 0, 0},
9959 {0x28, 0x1, 0x1, 0, 0},
9960 {0x29, 0, 0, 0, 0},
9961 {0x2A, 0, 0, 0, 0},
9962 {0x2B, 0, 0, 0, 0},
9963 {0x2C, 0, 0, 0, 0},
9964 {0x2D, 0, 0, 0, 0},
9965 {0x2E, 0, 0, 0, 0},
9966 {0x2F, 0x1f, 0x1f, 0, 0},
9967 {0x30, 0x15, 0x15, 0, 0},
9968 {0x31, 0xf, 0xf, 0, 0},
9969 {0x32, 0, 0, 0, 0},
9970 {0x33, 0, 0, 0, 0},
9971 {0x34, 0, 0, 0, 0},
9972 {0x35, 0, 0, 0, 0},
9973 {0x36, 0, 0, 0, 0},
9974 {0x37, 0, 0, 0, 0},
9975 {0x38, 0, 0, 0, 0},
9976 {0x39, 0, 0, 0, 0},
9977 {0x3A, 0, 0, 0, 0},
9978 {0x3B, 0, 0, 0, 0},
9979 {0x3C, 0x13, 0x13, 0, 0},
9980 {0x3D, 0xf, 0xf, 0, 0},
9981 {0x3E, 0x18, 0x18, 0, 0},
9982 {0x3F, 0, 0, 0, 0},
9983 {0x40, 0, 0, 0, 0},
9984 {0x41, 0x20, 0x20, 0, 0},
9985 {0x42, 0x20, 0x20, 0, 0},
9986 {0x43, 0, 0, 0, 0},
9987 {0x44, 0x77, 0x77, 0, 0},
9988 {0x45, 0x7, 0x7, 0, 0},
9989 {0x46, 0x1, 0x1, 0, 0},
9990 {0x47, 0x4, 0x4, 0, 0},
9991 {0x48, 0xf, 0xf, 0, 0},
9992 {0x49, 0x30, 0x30, 0, 0},
9993 {0x4A, 0x32, 0x32, 0, 0},
9994 {0x4B, 0xd, 0xd, 0, 0},
9995 {0x4C, 0xd, 0xd, 0, 0},
9996 {0x4D, 0x4, 0x4, 0, 0},
9997 {0x4E, 0x6, 0x6, 0, 0},
9998 {0x4F, 0x1, 0x1, 0, 0},
9999 {0x50, 0x1c, 0x1c, 0, 0},
10000 {0x51, 0x2, 0x2, 0, 0},
10001 {0x52, 0x2, 0x2, 0, 0},
10002 {0x53, 0xf7, 0xf7, 1, 1},
10003 {0x54, 0xb4, 0xb4, 0, 0},
10004 {0x55, 0xd2, 0xd2, 0, 0},
10005 {0x56, 0, 0, 0, 0},
10006 {0x57, 0, 0, 0, 0},
10007 {0x58, 0x4, 0x4, 0, 0},
10008 {0x59, 0x96, 0x96, 0, 0},
10009 {0x5A, 0x3e, 0x3e, 0, 0},
10010 {0x5B, 0x3e, 0x3e, 0, 0},
10011 {0x5C, 0x13, 0x13, 0, 0},
10012 {0x5D, 0x2, 0x2, 0, 0},
10013 {0x5E, 0, 0, 0, 0},
10014 {0x5F, 0x7, 0x7, 0, 0},
10015 {0x60, 0x7, 0x7, 1, 1},
10016 {0x61, 0x8, 0x8, 0, 0},
10017 {0x62, 0x3, 0x3, 0, 0},
10018 {0x63, 0, 0, 0, 0},
10019 {0x64, 0, 0, 0, 0},
10020 {0x65, 0, 0, 0, 0},
10021 {0x66, 0, 0, 0, 0},
10022 {0x67, 0, 0, 0, 0},
10023 {0x68, 0x40, 0x40, 0, 0},
10024 {0x69, 0, 0, 0, 0},
10025 {0x6A, 0, 0, 0, 0},
10026 {0x6B, 0, 0, 0, 0},
10027 {0x6C, 0, 0, 0, 0},
10028 {0x6D, 0x1, 0x1, 0, 0},
10029 {0x6E, 0, 0, 0, 0},
10030 {0x6F, 0, 0, 0, 0},
10031 {0x70, 0x60, 0x60, 0, 0},
10032 {0x71, 0x66, 0x66, 0, 0},
10033 {0x72, 0xc, 0xc, 0, 0},
10034 {0x73, 0x66, 0x66, 0, 0},
10035 {0x74, 0x8f, 0x8f, 1, 1},
10036 {0x75, 0, 0, 0, 0},
10037 {0x76, 0xcc, 0xcc, 0, 0},
10038 {0x77, 0x1, 0x1, 0, 0},
10039 {0x78, 0x66, 0x66, 0, 0},
10040 {0x79, 0x66, 0x66, 0, 0},
10041 {0x7A, 0, 0, 0, 0},
10042 {0x7B, 0, 0, 0, 0},
10043 {0x7C, 0, 0, 0, 0},
10044 {0x7D, 0, 0, 0, 0},
10045 {0x7E, 0, 0, 0, 0},
10046 {0x7F, 0, 0, 0, 0},
10047 {0x80, 0, 0, 0, 0},
10048 {0x81, 0, 0, 0, 0},
10049 {0x82, 0, 0, 0, 0},
10050 {0x83, 0, 0, 0, 0},
10051 {0x84, 0, 0, 0, 0},
10052 {0x85, 0xff, 0xff, 0, 0},
10053 {0x86, 0, 0, 0, 0},
10054 {0x87, 0, 0, 0, 0},
10055 {0x88, 0, 0, 0, 0},
10056 {0x89, 0, 0, 0, 0},
10057 {0x8A, 0, 0, 0, 0},
10058 {0x8B, 0, 0, 0, 0},
10059 {0x8C, 0, 0, 0, 0},
10060 {0x8D, 0, 0, 0, 0},
10061 {0x8E, 0, 0, 0, 0},
10062 {0x8F, 0, 0, 0, 0},
10063 {0x90, 0, 0, 0, 0},
10064 {0x91, 0, 0, 0, 0},
10065 {0x92, 0, 0, 0, 0},
10066 {0x93, 0, 0, 0, 0},
10067 {0x94, 0, 0, 0, 0},
10068 {0x95, 0, 0, 0, 0},
10069 {0x96, 0, 0, 0, 0},
10070 {0x97, 0, 0, 0, 0},
10071 {0x98, 0, 0, 0, 0},
10072 {0x99, 0, 0, 0, 0},
10073 {0x9A, 0, 0, 0, 0},
10074 {0x9B, 0, 0, 0, 0},
10075 {0x9C, 0, 0, 0, 0},
10076 {0x9D, 0, 0, 0, 0},
10077 {0x9E, 0, 0, 0, 0},
10078 {0x9F, 0x6, 0x6, 0, 0},
10079 {0xA0, 0x66, 0x66, 0, 0},
10080 {0xA1, 0x66, 0x66, 0, 0},
10081 {0xA2, 0x66, 0x66, 0, 0},
10082 {0xA3, 0x66, 0x66, 0, 0},
10083 {0xA4, 0x66, 0x66, 0, 0},
10084 {0xA5, 0x66, 0x66, 0, 0},
10085 {0xA6, 0x66, 0x66, 0, 0},
10086 {0xA7, 0x66, 0x66, 0, 0},
10087 {0xA8, 0x66, 0x66, 0, 0},
10088 {0xA9, 0x66, 0x66, 0, 0},
10089 {0xAA, 0x66, 0x66, 0, 0},
10090 {0xAB, 0x66, 0x66, 0, 0},
10091 {0xAC, 0x66, 0x66, 0, 0},
10092 {0xAD, 0x66, 0x66, 0, 0},
10093 {0xAE, 0x66, 0x66, 0, 0},
10094 {0xAF, 0x66, 0x66, 0, 0},
10095 {0xB0, 0x66, 0x66, 0, 0},
10096 {0xB1, 0x66, 0x66, 0, 0},
10097 {0xB2, 0x66, 0x66, 0, 0},
10098 {0xB3, 0xa, 0xa, 0, 0},
10099 {0xB4, 0, 0, 0, 0},
10100 {0xB5, 0, 0, 0, 0},
10101 {0xB6, 0, 0, 0, 0},
10102 {0xFFFF, 0, 0, 0, 0},
10103 };
10104
10105 radio_regs_t regs_TX_2056_rev7[] = {
10106 {0x02, 0, 0, 0, 0},
10107 {0x03, 0, 0, 0, 0},
10108 {0x04, 0, 0, 0, 0},
10109 {0x05, 0, 0, 0, 0},
10110 {0x06, 0, 0, 0, 0},
10111 {0x07, 0, 0, 0, 0},
10112 {0x08, 0, 0, 0, 0},
10113 {0x09, 0, 0, 0, 0},
10114 {0x0A, 0, 0, 0, 0},
10115 {0x0B, 0, 0, 0, 0},
10116 {0x0C, 0, 0, 0, 0},
10117 {0x0D, 0, 0, 0, 0},
10118 {0x0E, 0, 0, 0, 0},
10119 {0x0F, 0, 0, 0, 0},
10120 {0x10, 0, 0, 0, 0},
10121 {0x11, 0, 0, 0, 0},
10122 {0x12, 0, 0, 0, 0},
10123 {0x13, 0, 0, 0, 0},
10124 {0x14, 0, 0, 0, 0},
10125 {0x15, 0, 0, 0, 0},
10126 {0x16, 0, 0, 0, 0},
10127 {0x17, 0, 0, 0, 0},
10128 {0x18, 0, 0, 0, 0},
10129 {0x19, 0, 0, 0, 0},
10130 {0x1A, 0, 0, 0, 0},
10131 {0x1B, 0, 0, 0, 0},
10132 {0x1C, 0, 0, 0, 0},
10133 {0x1D, 0, 0, 0, 0},
10134 {0x1E, 0, 0, 0, 0},
10135 {0x1F, 0, 0, 0, 0},
10136 {0x20, 0, 0, 0, 0},
10137 {0x21, 0x88, 0x88, 0, 0},
10138 {0x22, 0x88, 0x88, 0, 0},
10139 {0x23, 0x88, 0x88, 0, 0},
10140 {0x24, 0x88, 0x88, 0, 0},
10141 {0x25, 0xc, 0xc, 0, 0},
10142 {0x26, 0, 0, 0, 0},
10143 {0x27, 0x3, 0x3, 0, 0},
10144 {0x28, 0, 0, 0, 0},
10145 {0x29, 0x3, 0x3, 0, 0},
10146 {0x2A, 0x37, 0x37, 0, 0},
10147 {0x2B, 0x3, 0x3, 0, 0},
10148 {0x2C, 0, 0, 0, 0},
10149 {0x2D, 0, 0, 0, 0},
10150 {0x2E, 0x1, 0x1, 0, 0},
10151 {0x2F, 0x1, 0x1, 0, 0},
10152 {0x30, 0, 0, 0, 0},
10153 {0x31, 0, 0, 0, 0},
10154 {0x32, 0, 0, 0, 0},
10155 {0x33, 0x11, 0x11, 0, 0},
10156 {0x34, 0xee, 0xee, 1, 1},
10157 {0x35, 0, 0, 0, 0},
10158 {0x36, 0, 0, 0, 0},
10159 {0x37, 0x3, 0x3, 0, 0},
10160 {0x38, 0x50, 0x50, 1, 1},
10161 {0x39, 0, 0, 0, 0},
10162 {0x3A, 0x50, 0x50, 1, 1},
10163 {0x3B, 0, 0, 0, 0},
10164 {0x3C, 0x6e, 0x6e, 0, 0},
10165 {0x3D, 0xf0, 0xf0, 1, 1},
10166 {0x3E, 0, 0, 0, 0},
10167 {0x3F, 0, 0, 0, 0},
10168 {0x40, 0, 0, 0, 0},
10169 {0x41, 0x3, 0x3, 0, 0},
10170 {0x42, 0x3, 0x3, 0, 0},
10171 {0x43, 0, 0, 0, 0},
10172 {0x44, 0x1e, 0x1e, 0, 0},
10173 {0x45, 0, 0, 0, 0},
10174 {0x46, 0x6e, 0x6e, 0, 0},
10175 {0x47, 0xf0, 0xf0, 1, 1},
10176 {0x48, 0, 0, 0, 0},
10177 {0x49, 0x2, 0x2, 0, 0},
10178 {0x4A, 0xff, 0xff, 1, 1},
10179 {0x4B, 0xc, 0xc, 0, 0},
10180 {0x4C, 0, 0, 0, 0},
10181 {0x4D, 0x38, 0x38, 0, 0},
10182 {0x4E, 0x70, 0x70, 1, 1},
10183 {0x4F, 0x2, 0x2, 0, 0},
10184 {0x50, 0x88, 0x88, 0, 0},
10185 {0x51, 0xc, 0xc, 0, 0},
10186 {0x52, 0, 0, 0, 0},
10187 {0x53, 0x8, 0x8, 0, 0},
10188 {0x54, 0x70, 0x70, 1, 1},
10189 {0x55, 0x2, 0x2, 0, 0},
10190 {0x56, 0xff, 0xff, 1, 1},
10191 {0x57, 0, 0, 0, 0},
10192 {0x58, 0x83, 0x83, 0, 0},
10193 {0x59, 0x77, 0x77, 1, 1},
10194 {0x5A, 0, 0, 0, 0},
10195 {0x5B, 0x2, 0x2, 0, 0},
10196 {0x5C, 0x88, 0x88, 0, 0},
10197 {0x5D, 0, 0, 0, 0},
10198 {0x5E, 0x8, 0x8, 0, 0},
10199 {0x5F, 0x77, 0x77, 1, 1},
10200 {0x60, 0x1, 0x1, 0, 0},
10201 {0x61, 0, 0, 0, 0},
10202 {0x62, 0x7, 0x7, 0, 0},
10203 {0x63, 0, 0, 0, 0},
10204 {0x64, 0x7, 0x7, 0, 0},
10205 {0x65, 0, 0, 0, 0},
10206 {0x66, 0, 0, 0, 0},
10207 {0x67, 0, 0, 1, 1},
10208 {0x68, 0, 0, 0, 0},
10209 {0x69, 0xa, 0xa, 0, 0},
10210 {0x6A, 0, 0, 0, 0},
10211 {0x6B, 0, 0, 0, 0},
10212 {0x6C, 0, 0, 0, 0},
10213 {0x6D, 0, 0, 0, 0},
10214 {0x6E, 0, 0, 0, 0},
10215 {0x6F, 0, 0, 0, 0},
10216 {0x70, 0, 0, 0, 0},
10217 {0x71, 0x2, 0x2, 0, 0},
10218 {0x72, 0, 0, 0, 0},
10219 {0x73, 0, 0, 0, 0},
10220 {0x74, 0xe, 0xe, 0, 0},
10221 {0x75, 0xe, 0xe, 0, 0},
10222 {0x76, 0xe, 0xe, 0, 0},
10223 {0x77, 0x13, 0x13, 0, 0},
10224 {0x78, 0x13, 0x13, 0, 0},
10225 {0x79, 0x1b, 0x1b, 0, 0},
10226 {0x7A, 0x1b, 0x1b, 0, 0},
10227 {0x7B, 0x55, 0x55, 0, 0},
10228 {0x7C, 0x5b, 0x5b, 0, 0},
10229 {0x7D, 0x30, 0x30, 1, 1},
10230 {0x7E, 0, 0, 0, 0},
10231 {0x7F, 0, 0, 0, 0},
10232 {0x80, 0, 0, 0, 0},
10233 {0x81, 0, 0, 0, 0},
10234 {0x82, 0, 0, 0, 0},
10235 {0x83, 0, 0, 0, 0},
10236 {0x84, 0, 0, 0, 0},
10237 {0x85, 0, 0, 0, 0},
10238 {0x86, 0, 0, 0, 0},
10239 {0x87, 0, 0, 0, 0},
10240 {0x88, 0, 0, 0, 0},
10241 {0x89, 0, 0, 0, 0},
10242 {0x8A, 0, 0, 0, 0},
10243 {0x8B, 0, 0, 0, 0},
10244 {0x8C, 0, 0, 0, 0},
10245 {0x8D, 0, 0, 0, 0},
10246 {0x8E, 0, 0, 0, 0},
10247 {0x8F, 0, 0, 0, 0},
10248 {0x90, 0, 0, 0, 0},
10249 {0x91, 0, 0, 0, 0},
10250 {0x92, 0, 0, 0, 0},
10251 {0x93, 0x70, 0x70, 0, 0},
10252 {0x94, 0x70, 0x70, 0, 0},
10253 {0x95, 0x71, 0x71, 1, 1},
10254 {0x96, 0x71, 0x71, 1, 1},
10255 {0x97, 0x72, 0x72, 1, 1},
10256 {0x98, 0x73, 0x73, 1, 1},
10257 {0x99, 0x74, 0x74, 1, 1},
10258 {0x9A, 0x75, 0x75, 1, 1},
10259 {0xFFFF, 0, 0, 0, 0},
10260 };
10261
10262 radio_regs_t regs_RX_2056_rev7[] = {
10263 {0x02, 0, 0, 0, 0},
10264 {0x03, 0, 0, 0, 0},
10265 {0x04, 0, 0, 0, 0},
10266 {0x05, 0, 0, 0, 0},
10267 {0x06, 0, 0, 0, 0},
10268 {0x07, 0, 0, 0, 0},
10269 {0x08, 0, 0, 0, 0},
10270 {0x09, 0, 0, 0, 0},
10271 {0x0A, 0, 0, 0, 0},
10272 {0x0B, 0, 0, 0, 0},
10273 {0x0C, 0, 0, 0, 0},
10274 {0x0D, 0, 0, 0, 0},
10275 {0x0E, 0, 0, 0, 0},
10276 {0x0F, 0, 0, 0, 0},
10277 {0x10, 0, 0, 0, 0},
10278 {0x11, 0, 0, 0, 0},
10279 {0x12, 0, 0, 0, 0},
10280 {0x13, 0, 0, 0, 0},
10281 {0x14, 0, 0, 0, 0},
10282 {0x15, 0, 0, 0, 0},
10283 {0x16, 0, 0, 0, 0},
10284 {0x17, 0, 0, 0, 0},
10285 {0x18, 0, 0, 0, 0},
10286 {0x19, 0, 0, 0, 0},
10287 {0x1A, 0, 0, 0, 0},
10288 {0x1B, 0, 0, 0, 0},
10289 {0x1C, 0, 0, 0, 0},
10290 {0x1D, 0, 0, 0, 0},
10291 {0x1E, 0, 0, 0, 0},
10292 {0x1F, 0, 0, 0, 0},
10293 {0x20, 0x3, 0x3, 0, 0},
10294 {0x21, 0, 0, 0, 0},
10295 {0x22, 0, 0, 0, 0},
10296 {0x23, 0x90, 0x90, 0, 0},
10297 {0x24, 0x55, 0x55, 0, 0},
10298 {0x25, 0x15, 0x15, 0, 0},
10299 {0x26, 0x5, 0x5, 0, 0},
10300 {0x27, 0x15, 0x15, 0, 0},
10301 {0x28, 0x5, 0x5, 0, 0},
10302 {0x29, 0x20, 0x20, 0, 0},
10303 {0x2A, 0x11, 0x11, 0, 0},
10304 {0x2B, 0x90, 0x90, 0, 0},
10305 {0x2C, 0, 0, 0, 0},
10306 {0x2D, 0x88, 0x88, 0, 0},
10307 {0x2E, 0x32, 0x32, 0, 0},
10308 {0x2F, 0x77, 0x77, 0, 0},
10309 {0x30, 0x17, 0x17, 1, 1},
10310 {0x31, 0xff, 0xff, 1, 1},
10311 {0x32, 0x20, 0x20, 0, 0},
10312 {0x33, 0, 0, 0, 0},
10313 {0x34, 0x88, 0x88, 0, 0},
10314 {0x35, 0x32, 0x32, 0, 0},
10315 {0x36, 0x77, 0x77, 0, 0},
10316 {0x37, 0x17, 0x17, 1, 1},
10317 {0x38, 0xf0, 0xf0, 1, 1},
10318 {0x39, 0x20, 0x20, 0, 0},
10319 {0x3A, 0x8, 0x8, 0, 0},
10320 {0x3B, 0x55, 0x55, 1, 1},
10321 {0x3C, 0, 0, 0, 0},
10322 {0x3D, 0x88, 0x88, 1, 1},
10323 {0x3E, 0, 0, 0, 0},
10324 {0x3F, 0, 0, 1, 1},
10325 {0x40, 0x7, 0x7, 1, 1},
10326 {0x41, 0x6, 0x6, 0, 0},
10327 {0x42, 0x4, 0x4, 0, 0},
10328 {0x43, 0, 0, 0, 0},
10329 {0x44, 0x8, 0x8, 0, 0},
10330 {0x45, 0x55, 0x55, 1, 1},
10331 {0x46, 0, 0, 0, 0},
10332 {0x47, 0x11, 0x11, 0, 0},
10333 {0x48, 0, 0, 0, 0},
10334 {0x49, 0, 0, 1, 1},
10335 {0x4A, 0x7, 0x7, 0, 0},
10336 {0x4B, 0x6, 0x6, 0, 0},
10337 {0x4C, 0x4, 0x4, 0, 0},
10338 {0x4D, 0, 0, 0, 0},
10339 {0x4E, 0, 0, 0, 0},
10340 {0x4F, 0x26, 0x26, 1, 1},
10341 {0x50, 0x26, 0x26, 1, 1},
10342 {0x51, 0xf, 0xf, 1, 1},
10343 {0x52, 0xf, 0xf, 1, 1},
10344 {0x53, 0x44, 0x44, 0, 0},
10345 {0x54, 0, 0, 0, 0},
10346 {0x55, 0, 0, 0, 0},
10347 {0x56, 0x8, 0x8, 0, 0},
10348 {0x57, 0x8, 0x8, 0, 0},
10349 {0x58, 0x7, 0x7, 0, 0},
10350 {0x59, 0x22, 0x22, 0, 0},
10351 {0x5A, 0x22, 0x22, 0, 0},
10352 {0x5B, 0x2, 0x2, 0, 0},
10353 {0x5C, 0x4, 0x4, 1, 1},
10354 {0x5D, 0x7, 0x7, 0, 0},
10355 {0x5E, 0x55, 0x55, 0, 0},
10356 {0x5F, 0x23, 0x23, 0, 0},
10357 {0x60, 0x41, 0x41, 0, 0},
10358 {0x61, 0x1, 0x1, 0, 0},
10359 {0x62, 0xa, 0xa, 0, 0},
10360 {0x63, 0, 0, 0, 0},
10361 {0x64, 0, 0, 0, 0},
10362 {0x65, 0, 0, 0, 0},
10363 {0x66, 0, 0, 0, 0},
10364 {0x67, 0, 0, 0, 0},
10365 {0x68, 0, 0, 0, 0},
10366 {0x69, 0, 0, 0, 0},
10367 {0x6A, 0, 0, 0, 0},
10368 {0x6B, 0xc, 0xc, 0, 0},
10369 {0x6C, 0, 0, 0, 0},
10370 {0x6D, 0, 0, 0, 0},
10371 {0x6E, 0, 0, 0, 0},
10372 {0x6F, 0, 0, 0, 0},
10373 {0x70, 0, 0, 0, 0},
10374 {0x71, 0, 0, 0, 0},
10375 {0x72, 0x22, 0x22, 0, 0},
10376 {0x73, 0x22, 0x22, 0, 0},
10377 {0x74, 0, 0, 1, 1},
10378 {0x75, 0xa, 0xa, 0, 0},
10379 {0x76, 0x1, 0x1, 0, 0},
10380 {0x77, 0x22, 0x22, 0, 0},
10381 {0x78, 0x30, 0x30, 0, 0},
10382 {0x79, 0, 0, 0, 0},
10383 {0x7A, 0, 0, 0, 0},
10384 {0x7B, 0, 0, 0, 0},
10385 {0x7C, 0, 0, 0, 0},
10386 {0x7D, 0, 0, 0, 0},
10387 {0x7E, 0, 0, 0, 0},
10388 {0x7F, 0, 0, 0, 0},
10389 {0x80, 0, 0, 0, 0},
10390 {0x81, 0, 0, 0, 0},
10391 {0x82, 0, 0, 0, 0},
10392 {0x83, 0, 0, 0, 0},
10393 {0x84, 0, 0, 0, 0},
10394 {0x85, 0, 0, 0, 0},
10395 {0x86, 0, 0, 0, 0},
10396 {0x87, 0, 0, 0, 0},
10397 {0x88, 0, 0, 0, 0},
10398 {0x89, 0, 0, 0, 0},
10399 {0x8A, 0, 0, 0, 0},
10400 {0x8B, 0, 0, 0, 0},
10401 {0x8C, 0, 0, 0, 0},
10402 {0x8D, 0, 0, 0, 0},
10403 {0x8E, 0, 0, 0, 0},
10404 {0x8F, 0, 0, 0, 0},
10405 {0x90, 0, 0, 0, 0},
10406 {0x91, 0, 0, 0, 0},
10407 {0x92, 0, 0, 0, 0},
10408 {0x93, 0, 0, 0, 0},
10409 {0x94, 0, 0, 0, 0},
10410 {0xFFFF, 0, 0, 0, 0},
10411 };
10412
10413 radio_regs_t regs_SYN_2056_rev8[] = {
10414 {0x02, 0, 0, 0, 0},
10415 {0x03, 0, 0, 0, 0},
10416 {0x04, 0, 0, 0, 0},
10417 {0x05, 0, 0, 0, 0},
10418 {0x06, 0, 0, 0, 0},
10419 {0x07, 0, 0, 0, 0},
10420 {0x08, 0, 0, 0, 0},
10421 {0x09, 0x1, 0x1, 0, 0},
10422 {0x0A, 0, 0, 0, 0},
10423 {0x0B, 0, 0, 0, 0},
10424 {0x0C, 0, 0, 0, 0},
10425 {0x0D, 0, 0, 0, 0},
10426 {0x0E, 0, 0, 0, 0},
10427 {0x0F, 0, 0, 0, 0},
10428 {0x10, 0, 0, 0, 0},
10429 {0x11, 0, 0, 0, 0},
10430 {0x12, 0, 0, 0, 0},
10431 {0x13, 0, 0, 0, 0},
10432 {0x14, 0, 0, 0, 0},
10433 {0x15, 0, 0, 0, 0},
10434 {0x16, 0, 0, 0, 0},
10435 {0x17, 0, 0, 0, 0},
10436 {0x18, 0, 0, 0, 0},
10437 {0x19, 0, 0, 0, 0},
10438 {0x1A, 0, 0, 0, 0},
10439 {0x1B, 0, 0, 0, 0},
10440 {0x1C, 0, 0, 0, 0},
10441 {0x1D, 0, 0, 0, 0},
10442 {0x1E, 0, 0, 0, 0},
10443 {0x1F, 0, 0, 0, 0},
10444 {0x20, 0, 0, 0, 0},
10445 {0x21, 0, 0, 0, 0},
10446 {0x22, 0x60, 0x60, 0, 0},
10447 {0x23, 0x6, 0x6, 0, 0},
10448 {0x24, 0xc, 0xc, 0, 0},
10449 {0x25, 0, 0, 0, 0},
10450 {0x26, 0, 0, 0, 0},
10451 {0x27, 0, 0, 0, 0},
10452 {0x28, 0x1, 0x1, 0, 0},
10453 {0x29, 0, 0, 0, 0},
10454 {0x2A, 0, 0, 0, 0},
10455 {0x2B, 0, 0, 0, 0},
10456 {0x2C, 0, 0, 0, 0},
10457 {0x2D, 0, 0, 0, 0},
10458 {0x2E, 0, 0, 0, 0},
10459 {0x2F, 0x1f, 0x1f, 0, 0},
10460 {0x30, 0x15, 0x15, 0, 0},
10461 {0x31, 0xf, 0xf, 0, 0},
10462 {0x32, 0, 0, 0, 0},
10463 {0x33, 0, 0, 0, 0},
10464 {0x34, 0, 0, 0, 0},
10465 {0x35, 0, 0, 0, 0},
10466 {0x36, 0, 0, 0, 0},
10467 {0x37, 0, 0, 0, 0},
10468 {0x38, 0, 0, 0, 0},
10469 {0x39, 0, 0, 0, 0},
10470 {0x3A, 0, 0, 0, 0},
10471 {0x3B, 0, 0, 0, 0},
10472 {0x3C, 0x13, 0x13, 0, 0},
10473 {0x3D, 0xf, 0xf, 0, 0},
10474 {0x3E, 0x18, 0x18, 0, 0},
10475 {0x3F, 0, 0, 0, 0},
10476 {0x40, 0, 0, 0, 0},
10477 {0x41, 0x20, 0x20, 0, 0},
10478 {0x42, 0x20, 0x20, 0, 0},
10479 {0x43, 0, 0, 0, 0},
10480 {0x44, 0x77, 0x77, 0, 0},
10481 {0x45, 0x7, 0x7, 0, 0},
10482 {0x46, 0x1, 0x1, 0, 0},
10483 {0x47, 0x4, 0x4, 0, 0},
10484 {0x48, 0xf, 0xf, 0, 0},
10485 {0x49, 0x30, 0x30, 0, 0},
10486 {0x4A, 0x32, 0x32, 0, 0},
10487 {0x4B, 0xd, 0xd, 0, 0},
10488 {0x4C, 0xd, 0xd, 0, 0},
10489 {0x4D, 0x4, 0x4, 0, 0},
10490 {0x4E, 0x6, 0x6, 0, 0},
10491 {0x4F, 0x1, 0x1, 0, 0},
10492 {0x50, 0x1c, 0x1c, 0, 0},
10493 {0x51, 0x2, 0x2, 0, 0},
10494 {0x52, 0x2, 0x2, 0, 0},
10495 {0x53, 0xf7, 0xf7, 1, 1},
10496 {0x54, 0xb4, 0xb4, 0, 0},
10497 {0x55, 0xd2, 0xd2, 0, 0},
10498 {0x56, 0, 0, 0, 0},
10499 {0x57, 0, 0, 0, 0},
10500 {0x58, 0x4, 0x4, 0, 0},
10501 {0x59, 0x96, 0x96, 0, 0},
10502 {0x5A, 0x3e, 0x3e, 0, 0},
10503 {0x5B, 0x3e, 0x3e, 0, 0},
10504 {0x5C, 0x13, 0x13, 0, 0},
10505 {0x5D, 0x2, 0x2, 0, 0},
10506 {0x5E, 0, 0, 0, 0},
10507 {0x5F, 0x7, 0x7, 0, 0},
10508 {0x60, 0x7, 0x7, 1, 1},
10509 {0x61, 0x8, 0x8, 0, 0},
10510 {0x62, 0x3, 0x3, 0, 0},
10511 {0x63, 0, 0, 0, 0},
10512 {0x64, 0, 0, 0, 0},
10513 {0x65, 0, 0, 0, 0},
10514 {0x66, 0, 0, 0, 0},
10515 {0x67, 0, 0, 0, 0},
10516 {0x68, 0x40, 0x40, 0, 0},
10517 {0x69, 0, 0, 0, 0},
10518 {0x6A, 0, 0, 0, 0},
10519 {0x6B, 0, 0, 0, 0},
10520 {0x6C, 0, 0, 0, 0},
10521 {0x6D, 0x1, 0x1, 0, 0},
10522 {0x6E, 0, 0, 0, 0},
10523 {0x6F, 0, 0, 0, 0},
10524 {0x70, 0x60, 0x60, 0, 0},
10525 {0x71, 0x66, 0x66, 0, 0},
10526 {0x72, 0xc, 0xc, 0, 0},
10527 {0x73, 0x66, 0x66, 0, 0},
10528 {0x74, 0x8f, 0x8f, 1, 1},
10529 {0x75, 0, 0, 0, 0},
10530 {0x76, 0xcc, 0xcc, 0, 0},
10531 {0x77, 0x1, 0x1, 0, 0},
10532 {0x78, 0x66, 0x66, 0, 0},
10533 {0x79, 0x66, 0x66, 0, 0},
10534 {0x7A, 0, 0, 0, 0},
10535 {0x7B, 0, 0, 0, 0},
10536 {0x7C, 0, 0, 0, 0},
10537 {0x7D, 0, 0, 0, 0},
10538 {0x7E, 0, 0, 0, 0},
10539 {0x7F, 0, 0, 0, 0},
10540 {0x80, 0, 0, 0, 0},
10541 {0x81, 0, 0, 0, 0},
10542 {0x82, 0, 0, 0, 0},
10543 {0x83, 0, 0, 0, 0},
10544 {0x84, 0, 0, 0, 0},
10545 {0x85, 0xff, 0xff, 0, 0},
10546 {0x86, 0, 0, 0, 0},
10547 {0x87, 0, 0, 0, 0},
10548 {0x88, 0, 0, 0, 0},
10549 {0x89, 0, 0, 0, 0},
10550 {0x8A, 0, 0, 0, 0},
10551 {0x8B, 0, 0, 0, 0},
10552 {0x8C, 0, 0, 0, 0},
10553 {0x8D, 0, 0, 0, 0},
10554 {0x8E, 0, 0, 0, 0},
10555 {0x8F, 0, 0, 0, 0},
10556 {0x90, 0, 0, 0, 0},
10557 {0x91, 0, 0, 0, 0},
10558 {0x92, 0, 0, 0, 0},
10559 {0x93, 0, 0, 0, 0},
10560 {0x94, 0, 0, 0, 0},
10561 {0x95, 0, 0, 0, 0},
10562 {0x96, 0, 0, 0, 0},
10563 {0x97, 0, 0, 0, 0},
10564 {0x98, 0, 0, 0, 0},
10565 {0x99, 0, 0, 0, 0},
10566 {0x9A, 0, 0, 0, 0},
10567 {0x9B, 0, 0, 0, 0},
10568 {0x9C, 0, 0, 0, 0},
10569 {0x9D, 0, 0, 0, 0},
10570 {0x9E, 0, 0, 0, 0},
10571 {0x9F, 0x6, 0x6, 0, 0},
10572 {0xA0, 0x66, 0x66, 0, 0},
10573 {0xA1, 0x66, 0x66, 0, 0},
10574 {0xA2, 0x66, 0x66, 0, 0},
10575 {0xA3, 0x66, 0x66, 0, 0},
10576 {0xA4, 0x66, 0x66, 0, 0},
10577 {0xA5, 0x66, 0x66, 0, 0},
10578 {0xA6, 0x66, 0x66, 0, 0},
10579 {0xA7, 0x66, 0x66, 0, 0},
10580 {0xA8, 0x66, 0x66, 0, 0},
10581 {0xA9, 0x66, 0x66, 0, 0},
10582 {0xAA, 0x66, 0x66, 0, 0},
10583 {0xAB, 0x66, 0x66, 0, 0},
10584 {0xAC, 0x66, 0x66, 0, 0},
10585 {0xAD, 0x66, 0x66, 0, 0},
10586 {0xAE, 0x66, 0x66, 0, 0},
10587 {0xAF, 0x66, 0x66, 0, 0},
10588 {0xB0, 0x66, 0x66, 0, 0},
10589 {0xB1, 0x66, 0x66, 0, 0},
10590 {0xB2, 0x66, 0x66, 0, 0},
10591 {0xB3, 0xa, 0xa, 0, 0},
10592 {0xB4, 0, 0, 0, 0},
10593 {0xB5, 0, 0, 0, 0},
10594 {0xB6, 0, 0, 0, 0},
10595 {0xFFFF, 0, 0, 0, 0},
10596 };
10597
10598 radio_regs_t regs_TX_2056_rev8[] = {
10599 {0x02, 0, 0, 0, 0},
10600 {0x03, 0, 0, 0, 0},
10601 {0x04, 0, 0, 0, 0},
10602 {0x05, 0, 0, 0, 0},
10603 {0x06, 0, 0, 0, 0},
10604 {0x07, 0, 0, 0, 0},
10605 {0x08, 0, 0, 0, 0},
10606 {0x09, 0, 0, 0, 0},
10607 {0x0A, 0, 0, 0, 0},
10608 {0x0B, 0, 0, 0, 0},
10609 {0x0C, 0, 0, 0, 0},
10610 {0x0D, 0, 0, 0, 0},
10611 {0x0E, 0, 0, 0, 0},
10612 {0x0F, 0, 0, 0, 0},
10613 {0x10, 0, 0, 0, 0},
10614 {0x11, 0, 0, 0, 0},
10615 {0x12, 0, 0, 0, 0},
10616 {0x13, 0, 0, 0, 0},
10617 {0x14, 0, 0, 0, 0},
10618 {0x15, 0, 0, 0, 0},
10619 {0x16, 0, 0, 0, 0},
10620 {0x17, 0, 0, 0, 0},
10621 {0x18, 0, 0, 0, 0},
10622 {0x19, 0, 0, 0, 0},
10623 {0x1A, 0, 0, 0, 0},
10624 {0x1B, 0, 0, 0, 0},
10625 {0x1C, 0, 0, 0, 0},
10626 {0x1D, 0, 0, 0, 0},
10627 {0x1E, 0, 0, 0, 0},
10628 {0x1F, 0, 0, 0, 0},
10629 {0x20, 0, 0, 0, 0},
10630 {0x21, 0x88, 0x88, 0, 0},
10631 {0x22, 0x88, 0x88, 0, 0},
10632 {0x23, 0x88, 0x88, 0, 0},
10633 {0x24, 0x88, 0x88, 0, 0},
10634 {0x25, 0xc, 0xc, 0, 0},
10635 {0x26, 0, 0, 0, 0},
10636 {0x27, 0x3, 0x3, 0, 0},
10637 {0x28, 0, 0, 0, 0},
10638 {0x29, 0x3, 0x3, 0, 0},
10639 {0x2A, 0x37, 0x37, 0, 0},
10640 {0x2B, 0x3, 0x3, 0, 0},
10641 {0x2C, 0, 0, 0, 0},
10642 {0x2D, 0, 0, 0, 0},
10643 {0x2E, 0x1, 0x1, 0, 0},
10644 {0x2F, 0x1, 0x1, 0, 0},
10645 {0x30, 0, 0, 0, 0},
10646 {0x31, 0, 0, 0, 0},
10647 {0x32, 0, 0, 0, 0},
10648 {0x33, 0x11, 0x11, 0, 0},
10649 {0x34, 0xee, 0xee, 1, 1},
10650 {0x35, 0, 0, 0, 0},
10651 {0x36, 0, 0, 0, 0},
10652 {0x37, 0x3, 0x3, 0, 0},
10653 {0x38, 0x50, 0x50, 1, 1},
10654 {0x39, 0, 0, 0, 0},
10655 {0x3A, 0x50, 0x50, 1, 1},
10656 {0x3B, 0, 0, 0, 0},
10657 {0x3C, 0x6e, 0x6e, 0, 0},
10658 {0x3D, 0xf0, 0xf0, 1, 1},
10659 {0x3E, 0, 0, 0, 0},
10660 {0x3F, 0, 0, 0, 0},
10661 {0x40, 0, 0, 0, 0},
10662 {0x41, 0x3, 0x3, 0, 0},
10663 {0x42, 0x3, 0x3, 0, 0},
10664 {0x43, 0, 0, 0, 0},
10665 {0x44, 0x1e, 0x1e, 0, 0},
10666 {0x45, 0, 0, 0, 0},
10667 {0x46, 0x6e, 0x6e, 0, 0},
10668 {0x47, 0xf0, 0xf0, 1, 1},
10669 {0x48, 0, 0, 0, 0},
10670 {0x49, 0x2, 0x2, 0, 0},
10671 {0x4A, 0xff, 0xff, 1, 1},
10672 {0x4B, 0xc, 0xc, 0, 0},
10673 {0x4C, 0, 0, 0, 0},
10674 {0x4D, 0x38, 0x38, 0, 0},
10675 {0x4E, 0x70, 0x70, 1, 1},
10676 {0x4F, 0x2, 0x2, 0, 0},
10677 {0x50, 0x88, 0x88, 0, 0},
10678 {0x51, 0xc, 0xc, 0, 0},
10679 {0x52, 0, 0, 0, 0},
10680 {0x53, 0x8, 0x8, 0, 0},
10681 {0x54, 0x70, 0x70, 1, 1},
10682 {0x55, 0x2, 0x2, 0, 0},
10683 {0x56, 0xff, 0xff, 1, 1},
10684 {0x57, 0, 0, 0, 0},
10685 {0x58, 0x83, 0x83, 0, 0},
10686 {0x59, 0x77, 0x77, 1, 1},
10687 {0x5A, 0, 0, 0, 0},
10688 {0x5B, 0x2, 0x2, 0, 0},
10689 {0x5C, 0x88, 0x88, 0, 0},
10690 {0x5D, 0, 0, 0, 0},
10691 {0x5E, 0x8, 0x8, 0, 0},
10692 {0x5F, 0x77, 0x77, 1, 1},
10693 {0x60, 0x1, 0x1, 0, 0},
10694 {0x61, 0, 0, 0, 0},
10695 {0x62, 0x7, 0x7, 0, 0},
10696 {0x63, 0, 0, 0, 0},
10697 {0x64, 0x7, 0x7, 0, 0},
10698 {0x65, 0, 0, 0, 0},
10699 {0x66, 0, 0, 0, 0},
10700 {0x67, 0, 0, 1, 1},
10701 {0x68, 0, 0, 0, 0},
10702 {0x69, 0xa, 0xa, 0, 0},
10703 {0x6A, 0, 0, 0, 0},
10704 {0x6B, 0, 0, 0, 0},
10705 {0x6C, 0, 0, 0, 0},
10706 {0x6D, 0, 0, 0, 0},
10707 {0x6E, 0, 0, 0, 0},
10708 {0x6F, 0, 0, 0, 0},
10709 {0x70, 0, 0, 0, 0},
10710 {0x71, 0x2, 0x2, 0, 0},
10711 {0x72, 0, 0, 0, 0},
10712 {0x73, 0, 0, 0, 0},
10713 {0x74, 0xe, 0xe, 0, 0},
10714 {0x75, 0xe, 0xe, 0, 0},
10715 {0x76, 0xe, 0xe, 0, 0},
10716 {0x77, 0x13, 0x13, 0, 0},
10717 {0x78, 0x13, 0x13, 0, 0},
10718 {0x79, 0x1b, 0x1b, 0, 0},
10719 {0x7A, 0x1b, 0x1b, 0, 0},
10720 {0x7B, 0x55, 0x55, 0, 0},
10721 {0x7C, 0x5b, 0x5b, 0, 0},
10722 {0x7D, 0x30, 0x30, 1, 1},
10723 {0x7E, 0, 0, 0, 0},
10724 {0x7F, 0, 0, 0, 0},
10725 {0x80, 0, 0, 0, 0},
10726 {0x81, 0, 0, 0, 0},
10727 {0x82, 0, 0, 0, 0},
10728 {0x83, 0, 0, 0, 0},
10729 {0x84, 0, 0, 0, 0},
10730 {0x85, 0, 0, 0, 0},
10731 {0x86, 0, 0, 0, 0},
10732 {0x87, 0, 0, 0, 0},
10733 {0x88, 0, 0, 0, 0},
10734 {0x89, 0, 0, 0, 0},
10735 {0x8A, 0, 0, 0, 0},
10736 {0x8B, 0, 0, 0, 0},
10737 {0x8C, 0, 0, 0, 0},
10738 {0x8D, 0, 0, 0, 0},
10739 {0x8E, 0, 0, 0, 0},
10740 {0x8F, 0, 0, 0, 0},
10741 {0x90, 0, 0, 0, 0},
10742 {0x91, 0, 0, 0, 0},
10743 {0x92, 0, 0, 0, 0},
10744 {0x93, 0x70, 0x70, 0, 0},
10745 {0x94, 0x70, 0x70, 0, 0},
10746 {0x95, 0x70, 0x70, 0, 0},
10747 {0x96, 0x70, 0x70, 0, 0},
10748 {0x97, 0x70, 0x70, 0, 0},
10749 {0x98, 0x70, 0x70, 0, 0},
10750 {0x99, 0x70, 0x70, 0, 0},
10751 {0x9A, 0x70, 0x70, 0, 0},
10752 {0xFFFF, 0, 0, 0, 0},
10753 };
10754
10755 radio_regs_t regs_RX_2056_rev8[] = {
10756 {0x02, 0, 0, 0, 0},
10757 {0x03, 0, 0, 0, 0},
10758 {0x04, 0, 0, 0, 0},
10759 {0x05, 0, 0, 0, 0},
10760 {0x06, 0, 0, 0, 0},
10761 {0x07, 0, 0, 0, 0},
10762 {0x08, 0, 0, 0, 0},
10763 {0x09, 0, 0, 0, 0},
10764 {0x0A, 0, 0, 0, 0},
10765 {0x0B, 0, 0, 0, 0},
10766 {0x0C, 0, 0, 0, 0},
10767 {0x0D, 0, 0, 0, 0},
10768 {0x0E, 0, 0, 0, 0},
10769 {0x0F, 0, 0, 0, 0},
10770 {0x10, 0, 0, 0, 0},
10771 {0x11, 0, 0, 0, 0},
10772 {0x12, 0, 0, 0, 0},
10773 {0x13, 0, 0, 0, 0},
10774 {0x14, 0, 0, 0, 0},
10775 {0x15, 0, 0, 0, 0},
10776 {0x16, 0, 0, 0, 0},
10777 {0x17, 0, 0, 0, 0},
10778 {0x18, 0, 0, 0, 0},
10779 {0x19, 0, 0, 0, 0},
10780 {0x1A, 0, 0, 0, 0},
10781 {0x1B, 0, 0, 0, 0},
10782 {0x1C, 0, 0, 0, 0},
10783 {0x1D, 0, 0, 0, 0},
10784 {0x1E, 0, 0, 0, 0},
10785 {0x1F, 0, 0, 0, 0},
10786 {0x20, 0x3, 0x3, 0, 0},
10787 {0x21, 0, 0, 0, 0},
10788 {0x22, 0, 0, 0, 0},
10789 {0x23, 0x90, 0x90, 0, 0},
10790 {0x24, 0x55, 0x55, 0, 0},
10791 {0x25, 0x15, 0x15, 0, 0},
10792 {0x26, 0x5, 0x5, 0, 0},
10793 {0x27, 0x15, 0x15, 0, 0},
10794 {0x28, 0x5, 0x5, 0, 0},
10795 {0x29, 0x20, 0x20, 0, 0},
10796 {0x2A, 0x11, 0x11, 0, 0},
10797 {0x2B, 0x90, 0x90, 0, 0},
10798 {0x2C, 0, 0, 0, 0},
10799 {0x2D, 0x88, 0x88, 0, 0},
10800 {0x2E, 0x32, 0x32, 0, 0},
10801 {0x2F, 0x77, 0x77, 0, 0},
10802 {0x30, 0x17, 0x17, 1, 1},
10803 {0x31, 0xff, 0xff, 1, 1},
10804 {0x32, 0x20, 0x20, 0, 0},
10805 {0x33, 0, 0, 0, 0},
10806 {0x34, 0x88, 0x88, 0, 0},
10807 {0x35, 0x32, 0x32, 0, 0},
10808 {0x36, 0x77, 0x77, 0, 0},
10809 {0x37, 0x17, 0x17, 1, 1},
10810 {0x38, 0xf0, 0xf0, 1, 1},
10811 {0x39, 0x20, 0x20, 0, 0},
10812 {0x3A, 0x8, 0x8, 0, 0},
10813 {0x3B, 0x55, 0x55, 1, 1},
10814 {0x3C, 0, 0, 0, 0},
10815 {0x3D, 0x88, 0x88, 1, 1},
10816 {0x3E, 0, 0, 0, 0},
10817 {0x3F, 0x44, 0x44, 0, 0},
10818 {0x40, 0x7, 0x7, 1, 1},
10819 {0x41, 0x6, 0x6, 0, 0},
10820 {0x42, 0x4, 0x4, 0, 0},
10821 {0x43, 0, 0, 0, 0},
10822 {0x44, 0x8, 0x8, 0, 0},
10823 {0x45, 0x55, 0x55, 1, 1},
10824 {0x46, 0, 0, 0, 0},
10825 {0x47, 0x11, 0x11, 0, 0},
10826 {0x48, 0, 0, 0, 0},
10827 {0x49, 0x44, 0x44, 0, 0},
10828 {0x4A, 0x7, 0x7, 0, 0},
10829 {0x4B, 0x6, 0x6, 0, 0},
10830 {0x4C, 0x4, 0x4, 0, 0},
10831 {0x4D, 0, 0, 0, 0},
10832 {0x4E, 0, 0, 0, 0},
10833 {0x4F, 0x26, 0x26, 1, 1},
10834 {0x50, 0x26, 0x26, 1, 1},
10835 {0x51, 0xf, 0xf, 1, 1},
10836 {0x52, 0xf, 0xf, 1, 1},
10837 {0x53, 0x44, 0x44, 0, 0},
10838 {0x54, 0, 0, 0, 0},
10839 {0x55, 0, 0, 0, 0},
10840 {0x56, 0x8, 0x8, 0, 0},
10841 {0x57, 0x8, 0x8, 0, 0},
10842 {0x58, 0x7, 0x7, 0, 0},
10843 {0x59, 0x22, 0x22, 0, 0},
10844 {0x5A, 0x22, 0x22, 0, 0},
10845 {0x5B, 0x2, 0x2, 0, 0},
10846 {0x5C, 0x4, 0x4, 1, 1},
10847 {0x5D, 0x7, 0x7, 0, 0},
10848 {0x5E, 0x55, 0x55, 0, 0},
10849 {0x5F, 0x23, 0x23, 0, 0},
10850 {0x60, 0x41, 0x41, 0, 0},
10851 {0x61, 0x1, 0x1, 0, 0},
10852 {0x62, 0xa, 0xa, 0, 0},
10853 {0x63, 0, 0, 0, 0},
10854 {0x64, 0, 0, 0, 0},
10855 {0x65, 0, 0, 0, 0},
10856 {0x66, 0, 0, 0, 0},
10857 {0x67, 0, 0, 0, 0},
10858 {0x68, 0, 0, 0, 0},
10859 {0x69, 0, 0, 0, 0},
10860 {0x6A, 0, 0, 0, 0},
10861 {0x6B, 0xc, 0xc, 0, 0},
10862 {0x6C, 0, 0, 0, 0},
10863 {0x6D, 0, 0, 0, 0},
10864 {0x6E, 0, 0, 0, 0},
10865 {0x6F, 0, 0, 0, 0},
10866 {0x70, 0, 0, 0, 0},
10867 {0x71, 0, 0, 0, 0},
10868 {0x72, 0x22, 0x22, 0, 0},
10869 {0x73, 0x22, 0x22, 0, 0},
10870 {0x74, 0, 0, 1, 1},
10871 {0x75, 0xa, 0xa, 0, 0},
10872 {0x76, 0x1, 0x1, 0, 0},
10873 {0x77, 0x22, 0x22, 0, 0},
10874 {0x78, 0x30, 0x30, 0, 0},
10875 {0x79, 0, 0, 0, 0},
10876 {0x7A, 0, 0, 0, 0},
10877 {0x7B, 0, 0, 0, 0},
10878 {0x7C, 0, 0, 0, 0},
10879 {0x7D, 0x5, 0x5, 1, 1},
10880 {0x7E, 0, 0, 0, 0},
10881 {0x7F, 0, 0, 0, 0},
10882 {0x80, 0, 0, 0, 0},
10883 {0x81, 0, 0, 0, 0},
10884 {0x82, 0, 0, 0, 0},
10885 {0x83, 0, 0, 0, 0},
10886 {0x84, 0, 0, 0, 0},
10887 {0x85, 0, 0, 0, 0},
10888 {0x86, 0, 0, 0, 0},
10889 {0x87, 0, 0, 0, 0},
10890 {0x88, 0, 0, 0, 0},
10891 {0x89, 0, 0, 0, 0},
10892 {0x8A, 0, 0, 0, 0},
10893 {0x8B, 0, 0, 0, 0},
10894 {0x8C, 0, 0, 0, 0},
10895 {0x8D, 0, 0, 0, 0},
10896 {0x8E, 0, 0, 0, 0},
10897 {0x8F, 0, 0, 0, 0},
10898 {0x90, 0, 0, 0, 0},
10899 {0x91, 0, 0, 0, 0},
10900 {0x92, 0, 0, 0, 0},
10901 {0x93, 0, 0, 0, 0},
10902 {0x94, 0, 0, 0, 0},
10903 {0xFFFF, 0, 0, 0, 0},
10904 };
10905
10906 radio_regs_t regs_SYN_2056_rev11[] = {
10907 {0x02, 0, 0, 0, 0},
10908 {0x03, 0, 0, 0, 0},
10909 {0x04, 0, 0, 0, 0},
10910 {0x05, 0, 0, 0, 0},
10911 {0x06, 0, 0, 0, 0},
10912 {0x07, 0, 0, 0, 0},
10913 {0x08, 0, 0, 0, 0},
10914 {0x09, 0x1, 0x1, 0, 0},
10915 {0x0A, 0, 0, 0, 0},
10916 {0x0B, 0, 0, 0, 0},
10917 {0x0C, 0, 0, 0, 0},
10918 {0x0D, 0, 0, 0, 0},
10919 {0x0E, 0, 0, 0, 0},
10920 {0x0F, 0, 0, 0, 0},
10921 {0x10, 0, 0, 0, 0},
10922 {0x11, 0, 0, 0, 0},
10923 {0x12, 0, 0, 0, 0},
10924 {0x13, 0, 0, 0, 0},
10925 {0x14, 0, 0, 0, 0},
10926 {0x15, 0, 0, 0, 0},
10927 {0x16, 0, 0, 0, 0},
10928 {0x17, 0, 0, 0, 0},
10929 {0x18, 0, 0, 0, 0},
10930 {0x19, 0, 0, 0, 0},
10931 {0x1A, 0, 0, 0, 0},
10932 {0x1B, 0, 0, 0, 0},
10933 {0x1C, 0, 0, 0, 0},
10934 {0x1D, 0, 0, 0, 0},
10935 {0x1E, 0, 0, 0, 0},
10936 {0x1F, 0, 0, 0, 0},
10937 {0x20, 0, 0, 0, 0},
10938 {0x21, 0, 0, 0, 0},
10939 {0x22, 0x60, 0x60, 0, 0},
10940 {0x23, 0x6, 0x6, 0, 0},
10941 {0x24, 0xc, 0xc, 0, 0},
10942 {0x25, 0, 0, 0, 0},
10943 {0x26, 0, 0, 0, 0},
10944 {0x27, 0, 0, 0, 0},
10945 {0x28, 0x1, 0x1, 0, 0},
10946 {0x29, 0, 0, 0, 0},
10947 {0x2A, 0, 0, 0, 0},
10948 {0x2B, 0, 0, 0, 0},
10949 {0x2C, 0, 0, 0, 0},
10950 {0x2D, 0, 0, 0, 0},
10951 {0x2E, 0, 0, 0, 0},
10952 {0x2F, 0x1f, 0x1f, 0, 0},
10953 {0x30, 0x15, 0x15, 0, 0},
10954 {0x31, 0xf, 0xf, 0, 0},
10955 {0x32, 0, 0, 0, 0},
10956 {0x33, 0, 0, 0, 0},
10957 {0x34, 0, 0, 0, 0},
10958 {0x35, 0, 0, 0, 0},
10959 {0x36, 0, 0, 0, 0},
10960 {0x37, 0, 0, 0, 0},
10961 {0x38, 0, 0, 0, 0},
10962 {0x39, 0, 0, 0, 0},
10963 {0x3A, 0, 0, 0, 0},
10964 {0x3B, 0, 0, 0, 0},
10965 {0x3C, 0x13, 0x13, 0, 0},
10966 {0x3D, 0xf, 0xf, 0, 0},
10967 {0x3E, 0x18, 0x18, 0, 0},
10968 {0x3F, 0, 0, 0, 0},
10969 {0x40, 0, 0, 0, 0},
10970 {0x41, 0x20, 0x20, 0, 0},
10971 {0x42, 0x20, 0x20, 0, 0},
10972 {0x43, 0, 0, 0, 0},
10973 {0x44, 0x77, 0x77, 0, 0},
10974 {0x45, 0x7, 0x7, 0, 0},
10975 {0x46, 0x1, 0x1, 0, 0},
10976 {0x47, 0x6, 0x6, 1, 1},
10977 {0x48, 0xf, 0xf, 0, 0},
10978 {0x49, 0x3f, 0x3f, 1, 1},
10979 {0x4A, 0x32, 0x32, 0, 0},
10980 {0x4B, 0x6, 0x6, 1, 1},
10981 {0x4C, 0x6, 0x6, 1, 1},
10982 {0x4D, 0x4, 0x4, 0, 0},
10983 {0x4E, 0x2b, 0x2b, 1, 1},
10984 {0x4F, 0x1, 0x1, 0, 0},
10985 {0x50, 0x1c, 0x1c, 0, 0},
10986 {0x51, 0x2, 0x2, 0, 0},
10987 {0x52, 0x2, 0x2, 0, 0},
10988 {0x53, 0xf7, 0xf7, 1, 1},
10989 {0x54, 0xb4, 0xb4, 0, 0},
10990 {0x55, 0xd2, 0xd2, 0, 0},
10991 {0x56, 0, 0, 0, 0},
10992 {0x57, 0, 0, 0, 0},
10993 {0x58, 0x4, 0x4, 0, 0},
10994 {0x59, 0x96, 0x96, 0, 0},
10995 {0x5A, 0x3e, 0x3e, 0, 0},
10996 {0x5B, 0x3e, 0x3e, 0, 0},
10997 {0x5C, 0x13, 0x13, 0, 0},
10998 {0x5D, 0x2, 0x2, 0, 0},
10999 {0x5E, 0, 0, 0, 0},
11000 {0x5F, 0x7, 0x7, 0, 0},
11001 {0x60, 0x7, 0x7, 1, 1},
11002 {0x61, 0x8, 0x8, 0, 0},
11003 {0x62, 0x3, 0x3, 0, 0},
11004 {0x63, 0, 0, 0, 0},
11005 {0x64, 0, 0, 0, 0},
11006 {0x65, 0, 0, 0, 0},
11007 {0x66, 0, 0, 0, 0},
11008 {0x67, 0, 0, 0, 0},
11009 {0x68, 0x40, 0x40, 0, 0},
11010 {0x69, 0, 0, 0, 0},
11011 {0x6A, 0, 0, 0, 0},
11012 {0x6B, 0, 0, 0, 0},
11013 {0x6C, 0, 0, 0, 0},
11014 {0x6D, 0x1, 0x1, 0, 0},
11015 {0x6E, 0, 0, 0, 0},
11016 {0x6F, 0, 0, 0, 0},
11017 {0x70, 0x60, 0x60, 0, 0},
11018 {0x71, 0x66, 0x66, 0, 0},
11019 {0x72, 0xc, 0xc, 0, 0},
11020 {0x73, 0x66, 0x66, 0, 0},
11021 {0x74, 0x8f, 0x8f, 1, 1},
11022 {0x75, 0, 0, 0, 0},
11023 {0x76, 0xcc, 0xcc, 0, 0},
11024 {0x77, 0x1, 0x1, 0, 0},
11025 {0x78, 0x66, 0x66, 0, 0},
11026 {0x79, 0x66, 0x66, 0, 0},
11027 {0x7A, 0, 0, 0, 0},
11028 {0x7B, 0, 0, 0, 0},
11029 {0x7C, 0, 0, 0, 0},
11030 {0x7D, 0, 0, 0, 0},
11031 {0x7E, 0, 0, 0, 0},
11032 {0x7F, 0, 0, 0, 0},
11033 {0x80, 0, 0, 0, 0},
11034 {0x81, 0, 0, 0, 0},
11035 {0x82, 0, 0, 0, 0},
11036 {0x83, 0, 0, 0, 0},
11037 {0x84, 0, 0, 0, 0},
11038 {0x85, 0xff, 0xff, 0, 0},
11039 {0x86, 0, 0, 0, 0},
11040 {0x87, 0, 0, 0, 0},
11041 {0x88, 0, 0, 0, 0},
11042 {0x89, 0, 0, 0, 0},
11043 {0x8A, 0, 0, 0, 0},
11044 {0x8B, 0, 0, 0, 0},
11045 {0x8C, 0, 0, 0, 0},
11046 {0x8D, 0, 0, 0, 0},
11047 {0x8E, 0, 0, 0, 0},
11048 {0x8F, 0, 0, 0, 0},
11049 {0x90, 0, 0, 0, 0},
11050 {0x91, 0, 0, 0, 0},
11051 {0x92, 0, 0, 0, 0},
11052 {0x93, 0, 0, 0, 0},
11053 {0x94, 0, 0, 0, 0},
11054 {0x95, 0, 0, 0, 0},
11055 {0x96, 0, 0, 0, 0},
11056 {0x97, 0, 0, 0, 0},
11057 {0x98, 0, 0, 0, 0},
11058 {0x99, 0, 0, 0, 0},
11059 {0x9A, 0, 0, 0, 0},
11060 {0x9B, 0, 0, 0, 0},
11061 {0x9C, 0, 0, 0, 0},
11062 {0x9D, 0, 0, 0, 0},
11063 {0x9E, 0, 0, 0, 0},
11064 {0x9F, 0x6, 0x6, 0, 0},
11065 {0xA0, 0x66, 0x66, 0, 0},
11066 {0xA1, 0x66, 0x66, 0, 0},
11067 {0xA2, 0x66, 0x66, 0, 0},
11068 {0xA3, 0x66, 0x66, 0, 0},
11069 {0xA4, 0x66, 0x66, 0, 0},
11070 {0xA5, 0x66, 0x66, 0, 0},
11071 {0xA6, 0x66, 0x66, 0, 0},
11072 {0xA7, 0x66, 0x66, 0, 0},
11073 {0xA8, 0x66, 0x66, 0, 0},
11074 {0xA9, 0x66, 0x66, 0, 0},
11075 {0xAA, 0x66, 0x66, 0, 0},
11076 {0xAB, 0x66, 0x66, 0, 0},
11077 {0xAC, 0x66, 0x66, 0, 0},
11078 {0xAD, 0x66, 0x66, 0, 0},
11079 {0xAE, 0x66, 0x66, 0, 0},
11080 {0xAF, 0x66, 0x66, 0, 0},
11081 {0xB0, 0x66, 0x66, 0, 0},
11082 {0xB1, 0x66, 0x66, 0, 0},
11083 {0xB2, 0x66, 0x66, 0, 0},
11084 {0xB3, 0xa, 0xa, 0, 0},
11085 {0xB4, 0, 0, 0, 0},
11086 {0xB5, 0, 0, 0, 0},
11087 {0xB6, 0, 0, 0, 0},
11088 {0xFFFF, 0, 0, 0, 0},
11089 };
11090
11091 radio_regs_t regs_TX_2056_rev11[] = {
11092 {0x02, 0, 0, 0, 0},
11093 {0x03, 0, 0, 0, 0},
11094 {0x04, 0, 0, 0, 0},
11095 {0x05, 0, 0, 0, 0},
11096 {0x06, 0, 0, 0, 0},
11097 {0x07, 0, 0, 0, 0},
11098 {0x08, 0, 0, 0, 0},
11099 {0x09, 0, 0, 0, 0},
11100 {0x0A, 0, 0, 0, 0},
11101 {0x0B, 0, 0, 0, 0},
11102 {0x0C, 0, 0, 0, 0},
11103 {0x0D, 0, 0, 0, 0},
11104 {0x0E, 0, 0, 0, 0},
11105 {0x0F, 0, 0, 0, 0},
11106 {0x10, 0, 0, 0, 0},
11107 {0x11, 0, 0, 0, 0},
11108 {0x12, 0, 0, 0, 0},
11109 {0x13, 0, 0, 0, 0},
11110 {0x14, 0, 0, 0, 0},
11111 {0x15, 0, 0, 0, 0},
11112 {0x16, 0, 0, 0, 0},
11113 {0x17, 0, 0, 0, 0},
11114 {0x18, 0, 0, 0, 0},
11115 {0x19, 0, 0, 0, 0},
11116 {0x1A, 0, 0, 0, 0},
11117 {0x1B, 0, 0, 0, 0},
11118 {0x1C, 0, 0, 0, 0},
11119 {0x1D, 0, 0, 0, 0},
11120 {0x1E, 0, 0, 0, 0},
11121 {0x1F, 0, 0, 0, 0},
11122 {0x20, 0, 0, 0, 0},
11123 {0x21, 0x88, 0x88, 0, 0},
11124 {0x22, 0x88, 0x88, 0, 0},
11125 {0x23, 0x88, 0x88, 0, 0},
11126 {0x24, 0x88, 0x88, 0, 0},
11127 {0x25, 0xc, 0xc, 0, 0},
11128 {0x26, 0, 0, 0, 0},
11129 {0x27, 0x3, 0x3, 0, 0},
11130 {0x28, 0, 0, 0, 0},
11131 {0x29, 0x3, 0x3, 0, 0},
11132 {0x2A, 0x37, 0x37, 0, 0},
11133 {0x2B, 0x3, 0x3, 0, 0},
11134 {0x2C, 0, 0, 0, 0},
11135 {0x2D, 0, 0, 0, 0},
11136 {0x2E, 0x1, 0x1, 0, 0},
11137 {0x2F, 0x1, 0x1, 0, 0},
11138 {0x30, 0, 0, 0, 0},
11139 {0x31, 0, 0, 0, 0},
11140 {0x32, 0, 0, 0, 0},
11141 {0x33, 0x11, 0x11, 0, 0},
11142 {0x34, 0xee, 0xee, 1, 1},
11143 {0x35, 0, 0, 0, 0},
11144 {0x36, 0, 0, 0, 0},
11145 {0x37, 0x3, 0x3, 0, 0},
11146 {0x38, 0x50, 0x50, 1, 1},
11147 {0x39, 0, 0, 0, 0},
11148 {0x3A, 0x50, 0x50, 1, 1},
11149 {0x3B, 0, 0, 0, 0},
11150 {0x3C, 0x6e, 0x6e, 0, 0},
11151 {0x3D, 0xf0, 0xf0, 1, 1},
11152 {0x3E, 0, 0, 0, 0},
11153 {0x3F, 0, 0, 0, 0},
11154 {0x40, 0, 0, 0, 0},
11155 {0x41, 0x3, 0x3, 0, 0},
11156 {0x42, 0x3, 0x3, 0, 0},
11157 {0x43, 0, 0, 0, 0},
11158 {0x44, 0x1e, 0x1e, 0, 0},
11159 {0x45, 0, 0, 0, 0},
11160 {0x46, 0x6e, 0x6e, 0, 0},
11161 {0x47, 0xf0, 0xf0, 1, 1},
11162 {0x48, 0, 0, 0, 0},
11163 {0x49, 0x2, 0x2, 0, 0},
11164 {0x4A, 0xff, 0xff, 1, 1},
11165 {0x4B, 0xc, 0xc, 0, 0},
11166 {0x4C, 0, 0, 0, 0},
11167 {0x4D, 0x38, 0x38, 0, 0},
11168 {0x4E, 0x70, 0x70, 1, 1},
11169 {0x4F, 0x2, 0x2, 0, 0},
11170 {0x50, 0x88, 0x88, 0, 0},
11171 {0x51, 0xc, 0xc, 0, 0},
11172 {0x52, 0, 0, 0, 0},
11173 {0x53, 0x8, 0x8, 0, 0},
11174 {0x54, 0x70, 0x70, 1, 1},
11175 {0x55, 0x2, 0x2, 0, 0},
11176 {0x56, 0xff, 0xff, 1, 1},
11177 {0x57, 0, 0, 0, 0},
11178 {0x58, 0x83, 0x83, 0, 0},
11179 {0x59, 0x77, 0x77, 1, 1},
11180 {0x5A, 0, 0, 0, 0},
11181 {0x5B, 0x2, 0x2, 0, 0},
11182 {0x5C, 0x88, 0x88, 0, 0},
11183 {0x5D, 0, 0, 0, 0},
11184 {0x5E, 0x8, 0x8, 0, 0},
11185 {0x5F, 0x77, 0x77, 1, 1},
11186 {0x60, 0x1, 0x1, 0, 0},
11187 {0x61, 0, 0, 0, 0},
11188 {0x62, 0x7, 0x7, 0, 0},
11189 {0x63, 0, 0, 0, 0},
11190 {0x64, 0x7, 0x7, 0, 0},
11191 {0x65, 0, 0, 0, 0},
11192 {0x66, 0, 0, 0, 0},
11193 {0x67, 0, 0, 1, 1},
11194 {0x68, 0, 0, 0, 0},
11195 {0x69, 0xa, 0xa, 0, 0},
11196 {0x6A, 0, 0, 0, 0},
11197 {0x6B, 0, 0, 0, 0},
11198 {0x6C, 0, 0, 0, 0},
11199 {0x6D, 0, 0, 0, 0},
11200 {0x6E, 0, 0, 0, 0},
11201 {0x6F, 0, 0, 0, 0},
11202 {0x70, 0, 0, 0, 0},
11203 {0x71, 0x2, 0x2, 0, 0},
11204 {0x72, 0, 0, 0, 0},
11205 {0x73, 0, 0, 0, 0},
11206 {0x74, 0xe, 0xe, 0, 0},
11207 {0x75, 0xe, 0xe, 0, 0},
11208 {0x76, 0xe, 0xe, 0, 0},
11209 {0x77, 0x13, 0x13, 0, 0},
11210 {0x78, 0x13, 0x13, 0, 0},
11211 {0x79, 0x1b, 0x1b, 0, 0},
11212 {0x7A, 0x1b, 0x1b, 0, 0},
11213 {0x7B, 0x55, 0x55, 0, 0},
11214 {0x7C, 0x5b, 0x5b, 0, 0},
11215 {0x7D, 0x30, 0x30, 1, 1},
11216 {0x7E, 0, 0, 0, 0},
11217 {0x7F, 0, 0, 0, 0},
11218 {0x80, 0, 0, 0, 0},
11219 {0x81, 0, 0, 0, 0},
11220 {0x82, 0, 0, 0, 0},
11221 {0x83, 0, 0, 0, 0},
11222 {0x84, 0, 0, 0, 0},
11223 {0x85, 0, 0, 0, 0},
11224 {0x86, 0, 0, 0, 0},
11225 {0x87, 0, 0, 0, 0},
11226 {0x88, 0, 0, 0, 0},
11227 {0x89, 0, 0, 0, 0},
11228 {0x8A, 0, 0, 0, 0},
11229 {0x8B, 0, 0, 0, 0},
11230 {0x8C, 0, 0, 0, 0},
11231 {0x8D, 0, 0, 0, 0},
11232 {0x8E, 0, 0, 0, 0},
11233 {0x8F, 0, 0, 0, 0},
11234 {0x90, 0, 0, 0, 0},
11235 {0x91, 0, 0, 0, 0},
11236 {0x92, 0, 0, 0, 0},
11237 {0x93, 0x70, 0x70, 0, 0},
11238 {0x94, 0x70, 0x70, 0, 0},
11239 {0x95, 0x70, 0x70, 0, 0},
11240 {0x96, 0x70, 0x70, 0, 0},
11241 {0x97, 0x70, 0x70, 0, 0},
11242 {0x98, 0x70, 0x70, 0, 0},
11243 {0x99, 0x70, 0x70, 0, 0},
11244 {0x9A, 0x70, 0x70, 0, 0},
11245 {0xFFFF, 0, 0, 0, 0},
11246 };
11247
11248 radio_regs_t regs_RX_2056_rev11[] = {
11249 {0x02, 0, 0, 0, 0},
11250 {0x03, 0, 0, 0, 0},
11251 {0x04, 0, 0, 0, 0},
11252 {0x05, 0, 0, 0, 0},
11253 {0x06, 0, 0, 0, 0},
11254 {0x07, 0, 0, 0, 0},
11255 {0x08, 0, 0, 0, 0},
11256 {0x09, 0, 0, 0, 0},
11257 {0x0A, 0, 0, 0, 0},
11258 {0x0B, 0, 0, 0, 0},
11259 {0x0C, 0, 0, 0, 0},
11260 {0x0D, 0, 0, 0, 0},
11261 {0x0E, 0, 0, 0, 0},
11262 {0x0F, 0, 0, 0, 0},
11263 {0x10, 0, 0, 0, 0},
11264 {0x11, 0, 0, 0, 0},
11265 {0x12, 0, 0, 0, 0},
11266 {0x13, 0, 0, 0, 0},
11267 {0x14, 0, 0, 0, 0},
11268 {0x15, 0, 0, 0, 0},
11269 {0x16, 0, 0, 0, 0},
11270 {0x17, 0, 0, 0, 0},
11271 {0x18, 0, 0, 0, 0},
11272 {0x19, 0, 0, 0, 0},
11273 {0x1A, 0, 0, 0, 0},
11274 {0x1B, 0, 0, 0, 0},
11275 {0x1C, 0, 0, 0, 0},
11276 {0x1D, 0, 0, 0, 0},
11277 {0x1E, 0, 0, 0, 0},
11278 {0x1F, 0, 0, 0, 0},
11279 {0x20, 0x3, 0x3, 0, 0},
11280 {0x21, 0, 0, 0, 0},
11281 {0x22, 0, 0, 0, 0},
11282 {0x23, 0x90, 0x90, 0, 0},
11283 {0x24, 0x55, 0x55, 0, 0},
11284 {0x25, 0x15, 0x15, 0, 0},
11285 {0x26, 0x5, 0x5, 0, 0},
11286 {0x27, 0x15, 0x15, 0, 0},
11287 {0x28, 0x5, 0x5, 0, 0},
11288 {0x29, 0x20, 0x20, 0, 0},
11289 {0x2A, 0x11, 0x11, 0, 0},
11290 {0x2B, 0x90, 0x90, 0, 0},
11291 {0x2C, 0, 0, 0, 0},
11292 {0x2D, 0x88, 0x88, 0, 0},
11293 {0x2E, 0x32, 0x32, 0, 0},
11294 {0x2F, 0x77, 0x77, 0, 0},
11295 {0x30, 0x17, 0x17, 1, 1},
11296 {0x31, 0xff, 0xff, 1, 1},
11297 {0x32, 0x20, 0x20, 0, 0},
11298 {0x33, 0, 0, 0, 0},
11299 {0x34, 0x88, 0x88, 0, 0},
11300 {0x35, 0x32, 0x32, 0, 0},
11301 {0x36, 0x77, 0x77, 0, 0},
11302 {0x37, 0x17, 0x17, 1, 1},
11303 {0x38, 0xf0, 0xf0, 1, 1},
11304 {0x39, 0x20, 0x20, 0, 0},
11305 {0x3A, 0x8, 0x8, 0, 0},
11306 {0x3B, 0x55, 0x55, 1, 1},
11307 {0x3C, 0, 0, 0, 0},
11308 {0x3D, 0x88, 0x88, 1, 1},
11309 {0x3E, 0, 0, 0, 0},
11310 {0x3F, 0x44, 0x44, 0, 0},
11311 {0x40, 0x7, 0x7, 1, 1},
11312 {0x41, 0x6, 0x6, 0, 0},
11313 {0x42, 0x4, 0x4, 0, 0},
11314 {0x43, 0, 0, 0, 0},
11315 {0x44, 0x8, 0x8, 0, 0},
11316 {0x45, 0x55, 0x55, 1, 1},
11317 {0x46, 0, 0, 0, 0},
11318 {0x47, 0x11, 0x11, 0, 0},
11319 {0x48, 0, 0, 0, 0},
11320 {0x49, 0x44, 0x44, 0, 0},
11321 {0x4A, 0x7, 0x7, 0, 0},
11322 {0x4B, 0x6, 0x6, 0, 0},
11323 {0x4C, 0x4, 0x4, 0, 0},
11324 {0x4D, 0, 0, 0, 0},
11325 {0x4E, 0, 0, 0, 0},
11326 {0x4F, 0x26, 0x26, 1, 1},
11327 {0x50, 0x26, 0x26, 1, 1},
11328 {0x51, 0xf, 0xf, 1, 1},
11329 {0x52, 0xf, 0xf, 1, 1},
11330 {0x53, 0x44, 0x44, 0, 0},
11331 {0x54, 0, 0, 0, 0},
11332 {0x55, 0, 0, 0, 0},
11333 {0x56, 0x8, 0x8, 0, 0},
11334 {0x57, 0x8, 0x8, 0, 0},
11335 {0x58, 0x7, 0x7, 0, 0},
11336 {0x59, 0x22, 0x22, 0, 0},
11337 {0x5A, 0x22, 0x22, 0, 0},
11338 {0x5B, 0x2, 0x2, 0, 0},
11339 {0x5C, 0x4, 0x4, 1, 1},
11340 {0x5D, 0x7, 0x7, 0, 0},
11341 {0x5E, 0x55, 0x55, 0, 0},
11342 {0x5F, 0x23, 0x23, 0, 0},
11343 {0x60, 0x41, 0x41, 0, 0},
11344 {0x61, 0x1, 0x1, 0, 0},
11345 {0x62, 0xa, 0xa, 0, 0},
11346 {0x63, 0, 0, 0, 0},
11347 {0x64, 0, 0, 0, 0},
11348 {0x65, 0, 0, 0, 0},
11349 {0x66, 0, 0, 0, 0},
11350 {0x67, 0, 0, 0, 0},
11351 {0x68, 0, 0, 0, 0},
11352 {0x69, 0, 0, 0, 0},
11353 {0x6A, 0, 0, 0, 0},
11354 {0x6B, 0xc, 0xc, 0, 0},
11355 {0x6C, 0, 0, 0, 0},
11356 {0x6D, 0, 0, 0, 0},
11357 {0x6E, 0, 0, 0, 0},
11358 {0x6F, 0, 0, 0, 0},
11359 {0x70, 0, 0, 0, 0},
11360 {0x71, 0, 0, 0, 0},
11361 {0x72, 0x22, 0x22, 0, 0},
11362 {0x73, 0x22, 0x22, 0, 0},
11363 {0x74, 0, 0, 1, 1},
11364 {0x75, 0xa, 0xa, 0, 0},
11365 {0x76, 0x1, 0x1, 0, 0},
11366 {0x77, 0x22, 0x22, 0, 0},
11367 {0x78, 0x30, 0x30, 0, 0},
11368 {0x79, 0, 0, 0, 0},
11369 {0x7A, 0, 0, 0, 0},
11370 {0x7B, 0, 0, 0, 0},
11371 {0x7C, 0, 0, 0, 0},
11372 {0x7D, 0x5, 0x5, 1, 1},
11373 {0x7E, 0, 0, 0, 0},
11374 {0x7F, 0, 0, 0, 0},
11375 {0x80, 0, 0, 0, 0},
11376 {0x81, 0, 0, 0, 0},
11377 {0x82, 0, 0, 0, 0},
11378 {0x83, 0, 0, 0, 0},
11379 {0x84, 0, 0, 0, 0},
11380 {0x85, 0, 0, 0, 0},
11381 {0x86, 0, 0, 0, 0},
11382 {0x87, 0, 0, 0, 0},
11383 {0x88, 0, 0, 0, 0},
11384 {0x89, 0, 0, 0, 0},
11385 {0x8A, 0, 0, 0, 0},
11386 {0x8B, 0, 0, 0, 0},
11387 {0x8C, 0, 0, 0, 0},
11388 {0x8D, 0, 0, 0, 0},
11389 {0x8E, 0, 0, 0, 0},
11390 {0x8F, 0, 0, 0, 0},
11391 {0x90, 0, 0, 0, 0},
11392 {0x91, 0, 0, 0, 0},
11393 {0x92, 0, 0, 0, 0},
11394 {0x93, 0, 0, 0, 0},
11395 {0x94, 0, 0, 0, 0},
11396 {0xFFFF, 0, 0, 0, 0},
11397 };
11398
11399 radio_20xx_regs_t regs_2057_rev4[] = {
11400 {0x00, 0x84, 0},
11401 {0x01, 0, 0},
11402 {0x02, 0x60, 0},
11403 {0x03, 0x1f, 0},
11404 {0x04, 0x4, 0},
11405 {0x05, 0x2, 0},
11406 {0x06, 0x1, 0},
11407 {0x07, 0x1, 0},
11408 {0x08, 0x1, 0},
11409 {0x09, 0x69, 0},
11410 {0x0A, 0x66, 0},
11411 {0x0B, 0x6, 0},
11412 {0x0C, 0x18, 0},
11413 {0x0D, 0x3, 0},
11414 {0x0E, 0x20, 1},
11415 {0x0F, 0x20, 0},
11416 {0x10, 0, 0},
11417 {0x11, 0x7c, 0},
11418 {0x12, 0x42, 0},
11419 {0x13, 0xbd, 0},
11420 {0x14, 0x7, 0},
11421 {0x15, 0xf7, 0},
11422 {0x16, 0x8, 0},
11423 {0x17, 0x17, 0},
11424 {0x18, 0x7, 0},
11425 {0x19, 0, 0},
11426 {0x1A, 0x2, 0},
11427 {0x1B, 0x13, 0},
11428 {0x1C, 0x3e, 0},
11429 {0x1D, 0x3e, 0},
11430 {0x1E, 0x96, 0},
11431 {0x1F, 0x4, 0},
11432 {0x20, 0, 0},
11433 {0x21, 0, 0},
11434 {0x22, 0x17, 0},
11435 {0x23, 0x4, 0},
11436 {0x24, 0x1, 0},
11437 {0x25, 0x6, 0},
11438 {0x26, 0x4, 0},
11439 {0x27, 0xd, 0},
11440 {0x28, 0xd, 0},
11441 {0x29, 0x30, 0},
11442 {0x2A, 0x32, 0},
11443 {0x2B, 0x8, 0},
11444 {0x2C, 0x1c, 0},
11445 {0x2D, 0x2, 0},
11446 {0x2E, 0x4, 0},
11447 {0x2F, 0x7f, 0},
11448 {0x30, 0x27, 0},
11449 {0x31, 0, 1},
11450 {0x32, 0, 1},
11451 {0x33, 0, 1},
11452 {0x34, 0, 0},
11453 {0x35, 0x26, 1},
11454 {0x36, 0x18, 0},
11455 {0x37, 0x7, 0},
11456 {0x38, 0x66, 0},
11457 {0x39, 0x66, 0},
11458 {0x3A, 0x66, 0},
11459 {0x3B, 0x66, 0},
11460 {0x3C, 0xff, 1},
11461 {0x3D, 0xff, 1},
11462 {0x3E, 0xff, 1},
11463 {0x3F, 0xff, 1},
11464 {0x40, 0x16, 0},
11465 {0x41, 0x7, 0},
11466 {0x42, 0x19, 0},
11467 {0x43, 0x7, 0},
11468 {0x44, 0x6, 0},
11469 {0x45, 0x3, 0},
11470 {0x46, 0x1, 0},
11471 {0x47, 0x7, 0},
11472 {0x48, 0x33, 0},
11473 {0x49, 0x5, 0},
11474 {0x4A, 0x77, 0},
11475 {0x4B, 0x66, 0},
11476 {0x4C, 0x66, 0},
11477 {0x4D, 0, 0},
11478 {0x4E, 0x4, 0},
11479 {0x4F, 0xc, 0},
11480 {0x50, 0, 0},
11481 {0x51, 0x75, 0},
11482 {0x56, 0x7, 0},
11483 {0x57, 0, 0},
11484 {0x58, 0, 0},
11485 {0x59, 0xa8, 0},
11486 {0x5A, 0, 0},
11487 {0x5B, 0x1f, 0},
11488 {0x5C, 0x30, 0},
11489 {0x5D, 0x1, 0},
11490 {0x5E, 0x30, 0},
11491 {0x5F, 0x70, 0},
11492 {0x60, 0, 0},
11493 {0x61, 0, 0},
11494 {0x62, 0x33, 1},
11495 {0x63, 0x19, 0},
11496 {0x64, 0x62, 0},
11497 {0x65, 0, 0},
11498 {0x66, 0x11, 0},
11499 {0x69, 0, 0},
11500 {0x6A, 0x7e, 0},
11501 {0x6B, 0x3f, 0},
11502 {0x6C, 0x7f, 0},
11503 {0x6D, 0x78, 0},
11504 {0x6E, 0xc8, 0},
11505 {0x6F, 0x88, 0},
11506 {0x70, 0x8, 0},
11507 {0x71, 0xf, 0},
11508 {0x72, 0xbc, 0},
11509 {0x73, 0x8, 0},
11510 {0x74, 0x60, 0},
11511 {0x75, 0x1e, 0},
11512 {0x76, 0x70, 0},
11513 {0x77, 0, 0},
11514 {0x78, 0, 0},
11515 {0x79, 0, 0},
11516 {0x7A, 0x33, 0},
11517 {0x7B, 0x1e, 0},
11518 {0x7C, 0x62, 0},
11519 {0x7D, 0x11, 0},
11520 {0x80, 0x3c, 0},
11521 {0x81, 0x9c, 0},
11522 {0x82, 0xa, 0},
11523 {0x83, 0x9d, 0},
11524 {0x84, 0xa, 0},
11525 {0x85, 0, 0},
11526 {0x86, 0x40, 0},
11527 {0x87, 0x40, 0},
11528 {0x88, 0x88, 0},
11529 {0x89, 0x10, 0},
11530 {0x8A, 0xf0, 1},
11531 {0x8B, 0x10, 1},
11532 {0x8C, 0xf0, 1},
11533 {0x8D, 0, 0},
11534 {0x8E, 0, 0},
11535 {0x8F, 0x10, 0},
11536 {0x90, 0x55, 0},
11537 {0x91, 0x3f, 1},
11538 {0x92, 0x36, 1},
11539 {0x93, 0, 0},
11540 {0x94, 0, 0},
11541 {0x95, 0, 0},
11542 {0x96, 0x87, 0},
11543 {0x97, 0x11, 0},
11544 {0x98, 0, 0},
11545 {0x99, 0x33, 0},
11546 {0x9A, 0x88, 0},
11547 {0x9B, 0, 0},
11548 {0x9C, 0x87, 0},
11549 {0x9D, 0x11, 0},
11550 {0x9E, 0, 0},
11551 {0x9F, 0x33, 0},
11552 {0xA0, 0x88, 0},
11553 {0xA1, 0xe1, 0},
11554 {0xA2, 0x3f, 0},
11555 {0xA3, 0x44, 0},
11556 {0xA4, 0x8c, 1},
11557 {0xA5, 0x6d, 0},
11558 {0xA6, 0x22, 0},
11559 {0xA7, 0xbe, 0},
11560 {0xA8, 0x55, 1},
11561 {0xA9, 0xc, 0},
11562 {0xAA, 0xc, 0},
11563 {0xAB, 0xaa, 0},
11564 {0xAC, 0x2, 0},
11565 {0xAD, 0, 0},
11566 {0xAE, 0x10, 0},
11567 {0xAF, 0x1, 1},
11568 {0xB0, 0, 0},
11569 {0xB1, 0, 0},
11570 {0xB2, 0x80, 0},
11571 {0xB3, 0x60, 0},
11572 {0xB4, 0x44, 0},
11573 {0xB5, 0x55, 0},
11574 {0xB6, 0x1, 0},
11575 {0xB7, 0x55, 0},
11576 {0xB8, 0x1, 0},
11577 {0xB9, 0x5, 0},
11578 {0xBA, 0x55, 0},
11579 {0xBB, 0x55, 0},
11580 {0xC1, 0, 0},
11581 {0xC2, 0, 0},
11582 {0xC3, 0, 0},
11583 {0xC4, 0, 0},
11584 {0xC5, 0, 0},
11585 {0xC6, 0, 0},
11586 {0xC7, 0, 0},
11587 {0xC8, 0, 0},
11588 {0xC9, 0, 0},
11589 {0xCA, 0, 0},
11590 {0xCB, 0, 0},
11591 {0xCC, 0, 0},
11592 {0xCD, 0, 0},
11593 {0xCE, 0x5e, 0},
11594 {0xCF, 0xc, 0},
11595 {0xD0, 0xc, 0},
11596 {0xD1, 0xc, 0},
11597 {0xD2, 0, 0},
11598 {0xD3, 0x2b, 0},
11599 {0xD4, 0xc, 0},
11600 {0xD5, 0, 0},
11601 {0xD6, 0x75, 0},
11602 {0xDB, 0x7, 0},
11603 {0xDC, 0, 0},
11604 {0xDD, 0, 0},
11605 {0xDE, 0xa8, 0},
11606 {0xDF, 0, 0},
11607 {0xE0, 0x1f, 0},
11608 {0xE1, 0x30, 0},
11609 {0xE2, 0x1, 0},
11610 {0xE3, 0x30, 0},
11611 {0xE4, 0x70, 0},
11612 {0xE5, 0, 0},
11613 {0xE6, 0, 0},
11614 {0xE7, 0x33, 0},
11615 {0xE8, 0x19, 0},
11616 {0xE9, 0x62, 0},
11617 {0xEA, 0, 0},
11618 {0xEB, 0x11, 0},
11619 {0xEE, 0, 0},
11620 {0xEF, 0x7e, 0},
11621 {0xF0, 0x3f, 0},
11622 {0xF1, 0x7f, 0},
11623 {0xF2, 0x78, 0},
11624 {0xF3, 0xc8, 0},
11625 {0xF4, 0x88, 0},
11626 {0xF5, 0x8, 0},
11627 {0xF6, 0xf, 0},
11628 {0xF7, 0xbc, 0},
11629 {0xF8, 0x8, 0},
11630 {0xF9, 0x60, 0},
11631 {0xFA, 0x1e, 0},
11632 {0xFB, 0x70, 0},
11633 {0xFC, 0, 0},
11634 {0xFD, 0, 0},
11635 {0xFE, 0, 0},
11636 {0xFF, 0x33, 0},
11637 {0x100, 0x1e, 0},
11638 {0x101, 0x62, 0},
11639 {0x102, 0x11, 0},
11640 {0x105, 0x3c, 0},
11641 {0x106, 0x9c, 0},
11642 {0x107, 0xa, 0},
11643 {0x108, 0x9d, 0},
11644 {0x109, 0xa, 0},
11645 {0x10A, 0, 0},
11646 {0x10B, 0x40, 0},
11647 {0x10C, 0x40, 0},
11648 {0x10D, 0x88, 0},
11649 {0x10E, 0x10, 0},
11650 {0x10F, 0xf0, 1},
11651 {0x110, 0x10, 1},
11652 {0x111, 0xf0, 1},
11653 {0x112, 0, 0},
11654 {0x113, 0, 0},
11655 {0x114, 0x10, 0},
11656 {0x115, 0x55, 0},
11657 {0x116, 0x3f, 1},
11658 {0x117, 0x36, 1},
11659 {0x118, 0, 0},
11660 {0x119, 0, 0},
11661 {0x11A, 0, 0},
11662 {0x11B, 0x87, 0},
11663 {0x11C, 0x11, 0},
11664 {0x11D, 0, 0},
11665 {0x11E, 0x33, 0},
11666 {0x11F, 0x88, 0},
11667 {0x120, 0, 0},
11668 {0x121, 0x87, 0},
11669 {0x122, 0x11, 0},
11670 {0x123, 0, 0},
11671 {0x124, 0x33, 0},
11672 {0x125, 0x88, 0},
11673 {0x126, 0xe1, 0},
11674 {0x127, 0x3f, 0},
11675 {0x128, 0x44, 0},
11676 {0x129, 0x8c, 1},
11677 {0x12A, 0x6d, 0},
11678 {0x12B, 0x22, 0},
11679 {0x12C, 0xbe, 0},
11680 {0x12D, 0x55, 1},
11681 {0x12E, 0xc, 0},
11682 {0x12F, 0xc, 0},
11683 {0x130, 0xaa, 0},
11684 {0x131, 0x2, 0},
11685 {0x132, 0, 0},
11686 {0x133, 0x10, 0},
11687 {0x134, 0x1, 1},
11688 {0x135, 0, 0},
11689 {0x136, 0, 0},
11690 {0x137, 0x80, 0},
11691 {0x138, 0x60, 0},
11692 {0x139, 0x44, 0},
11693 {0x13A, 0x55, 0},
11694 {0x13B, 0x1, 0},
11695 {0x13C, 0x55, 0},
11696 {0x13D, 0x1, 0},
11697 {0x13E, 0x5, 0},
11698 {0x13F, 0x55, 0},
11699 {0x140, 0x55, 0},
11700 {0x146, 0, 0},
11701 {0x147, 0, 0},
11702 {0x148, 0, 0},
11703 {0x149, 0, 0},
11704 {0x14A, 0, 0},
11705 {0x14B, 0, 0},
11706 {0x14C, 0, 0},
11707 {0x14D, 0, 0},
11708 {0x14E, 0, 0},
11709 {0x14F, 0, 0},
11710 {0x150, 0, 0},
11711 {0x151, 0, 0},
11712 {0x152, 0, 0},
11713 {0x153, 0, 0},
11714 {0x154, 0xc, 0},
11715 {0x155, 0xc, 0},
11716 {0x156, 0xc, 0},
11717 {0x157, 0, 0},
11718 {0x158, 0x2b, 0},
11719 {0x159, 0x84, 0},
11720 {0x15A, 0x15, 0},
11721 {0x15B, 0xf, 0},
11722 {0x15C, 0, 0},
11723 {0x15D, 0, 0},
11724 {0x15E, 0, 1},
11725 {0x15F, 0, 1},
11726 {0x160, 0, 1},
11727 {0x161, 0, 1},
11728 {0x162, 0, 1},
11729 {0x163, 0, 1},
11730 {0x164, 0, 0},
11731 {0x165, 0, 0},
11732 {0x166, 0, 0},
11733 {0x167, 0, 0},
11734 {0x168, 0, 0},
11735 {0x169, 0x2, 1},
11736 {0x16A, 0, 1},
11737 {0x16B, 0, 1},
11738 {0x16C, 0, 1},
11739 {0x16D, 0, 0},
11740 {0x170, 0, 0},
11741 {0x171, 0x77, 0},
11742 {0x172, 0x77, 0},
11743 {0x173, 0x77, 0},
11744 {0x174, 0x77, 0},
11745 {0x175, 0, 0},
11746 {0x176, 0x3, 0},
11747 {0x177, 0x37, 0},
11748 {0x178, 0x3, 0},
11749 {0x179, 0, 0},
11750 {0x17A, 0x21, 0},
11751 {0x17B, 0x21, 0},
11752 {0x17C, 0, 0},
11753 {0x17D, 0xaa, 0},
11754 {0x17E, 0, 0},
11755 {0x17F, 0xaa, 0},
11756 {0x180, 0, 0},
11757 {0x190, 0, 0},
11758 {0x191, 0x77, 0},
11759 {0x192, 0x77, 0},
11760 {0x193, 0x77, 0},
11761 {0x194, 0x77, 0},
11762 {0x195, 0, 0},
11763 {0x196, 0x3, 0},
11764 {0x197, 0x37, 0},
11765 {0x198, 0x3, 0},
11766 {0x199, 0, 0},
11767 {0x19A, 0x21, 0},
11768 {0x19B, 0x21, 0},
11769 {0x19C, 0, 0},
11770 {0x19D, 0xaa, 0},
11771 {0x19E, 0, 0},
11772 {0x19F, 0xaa, 0},
11773 {0x1A0, 0, 0},
11774 {0x1A1, 0x2, 0},
11775 {0x1A2, 0xf, 0},
11776 {0x1A3, 0xf, 0},
11777 {0x1A4, 0, 1},
11778 {0x1A5, 0, 1},
11779 {0x1A6, 0, 1},
11780 {0x1A7, 0x2, 0},
11781 {0x1A8, 0xf, 0},
11782 {0x1A9, 0xf, 0},
11783 {0x1AA, 0, 1},
11784 {0x1AB, 0, 1},
11785 {0x1AC, 0, 1},
11786 {0xFFFF, 0, 0},
11787 };
11788
11789 radio_20xx_regs_t regs_2057_rev5[] = {
11790 {0x00, 0, 1},
11791 {0x01, 0x57, 1},
11792 {0x02, 0x20, 1},
11793 {0x03, 0x1f, 0},
11794 {0x04, 0x4, 0},
11795 {0x05, 0x2, 0},
11796 {0x06, 0x1, 0},
11797 {0x07, 0x1, 0},
11798 {0x08, 0x1, 0},
11799 {0x09, 0x69, 0},
11800 {0x0A, 0x66, 0},
11801 {0x0B, 0x6, 0},
11802 {0x0C, 0x18, 0},
11803 {0x0D, 0x3, 0},
11804 {0x0E, 0x20, 0},
11805 {0x0F, 0x20, 0},
11806 {0x10, 0, 0},
11807 {0x11, 0x7c, 0},
11808 {0x12, 0x42, 0},
11809 {0x13, 0xbd, 0},
11810 {0x14, 0x7, 0},
11811 {0x15, 0x87, 0},
11812 {0x16, 0x8, 0},
11813 {0x17, 0x17, 0},
11814 {0x18, 0x7, 0},
11815 {0x19, 0, 0},
11816 {0x1A, 0x2, 0},
11817 {0x1B, 0x13, 0},
11818 {0x1C, 0x3e, 0},
11819 {0x1D, 0x3e, 0},
11820 {0x1E, 0x96, 0},
11821 {0x1F, 0x4, 0},
11822 {0x20, 0, 0},
11823 {0x21, 0, 0},
11824 {0x22, 0x17, 0},
11825 {0x23, 0x6, 1},
11826 {0x24, 0x1, 0},
11827 {0x25, 0x6, 0},
11828 {0x26, 0x4, 0},
11829 {0x27, 0xd, 0},
11830 {0x28, 0xd, 0},
11831 {0x29, 0x30, 0},
11832 {0x2A, 0x32, 0},
11833 {0x2B, 0x8, 0},
11834 {0x2C, 0x1c, 0},
11835 {0x2D, 0x2, 0},
11836 {0x2E, 0x4, 0},
11837 {0x2F, 0x7f, 0},
11838 {0x30, 0x27, 0},
11839 {0x31, 0, 1},
11840 {0x32, 0, 1},
11841 {0x33, 0, 1},
11842 {0x34, 0, 0},
11843 {0x35, 0x20, 0},
11844 {0x36, 0x18, 0},
11845 {0x37, 0x7, 0},
11846 {0x38, 0x66, 0},
11847 {0x39, 0x66, 0},
11848 {0x3C, 0xff, 0},
11849 {0x3D, 0xff, 0},
11850 {0x40, 0x16, 0},
11851 {0x41, 0x7, 0},
11852 {0x45, 0x3, 0},
11853 {0x46, 0x1, 0},
11854 {0x47, 0x7, 0},
11855 {0x4B, 0x66, 0},
11856 {0x4C, 0x66, 0},
11857 {0x4D, 0, 0},
11858 {0x4E, 0x4, 0},
11859 {0x4F, 0xc, 0},
11860 {0x50, 0, 0},
11861 {0x51, 0x70, 1},
11862 {0x56, 0x7, 0},
11863 {0x57, 0, 0},
11864 {0x58, 0, 0},
11865 {0x59, 0x88, 1},
11866 {0x5A, 0, 0},
11867 {0x5B, 0x1f, 0},
11868 {0x5C, 0x20, 1},
11869 {0x5D, 0x1, 0},
11870 {0x5E, 0x30, 0},
11871 {0x5F, 0x70, 0},
11872 {0x60, 0, 0},
11873 {0x61, 0, 0},
11874 {0x62, 0x33, 1},
11875 {0x63, 0xf, 1},
11876 {0x64, 0xf, 1},
11877 {0x65, 0, 0},
11878 {0x66, 0x11, 0},
11879 {0x80, 0x3c, 0},
11880 {0x81, 0x1, 1},
11881 {0x82, 0xa, 0},
11882 {0x85, 0, 0},
11883 {0x86, 0x40, 0},
11884 {0x87, 0x40, 0},
11885 {0x88, 0x88, 0},
11886 {0x89, 0x10, 0},
11887 {0x8A, 0xf0, 0},
11888 {0x8B, 0x10, 0},
11889 {0x8C, 0xf0, 0},
11890 {0x8F, 0x10, 0},
11891 {0x90, 0x55, 0},
11892 {0x91, 0x3f, 1},
11893 {0x92, 0x36, 1},
11894 {0x93, 0, 0},
11895 {0x94, 0, 0},
11896 {0x95, 0, 0},
11897 {0x96, 0x87, 0},
11898 {0x97, 0x11, 0},
11899 {0x98, 0, 0},
11900 {0x99, 0x33, 0},
11901 {0x9A, 0x88, 0},
11902 {0xA1, 0x20, 1},
11903 {0xA2, 0x3f, 0},
11904 {0xA3, 0x44, 0},
11905 {0xA4, 0x8c, 0},
11906 {0xA5, 0x6c, 0},
11907 {0xA6, 0x22, 0},
11908 {0xA7, 0xbe, 0},
11909 {0xA8, 0x55, 0},
11910 {0xAA, 0xc, 0},
11911 {0xAB, 0xaa, 0},
11912 {0xAC, 0x2, 0},
11913 {0xAD, 0, 0},
11914 {0xAE, 0x10, 0},
11915 {0xAF, 0x1, 0},
11916 {0xB0, 0, 0},
11917 {0xB1, 0, 0},
11918 {0xB2, 0x80, 0},
11919 {0xB3, 0x60, 0},
11920 {0xB4, 0x44, 0},
11921 {0xB5, 0x55, 0},
11922 {0xB6, 0x1, 0},
11923 {0xB7, 0x55, 0},
11924 {0xB8, 0x1, 0},
11925 {0xB9, 0x5, 0},
11926 {0xBA, 0x55, 0},
11927 {0xBB, 0x55, 0},
11928 {0xC3, 0, 0},
11929 {0xC4, 0, 0},
11930 {0xC5, 0, 0},
11931 {0xC6, 0, 0},
11932 {0xC7, 0, 0},
11933 {0xC8, 0, 0},
11934 {0xC9, 0, 0},
11935 {0xCA, 0, 0},
11936 {0xCB, 0, 0},
11937 {0xCD, 0, 0},
11938 {0xCE, 0x5e, 0},
11939 {0xCF, 0xc, 0},
11940 {0xD0, 0xc, 0},
11941 {0xD1, 0xc, 0},
11942 {0xD2, 0, 0},
11943 {0xD3, 0x2b, 0},
11944 {0xD4, 0xc, 0},
11945 {0xD5, 0, 0},
11946 {0xD6, 0x70, 1},
11947 {0xDB, 0x7, 0},
11948 {0xDC, 0, 0},
11949 {0xDD, 0, 0},
11950 {0xDE, 0x88, 1},
11951 {0xDF, 0, 0},
11952 {0xE0, 0x1f, 0},
11953 {0xE1, 0x20, 1},
11954 {0xE2, 0x1, 0},
11955 {0xE3, 0x30, 0},
11956 {0xE4, 0x70, 0},
11957 {0xE5, 0, 0},
11958 {0xE6, 0, 0},
11959 {0xE7, 0x33, 0},
11960 {0xE8, 0xf, 1},
11961 {0xE9, 0xf, 1},
11962 {0xEA, 0, 0},
11963 {0xEB, 0x11, 0},
11964 {0x105, 0x3c, 0},
11965 {0x106, 0x1, 1},
11966 {0x107, 0xa, 0},
11967 {0x10A, 0, 0},
11968 {0x10B, 0x40, 0},
11969 {0x10C, 0x40, 0},
11970 {0x10D, 0x88, 0},
11971 {0x10E, 0x10, 0},
11972 {0x10F, 0xf0, 0},
11973 {0x110, 0x10, 0},
11974 {0x111, 0xf0, 0},
11975 {0x114, 0x10, 0},
11976 {0x115, 0x55, 0},
11977 {0x116, 0x3f, 1},
11978 {0x117, 0x36, 1},
11979 {0x118, 0, 0},
11980 {0x119, 0, 0},
11981 {0x11A, 0, 0},
11982 {0x11B, 0x87, 0},
11983 {0x11C, 0x11, 0},
11984 {0x11D, 0, 0},
11985 {0x11E, 0x33, 0},
11986 {0x11F, 0x88, 0},
11987 {0x126, 0x20, 1},
11988 {0x127, 0x3f, 0},
11989 {0x128, 0x44, 0},
11990 {0x129, 0x8c, 0},
11991 {0x12A, 0x6c, 0},
11992 {0x12B, 0x22, 0},
11993 {0x12C, 0xbe, 0},
11994 {0x12D, 0x55, 0},
11995 {0x12F, 0xc, 0},
11996 {0x130, 0xaa, 0},
11997 {0x131, 0x2, 0},
11998 {0x132, 0, 0},
11999 {0x133, 0x10, 0},
12000 {0x134, 0x1, 0},
12001 {0x135, 0, 0},
12002 {0x136, 0, 0},
12003 {0x137, 0x80, 0},
12004 {0x138, 0x60, 0},
12005 {0x139, 0x44, 0},
12006 {0x13A, 0x55, 0},
12007 {0x13B, 0x1, 0},
12008 {0x13C, 0x55, 0},
12009 {0x13D, 0x1, 0},
12010 {0x13E, 0x5, 0},
12011 {0x13F, 0x55, 0},
12012 {0x140, 0x55, 0},
12013 {0x148, 0, 0},
12014 {0x149, 0, 0},
12015 {0x14A, 0, 0},
12016 {0x14B, 0, 0},
12017 {0x14C, 0, 0},
12018 {0x14D, 0, 0},
12019 {0x14E, 0, 0},
12020 {0x14F, 0, 0},
12021 {0x150, 0, 0},
12022 {0x154, 0xc, 0},
12023 {0x155, 0xc, 0},
12024 {0x156, 0xc, 0},
12025 {0x157, 0, 0},
12026 {0x158, 0x2b, 0},
12027 {0x159, 0x84, 0},
12028 {0x15A, 0x15, 0},
12029 {0x15B, 0xf, 0},
12030 {0x15C, 0, 0},
12031 {0x15D, 0, 0},
12032 {0x15E, 0, 1},
12033 {0x15F, 0, 1},
12034 {0x160, 0, 1},
12035 {0x161, 0, 1},
12036 {0x162, 0, 1},
12037 {0x163, 0, 1},
12038 {0x164, 0, 0},
12039 {0x165, 0, 0},
12040 {0x166, 0, 0},
12041 {0x167, 0, 0},
12042 {0x168, 0, 0},
12043 {0x169, 0, 0},
12044 {0x16A, 0, 1},
12045 {0x16B, 0, 1},
12046 {0x16C, 0, 1},
12047 {0x16D, 0, 0},
12048 {0x170, 0, 0},
12049 {0x171, 0x77, 0},
12050 {0x172, 0x77, 0},
12051 {0x173, 0x77, 0},
12052 {0x174, 0x77, 0},
12053 {0x175, 0, 0},
12054 {0x176, 0x3, 0},
12055 {0x177, 0x37, 0},
12056 {0x178, 0x3, 0},
12057 {0x179, 0, 0},
12058 {0x17B, 0x21, 0},
12059 {0x17C, 0, 0},
12060 {0x17D, 0xaa, 0},
12061 {0x17E, 0, 0},
12062 {0x190, 0, 0},
12063 {0x191, 0x77, 0},
12064 {0x192, 0x77, 0},
12065 {0x193, 0x77, 0},
12066 {0x194, 0x77, 0},
12067 {0x195, 0, 0},
12068 {0x196, 0x3, 0},
12069 {0x197, 0x37, 0},
12070 {0x198, 0x3, 0},
12071 {0x199, 0, 0},
12072 {0x19B, 0x21, 0},
12073 {0x19C, 0, 0},
12074 {0x19D, 0xaa, 0},
12075 {0x19E, 0, 0},
12076 {0x1A1, 0x2, 0},
12077 {0x1A2, 0xf, 0},
12078 {0x1A3, 0xf, 0},
12079 {0x1A4, 0, 1},
12080 {0x1A5, 0, 1},
12081 {0x1A6, 0, 1},
12082 {0x1A7, 0x2, 0},
12083 {0x1A8, 0xf, 0},
12084 {0x1A9, 0xf, 0},
12085 {0x1AA, 0, 1},
12086 {0x1AB, 0, 1},
12087 {0x1AC, 0, 1},
12088 {0x1AD, 0x84, 0},
12089 {0x1AE, 0x60, 0},
12090 {0x1AF, 0x47, 0},
12091 {0x1B0, 0x47, 0},
12092 {0x1B1, 0, 0},
12093 {0x1B2, 0, 0},
12094 {0x1B3, 0, 0},
12095 {0x1B4, 0, 0},
12096 {0x1B5, 0, 0},
12097 {0x1B6, 0, 0},
12098 {0x1B7, 0xc, 1},
12099 {0x1B8, 0, 0},
12100 {0x1B9, 0, 0},
12101 {0x1BA, 0, 0},
12102 {0x1BB, 0, 0},
12103 {0x1BC, 0, 0},
12104 {0x1BD, 0, 0},
12105 {0x1BE, 0, 0},
12106 {0x1BF, 0, 0},
12107 {0x1C0, 0, 0},
12108 {0x1C1, 0x1, 1},
12109 {0x1C2, 0x80, 1},
12110 {0x1C3, 0, 0},
12111 {0x1C4, 0, 0},
12112 {0x1C5, 0, 0},
12113 {0x1C6, 0, 0},
12114 {0x1C7, 0, 0},
12115 {0x1C8, 0, 0},
12116 {0x1C9, 0, 0},
12117 {0x1CA, 0, 0},
12118 {0xFFFF, 0, 0}
12119 };
12120
12121 radio_20xx_regs_t regs_2057_rev5v1[] = {
12122 {0x00, 0x15, 1},
12123 {0x01, 0x57, 1},
12124 {0x02, 0x20, 1},
12125 {0x03, 0x1f, 0},
12126 {0x04, 0x4, 0},
12127 {0x05, 0x2, 0},
12128 {0x06, 0x1, 0},
12129 {0x07, 0x1, 0},
12130 {0x08, 0x1, 0},
12131 {0x09, 0x69, 0},
12132 {0x0A, 0x66, 0},
12133 {0x0B, 0x6, 0},
12134 {0x0C, 0x18, 0},
12135 {0x0D, 0x3, 0},
12136 {0x0E, 0x20, 0},
12137 {0x0F, 0x20, 0},
12138 {0x10, 0, 0},
12139 {0x11, 0x7c, 0},
12140 {0x12, 0x42, 0},
12141 {0x13, 0xbd, 0},
12142 {0x14, 0x7, 0},
12143 {0x15, 0x87, 0},
12144 {0x16, 0x8, 0},
12145 {0x17, 0x17, 0},
12146 {0x18, 0x7, 0},
12147 {0x19, 0, 0},
12148 {0x1A, 0x2, 0},
12149 {0x1B, 0x13, 0},
12150 {0x1C, 0x3e, 0},
12151 {0x1D, 0x3e, 0},
12152 {0x1E, 0x96, 0},
12153 {0x1F, 0x4, 0},
12154 {0x20, 0, 0},
12155 {0x21, 0, 0},
12156 {0x22, 0x17, 0},
12157 {0x23, 0x6, 1},
12158 {0x24, 0x1, 0},
12159 {0x25, 0x6, 0},
12160 {0x26, 0x4, 0},
12161 {0x27, 0xd, 0},
12162 {0x28, 0xd, 0},
12163 {0x29, 0x30, 0},
12164 {0x2A, 0x32, 0},
12165 {0x2B, 0x8, 0},
12166 {0x2C, 0x1c, 0},
12167 {0x2D, 0x2, 0},
12168 {0x2E, 0x4, 0},
12169 {0x2F, 0x7f, 0},
12170 {0x30, 0x27, 0},
12171 {0x31, 0, 1},
12172 {0x32, 0, 1},
12173 {0x33, 0, 1},
12174 {0x34, 0, 0},
12175 {0x35, 0x20, 0},
12176 {0x36, 0x18, 0},
12177 {0x37, 0x7, 0},
12178 {0x38, 0x66, 0},
12179 {0x39, 0x66, 0},
12180 {0x3C, 0xff, 0},
12181 {0x3D, 0xff, 0},
12182 {0x40, 0x16, 0},
12183 {0x41, 0x7, 0},
12184 {0x45, 0x3, 0},
12185 {0x46, 0x1, 0},
12186 {0x47, 0x7, 0},
12187 {0x4B, 0x66, 0},
12188 {0x4C, 0x66, 0},
12189 {0x4D, 0, 0},
12190 {0x4E, 0x4, 0},
12191 {0x4F, 0xc, 0},
12192 {0x50, 0, 0},
12193 {0x51, 0x70, 1},
12194 {0x56, 0x7, 0},
12195 {0x57, 0, 0},
12196 {0x58, 0, 0},
12197 {0x59, 0x88, 1},
12198 {0x5A, 0, 0},
12199 {0x5B, 0x1f, 0},
12200 {0x5C, 0x20, 1},
12201 {0x5D, 0x1, 0},
12202 {0x5E, 0x30, 0},
12203 {0x5F, 0x70, 0},
12204 {0x60, 0, 0},
12205 {0x61, 0, 0},
12206 {0x62, 0x33, 1},
12207 {0x63, 0xf, 1},
12208 {0x64, 0xf, 1},
12209 {0x65, 0, 0},
12210 {0x66, 0x11, 0},
12211 {0x80, 0x3c, 0},
12212 {0x81, 0x1, 1},
12213 {0x82, 0xa, 0},
12214 {0x85, 0, 0},
12215 {0x86, 0x40, 0},
12216 {0x87, 0x40, 0},
12217 {0x88, 0x88, 0},
12218 {0x89, 0x10, 0},
12219 {0x8A, 0xf0, 0},
12220 {0x8B, 0x10, 0},
12221 {0x8C, 0xf0, 0},
12222 {0x8F, 0x10, 0},
12223 {0x90, 0x55, 0},
12224 {0x91, 0x3f, 1},
12225 {0x92, 0x36, 1},
12226 {0x93, 0, 0},
12227 {0x94, 0, 0},
12228 {0x95, 0, 0},
12229 {0x96, 0x87, 0},
12230 {0x97, 0x11, 0},
12231 {0x98, 0, 0},
12232 {0x99, 0x33, 0},
12233 {0x9A, 0x88, 0},
12234 {0xA1, 0x20, 1},
12235 {0xA2, 0x3f, 0},
12236 {0xA3, 0x44, 0},
12237 {0xA4, 0x8c, 0},
12238 {0xA5, 0x6c, 0},
12239 {0xA6, 0x22, 0},
12240 {0xA7, 0xbe, 0},
12241 {0xA8, 0x55, 0},
12242 {0xAA, 0xc, 0},
12243 {0xAB, 0xaa, 0},
12244 {0xAC, 0x2, 0},
12245 {0xAD, 0, 0},
12246 {0xAE, 0x10, 0},
12247 {0xAF, 0x1, 0},
12248 {0xB0, 0, 0},
12249 {0xB1, 0, 0},
12250 {0xB2, 0x80, 0},
12251 {0xB3, 0x60, 0},
12252 {0xB4, 0x44, 0},
12253 {0xB5, 0x55, 0},
12254 {0xB6, 0x1, 0},
12255 {0xB7, 0x55, 0},
12256 {0xB8, 0x1, 0},
12257 {0xB9, 0x5, 0},
12258 {0xBA, 0x55, 0},
12259 {0xBB, 0x55, 0},
12260 {0xC3, 0, 0},
12261 {0xC4, 0, 0},
12262 {0xC5, 0, 0},
12263 {0xC6, 0, 0},
12264 {0xC7, 0, 0},
12265 {0xC8, 0, 0},
12266 {0xC9, 0x1, 1},
12267 {0xCA, 0, 0},
12268 {0xCB, 0, 0},
12269 {0xCD, 0, 0},
12270 {0xCE, 0x5e, 0},
12271 {0xCF, 0xc, 0},
12272 {0xD0, 0xc, 0},
12273 {0xD1, 0xc, 0},
12274 {0xD2, 0, 0},
12275 {0xD3, 0x2b, 0},
12276 {0xD4, 0xc, 0},
12277 {0xD5, 0, 0},
12278 {0xD6, 0x70, 1},
12279 {0xDB, 0x7, 0},
12280 {0xDC, 0, 0},
12281 {0xDD, 0, 0},
12282 {0xDE, 0x88, 1},
12283 {0xDF, 0, 0},
12284 {0xE0, 0x1f, 0},
12285 {0xE1, 0x20, 1},
12286 {0xE2, 0x1, 0},
12287 {0xE3, 0x30, 0},
12288 {0xE4, 0x70, 0},
12289 {0xE5, 0, 0},
12290 {0xE6, 0, 0},
12291 {0xE7, 0x33, 0},
12292 {0xE8, 0xf, 1},
12293 {0xE9, 0xf, 1},
12294 {0xEA, 0, 0},
12295 {0xEB, 0x11, 0},
12296 {0x105, 0x3c, 0},
12297 {0x106, 0x1, 1},
12298 {0x107, 0xa, 0},
12299 {0x10A, 0, 0},
12300 {0x10B, 0x40, 0},
12301 {0x10C, 0x40, 0},
12302 {0x10D, 0x88, 0},
12303 {0x10E, 0x10, 0},
12304 {0x10F, 0xf0, 0},
12305 {0x110, 0x10, 0},
12306 {0x111, 0xf0, 0},
12307 {0x114, 0x10, 0},
12308 {0x115, 0x55, 0},
12309 {0x116, 0x3f, 1},
12310 {0x117, 0x36, 1},
12311 {0x118, 0, 0},
12312 {0x119, 0, 0},
12313 {0x11A, 0, 0},
12314 {0x11B, 0x87, 0},
12315 {0x11C, 0x11, 0},
12316 {0x11D, 0, 0},
12317 {0x11E, 0x33, 0},
12318 {0x11F, 0x88, 0},
12319 {0x126, 0x20, 1},
12320 {0x127, 0x3f, 0},
12321 {0x128, 0x44, 0},
12322 {0x129, 0x8c, 0},
12323 {0x12A, 0x6c, 0},
12324 {0x12B, 0x22, 0},
12325 {0x12C, 0xbe, 0},
12326 {0x12D, 0x55, 0},
12327 {0x12F, 0xc, 0},
12328 {0x130, 0xaa, 0},
12329 {0x131, 0x2, 0},
12330 {0x132, 0, 0},
12331 {0x133, 0x10, 0},
12332 {0x134, 0x1, 0},
12333 {0x135, 0, 0},
12334 {0x136, 0, 0},
12335 {0x137, 0x80, 0},
12336 {0x138, 0x60, 0},
12337 {0x139, 0x44, 0},
12338 {0x13A, 0x55, 0},
12339 {0x13B, 0x1, 0},
12340 {0x13C, 0x55, 0},
12341 {0x13D, 0x1, 0},
12342 {0x13E, 0x5, 0},
12343 {0x13F, 0x55, 0},
12344 {0x140, 0x55, 0},
12345 {0x148, 0, 0},
12346 {0x149, 0, 0},
12347 {0x14A, 0, 0},
12348 {0x14B, 0, 0},
12349 {0x14C, 0, 0},
12350 {0x14D, 0, 0},
12351 {0x14E, 0x1, 1},
12352 {0x14F, 0, 0},
12353 {0x150, 0, 0},
12354 {0x154, 0xc, 0},
12355 {0x155, 0xc, 0},
12356 {0x156, 0xc, 0},
12357 {0x157, 0, 0},
12358 {0x158, 0x2b, 0},
12359 {0x159, 0x84, 0},
12360 {0x15A, 0x15, 0},
12361 {0x15B, 0xf, 0},
12362 {0x15C, 0, 0},
12363 {0x15D, 0, 0},
12364 {0x15E, 0, 1},
12365 {0x15F, 0, 1},
12366 {0x160, 0, 1},
12367 {0x161, 0, 1},
12368 {0x162, 0, 1},
12369 {0x163, 0, 1},
12370 {0x164, 0, 0},
12371 {0x165, 0, 0},
12372 {0x166, 0, 0},
12373 {0x167, 0, 0},
12374 {0x168, 0, 0},
12375 {0x169, 0, 0},
12376 {0x16A, 0, 1},
12377 {0x16B, 0, 1},
12378 {0x16C, 0, 1},
12379 {0x16D, 0, 0},
12380 {0x170, 0, 0},
12381 {0x171, 0x77, 0},
12382 {0x172, 0x77, 0},
12383 {0x173, 0x77, 0},
12384 {0x174, 0x77, 0},
12385 {0x175, 0, 0},
12386 {0x176, 0x3, 0},
12387 {0x177, 0x37, 0},
12388 {0x178, 0x3, 0},
12389 {0x179, 0, 0},
12390 {0x17B, 0x21, 0},
12391 {0x17C, 0, 0},
12392 {0x17D, 0xaa, 0},
12393 {0x17E, 0, 0},
12394 {0x190, 0, 0},
12395 {0x191, 0x77, 0},
12396 {0x192, 0x77, 0},
12397 {0x193, 0x77, 0},
12398 {0x194, 0x77, 0},
12399 {0x195, 0, 0},
12400 {0x196, 0x3, 0},
12401 {0x197, 0x37, 0},
12402 {0x198, 0x3, 0},
12403 {0x199, 0, 0},
12404 {0x19B, 0x21, 0},
12405 {0x19C, 0, 0},
12406 {0x19D, 0xaa, 0},
12407 {0x19E, 0, 0},
12408 {0x1A1, 0x2, 0},
12409 {0x1A2, 0xf, 0},
12410 {0x1A3, 0xf, 0},
12411 {0x1A4, 0, 1},
12412 {0x1A5, 0, 1},
12413 {0x1A6, 0, 1},
12414 {0x1A7, 0x2, 0},
12415 {0x1A8, 0xf, 0},
12416 {0x1A9, 0xf, 0},
12417 {0x1AA, 0, 1},
12418 {0x1AB, 0, 1},
12419 {0x1AC, 0, 1},
12420 {0x1AD, 0x84, 0},
12421 {0x1AE, 0x60, 0},
12422 {0x1AF, 0x47, 0},
12423 {0x1B0, 0x47, 0},
12424 {0x1B1, 0, 0},
12425 {0x1B2, 0, 0},
12426 {0x1B3, 0, 0},
12427 {0x1B4, 0, 0},
12428 {0x1B5, 0, 0},
12429 {0x1B6, 0, 0},
12430 {0x1B7, 0xc, 1},
12431 {0x1B8, 0, 0},
12432 {0x1B9, 0, 0},
12433 {0x1BA, 0, 0},
12434 {0x1BB, 0, 0},
12435 {0x1BC, 0, 0},
12436 {0x1BD, 0, 0},
12437 {0x1BE, 0, 0},
12438 {0x1BF, 0, 0},
12439 {0x1C0, 0, 0},
12440 {0x1C1, 0x1, 1},
12441 {0x1C2, 0x80, 1},
12442 {0x1C3, 0, 0},
12443 {0x1C4, 0, 0},
12444 {0x1C5, 0, 0},
12445 {0x1C6, 0, 0},
12446 {0x1C7, 0, 0},
12447 {0x1C8, 0, 0},
12448 {0x1C9, 0, 0},
12449 {0x1CA, 0, 0},
12450 {0xFFFF, 0, 0}
12451 };
12452
12453 radio_20xx_regs_t regs_2057_rev7[] = {
12454 {0x00, 0, 1},
12455 {0x01, 0x57, 1},
12456 {0x02, 0x20, 1},
12457 {0x03, 0x1f, 0},
12458 {0x04, 0x4, 0},
12459 {0x05, 0x2, 0},
12460 {0x06, 0x1, 0},
12461 {0x07, 0x1, 0},
12462 {0x08, 0x1, 0},
12463 {0x09, 0x69, 0},
12464 {0x0A, 0x66, 0},
12465 {0x0B, 0x6, 0},
12466 {0x0C, 0x18, 0},
12467 {0x0D, 0x3, 0},
12468 {0x0E, 0x20, 0},
12469 {0x0F, 0x20, 0},
12470 {0x10, 0, 0},
12471 {0x11, 0x7c, 0},
12472 {0x12, 0x42, 0},
12473 {0x13, 0xbd, 0},
12474 {0x14, 0x7, 0},
12475 {0x15, 0x87, 0},
12476 {0x16, 0x8, 0},
12477 {0x17, 0x17, 0},
12478 {0x18, 0x7, 0},
12479 {0x19, 0, 0},
12480 {0x1A, 0x2, 0},
12481 {0x1B, 0x13, 0},
12482 {0x1C, 0x3e, 0},
12483 {0x1D, 0x3e, 0},
12484 {0x1E, 0x96, 0},
12485 {0x1F, 0x4, 0},
12486 {0x20, 0, 0},
12487 {0x21, 0, 0},
12488 {0x22, 0x17, 0},
12489 {0x23, 0x6, 0},
12490 {0x24, 0x1, 0},
12491 {0x25, 0x6, 0},
12492 {0x26, 0x4, 0},
12493 {0x27, 0xd, 0},
12494 {0x28, 0xd, 0},
12495 {0x29, 0x30, 0},
12496 {0x2A, 0x32, 0},
12497 {0x2B, 0x8, 0},
12498 {0x2C, 0x1c, 0},
12499 {0x2D, 0x2, 0},
12500 {0x2E, 0x4, 0},
12501 {0x2F, 0x7f, 0},
12502 {0x30, 0x27, 0},
12503 {0x31, 0, 1},
12504 {0x32, 0, 1},
12505 {0x33, 0, 1},
12506 {0x34, 0, 0},
12507 {0x35, 0x20, 0},
12508 {0x36, 0x18, 0},
12509 {0x37, 0x7, 0},
12510 {0x38, 0x66, 0},
12511 {0x39, 0x66, 0},
12512 {0x3A, 0x66, 0},
12513 {0x3B, 0x66, 0},
12514 {0x3C, 0xff, 0},
12515 {0x3D, 0xff, 0},
12516 {0x3E, 0xff, 0},
12517 {0x3F, 0xff, 0},
12518 {0x40, 0x16, 0},
12519 {0x41, 0x7, 0},
12520 {0x42, 0x19, 0},
12521 {0x43, 0x7, 0},
12522 {0x44, 0x6, 0},
12523 {0x45, 0x3, 0},
12524 {0x46, 0x1, 0},
12525 {0x47, 0x7, 0},
12526 {0x48, 0x33, 0},
12527 {0x49, 0x5, 0},
12528 {0x4A, 0x77, 0},
12529 {0x4B, 0x66, 0},
12530 {0x4C, 0x66, 0},
12531 {0x4D, 0, 0},
12532 {0x4E, 0x4, 0},
12533 {0x4F, 0xc, 0},
12534 {0x50, 0, 0},
12535 {0x51, 0x70, 1},
12536 {0x56, 0x7, 0},
12537 {0x57, 0, 0},
12538 {0x58, 0, 0},
12539 {0x59, 0x88, 1},
12540 {0x5A, 0, 0},
12541 {0x5B, 0x1f, 0},
12542 {0x5C, 0x20, 1},
12543 {0x5D, 0x1, 0},
12544 {0x5E, 0x30, 0},
12545 {0x5F, 0x70, 0},
12546 {0x60, 0, 0},
12547 {0x61, 0, 0},
12548 {0x62, 0x33, 1},
12549 {0x63, 0xf, 1},
12550 {0x64, 0x13, 1},
12551 {0x65, 0, 0},
12552 {0x66, 0xee, 1},
12553 {0x69, 0, 0},
12554 {0x6A, 0x7e, 0},
12555 {0x6B, 0x3f, 0},
12556 {0x6C, 0x7f, 0},
12557 {0x6D, 0x78, 0},
12558 {0x6E, 0x58, 1},
12559 {0x6F, 0x88, 0},
12560 {0x70, 0x8, 0},
12561 {0x71, 0xf, 0},
12562 {0x72, 0xbc, 0},
12563 {0x73, 0x8, 0},
12564 {0x74, 0x60, 0},
12565 {0x75, 0x13, 1},
12566 {0x76, 0x70, 0},
12567 {0x77, 0, 0},
12568 {0x78, 0, 0},
12569 {0x79, 0, 0},
12570 {0x7A, 0x33, 0},
12571 {0x7B, 0x13, 1},
12572 {0x7C, 0x14, 1},
12573 {0x7D, 0xee, 1},
12574 {0x80, 0x3c, 0},
12575 {0x81, 0x1, 1},
12576 {0x82, 0xa, 0},
12577 {0x83, 0x9d, 0},
12578 {0x84, 0xa, 0},
12579 {0x85, 0, 0},
12580 {0x86, 0x40, 0},
12581 {0x87, 0x40, 0},
12582 {0x88, 0x88, 0},
12583 {0x89, 0x10, 0},
12584 {0x8A, 0xf0, 0},
12585 {0x8B, 0x10, 0},
12586 {0x8C, 0xf0, 0},
12587 {0x8D, 0, 0},
12588 {0x8E, 0, 0},
12589 {0x8F, 0x10, 0},
12590 {0x90, 0x55, 0},
12591 {0x91, 0x3f, 1},
12592 {0x92, 0x36, 1},
12593 {0x93, 0, 0},
12594 {0x94, 0, 0},
12595 {0x95, 0, 0},
12596 {0x96, 0x87, 0},
12597 {0x97, 0x11, 0},
12598 {0x98, 0, 0},
12599 {0x99, 0x33, 0},
12600 {0x9A, 0x88, 0},
12601 {0x9B, 0, 0},
12602 {0x9C, 0x87, 0},
12603 {0x9D, 0x11, 0},
12604 {0x9E, 0, 0},
12605 {0x9F, 0x33, 0},
12606 {0xA0, 0x88, 0},
12607 {0xA1, 0x20, 1},
12608 {0xA2, 0x3f, 0},
12609 {0xA3, 0x44, 0},
12610 {0xA4, 0x8c, 0},
12611 {0xA5, 0x6c, 0},
12612 {0xA6, 0x22, 0},
12613 {0xA7, 0xbe, 0},
12614 {0xA8, 0x55, 0},
12615 {0xAA, 0xc, 0},
12616 {0xAB, 0xaa, 0},
12617 {0xAC, 0x2, 0},
12618 {0xAD, 0, 0},
12619 {0xAE, 0x10, 0},
12620 {0xAF, 0x1, 0},
12621 {0xB0, 0, 0},
12622 {0xB1, 0, 0},
12623 {0xB2, 0x80, 0},
12624 {0xB3, 0x60, 0},
12625 {0xB4, 0x44, 0},
12626 {0xB5, 0x55, 0},
12627 {0xB6, 0x1, 0},
12628 {0xB7, 0x55, 0},
12629 {0xB8, 0x1, 0},
12630 {0xB9, 0x5, 0},
12631 {0xBA, 0x55, 0},
12632 {0xBB, 0x55, 0},
12633 {0xC1, 0, 0},
12634 {0xC2, 0, 0},
12635 {0xC3, 0, 0},
12636 {0xC4, 0, 0},
12637 {0xC5, 0, 0},
12638 {0xC6, 0, 0},
12639 {0xC7, 0, 0},
12640 {0xC8, 0, 0},
12641 {0xC9, 0, 0},
12642 {0xCA, 0, 0},
12643 {0xCB, 0, 0},
12644 {0xCC, 0, 0},
12645 {0xCD, 0, 0},
12646 {0xCE, 0x5e, 0},
12647 {0xCF, 0xc, 0},
12648 {0xD0, 0xc, 0},
12649 {0xD1, 0xc, 0},
12650 {0xD2, 0, 0},
12651 {0xD3, 0x2b, 0},
12652 {0xD4, 0xc, 0},
12653 {0xD5, 0, 0},
12654 {0xD6, 0x70, 1},
12655 {0xDB, 0x7, 0},
12656 {0xDC, 0, 0},
12657 {0xDD, 0, 0},
12658 {0xDE, 0x88, 1},
12659 {0xDF, 0, 0},
12660 {0xE0, 0x1f, 0},
12661 {0xE1, 0x20, 1},
12662 {0xE2, 0x1, 0},
12663 {0xE3, 0x30, 0},
12664 {0xE4, 0x70, 0},
12665 {0xE5, 0, 0},
12666 {0xE6, 0, 0},
12667 {0xE7, 0x33, 0},
12668 {0xE8, 0xf, 1},
12669 {0xE9, 0x13, 1},
12670 {0xEA, 0, 0},
12671 {0xEB, 0xee, 1},
12672 {0xEE, 0, 0},
12673 {0xEF, 0x7e, 0},
12674 {0xF0, 0x3f, 0},
12675 {0xF1, 0x7f, 0},
12676 {0xF2, 0x78, 0},
12677 {0xF3, 0x58, 1},
12678 {0xF4, 0x88, 0},
12679 {0xF5, 0x8, 0},
12680 {0xF6, 0xf, 0},
12681 {0xF7, 0xbc, 0},
12682 {0xF8, 0x8, 0},
12683 {0xF9, 0x60, 0},
12684 {0xFA, 0x13, 1},
12685 {0xFB, 0x70, 0},
12686 {0xFC, 0, 0},
12687 {0xFD, 0, 0},
12688 {0xFE, 0, 0},
12689 {0xFF, 0x33, 0},
12690 {0x100, 0x13, 1},
12691 {0x101, 0x14, 1},
12692 {0x102, 0xee, 1},
12693 {0x105, 0x3c, 0},
12694 {0x106, 0x1, 1},
12695 {0x107, 0xa, 0},
12696 {0x108, 0x9d, 0},
12697 {0x109, 0xa, 0},
12698 {0x10A, 0, 0},
12699 {0x10B, 0x40, 0},
12700 {0x10C, 0x40, 0},
12701 {0x10D, 0x88, 0},
12702 {0x10E, 0x10, 0},
12703 {0x10F, 0xf0, 0},
12704 {0x110, 0x10, 0},
12705 {0x111, 0xf0, 0},
12706 {0x112, 0, 0},
12707 {0x113, 0, 0},
12708 {0x114, 0x10, 0},
12709 {0x115, 0x55, 0},
12710 {0x116, 0x3f, 1},
12711 {0x117, 0x36, 1},
12712 {0x118, 0, 0},
12713 {0x119, 0, 0},
12714 {0x11A, 0, 0},
12715 {0x11B, 0x87, 0},
12716 {0x11C, 0x11, 0},
12717 {0x11D, 0, 0},
12718 {0x11E, 0x33, 0},
12719 {0x11F, 0x88, 0},
12720 {0x120, 0, 0},
12721 {0x121, 0x87, 0},
12722 {0x122, 0x11, 0},
12723 {0x123, 0, 0},
12724 {0x124, 0x33, 0},
12725 {0x125, 0x88, 0},
12726 {0x126, 0x20, 1},
12727 {0x127, 0x3f, 0},
12728 {0x128, 0x44, 0},
12729 {0x129, 0x8c, 0},
12730 {0x12A, 0x6c, 0},
12731 {0x12B, 0x22, 0},
12732 {0x12C, 0xbe, 0},
12733 {0x12D, 0x55, 0},
12734 {0x12F, 0xc, 0},
12735 {0x130, 0xaa, 0},
12736 {0x131, 0x2, 0},
12737 {0x132, 0, 0},
12738 {0x133, 0x10, 0},
12739 {0x134, 0x1, 0},
12740 {0x135, 0, 0},
12741 {0x136, 0, 0},
12742 {0x137, 0x80, 0},
12743 {0x138, 0x60, 0},
12744 {0x139, 0x44, 0},
12745 {0x13A, 0x55, 0},
12746 {0x13B, 0x1, 0},
12747 {0x13C, 0x55, 0},
12748 {0x13D, 0x1, 0},
12749 {0x13E, 0x5, 0},
12750 {0x13F, 0x55, 0},
12751 {0x140, 0x55, 0},
12752 {0x146, 0, 0},
12753 {0x147, 0, 0},
12754 {0x148, 0, 0},
12755 {0x149, 0, 0},
12756 {0x14A, 0, 0},
12757 {0x14B, 0, 0},
12758 {0x14C, 0, 0},
12759 {0x14D, 0, 0},
12760 {0x14E, 0, 0},
12761 {0x14F, 0, 0},
12762 {0x150, 0, 0},
12763 {0x151, 0, 0},
12764 {0x154, 0xc, 0},
12765 {0x155, 0xc, 0},
12766 {0x156, 0xc, 0},
12767 {0x157, 0, 0},
12768 {0x158, 0x2b, 0},
12769 {0x159, 0x84, 0},
12770 {0x15A, 0x15, 0},
12771 {0x15B, 0xf, 0},
12772 {0x15C, 0, 0},
12773 {0x15D, 0, 0},
12774 {0x15E, 0, 1},
12775 {0x15F, 0, 1},
12776 {0x160, 0, 1},
12777 {0x161, 0, 1},
12778 {0x162, 0, 1},
12779 {0x163, 0, 1},
12780 {0x164, 0, 0},
12781 {0x165, 0, 0},
12782 {0x166, 0, 0},
12783 {0x167, 0, 0},
12784 {0x168, 0, 0},
12785 {0x169, 0, 0},
12786 {0x16A, 0, 1},
12787 {0x16B, 0, 1},
12788 {0x16C, 0, 1},
12789 {0x16D, 0, 0},
12790 {0x170, 0, 0},
12791 {0x171, 0x77, 0},
12792 {0x172, 0x77, 0},
12793 {0x173, 0x77, 0},
12794 {0x174, 0x77, 0},
12795 {0x175, 0, 0},
12796 {0x176, 0x3, 0},
12797 {0x177, 0x37, 0},
12798 {0x178, 0x3, 0},
12799 {0x179, 0, 0},
12800 {0x17A, 0x21, 0},
12801 {0x17B, 0x21, 0},
12802 {0x17C, 0, 0},
12803 {0x17D, 0xaa, 0},
12804 {0x17E, 0, 0},
12805 {0x17F, 0xaa, 0},
12806 {0x180, 0, 0},
12807 {0x190, 0, 0},
12808 {0x191, 0x77, 0},
12809 {0x192, 0x77, 0},
12810 {0x193, 0x77, 0},
12811 {0x194, 0x77, 0},
12812 {0x195, 0, 0},
12813 {0x196, 0x3, 0},
12814 {0x197, 0x37, 0},
12815 {0x198, 0x3, 0},
12816 {0x199, 0, 0},
12817 {0x19A, 0x21, 0},
12818 {0x19B, 0x21, 0},
12819 {0x19C, 0, 0},
12820 {0x19D, 0xaa, 0},
12821 {0x19E, 0, 0},
12822 {0x19F, 0xaa, 0},
12823 {0x1A0, 0, 0},
12824 {0x1A1, 0x2, 0},
12825 {0x1A2, 0xf, 0},
12826 {0x1A3, 0xf, 0},
12827 {0x1A4, 0, 1},
12828 {0x1A5, 0, 1},
12829 {0x1A6, 0, 1},
12830 {0x1A7, 0x2, 0},
12831 {0x1A8, 0xf, 0},
12832 {0x1A9, 0xf, 0},
12833 {0x1AA, 0, 1},
12834 {0x1AB, 0, 1},
12835 {0x1AC, 0, 1},
12836 {0x1AD, 0x84, 0},
12837 {0x1AE, 0x60, 0},
12838 {0x1AF, 0x47, 0},
12839 {0x1B0, 0x47, 0},
12840 {0x1B1, 0, 0},
12841 {0x1B2, 0, 0},
12842 {0x1B3, 0, 0},
12843 {0x1B4, 0, 0},
12844 {0x1B5, 0, 0},
12845 {0x1B6, 0, 0},
12846 {0x1B7, 0x5, 1},
12847 {0x1B8, 0, 0},
12848 {0x1B9, 0, 0},
12849 {0x1BA, 0, 0},
12850 {0x1BB, 0, 0},
12851 {0x1BC, 0, 0},
12852 {0x1BD, 0, 0},
12853 {0x1BE, 0, 0},
12854 {0x1BF, 0, 0},
12855 {0x1C0, 0, 0},
12856 {0x1C1, 0, 0},
12857 {0x1C2, 0xa0, 1},
12858 {0x1C3, 0, 0},
12859 {0x1C4, 0, 0},
12860 {0x1C5, 0, 0},
12861 {0x1C6, 0, 0},
12862 {0x1C7, 0, 0},
12863 {0x1C8, 0, 0},
12864 {0x1C9, 0, 0},
12865 {0x1CA, 0, 0},
12866 {0xFFFF, 0, 0}
12867 };
12868
12869 radio_20xx_regs_t regs_2057_rev8[] = {
12870 {0x00, 0x8, 1},
12871 {0x01, 0x57, 1},
12872 {0x02, 0x20, 1},
12873 {0x03, 0x1f, 0},
12874 {0x04, 0x4, 0},
12875 {0x05, 0x2, 0},
12876 {0x06, 0x1, 0},
12877 {0x07, 0x1, 0},
12878 {0x08, 0x1, 0},
12879 {0x09, 0x69, 0},
12880 {0x0A, 0x66, 0},
12881 {0x0B, 0x6, 0},
12882 {0x0C, 0x18, 0},
12883 {0x0D, 0x3, 0},
12884 {0x0E, 0x20, 0},
12885 {0x0F, 0x20, 0},
12886 {0x10, 0, 0},
12887 {0x11, 0x7c, 0},
12888 {0x12, 0x42, 0},
12889 {0x13, 0xbd, 0},
12890 {0x14, 0x7, 0},
12891 {0x15, 0x87, 0},
12892 {0x16, 0x8, 0},
12893 {0x17, 0x17, 0},
12894 {0x18, 0x7, 0},
12895 {0x19, 0, 0},
12896 {0x1A, 0x2, 0},
12897 {0x1B, 0x13, 0},
12898 {0x1C, 0x3e, 0},
12899 {0x1D, 0x3e, 0},
12900 {0x1E, 0x96, 0},
12901 {0x1F, 0x4, 0},
12902 {0x20, 0, 0},
12903 {0x21, 0, 0},
12904 {0x22, 0x17, 0},
12905 {0x23, 0x6, 0},
12906 {0x24, 0x1, 0},
12907 {0x25, 0x6, 0},
12908 {0x26, 0x4, 0},
12909 {0x27, 0xd, 0},
12910 {0x28, 0xd, 0},
12911 {0x29, 0x30, 0},
12912 {0x2A, 0x32, 0},
12913 {0x2B, 0x8, 0},
12914 {0x2C, 0x1c, 0},
12915 {0x2D, 0x2, 0},
12916 {0x2E, 0x4, 0},
12917 {0x2F, 0x7f, 0},
12918 {0x30, 0x27, 0},
12919 {0x31, 0, 1},
12920 {0x32, 0, 1},
12921 {0x33, 0, 1},
12922 {0x34, 0, 0},
12923 {0x35, 0x20, 0},
12924 {0x36, 0x18, 0},
12925 {0x37, 0x7, 0},
12926 {0x38, 0x66, 0},
12927 {0x39, 0x66, 0},
12928 {0x3A, 0x66, 0},
12929 {0x3B, 0x66, 0},
12930 {0x3C, 0xff, 0},
12931 {0x3D, 0xff, 0},
12932 {0x3E, 0xff, 0},
12933 {0x3F, 0xff, 0},
12934 {0x40, 0x16, 0},
12935 {0x41, 0x7, 0},
12936 {0x42, 0x19, 0},
12937 {0x43, 0x7, 0},
12938 {0x44, 0x6, 0},
12939 {0x45, 0x3, 0},
12940 {0x46, 0x1, 0},
12941 {0x47, 0x7, 0},
12942 {0x48, 0x33, 0},
12943 {0x49, 0x5, 0},
12944 {0x4A, 0x77, 0},
12945 {0x4B, 0x66, 0},
12946 {0x4C, 0x66, 0},
12947 {0x4D, 0, 0},
12948 {0x4E, 0x4, 0},
12949 {0x4F, 0xc, 0},
12950 {0x50, 0, 0},
12951 {0x51, 0x70, 1},
12952 {0x56, 0x7, 0},
12953 {0x57, 0, 0},
12954 {0x58, 0, 0},
12955 {0x59, 0x88, 1},
12956 {0x5A, 0, 0},
12957 {0x5B, 0x1f, 0},
12958 {0x5C, 0x20, 1},
12959 {0x5D, 0x1, 0},
12960 {0x5E, 0x30, 0},
12961 {0x5F, 0x70, 0},
12962 {0x60, 0, 0},
12963 {0x61, 0, 0},
12964 {0x62, 0x33, 1},
12965 {0x63, 0xf, 1},
12966 {0x64, 0xf, 1},
12967 {0x65, 0, 0},
12968 {0x66, 0x11, 0},
12969 {0x69, 0, 0},
12970 {0x6A, 0x7e, 0},
12971 {0x6B, 0x3f, 0},
12972 {0x6C, 0x7f, 0},
12973 {0x6D, 0x78, 0},
12974 {0x6E, 0x58, 1},
12975 {0x6F, 0x88, 0},
12976 {0x70, 0x8, 0},
12977 {0x71, 0xf, 0},
12978 {0x72, 0xbc, 0},
12979 {0x73, 0x8, 0},
12980 {0x74, 0x60, 0},
12981 {0x75, 0x13, 1},
12982 {0x76, 0x70, 0},
12983 {0x77, 0, 0},
12984 {0x78, 0, 0},
12985 {0x79, 0, 0},
12986 {0x7A, 0x33, 0},
12987 {0x7B, 0x13, 1},
12988 {0x7C, 0xf, 1},
12989 {0x7D, 0xee, 1},
12990 {0x80, 0x3c, 0},
12991 {0x81, 0x1, 1},
12992 {0x82, 0xa, 0},
12993 {0x83, 0x9d, 0},
12994 {0x84, 0xa, 0},
12995 {0x85, 0, 0},
12996 {0x86, 0x40, 0},
12997 {0x87, 0x40, 0},
12998 {0x88, 0x88, 0},
12999 {0x89, 0x10, 0},
13000 {0x8A, 0xf0, 0},
13001 {0x8B, 0x10, 0},
13002 {0x8C, 0xf0, 0},
13003 {0x8D, 0, 0},
13004 {0x8E, 0, 0},
13005 {0x8F, 0x10, 0},
13006 {0x90, 0x55, 0},
13007 {0x91, 0x3f, 1},
13008 {0x92, 0x36, 1},
13009 {0x93, 0, 0},
13010 {0x94, 0, 0},
13011 {0x95, 0, 0},
13012 {0x96, 0x87, 0},
13013 {0x97, 0x11, 0},
13014 {0x98, 0, 0},
13015 {0x99, 0x33, 0},
13016 {0x9A, 0x88, 0},
13017 {0x9B, 0, 0},
13018 {0x9C, 0x87, 0},
13019 {0x9D, 0x11, 0},
13020 {0x9E, 0, 0},
13021 {0x9F, 0x33, 0},
13022 {0xA0, 0x88, 0},
13023 {0xA1, 0x20, 1},
13024 {0xA2, 0x3f, 0},
13025 {0xA3, 0x44, 0},
13026 {0xA4, 0x8c, 0},
13027 {0xA5, 0x6c, 0},
13028 {0xA6, 0x22, 0},
13029 {0xA7, 0xbe, 0},
13030 {0xA8, 0x55, 0},
13031 {0xAA, 0xc, 0},
13032 {0xAB, 0xaa, 0},
13033 {0xAC, 0x2, 0},
13034 {0xAD, 0, 0},
13035 {0xAE, 0x10, 0},
13036 {0xAF, 0x1, 0},
13037 {0xB0, 0, 0},
13038 {0xB1, 0, 0},
13039 {0xB2, 0x80, 0},
13040 {0xB3, 0x60, 0},
13041 {0xB4, 0x44, 0},
13042 {0xB5, 0x55, 0},
13043 {0xB6, 0x1, 0},
13044 {0xB7, 0x55, 0},
13045 {0xB8, 0x1, 0},
13046 {0xB9, 0x5, 0},
13047 {0xBA, 0x55, 0},
13048 {0xBB, 0x55, 0},
13049 {0xC1, 0, 0},
13050 {0xC2, 0, 0},
13051 {0xC3, 0, 0},
13052 {0xC4, 0, 0},
13053 {0xC5, 0, 0},
13054 {0xC6, 0, 0},
13055 {0xC7, 0, 0},
13056 {0xC8, 0, 0},
13057 {0xC9, 0x1, 1},
13058 {0xCA, 0, 0},
13059 {0xCB, 0, 0},
13060 {0xCC, 0, 0},
13061 {0xCD, 0, 0},
13062 {0xCE, 0x5e, 0},
13063 {0xCF, 0xc, 0},
13064 {0xD0, 0xc, 0},
13065 {0xD1, 0xc, 0},
13066 {0xD2, 0, 0},
13067 {0xD3, 0x2b, 0},
13068 {0xD4, 0xc, 0},
13069 {0xD5, 0, 0},
13070 {0xD6, 0x70, 1},
13071 {0xDB, 0x7, 0},
13072 {0xDC, 0, 0},
13073 {0xDD, 0, 0},
13074 {0xDE, 0x88, 1},
13075 {0xDF, 0, 0},
13076 {0xE0, 0x1f, 0},
13077 {0xE1, 0x20, 1},
13078 {0xE2, 0x1, 0},
13079 {0xE3, 0x30, 0},
13080 {0xE4, 0x70, 0},
13081 {0xE5, 0, 0},
13082 {0xE6, 0, 0},
13083 {0xE7, 0x33, 0},
13084 {0xE8, 0xf, 1},
13085 {0xE9, 0xf, 1},
13086 {0xEA, 0, 0},
13087 {0xEB, 0x11, 0},
13088 {0xEE, 0, 0},
13089 {0xEF, 0x7e, 0},
13090 {0xF0, 0x3f, 0},
13091 {0xF1, 0x7f, 0},
13092 {0xF2, 0x78, 0},
13093 {0xF3, 0x58, 1},
13094 {0xF4, 0x88, 0},
13095 {0xF5, 0x8, 0},
13096 {0xF6, 0xf, 0},
13097 {0xF7, 0xbc, 0},
13098 {0xF8, 0x8, 0},
13099 {0xF9, 0x60, 0},
13100 {0xFA, 0x13, 1},
13101 {0xFB, 0x70, 0},
13102 {0xFC, 0, 0},
13103 {0xFD, 0, 0},
13104 {0xFE, 0, 0},
13105 {0xFF, 0x33, 0},
13106 {0x100, 0x13, 1},
13107 {0x101, 0xf, 1},
13108 {0x102, 0xee, 1},
13109 {0x105, 0x3c, 0},
13110 {0x106, 0x1, 1},
13111 {0x107, 0xa, 0},
13112 {0x108, 0x9d, 0},
13113 {0x109, 0xa, 0},
13114 {0x10A, 0, 0},
13115 {0x10B, 0x40, 0},
13116 {0x10C, 0x40, 0},
13117 {0x10D, 0x88, 0},
13118 {0x10E, 0x10, 0},
13119 {0x10F, 0xf0, 0},
13120 {0x110, 0x10, 0},
13121 {0x111, 0xf0, 0},
13122 {0x112, 0, 0},
13123 {0x113, 0, 0},
13124 {0x114, 0x10, 0},
13125 {0x115, 0x55, 0},
13126 {0x116, 0x3f, 1},
13127 {0x117, 0x36, 1},
13128 {0x118, 0, 0},
13129 {0x119, 0, 0},
13130 {0x11A, 0, 0},
13131 {0x11B, 0x87, 0},
13132 {0x11C, 0x11, 0},
13133 {0x11D, 0, 0},
13134 {0x11E, 0x33, 0},
13135 {0x11F, 0x88, 0},
13136 {0x120, 0, 0},
13137 {0x121, 0x87, 0},
13138 {0x122, 0x11, 0},
13139 {0x123, 0, 0},
13140 {0x124, 0x33, 0},
13141 {0x125, 0x88, 0},
13142 {0x126, 0x20, 1},
13143 {0x127, 0x3f, 0},
13144 {0x128, 0x44, 0},
13145 {0x129, 0x8c, 0},
13146 {0x12A, 0x6c, 0},
13147 {0x12B, 0x22, 0},
13148 {0x12C, 0xbe, 0},
13149 {0x12D, 0x55, 0},
13150 {0x12F, 0xc, 0},
13151 {0x130, 0xaa, 0},
13152 {0x131, 0x2, 0},
13153 {0x132, 0, 0},
13154 {0x133, 0x10, 0},
13155 {0x134, 0x1, 0},
13156 {0x135, 0, 0},
13157 {0x136, 0, 0},
13158 {0x137, 0x80, 0},
13159 {0x138, 0x60, 0},
13160 {0x139, 0x44, 0},
13161 {0x13A, 0x55, 0},
13162 {0x13B, 0x1, 0},
13163 {0x13C, 0x55, 0},
13164 {0x13D, 0x1, 0},
13165 {0x13E, 0x5, 0},
13166 {0x13F, 0x55, 0},
13167 {0x140, 0x55, 0},
13168 {0x146, 0, 0},
13169 {0x147, 0, 0},
13170 {0x148, 0, 0},
13171 {0x149, 0, 0},
13172 {0x14A, 0, 0},
13173 {0x14B, 0, 0},
13174 {0x14C, 0, 0},
13175 {0x14D, 0, 0},
13176 {0x14E, 0x1, 1},
13177 {0x14F, 0, 0},
13178 {0x150, 0, 0},
13179 {0x151, 0, 0},
13180 {0x154, 0xc, 0},
13181 {0x155, 0xc, 0},
13182 {0x156, 0xc, 0},
13183 {0x157, 0, 0},
13184 {0x158, 0x2b, 0},
13185 {0x159, 0x84, 0},
13186 {0x15A, 0x15, 0},
13187 {0x15B, 0xf, 0},
13188 {0x15C, 0, 0},
13189 {0x15D, 0, 0},
13190 {0x15E, 0, 1},
13191 {0x15F, 0, 1},
13192 {0x160, 0, 1},
13193 {0x161, 0, 1},
13194 {0x162, 0, 1},
13195 {0x163, 0, 1},
13196 {0x164, 0, 0},
13197 {0x165, 0, 0},
13198 {0x166, 0, 0},
13199 {0x167, 0, 0},
13200 {0x168, 0, 0},
13201 {0x169, 0, 0},
13202 {0x16A, 0, 1},
13203 {0x16B, 0, 1},
13204 {0x16C, 0, 1},
13205 {0x16D, 0, 0},
13206 {0x170, 0, 0},
13207 {0x171, 0x77, 0},
13208 {0x172, 0x77, 0},
13209 {0x173, 0x77, 0},
13210 {0x174, 0x77, 0},
13211 {0x175, 0, 0},
13212 {0x176, 0x3, 0},
13213 {0x177, 0x37, 0},
13214 {0x178, 0x3, 0},
13215 {0x179, 0, 0},
13216 {0x17A, 0x21, 0},
13217 {0x17B, 0x21, 0},
13218 {0x17C, 0, 0},
13219 {0x17D, 0xaa, 0},
13220 {0x17E, 0, 0},
13221 {0x17F, 0xaa, 0},
13222 {0x180, 0, 0},
13223 {0x190, 0, 0},
13224 {0x191, 0x77, 0},
13225 {0x192, 0x77, 0},
13226 {0x193, 0x77, 0},
13227 {0x194, 0x77, 0},
13228 {0x195, 0, 0},
13229 {0x196, 0x3, 0},
13230 {0x197, 0x37, 0},
13231 {0x198, 0x3, 0},
13232 {0x199, 0, 0},
13233 {0x19A, 0x21, 0},
13234 {0x19B, 0x21, 0},
13235 {0x19C, 0, 0},
13236 {0x19D, 0xaa, 0},
13237 {0x19E, 0, 0},
13238 {0x19F, 0xaa, 0},
13239 {0x1A0, 0, 0},
13240 {0x1A1, 0x2, 0},
13241 {0x1A2, 0xf, 0},
13242 {0x1A3, 0xf, 0},
13243 {0x1A4, 0, 1},
13244 {0x1A5, 0, 1},
13245 {0x1A6, 0, 1},
13246 {0x1A7, 0x2, 0},
13247 {0x1A8, 0xf, 0},
13248 {0x1A9, 0xf, 0},
13249 {0x1AA, 0, 1},
13250 {0x1AB, 0, 1},
13251 {0x1AC, 0, 1},
13252 {0x1AD, 0x84, 0},
13253 {0x1AE, 0x60, 0},
13254 {0x1AF, 0x47, 0},
13255 {0x1B0, 0x47, 0},
13256 {0x1B1, 0, 0},
13257 {0x1B2, 0, 0},
13258 {0x1B3, 0, 0},
13259 {0x1B4, 0, 0},
13260 {0x1B5, 0, 0},
13261 {0x1B6, 0, 0},
13262 {0x1B7, 0x5, 1},
13263 {0x1B8, 0, 0},
13264 {0x1B9, 0, 0},
13265 {0x1BA, 0, 0},
13266 {0x1BB, 0, 0},
13267 {0x1BC, 0, 0},
13268 {0x1BD, 0, 0},
13269 {0x1BE, 0, 0},
13270 {0x1BF, 0, 0},
13271 {0x1C0, 0, 0},
13272 {0x1C1, 0, 0},
13273 {0x1C2, 0xa0, 1},
13274 {0x1C3, 0, 0},
13275 {0x1C4, 0, 0},
13276 {0x1C5, 0, 0},
13277 {0x1C6, 0, 0},
13278 {0x1C7, 0, 0},
13279 {0x1C8, 0, 0},
13280 {0x1C9, 0, 0},
13281 {0x1CA, 0, 0},
13282 {0xFFFF, 0, 0}
13283 };
13284
13285 static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13286
13287 static s32 nphy_lnagain_est0[] = { -315, 40370 };
13288 static s32 nphy_lnagain_est1[] = { -224, 23242 };
13289
13290 static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13291 {
13292 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13293 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13294 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13295 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13296 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13297 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13298 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13299 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13300 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13301 },
13302 {
13303 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13304 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13305 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13306 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13307 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13308 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13309 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13310 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13311 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13312 }
13313 };
13314
13315 static const u32 nphy_tpc_txgain[] = {
13316 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13317 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13318 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13319 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13320 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13321 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13322 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13323 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13324 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13325 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13326 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13327 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13328 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13329 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13330 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13331 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13332 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13333 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13334 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13335 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13336 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13337 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13338 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13339 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13340 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13341 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13342 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13343 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13344 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13345 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13346 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13347 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13348 };
13349
13350 static const u16 nphy_tpc_loscale[] = {
13351 256, 256, 271, 271, 287, 256, 256, 271,
13352 271, 287, 287, 304, 304, 256, 256, 271,
13353 271, 287, 287, 304, 304, 322, 322, 341,
13354 341, 362, 362, 383, 383, 256, 256, 271,
13355 271, 287, 287, 304, 304, 322, 322, 256,
13356 256, 271, 271, 287, 287, 304, 304, 322,
13357 322, 341, 341, 362, 362, 256, 256, 271,
13358 271, 287, 287, 304, 304, 322, 322, 256,
13359 256, 271, 271, 287, 287, 304, 304, 322,
13360 322, 341, 341, 362, 362, 256, 256, 271,
13361 271, 287, 287, 304, 304, 322, 322, 341,
13362 341, 362, 362, 383, 383, 406, 406, 430,
13363 430, 455, 455, 482, 482, 511, 511, 541,
13364 541, 573, 573, 607, 607, 643, 643, 681,
13365 681, 722, 722, 764, 764, 810, 810, 858,
13366 858, 908, 908, 962, 962, 1019, 1019, 256
13367 };
13368
13369 static u32 nphy_tpc_txgain_ipa[] = {
13370 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13371 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13372 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13373 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13374 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13375 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13376 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13377 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13378 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13379 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13380 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13381 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13382 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13383 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13384 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13385 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13386 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13387 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13388 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13389 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13390 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13391 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13392 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13393 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13394 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13395 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13396 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13397 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13398 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13399 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13400 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13401 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13402 };
13403
13404 static u32 nphy_tpc_txgain_ipa_rev5[] = {
13405 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13406 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13407 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13408 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13409 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13410 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13411 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13412 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13413 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13414 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13415 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13416 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13417 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13418 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13419 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13420 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13421 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13422 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13423 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13424 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13425 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13426 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13427 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13428 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13429 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13430 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13431 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13432 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13433 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13434 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13435 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13436 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13437 };
13438
13439 static u32 nphy_tpc_txgain_ipa_rev6[] = {
13440 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13441 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13442 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13443 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13444 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13445 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13446 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13447 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13448 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13449 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13450 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13451 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13452 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13453 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13454 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13455 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13456 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13457 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13458 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13459 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13460 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13461 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13462 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13463 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13464 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13465 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13466 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13467 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13468 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13469 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13470 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13471 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13472 };
13473
13474 static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13475 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13476 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13477 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13478 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13479 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13480 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13481 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13482 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13483 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13484 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13485 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13486 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13487 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13488 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13489 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13490 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13491 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13492 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13493 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13494 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13495 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13496 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13497 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13498 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13499 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13500 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13501 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13502 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13503 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13504 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13505 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13506 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13507 };
13508
13509 static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13510 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13511 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13512 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13513 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13514 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13515 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13516 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13517 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13518 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13519 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13520 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13521 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13522 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13523 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13524 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13525 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13526 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13527 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13528 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13529 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13530 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13531 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13532 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13533 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13534 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13535 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13536 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13537 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13538 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13539 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13540 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13541 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13542 };
13543
13544 static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13545 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13546 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13547 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13548 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13549 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13550 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13551 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13552 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13553 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13554 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13555 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13556 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13557 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13558 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13559 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13560 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13561 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13562 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13563 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13564 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13565 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13566 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13567 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13568 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13569 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13570 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13571 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13572 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13573 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13574 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13575 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13576 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13577 };
13578
13579 static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13580 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13581 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13582 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13583 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13584 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13585 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13586 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13587 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13588 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13589 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13590 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13591 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13592 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13593 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13594 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13595 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13596 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13597 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13598 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13599 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13610 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13611 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13612 };
13613
13614 static u32 nphy_tpc_txgain_ipa_5g[] = {
13615 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13616 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13617 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13618 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13619 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13620 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13621 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13622 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13623 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13624 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13625 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13626 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13627 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13628 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13629 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13630 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13631 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13632 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13633 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13634 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13635 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13636 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13637 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13638 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13639 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13640 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13641 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13642 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13643 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13644 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13645 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13646 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13647 };
13648
13649 static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
13650 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13651 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13652 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13653 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13654 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13655 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13656 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13657 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13658 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13659 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13660 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13661 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13662 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13663 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13664 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13665 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13666 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13667 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13668 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13669 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13670 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13671 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13672 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13673 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13674 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13675 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13676 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13677 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13678 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13679 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13680 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13681 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13682 };
13683
13684 static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13685 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13686 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13687 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13688 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13689 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13690 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13691 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13692 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13693 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13694 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13695 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13696 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13697 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13698 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13699 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13700 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13701 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13702 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13703 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13704 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13705 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13706 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13707 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13708 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13709 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13710 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13711 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13712 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13713 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13714 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13715 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13716 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13717 };
13718
13719 static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13720 -114, -108, -98, -91, -84, -78, -70, -62,
13721 -54, -46, -39, -31, -23, -15, -8, 0
13722 };
13723
13724 static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13725 -100, -95, -89, -83, -77, -70, -63, -56,
13726 -48, -41, -33, -25, -19, -12, -6, 0
13727 };
13728
13729 static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13730 -159, -113, -86, -72, -62, -54, -48, -43,
13731 -39, -35, -31, -28, -25, -23, -20, -18,
13732 -17, -15, -13, -11, -10, -8, -7, -6,
13733 -5, -4, -3, -3, -2, -1, -1, 0
13734 };
13735
13736 static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13737 -109, -109, -82, -68, -58, -50, -44, -39,
13738 -35, -31, -28, -26, -23, -21, -19, -17,
13739 -16, -14, -13, -11, -10, -9, -8, -7,
13740 -5, -5, -4, -3, -2, -1, -1, 0
13741 };
13742
13743 static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13744 -122, -122, -95, -80, -69, -61, -54, -49,
13745 -43, -39, -35, -32, -28, -26, -23, -21,
13746 -18, -16, -15, -13, -11, -10, -8, -7,
13747 -6, -5, -4, -3, -2, -1, -1, 0
13748 };
13749
13750 static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
13751 -107, -101, -92, -85, -78, -71, -62, -55,
13752 -47, -39, -32, -24, -19, -12, -6, 0
13753 };
13754
13755 static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13756 -110, -104, -95, -88, -81, -74, -66, -58,
13757 -50, -44, -36, -28, -23, -15, -8, 0
13758 };
13759
13760 static u8 pad_gain_codes_used_2057rev5[] = {
13761 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13762 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13763 };
13764
13765 static u8 pad_gain_codes_used_2057rev7[] = {
13766 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13767 5, 4, 3, 2, 1
13768 };
13769
13770 static u8 pad_all_gain_codes_2057[] = {
13771 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13772 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13773 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13774 1, 0
13775 };
13776
13777 static u8 pga_all_gain_codes_2057[] = {
13778 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13779 };
13780
13781 static u32 nphy_papd_scaltbl[] = {
13782 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13783 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13784 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13785 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13786 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13787 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13788 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13789 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13790 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13791 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13792 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13793 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13794 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13795 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13796 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13797 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13798 };
13799
13800 static u32 nphy_tpc_txgain_rev3[] = {
13801 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13802 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13803 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13804 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13805 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13806 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13807 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13808 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13809 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13810 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13811 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13812 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13813 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13814 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13815 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13816 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13817 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13818 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13819 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13820 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13821 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13822 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13823 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13824 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13825 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13826 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13827 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13828 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13829 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13830 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13831 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13832 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13833 };
13834
13835 static u32 nphy_tpc_txgain_HiPwrEPA[] = {
13836 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13837 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13838 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13839 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13840 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13841 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13842 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13843 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13844 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13845 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13846 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13847 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13848 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13849 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13850 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13851 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13852 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13853 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13854 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13855 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13856 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13857 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13858 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13859 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13860 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13861 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13862 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13863 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13864 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13865 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13866 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13867 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13868 };
13869
13870 static u32 nphy_tpc_txgain_epa_2057rev3[] = {
13871 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13872 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13873 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13874 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13875 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13876 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13877 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13878 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13879 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13880 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13881 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13882 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13883 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13884 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13885 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13886 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13887 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13888 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13889 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13890 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13891 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13892 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13893 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13894 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13895 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13896 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13897 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13898 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13899 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13900 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13901 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13902 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13903 };
13904
13905 static u32 nphy_tpc_txgain_epa_2057rev5[] = {
13906 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13907 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13908 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13909 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13910 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13911 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13912 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13913 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13914 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13915 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13916 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13917 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13918 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13919 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13920 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13921 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13922 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13923 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13924 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13925 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13926 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13927 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13928 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13929 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13930 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13931 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13932 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13933 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13934 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13935 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13936 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13937 0x10090001, 0x10090001, 0x10090001, 0x10090001
13938 };
13939
13940 static u32 nphy_tpc_5GHz_txgain_rev3[] = {
13941 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13942 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13943 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13944 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13945 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13946 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13947 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13948 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13949 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13950 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13951 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13952 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13953 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13954 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13955 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13956 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13957 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13958 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13959 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13960 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13961 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13962 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13963 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13964 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13965 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13966 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13967 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13968 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13969 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13970 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13971 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13972 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13973 };
13974
13975 static u32 nphy_tpc_5GHz_txgain_rev4[] = {
13976 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13977 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13978 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13979 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
13980 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
13981 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
13982 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
13983 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
13984 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
13985 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
13986 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
13987 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
13988 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
13989 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
13990 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
13991 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
13992 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
13993 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
13994 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
13995 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
13996 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
13997 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
13998 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
13999 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14000 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14001 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14002 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14003 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14004 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14005 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14006 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14007 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14008 };
14009
14010 static u32 nphy_tpc_5GHz_txgain_rev5[] = {
14011 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14012 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14013 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14014 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14015 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14016 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14017 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14018 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14019 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14020 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14021 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14022 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14023 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14024 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14025 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14026 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14027 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14028 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14029 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14030 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14031 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14032 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14033 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14034 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14035 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14036 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14037 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14038 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14039 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14040 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14041 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14042 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14043 };
14044
14045 static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14046 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14047 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14048 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14049 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14050 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14051 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14052 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14053 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14054 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14055 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14056 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14057 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14058 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14059 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14060 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14061 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14062 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14063 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14064 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14065 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14066 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14067 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14068 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14069 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14070 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14071 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14072 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14073 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14074 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14075 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14076 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14077 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14078 };
14079
14080 static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14081 static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14082 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14083 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a };
14084 static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14085 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16 };
14086
14087 static bool wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
14088 chan_info_nphy_radio2057_t **t0,
14089 chan_info_nphy_radio205x_t **t1,
14090 chan_info_nphy_radio2057_rev5_t **t2,
14091 chan_info_nphy_2055_t **t3);
14092 static void wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chans,
14093 const nphy_sfo_cfg_t *c);
14094
14095 static void wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi,
14096 u16 reduction_factr);
14097 static void wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *,
14098 u32 *buf);
14099 static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr);
14100 static void wlc_phy_txlpfbw_nphy(phy_info_t *pi);
14101 static void wlc_phy_spurwar_nphy(phy_info_t *pi);
14102
14103 static void wlc_phy_radio_preinit_2055(phy_info_t *pi);
14104 static void wlc_phy_radio_init_2055(phy_info_t *pi);
14105 static void wlc_phy_radio_postinit_2055(phy_info_t *pi);
14106 static void wlc_phy_radio_preinit_205x(phy_info_t *pi);
14107 static void wlc_phy_radio_init_2056(phy_info_t *pi);
14108 static void wlc_phy_radio_postinit_2056(phy_info_t *pi);
14109 static void wlc_phy_radio_init_2057(phy_info_t *pi);
14110 static void wlc_phy_radio_postinit_2057(phy_info_t *pi);
14111 static void wlc_phy_workarounds_nphy(phy_info_t *pi);
14112 static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi);
14113 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi);
14114 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi);
14115 static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi);
14116
14117 static void wlc_phy_restore_rssical_nphy(phy_info_t *pi);
14118 static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi);
14119 static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi);
14120 static int wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t tg,
14121 u8 type, bool d);
14122 static void wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rxcore,
14123 u16 *rg, u8 type);
14124 static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble);
14125 static void wlc_phy_savecal_nphy(phy_info_t *pi);
14126 static void wlc_phy_restorecal_nphy(phy_info_t *pi);
14127 static void wlc_phy_resetcca_nphy(phy_info_t *pi);
14128
14129 static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi);
14130 static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi);
14131 static void wlc_phy_precal_txgain_nphy(phy_info_t *pi);
14132 static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core);
14133
14134 static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi);
14135 static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi);
14136 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi);
14137 static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi);
14138 static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1);
14139 static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi);
14140
14141 static void wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32,
14142 u32 e);
14143 static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core);
14144 static void wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *,
14145 phy_cal_mode_t, u8);
14146 static void wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi,
14147 nphy_papd_restore_state *state);
14148 static void wlc_phy_papd_cal_setup_nphy(phy_info_t *pi,
14149 nphy_papd_restore_state *state, u8);
14150
14151 static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals);
14152
14153 static void wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *evts,
14154 u8 *dlys, u8 len);
14155
14156 static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset);
14157
14158 static void
14159 wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
14160 u8 core_mask, u8 off,
14161 u8 override_id);
14162
14163 static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type);
14164 static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi);
14165
14166 static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi);
14167 static void wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max,
14168 u16 *pwr_offset,
14169 u8 tmp_max_pwr, u8 rate_start,
14170 u8 rate_end);
14171
14172 static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi);
14173 static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi);
14174 static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi);
14175 static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi);
14176
14177 static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi);
14178 static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core);
14179 static void wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0,
14180 u8 idx1);
14181 static void wlc_phy_a4(phy_info_t *pi, bool full_cal);
14182
14183 static u16 wlc_phy_radio205x_rcal(phy_info_t *pi);
14184
14185 static u16 wlc_phy_radio2057_rccal(phy_info_t *pi);
14186
14187 static u16 wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz,
14188 u16 max_val,
14189 u8 dac_test_mode);
14190 static void wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
14191 u16 num_samps);
14192 static void wlc_phy_runsamples_nphy(phy_info_t *pi, u16 n, u16 lps,
14193 u16 wait, u8 iq, u8 dac_test_mode,
14194 bool modify_bbmult);
14195
14196 bool wlc_phy_bist_check_phy(wlc_phy_t *pih)
14197 {
14198 phy_info_t *pi = (phy_info_t *) pih;
14199 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
14200
14201 if (NREV_GE(pi->pubpi.phy_rev, 16))
14202 return true;
14203
14204 phybist0 = read_phy_reg(pi, 0x0e);
14205 phybist1 = read_phy_reg(pi, 0x0f);
14206 phybist2 = read_phy_reg(pi, 0xea);
14207 phybist3 = read_phy_reg(pi, 0xeb);
14208 phybist4 = read_phy_reg(pi, 0x156);
14209
14210 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14211 (phybist3 == 0) && (phybist4 == 0)) {
14212 return true;
14213 }
14214
14215 return false;
14216 }
14217
14218 static void WLBANDINITFN(wlc_phy_bphy_init_nphy) (phy_info_t *pi)
14219 {
14220 u16 addr, val;
14221
14222 ASSERT(ISNPHY(pi));
14223
14224 val = 0x1e1f;
14225 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14226 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14227 write_phy_reg(pi, addr, val);
14228 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14229 val = 0x3e3f;
14230 else
14231 val -= 0x0202;
14232 }
14233
14234 if (NORADIO_ENAB(pi->pubpi)) {
14235
14236 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_PHYCRSTH, 0x3206);
14237
14238 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_RSSI_TRESH, 0x281e);
14239
14240 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_LNA_GAIN_RANGE, 0x1a);
14241
14242 } else {
14243
14244 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14245 }
14246 }
14247
14248 void
14249 wlc_phy_table_write_nphy(phy_info_t *pi, u32 id, u32 len, u32 offset,
14250 u32 width, const void *data)
14251 {
14252 mimophytbl_info_t tbl;
14253
14254 tbl.tbl_id = id;
14255 tbl.tbl_len = len;
14256 tbl.tbl_offset = offset;
14257 tbl.tbl_width = width;
14258 tbl.tbl_ptr = data;
14259 wlc_phy_write_table_nphy(pi, &tbl);
14260 }
14261
14262 void
14263 wlc_phy_table_read_nphy(phy_info_t *pi, u32 id, u32 len, u32 offset,
14264 u32 width, void *data)
14265 {
14266 mimophytbl_info_t tbl;
14267
14268 tbl.tbl_id = id;
14269 tbl.tbl_len = len;
14270 tbl.tbl_offset = offset;
14271 tbl.tbl_width = width;
14272 tbl.tbl_ptr = data;
14273 wlc_phy_read_table_nphy(pi, &tbl);
14274 }
14275
14276 static void WLBANDINITFN(wlc_phy_static_table_download_nphy) (phy_info_t *pi)
14277 {
14278 uint idx;
14279
14280 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14281 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14282 wlc_phy_write_table_nphy(pi,
14283 &mimophytbl_info_rev16[idx]);
14284 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14285 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14286 wlc_phy_write_table_nphy(pi,
14287 &mimophytbl_info_rev7[idx]);
14288 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14289 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14290 wlc_phy_write_table_nphy(pi,
14291 &mimophytbl_info_rev3[idx]);
14292 } else {
14293 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14294 wlc_phy_write_table_nphy(pi,
14295 &mimophytbl_info_rev0[idx]);
14296 }
14297 }
14298
14299 static void WLBANDINITFN(wlc_phy_tbl_init_nphy) (phy_info_t *pi)
14300 {
14301 uint idx = 0;
14302 u8 antswctrllut;
14303
14304 if (pi->phy_init_por)
14305 wlc_phy_static_table_download_nphy(pi);
14306
14307 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14308
14309 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14310 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.antswctrllut;
14311
14312 switch (antswctrllut) {
14313 case 0:
14314
14315 break;
14316
14317 case 1:
14318
14319 if (pi->aa2g == 7) {
14320
14321 wlc_phy_table_write_nphy(pi,
14322 NPHY_TBL_ID_ANTSWCTRLLUT,
14323 2, 0x21, 8,
14324 &ant_sw_ctrl_tbl_rev8_2o3
14325 [0]);
14326 } else {
14327 wlc_phy_table_write_nphy(pi,
14328 NPHY_TBL_ID_ANTSWCTRLLUT,
14329 2, 0x21, 8,
14330 &ant_sw_ctrl_tbl_rev8
14331 [0]);
14332 }
14333 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14334 2, 0x25, 8,
14335 &ant_sw_ctrl_tbl_rev8[2]);
14336 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14337 2, 0x29, 8,
14338 &ant_sw_ctrl_tbl_rev8[4]);
14339 break;
14340
14341 case 2:
14342
14343 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14344 2, 0x1, 8,
14345 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14346 [0]);
14347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14348 2, 0x5, 8,
14349 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14350 [2]);
14351 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14352 2, 0x9, 8,
14353 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14354 [4]);
14355
14356 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14357 2, 0x21, 8,
14358 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14359 [0]);
14360 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14361 2, 0x25, 8,
14362 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14363 [2]);
14364 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14365 2, 0x29, 8,
14366 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14367 [4]);
14368 break;
14369
14370 default:
14371
14372 ASSERT(0);
14373 break;
14374 }
14375
14376 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14377 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14378
14379 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14380 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14381 pi->srom_fem2g.antswctrllut : pi->
14382 srom_fem5g.antswctrllut;
14383 switch (antswctrllut) {
14384 case 0:
14385 wlc_phy_write_table_nphy(pi,
14386 &mimophytbl_info_rev3_volatile
14387 [idx]);
14388 break;
14389 case 1:
14390 wlc_phy_write_table_nphy(pi,
14391 &mimophytbl_info_rev3_volatile1
14392 [idx]);
14393 break;
14394 case 2:
14395 wlc_phy_write_table_nphy(pi,
14396 &mimophytbl_info_rev3_volatile2
14397 [idx]);
14398 break;
14399 case 3:
14400 wlc_phy_write_table_nphy(pi,
14401 &mimophytbl_info_rev3_volatile3
14402 [idx]);
14403 break;
14404 default:
14405
14406 ASSERT(0);
14407 break;
14408 }
14409 } else {
14410 wlc_phy_write_table_nphy(pi,
14411 &mimophytbl_info_rev3_volatile
14412 [idx]);
14413 }
14414 }
14415 } else {
14416 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++) {
14417 wlc_phy_write_table_nphy(pi,
14418 &mimophytbl_info_rev0_volatile
14419 [idx]);
14420 }
14421 }
14422 }
14423
14424 static void
14425 wlc_phy_write_txmacreg_nphy(phy_info_t *pi, u16 holdoff, u16 delay)
14426 {
14427 write_phy_reg(pi, 0x77, holdoff);
14428 write_phy_reg(pi, 0xb4, delay);
14429 }
14430
14431 void wlc_phy_nphy_tkip_rifs_war(phy_info_t *pi, u8 rifs)
14432 {
14433 u16 holdoff, delay;
14434
14435 if (rifs) {
14436
14437 holdoff = 0x10;
14438 delay = 0x258;
14439 } else {
14440
14441 holdoff = 0x15;
14442 delay = 0x320;
14443 }
14444
14445 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14446
14447 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs)) {
14448 pi->sh->_rifs_phy = rifs;
14449 }
14450 }
14451
14452 bool wlc_phy_attach_nphy(phy_info_t *pi)
14453 {
14454 uint i;
14455
14456 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6)) {
14457 pi->phyhang_avoid = true;
14458 }
14459
14460 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14461
14462 pi->nphy_gband_spurwar_en = true;
14463
14464 if (pi->sh->boardflags2 & BFL2_SPUR_WAR) {
14465 pi->nphy_aband_spurwar_en = true;
14466 }
14467 }
14468 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14469
14470 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR) {
14471 pi->nphy_gband_spurwar2_en = true;
14472 }
14473 }
14474
14475 pi->n_preamble_override = AUTO;
14476 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14477 pi->n_preamble_override = WLC_N_PREAMBLE_MIXEDMODE;
14478
14479 pi->nphy_txrx_chain = AUTO;
14480 pi->phy_scraminit = AUTO;
14481
14482 pi->nphy_rxcalparams = 0x010100B5;
14483
14484 pi->nphy_perical = PHY_PERICAL_MPHASE;
14485 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14486 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14487
14488 pi->nphy_gain_boost = true;
14489 pi->nphy_elna_gain_config = false;
14490 pi->radio_is_on = false;
14491
14492 for (i = 0; i < pi->pubpi.phy_corenum; i++) {
14493 pi->nphy_txpwrindex[i].index = AUTO;
14494 }
14495
14496 wlc_phy_txpwrctrl_config_nphy(pi);
14497 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14498 pi->hwpwrctrl_capable = true;
14499
14500 pi->pi_fptr.init = wlc_phy_init_nphy;
14501 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14502 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14503 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14504
14505 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14506 return false;
14507
14508 return true;
14509 }
14510
14511 static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi)
14512 {
14513
14514 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14515 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14516 pi->phy_5g_pwrgain = true;
14517 return;
14518 }
14519
14520 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14521 pi->phy_5g_pwrgain = false;
14522
14523 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14524 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14525 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14526 else if ((pi->sh->sromrev >= 4)
14527 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14528 pi->phy_5g_pwrgain = true;
14529 }
14530
14531 void WLBANDINITFN(wlc_phy_init_nphy) (phy_info_t *pi)
14532 {
14533 u16 val;
14534 u16 clip1_ths[2];
14535 nphy_txgains_t target_gain;
14536 u8 tx_pwr_ctrl_state;
14537 bool do_nphy_cal = false;
14538 uint core;
14539 uint origidx, intr_val;
14540 d11regs_t *regs;
14541 u32 d11_clk_ctl_st;
14542
14543 core = 0;
14544
14545 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN)) {
14546 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14547 }
14548
14549 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14550 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14551 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14552 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14553 (CHSPEC_IS2G(pi->radio_chanspec))) {
14554 si_corereg(pi->sh->sih, SI_CC_IDX,
14555 offsetof(chipcregs_t, chipcontrol), 0x40,
14556 0x40);
14557 }
14558 }
14559
14560 if ((!PHY_IPA(pi)) && (pi->sh->chip == BCM5357_CHIP_ID)) {
14561 si_pmu_chipcontrol(pi->sh->sih, 1, CCTRL5357_EXTPA,
14562 CCTRL5357_EXTPA);
14563 }
14564
14565 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14566 CHSPEC_IS40(pi->radio_chanspec)) {
14567
14568 regs = (d11regs_t *) si_switch_core(pi->sh->sih, D11_CORE_ID,
14569 &origidx, &intr_val);
14570 ASSERT(regs != NULL);
14571
14572 d11_clk_ctl_st = R_REG(&regs->clk_ctl_st);
14573 AND_REG(&regs->clk_ctl_st,
14574 ~(CCS_FORCEHT | CCS_HTAREQ));
14575
14576 W_REG(&regs->clk_ctl_st, d11_clk_ctl_st);
14577
14578 si_restore_core(pi->sh->sih, origidx, intr_val);
14579 }
14580
14581 pi->use_int_tx_iqlo_cal_nphy =
14582 (PHY_IPA(pi) ||
14583 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14584 (NREV_GE(pi->pubpi.phy_rev, 5)
14585 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14586
14587 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
14588
14589 pi->nphy_deaf_count = 0;
14590
14591 wlc_phy_tbl_init_nphy(pi);
14592
14593 pi->nphy_crsminpwr_adjusted = false;
14594 pi->nphy_noisevars_adjusted = false;
14595
14596 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14597 write_phy_reg(pi, 0xe7, 0);
14598 write_phy_reg(pi, 0xec, 0);
14599 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14600 write_phy_reg(pi, 0x342, 0);
14601 write_phy_reg(pi, 0x343, 0);
14602 write_phy_reg(pi, 0x346, 0);
14603 write_phy_reg(pi, 0x347, 0);
14604 }
14605 write_phy_reg(pi, 0xe5, 0);
14606 write_phy_reg(pi, 0xe6, 0);
14607 } else {
14608 write_phy_reg(pi, 0xec, 0);
14609 }
14610
14611 write_phy_reg(pi, 0x91, 0);
14612 write_phy_reg(pi, 0x92, 0);
14613 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14614 write_phy_reg(pi, 0x93, 0);
14615 write_phy_reg(pi, 0x94, 0);
14616 }
14617
14618 and_phy_reg(pi, 0xa1, ~3);
14619
14620 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14621 write_phy_reg(pi, 0x8f, 0);
14622 write_phy_reg(pi, 0xa5, 0);
14623 } else {
14624 write_phy_reg(pi, 0xa5, 0);
14625 }
14626
14627 if (NREV_IS(pi->pubpi.phy_rev, 2))
14628 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14629 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14630 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14631
14632 write_phy_reg(pi, 0x203, 32);
14633 write_phy_reg(pi, 0x201, 32);
14634
14635 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14636 write_phy_reg(pi, 0x20d, 160);
14637 else
14638 write_phy_reg(pi, 0x20d, 184);
14639
14640 write_phy_reg(pi, 0x13a, 200);
14641
14642 write_phy_reg(pi, 0x70, 80);
14643
14644 write_phy_reg(pi, 0x1ff, 48);
14645
14646 if (NREV_LT(pi->pubpi.phy_rev, 8)) {
14647 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14648 }
14649
14650 wlc_phy_stf_chain_upd_nphy(pi);
14651
14652 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14653 write_phy_reg(pi, 0x180, 0xaa8);
14654 write_phy_reg(pi, 0x181, 0x9a4);
14655 }
14656
14657 if (PHY_IPA(pi)) {
14658 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14659
14660 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14661 0x29b, (0x1 << 0), (1) << 0);
14662
14663 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14664 0x29c, (0x1ff << 7),
14665 (pi->nphy_papd_epsilon_offset[core]) << 7);
14666
14667 }
14668
14669 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14670 } else {
14671
14672 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14673 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14674 }
14675 }
14676
14677 wlc_phy_workarounds_nphy(pi);
14678
14679 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14680
14681 val = read_phy_reg(pi, 0x01);
14682 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14683 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14684 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14685
14686 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14687
14688 wlc_phy_pa_override_nphy(pi, OFF);
14689 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14690 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14691 wlc_phy_pa_override_nphy(pi, ON);
14692
14693 wlc_phy_classifier_nphy(pi, 0, 0);
14694 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14695
14696 if (CHSPEC_IS2G(pi->radio_chanspec))
14697 wlc_phy_bphy_init_nphy(pi);
14698
14699 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14700 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14701
14702 wlc_phy_txpwr_fixpower_nphy(pi);
14703
14704 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14705
14706 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14707
14708 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14709 u32 *tx_pwrctrl_tbl = NULL;
14710 u16 idx;
14711 s16 pga_gn = 0;
14712 s16 pad_gn = 0;
14713 s32 rfpwr_offset = 0;
14714
14715 if (PHY_IPA(pi)) {
14716 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14717 } else {
14718 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14719 if NREV_IS
14720 (pi->pubpi.phy_rev, 3) {
14721 tx_pwrctrl_tbl =
14722 nphy_tpc_5GHz_txgain_rev3;
14723 } else if NREV_IS
14724 (pi->pubpi.phy_rev, 4) {
14725 tx_pwrctrl_tbl =
14726 (pi->srom_fem5g.extpagain == 3) ?
14727 nphy_tpc_5GHz_txgain_HiPwrEPA :
14728 nphy_tpc_5GHz_txgain_rev4;
14729 } else {
14730 tx_pwrctrl_tbl =
14731 nphy_tpc_5GHz_txgain_rev5;
14732 }
14733
14734 } else {
14735 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14736 if (pi->pubpi.radiorev == 5) {
14737 tx_pwrctrl_tbl =
14738 nphy_tpc_txgain_epa_2057rev5;
14739 } else if (pi->pubpi.radiorev == 3) {
14740 tx_pwrctrl_tbl =
14741 nphy_tpc_txgain_epa_2057rev3;
14742 }
14743
14744 } else {
14745 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14746 (pi->srom_fem2g.extpagain == 3)) {
14747 tx_pwrctrl_tbl =
14748 nphy_tpc_txgain_HiPwrEPA;
14749 } else {
14750 tx_pwrctrl_tbl =
14751 nphy_tpc_txgain_rev3;
14752 }
14753 }
14754 }
14755 }
14756
14757 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14758 192, 32, tx_pwrctrl_tbl);
14759 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14760 192, 32, tx_pwrctrl_tbl);
14761
14762 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
14763
14764 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14765
14766 for (idx = 0; idx < 128; idx++) {
14767 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14768 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14769
14770 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14771 if ((pi->pubpi.radiorev == 3) ||
14772 (pi->pubpi.radiorev == 4) ||
14773 (pi->pubpi.radiorev == 6)) {
14774 rfpwr_offset = (s16)
14775 nphy_papd_padgain_dlt_2g_2057rev3n4
14776 [pad_gn];
14777 } else if (pi->pubpi.radiorev == 5) {
14778 rfpwr_offset = (s16)
14779 nphy_papd_padgain_dlt_2g_2057rev5
14780 [pad_gn];
14781 } else if ((pi->pubpi.radiorev == 7)
14782 || (pi->pubpi.radiorev ==
14783 8)) {
14784 rfpwr_offset = (s16)
14785 nphy_papd_padgain_dlt_2g_2057rev7
14786 [pad_gn];
14787 } else {
14788 ASSERT(0);
14789 }
14790
14791 } else {
14792 if ((pi->pubpi.radiorev == 3) ||
14793 (pi->pubpi.radiorev == 4) ||
14794 (pi->pubpi.radiorev == 6)) {
14795 rfpwr_offset = (s16)
14796 nphy_papd_pgagain_dlt_5g_2057
14797 [pga_gn];
14798 } else if ((pi->pubpi.radiorev == 7)
14799 || (pi->pubpi.radiorev ==
14800 8)) {
14801 rfpwr_offset = (s16)
14802 nphy_papd_pgagain_dlt_5g_2057rev7
14803 [pga_gn];
14804 } else {
14805 ASSERT(0);
14806 }
14807 }
14808 wlc_phy_table_write_nphy(pi,
14809 NPHY_TBL_ID_CORE1TXPWRCTL,
14810 1, 576 + idx, 32,
14811 &rfpwr_offset);
14812 wlc_phy_table_write_nphy(pi,
14813 NPHY_TBL_ID_CORE2TXPWRCTL,
14814 1, 576 + idx, 32,
14815 &rfpwr_offset);
14816 }
14817 } else {
14818
14819 for (idx = 0; idx < 128; idx++) {
14820 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14821 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14822 rfpwr_offset = (s16)
14823 nphy_papd_pga_gain_delta_ipa_2g
14824 [pga_gn];
14825 } else {
14826 rfpwr_offset = (s16)
14827 nphy_papd_pga_gain_delta_ipa_5g
14828 [pga_gn];
14829 }
14830
14831 wlc_phy_table_write_nphy(pi,
14832 NPHY_TBL_ID_CORE1TXPWRCTL,
14833 1, 576 + idx, 32,
14834 &rfpwr_offset);
14835 wlc_phy_table_write_nphy(pi,
14836 NPHY_TBL_ID_CORE2TXPWRCTL,
14837 1, 576 + idx, 32,
14838 &rfpwr_offset);
14839 }
14840
14841 }
14842 } else {
14843
14844 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14845 192, 32, nphy_tpc_txgain);
14846 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14847 192, 32, nphy_tpc_txgain);
14848 }
14849
14850 if (pi->sh->phyrxchain != 0x3) {
14851 wlc_phy_rxcore_setstate_nphy((wlc_phy_t *) pi,
14852 pi->sh->phyrxchain);
14853 }
14854
14855 if (PHY_PERICAL_MPHASE_PENDING(pi)) {
14856 wlc_phy_cal_perical_mphase_restart(pi);
14857 }
14858
14859 if (!NORADIO_ENAB(pi->pubpi)) {
14860 bool do_rssi_cal = false;
14861
14862 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14863 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14864 (pi->nphy_rssical_chanspec_2G == 0) :
14865 (pi->nphy_rssical_chanspec_5G == 0);
14866
14867 if (do_rssi_cal) {
14868 wlc_phy_rssi_cal_nphy(pi);
14869 } else {
14870 wlc_phy_restore_rssical_nphy(pi);
14871 }
14872 } else {
14873 wlc_phy_rssi_cal_nphy(pi);
14874 }
14875
14876 if (!SCAN_RM_IN_PROGRESS(pi)) {
14877 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14878 (pi->nphy_iqcal_chanspec_2G == 0) :
14879 (pi->nphy_iqcal_chanspec_5G == 0);
14880 }
14881
14882 if (!pi->do_initcal)
14883 do_nphy_cal = false;
14884
14885 if (do_nphy_cal) {
14886
14887 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14888
14889 if (pi->antsel_type == ANTSEL_2x3)
14890 wlc_phy_antsel_init((wlc_phy_t *) pi, true);
14891
14892 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14893 wlc_phy_rssi_cal_nphy(pi);
14894
14895 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14896 pi->nphy_cal_orig_pwr_idx[0] =
14897 pi->nphy_txpwrindex[PHY_CORE_0].
14898 index_internal;
14899 pi->nphy_cal_orig_pwr_idx[1] =
14900 pi->nphy_txpwrindex[PHY_CORE_1].
14901 index_internal;
14902
14903 wlc_phy_precal_txgain_nphy(pi);
14904 target_gain =
14905 wlc_phy_get_tx_gain_nphy(pi);
14906 }
14907
14908 if (wlc_phy_cal_txiqlo_nphy
14909 (pi, target_gain, true, false) == BCME_OK) {
14910 if (wlc_phy_cal_rxiq_nphy
14911 (pi, target_gain, 2,
14912 false) == BCME_OK) {
14913 wlc_phy_savecal_nphy(pi);
14914
14915 }
14916 }
14917 } else if (pi->mphase_cal_phase_id ==
14918 MPHASE_CAL_STATE_IDLE) {
14919
14920 wlc_phy_cal_perical((wlc_phy_t *) pi,
14921 PHY_PERICAL_PHYINIT);
14922 }
14923 } else {
14924 wlc_phy_restorecal_nphy(pi);
14925 }
14926 }
14927
14928 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14929
14930 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14931
14932 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14933
14934 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14935
14936 write_phy_reg(pi, 0x70, 50);
14937
14938 wlc_phy_txlpfbw_nphy(pi);
14939
14940 wlc_phy_spurwar_nphy(pi);
14941
14942 }
14943
14944 static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble)
14945 {
14946 bool gf_preamble = false;
14947 u16 val;
14948
14949 if (preamble == WLC_N_PREAMBLE_GF) {
14950 gf_preamble = true;
14951 }
14952
14953 val = read_phy_reg(pi, 0xed);
14954
14955 val |= RX_GF_MM_AUTO;
14956 val &= ~RX_GF_OR_MM;
14957 if (gf_preamble)
14958 val |= RX_GF_OR_MM;
14959
14960 write_phy_reg(pi, 0xed, val);
14961 }
14962
14963 static void wlc_phy_resetcca_nphy(phy_info_t *pi)
14964 {
14965 u16 val;
14966
14967 ASSERT(0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
14968
14969 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14970
14971 val = read_phy_reg(pi, 0x01);
14972 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14973 udelay(1);
14974 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14975
14976 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14977
14978 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14979 }
14980
14981 void wlc_phy_pa_override_nphy(phy_info_t *pi, bool en)
14982 {
14983 u16 rfctrlintc_override_val;
14984
14985 if (!en) {
14986
14987 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14988 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14989
14990 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14991 rfctrlintc_override_val = 0x1480;
14992 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14993 rfctrlintc_override_val =
14994 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14995 } else {
14996 rfctrlintc_override_val =
14997 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14998 }
14999
15000 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
15001 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
15002 } else {
15003
15004 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
15005 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
15006 }
15007
15008 }
15009
15010 void wlc_phy_stf_chain_upd_nphy(phy_info_t *pi)
15011 {
15012
15013 u16 txrx_chain =
15014 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
15015 bool CoreActv_override = false;
15016
15017 if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN0) {
15018 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
15019 CoreActv_override = true;
15020
15021 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15022 and_phy_reg(pi, 0xa0, ~0x20);
15023 }
15024 } else if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN1) {
15025 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
15026 CoreActv_override = true;
15027
15028 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15029 or_phy_reg(pi, 0xa0, 0x20);
15030 }
15031 }
15032
15033 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15034
15035 if (CoreActv_override) {
15036
15037 pi->nphy_perical = PHY_PERICAL_DISABLE;
15038 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15039 } else {
15040 pi->nphy_perical = PHY_PERICAL_MPHASE;
15041 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15042 }
15043 }
15044
15045 void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, u8 rxcore_bitmask)
15046 {
15047 u16 regval;
15048 u16 tbl_buf[16];
15049 uint i;
15050 phy_info_t *pi = (phy_info_t *) pih;
15051 u16 tbl_opcode;
15052 bool suspend;
15053
15054 pi->sh->phyrxchain = rxcore_bitmask;
15055
15056 if (!pi->sh->clk)
15057 return;
15058
15059 suspend =
15060 (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
15061 if (!suspend)
15062 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15063
15064 if (pi->phyhang_avoid)
15065 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15066
15067 regval = read_phy_reg(pi, 0xa2);
15068 regval &= ~(0xf << 4);
15069 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
15070 write_phy_reg(pi, 0xa2, regval);
15071
15072 if ((rxcore_bitmask & 0x3) != 0x3) {
15073
15074 write_phy_reg(pi, 0x20e, 1);
15075
15076 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15077 if (pi->rx2tx_biasentry == -1) {
15078 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
15079 ARRAY_SIZE(tbl_buf), 80,
15080 16, tbl_buf);
15081
15082 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
15083 if (tbl_buf[i] ==
15084 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15085
15086 pi->rx2tx_biasentry = (u8) i;
15087 tbl_opcode =
15088 NPHY_REV3_RFSEQ_CMD_NOP;
15089 wlc_phy_table_write_nphy(pi,
15090 NPHY_TBL_ID_RFSEQ,
15091 1, i,
15092 16,
15093 &tbl_opcode);
15094 break;
15095 } else if (tbl_buf[i] ==
15096 NPHY_REV3_RFSEQ_CMD_END) {
15097 break;
15098 }
15099 }
15100 }
15101 }
15102 } else {
15103
15104 write_phy_reg(pi, 0x20e, 30);
15105
15106 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15107 if (pi->rx2tx_biasentry != -1) {
15108 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15109 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15110 1, pi->rx2tx_biasentry,
15111 16, &tbl_opcode);
15112 pi->rx2tx_biasentry = -1;
15113 }
15114 }
15115 }
15116
15117 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15118
15119 if (pi->phyhang_avoid)
15120 wlc_phy_stay_in_carriersearch_nphy(pi, false);
15121
15122 if (!suspend)
15123 wlapi_enable_mac(pi->sh->physhim);
15124 }
15125
15126 u8 wlc_phy_rxcore_getstate_nphy(wlc_phy_t *pih)
15127 {
15128 u16 regval, rxen_bits;
15129 phy_info_t *pi = (phy_info_t *) pih;
15130
15131 regval = read_phy_reg(pi, 0xa2);
15132 rxen_bits = (regval >> 4) & 0xf;
15133
15134 return (u8) rxen_bits;
15135 }
15136
15137 bool wlc_phy_n_txpower_ipa_ison(phy_info_t *pi)
15138 {
15139 return PHY_IPA(pi);
15140 }
15141
15142 static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi)
15143 {
15144 u8 idx, idx2, i, delta_ind;
15145
15146 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++) {
15147 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15148 }
15149
15150 for (i = 0; i < 4; i++) {
15151 idx2 = 0;
15152
15153 delta_ind = 0;
15154
15155 switch (i) {
15156 case 0:
15157
15158 if (CHSPEC_IS40(pi->radio_chanspec)
15159 && NPHY_IS_SROM_REINTERPRET) {
15160 idx = TXP_FIRST_MCS_40_SISO;
15161 } else {
15162 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15163 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15164 delta_ind = 1;
15165 }
15166 break;
15167
15168 case 1:
15169
15170 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15171 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15172 break;
15173
15174 case 2:
15175
15176 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15177 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15178 break;
15179
15180 case 3:
15181
15182 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15183 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15184 break;
15185 }
15186
15187 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15188 pi->tx_power_offset[idx];
15189 idx = idx + delta_ind;
15190 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15191 pi->tx_power_offset[idx];
15192 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15193 pi->tx_power_offset[idx];
15194 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15195 pi->tx_power_offset[idx++];
15196
15197 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15198 pi->tx_power_offset[idx++];
15199 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15200 pi->tx_power_offset[idx];
15201 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15202 pi->tx_power_offset[idx];
15203 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15204 pi->tx_power_offset[idx++];
15205
15206 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15207 pi->tx_power_offset[idx++];
15208 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15209 pi->tx_power_offset[idx];
15210 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15211 pi->tx_power_offset[idx];
15212 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15213 pi->tx_power_offset[idx++];
15214
15215 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15216 pi->tx_power_offset[idx];
15217 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15218 pi->tx_power_offset[idx++];
15219 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15220 pi->tx_power_offset[idx];
15221 idx = idx + 1 - delta_ind;
15222 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15223 pi->tx_power_offset[idx];
15224
15225 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15226 pi->tx_power_offset[idx];
15227 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15228 pi->tx_power_offset[idx];
15229 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15230 pi->tx_power_offset[idx];
15231 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15232 pi->tx_power_offset[idx];
15233 }
15234 }
15235
15236 void wlc_phy_cal_init_nphy(phy_info_t *pi)
15237 {
15238 }
15239
15240 static void wlc_phy_war_force_trsw_to_R_cliplo_nphy(phy_info_t *pi, u8 core)
15241 {
15242 if (core == PHY_CORE_0) {
15243 write_phy_reg(pi, 0x38, 0x4);
15244 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15245 write_phy_reg(pi, 0x37, 0x0060);
15246 } else {
15247 write_phy_reg(pi, 0x37, 0x1080);
15248 }
15249 } else if (core == PHY_CORE_1) {
15250 write_phy_reg(pi, 0x2ae, 0x4);
15251 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15252 write_phy_reg(pi, 0x2ad, 0x0060);
15253 } else {
15254 write_phy_reg(pi, 0x2ad, 0x1080);
15255 }
15256 }
15257 }
15258
15259 static void wlc_phy_war_txchain_upd_nphy(phy_info_t *pi, u8 txchain)
15260 {
15261 u8 txchain0, txchain1;
15262
15263 txchain0 = txchain & 0x1;
15264 txchain1 = (txchain & 0x2) >> 1;
15265 if (!txchain0) {
15266 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15267 }
15268
15269 if (!txchain1) {
15270 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15271 }
15272 }
15273
15274 static void wlc_phy_workarounds_nphy(phy_info_t *pi)
15275 {
15276 u8 rfseq_rx2tx_events[] = {
15277 NPHY_RFSEQ_CMD_NOP,
15278 NPHY_RFSEQ_CMD_RXG_FBW,
15279 NPHY_RFSEQ_CMD_TR_SWITCH,
15280 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15281 NPHY_RFSEQ_CMD_RXPD_TXPD,
15282 NPHY_RFSEQ_CMD_TX_GAIN,
15283 NPHY_RFSEQ_CMD_EXT_PA
15284 };
15285 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15286 u8 rfseq_tx2rx_events[] = {
15287 NPHY_RFSEQ_CMD_NOP,
15288 NPHY_RFSEQ_CMD_EXT_PA,
15289 NPHY_RFSEQ_CMD_TX_GAIN,
15290 NPHY_RFSEQ_CMD_RXPD_TXPD,
15291 NPHY_RFSEQ_CMD_TR_SWITCH,
15292 NPHY_RFSEQ_CMD_RXG_FBW,
15293 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15294 };
15295 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15296 u8 rfseq_tx2rx_events_rev3[] = {
15297 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15298 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15299 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15300 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15301 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15302 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15303 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15304 NPHY_REV3_RFSEQ_CMD_END
15305 };
15306 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15307 u8 rfseq_rx2tx_events_rev3[] = {
15308 NPHY_REV3_RFSEQ_CMD_NOP,
15309 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15310 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15311 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15312 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15313 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15314 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15315 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15316 NPHY_REV3_RFSEQ_CMD_END
15317 };
15318 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
15319
15320 u8 rfseq_rx2tx_events_rev3_ipa[] = {
15321 NPHY_REV3_RFSEQ_CMD_NOP,
15322 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15323 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15324 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15325 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15326 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15327 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
15328 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15329 NPHY_REV3_RFSEQ_CMD_END
15330 };
15331 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
15332 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
15333
15334 s16 alpha0, alpha1, alpha2;
15335 s16 beta0, beta1, beta2;
15336 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
15337 stbc_data_weights;
15338 u8 chan_freq_range = 0;
15339 u16 dac_control = 0x0002;
15340 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15341 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15342 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15343 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15344 u16 *aux_adc_vmid;
15345 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15346 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15347 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15348 u16 *aux_adc_gain;
15349 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15350 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
15351 s32 min_nvar_val = 0x18d;
15352 s32 min_nvar_offset_6mbps = 20;
15353 u8 pdetrange;
15354 u8 triso;
15355 u16 regval;
15356 u16 afectrl_adc_ctrl1_rev7 = 0x20;
15357 u16 afectrl_adc_ctrl2_rev7 = 0x0;
15358 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15359 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15360 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15361 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15362 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15363 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15364 u16 ipalvlshift_3p3_war_en = 0;
15365 u16 rccal_bcap_val, rccal_scap_val;
15366 u16 rccal_tx20_11b_bcap = 0;
15367 u16 rccal_tx20_11b_scap = 0;
15368 u16 rccal_tx20_11n_bcap = 0;
15369 u16 rccal_tx20_11n_scap = 0;
15370 u16 rccal_tx40_11n_bcap = 0;
15371 u16 rccal_tx40_11n_scap = 0;
15372 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15373 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15374 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15375 u16 tx_lpf_bw_ofdm_20mhz = 0;
15376 u16 tx_lpf_bw_ofdm_40mhz = 0;
15377 u16 tx_lpf_bw_11b = 0;
15378 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15379 u16 txgm_idac_bleed = 0;
15380 bool rccal_ovrd = false;
15381 u16 freq;
15382 int coreNum;
15383
15384 if (CHSPEC_IS5G(pi->radio_chanspec)) {
15385 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15386 } else {
15387 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15388 }
15389
15390 if (pi->phyhang_avoid)
15391 wlc_phy_stay_in_carriersearch_nphy(pi, true);
15392
15393 if (!ISSIM_ENAB(pi->sh->sih)) {
15394 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15395 }
15396
15397 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15398
15399 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15400 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15401
15402 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15403 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15404 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15405 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15406 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15407 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15408 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15409 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15410 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15411 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15412 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15413 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15414 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15415 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15416 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15417 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15418 }
15419
15420 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15421 write_phy_reg(pi, 0x23f, 0x1b0);
15422 write_phy_reg(pi, 0x240, 0x1b0);
15423 }
15424
15425 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
15426 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15427 }
15428
15429 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15430 &dac_control);
15431 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15432 &dac_control);
15433
15434 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15435 1, 0, 32, &leg_data_weights);
15436 leg_data_weights = leg_data_weights & 0xffffff;
15437 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15438 1, 0, 32, &leg_data_weights);
15439
15440 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15441 2, 0x15e, 16,
15442 rfseq_rx2tx_dacbufpu_rev7);
15443 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15444 rfseq_rx2tx_dacbufpu_rev7);
15445
15446 if (PHY_IPA(pi)) {
15447 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15448 rfseq_rx2tx_events_rev3_ipa,
15449 rfseq_rx2tx_dlys_rev3_ipa,
15450 sizeof
15451 (rfseq_rx2tx_events_rev3_ipa) /
15452 sizeof
15453 (rfseq_rx2tx_events_rev3_ipa
15454 [0]));
15455 }
15456
15457 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15458 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15459
15460 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15461 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15462 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15463
15464 if (PHY_IPA(pi)) {
15465
15466 if (((pi->pubpi.radiorev == 5)
15467 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15468 || (pi->pubpi.radiorev == 7)
15469 || (pi->pubpi.radiorev == 8)) {
15470
15471 rccal_bcap_val =
15472 read_radio_reg(pi,
15473 RADIO_2057_RCCAL_BCAP_VAL);
15474 rccal_scap_val =
15475 read_radio_reg(pi,
15476 RADIO_2057_RCCAL_SCAP_VAL);
15477
15478 rccal_tx20_11b_bcap = rccal_bcap_val;
15479 rccal_tx20_11b_scap = rccal_scap_val;
15480
15481 if ((pi->pubpi.radiorev == 5) &&
15482 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15483
15484 rccal_tx20_11n_bcap = rccal_bcap_val;
15485 rccal_tx20_11n_scap = rccal_scap_val;
15486 rccal_tx40_11n_bcap = 0xc;
15487 rccal_tx40_11n_scap = 0xc;
15488
15489 rccal_ovrd = true;
15490
15491 } else if ((pi->pubpi.radiorev == 7)
15492 || (pi->pubpi.radiorev == 8)) {
15493
15494 tx_lpf_bw_ofdm_20mhz = 4;
15495 tx_lpf_bw_11b = 1;
15496
15497 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15498 rccal_tx20_11n_bcap = 0xc;
15499 rccal_tx20_11n_scap = 0xc;
15500 rccal_tx40_11n_bcap = 0xa;
15501 rccal_tx40_11n_scap = 0xa;
15502 } else {
15503 rccal_tx20_11n_bcap = 0x14;
15504 rccal_tx20_11n_scap = 0x14;
15505 rccal_tx40_11n_bcap = 0xf;
15506 rccal_tx40_11n_scap = 0xf;
15507 }
15508
15509 rccal_ovrd = true;
15510 }
15511 }
15512
15513 } else {
15514
15515 if (pi->pubpi.radiorev == 5) {
15516
15517 tx_lpf_bw_ofdm_20mhz = 1;
15518 tx_lpf_bw_ofdm_40mhz = 3;
15519
15520 rccal_bcap_val =
15521 read_radio_reg(pi,
15522 RADIO_2057_RCCAL_BCAP_VAL);
15523 rccal_scap_val =
15524 read_radio_reg(pi,
15525 RADIO_2057_RCCAL_SCAP_VAL);
15526
15527 rccal_tx20_11b_bcap = rccal_bcap_val;
15528 rccal_tx20_11b_scap = rccal_scap_val;
15529
15530 rccal_tx20_11n_bcap = 0x13;
15531 rccal_tx20_11n_scap = 0x11;
15532 rccal_tx40_11n_bcap = 0x13;
15533 rccal_tx40_11n_scap = 0x11;
15534
15535 rccal_ovrd = true;
15536 }
15537 }
15538
15539 if (rccal_ovrd) {
15540
15541 rx2tx_lpf_rc_lut_tx20_11b = (rccal_tx20_11b_bcap << 8) |
15542 (rccal_tx20_11b_scap << 3) | tx_lpf_bw_11b;
15543 rx2tx_lpf_rc_lut_tx20_11n = (rccal_tx20_11n_bcap << 8) |
15544 (rccal_tx20_11n_scap << 3) | tx_lpf_bw_ofdm_20mhz;
15545 rx2tx_lpf_rc_lut_tx40_11n = (rccal_tx40_11n_bcap << 8) |
15546 (rccal_tx40_11n_scap << 3) | tx_lpf_bw_ofdm_40mhz;
15547
15548 for (coreNum = 0; coreNum <= 1; coreNum++) {
15549 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15550 1,
15551 0x152 + coreNum * 0x10,
15552 16,
15553 &rx2tx_lpf_rc_lut_tx20_11b);
15554 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15555 1,
15556 0x153 + coreNum * 0x10,
15557 16,
15558 &rx2tx_lpf_rc_lut_tx20_11n);
15559 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15560 1,
15561 0x154 + coreNum * 0x10,
15562 16,
15563 &rx2tx_lpf_rc_lut_tx20_11n);
15564 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15565 1,
15566 0x155 + coreNum * 0x10,
15567 16,
15568 &rx2tx_lpf_rc_lut_tx40_11n);
15569 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15570 1,
15571 0x156 + coreNum * 0x10,
15572 16,
15573 &rx2tx_lpf_rc_lut_tx40_11n);
15574 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15575 1,
15576 0x157 + coreNum * 0x10,
15577 16,
15578 &rx2tx_lpf_rc_lut_tx40_11n);
15579 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15580 1,
15581 0x158 + coreNum * 0x10,
15582 16,
15583 &rx2tx_lpf_rc_lut_tx40_11n);
15584 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15585 1,
15586 0x159 + coreNum * 0x10,
15587 16,
15588 &rx2tx_lpf_rc_lut_tx40_11n);
15589 }
15590
15591 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
15592 1, 0x3, 0,
15593 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15594 }
15595
15596 if (!NORADIO_ENAB(pi->pubpi)) {
15597 write_phy_reg(pi, 0x32f, 0x3);
15598 }
15599
15600 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
15601 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
15602 1, 0x3, 0,
15603 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15604 }
15605
15606 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15607 (pi->pubpi.radiorev == 6)) {
15608 if ((pi->sh->sromrev >= 8)
15609 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15610 ipalvlshift_3p3_war_en = 1;
15611
15612 if (ipalvlshift_3p3_war_en) {
15613 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15614 0x5);
15615 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15616 0x30);
15617 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15618 or_radio_reg(pi,
15619 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15620 0x1);
15621 or_radio_reg(pi,
15622 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15623 0x1);
15624
15625 ipa2g_mainbias = 0x1f;
15626
15627 ipa2g_casconv = 0x6f;
15628
15629 ipa2g_biasfilt = 0xaa;
15630 } else {
15631
15632 ipa2g_mainbias = 0x2b;
15633
15634 ipa2g_casconv = 0x7f;
15635
15636 ipa2g_biasfilt = 0xee;
15637 }
15638
15639 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15640 for (coreNum = 0; coreNum <= 1; coreNum++) {
15641 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15642 coreNum, IPA2G_IMAIN,
15643 ipa2g_mainbias);
15644 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15645 coreNum, IPA2G_CASCONV,
15646 ipa2g_casconv);
15647 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15648 coreNum,
15649 IPA2G_BIAS_FILTER,
15650 ipa2g_biasfilt);
15651 }
15652 }
15653 }
15654
15655 if (PHY_IPA(pi)) {
15656 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15657 if ((pi->pubpi.radiorev == 3)
15658 || (pi->pubpi.radiorev == 4)
15659 || (pi->pubpi.radiorev == 6)) {
15660
15661 txgm_idac_bleed = 0x7f;
15662 }
15663
15664 for (coreNum = 0; coreNum <= 1; coreNum++) {
15665 if (txgm_idac_bleed != 0)
15666 WRITE_RADIO_REG4(pi, RADIO_2057,
15667 CORE, coreNum,
15668 TXGM_IDAC_BLEED,
15669 txgm_idac_bleed);
15670 }
15671
15672 if (pi->pubpi.radiorev == 5) {
15673
15674 for (coreNum = 0; coreNum <= 1;
15675 coreNum++) {
15676 WRITE_RADIO_REG4(pi, RADIO_2057,
15677 CORE, coreNum,
15678 IPA2G_CASCONV,
15679 0x13);
15680 WRITE_RADIO_REG4(pi, RADIO_2057,
15681 CORE, coreNum,
15682 IPA2G_IMAIN,
15683 0x1f);
15684 WRITE_RADIO_REG4(pi, RADIO_2057,
15685 CORE, coreNum,
15686 IPA2G_BIAS_FILTER,
15687 0xee);
15688 WRITE_RADIO_REG4(pi, RADIO_2057,
15689 CORE, coreNum,
15690 PAD2G_IDACS,
15691 0x8a);
15692 WRITE_RADIO_REG4(pi, RADIO_2057,
15693 CORE, coreNum,
15694 PAD_BIAS_FILTER_BWS,
15695 0x3e);
15696 }
15697
15698 } else if ((pi->pubpi.radiorev == 7)
15699 || (pi->pubpi.radiorev == 8)) {
15700
15701 if (CHSPEC_IS40(pi->radio_chanspec) ==
15702 0) {
15703 WRITE_RADIO_REG4(pi, RADIO_2057,
15704 CORE, 0,
15705 IPA2G_IMAIN,
15706 0x14);
15707 WRITE_RADIO_REG4(pi, RADIO_2057,
15708 CORE, 1,
15709 IPA2G_IMAIN,
15710 0x12);
15711 } else {
15712 WRITE_RADIO_REG4(pi, RADIO_2057,
15713 CORE, 0,
15714 IPA2G_IMAIN,
15715 0x16);
15716 WRITE_RADIO_REG4(pi, RADIO_2057,
15717 CORE, 1,
15718 IPA2G_IMAIN,
15719 0x16);
15720 }
15721 }
15722
15723 } else {
15724 freq =
15725 CHAN5G_FREQ(CHSPEC_CHANNEL
15726 (pi->radio_chanspec));
15727 if (((freq >= 5180) && (freq <= 5230))
15728 || ((freq >= 5745) && (freq <= 5805))) {
15729 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15730 0, IPA5G_BIAS_FILTER,
15731 0xff);
15732 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15733 1, IPA5G_BIAS_FILTER,
15734 0xff);
15735 }
15736 }
15737 } else {
15738
15739 if (pi->pubpi.radiorev != 5) {
15740 for (coreNum = 0; coreNum <= 1; coreNum++) {
15741 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15742 coreNum,
15743 TXMIX2G_TUNE_BOOST_PU,
15744 0x61);
15745 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15746 coreNum,
15747 TXGM_IDAC_BLEED, 0x70);
15748 }
15749 }
15750 }
15751
15752 if (pi->pubpi.radiorev == 4) {
15753 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15754 0x05, 16,
15755 &afectrl_adc_ctrl1_rev7);
15756 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15757 0x15, 16,
15758 &afectrl_adc_ctrl1_rev7);
15759
15760 for (coreNum = 0; coreNum <= 1; coreNum++) {
15761 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15762 AFE_VCM_CAL_MASTER, 0x0);
15763 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15764 AFE_SET_VCM_I, 0x3f);
15765 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15766 AFE_SET_VCM_Q, 0x3f);
15767 }
15768 } else {
15769 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15770 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15771 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15772 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15773
15774 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15775 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15776 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15777 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15778
15779 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15780 0x05, 16,
15781 &afectrl_adc_ctrl2_rev7);
15782 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15783 0x15, 16,
15784 &afectrl_adc_ctrl2_rev7);
15785
15786 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15787 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15788 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15789 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15790 }
15791
15792 write_phy_reg(pi, 0x6a, 0x2);
15793
15794 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15795 &min_nvar_offset_6mbps);
15796
15797 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15798 &rfseq_pktgn_lpf_hpc_rev7);
15799
15800 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15801 &rfseq_pktgn_lpf_h_hpc_rev7);
15802
15803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15804 &rfseq_htpktgn_lpf_hpc_rev7);
15805
15806 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15807 &rfseq_cckpktgn_lpf_hpc_rev7);
15808
15809 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15810 &rfseq_tx2rx_lpf_h_hpc_rev7);
15811
15812 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15813 &rfseq_rx2tx_lpf_h_hpc_rev7);
15814
15815 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15816 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15817 32, &min_nvar_val);
15818 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15819 127, 32, &min_nvar_val);
15820 } else {
15821 min_nvar_val = noise_var_tbl_rev7[3];
15822 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15823 32, &min_nvar_val);
15824
15825 min_nvar_val = noise_var_tbl_rev7[127];
15826 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15827 127, 32, &min_nvar_val);
15828 }
15829
15830 wlc_phy_workarounds_nphy_gainctrl(pi);
15831
15832 pdetrange =
15833 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15834 pdetrange : pi->srom_fem2g.pdetrange;
15835
15836 if (pdetrange == 0) {
15837 chan_freq_range =
15838 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15839 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15840 aux_adc_vmid_rev7_core0[3] = 0x70;
15841 aux_adc_vmid_rev7_core1[3] = 0x70;
15842 aux_adc_gain_rev7[3] = 2;
15843 } else {
15844 aux_adc_vmid_rev7_core0[3] = 0x80;
15845 aux_adc_vmid_rev7_core1[3] = 0x80;
15846 aux_adc_gain_rev7[3] = 3;
15847 }
15848 } else if (pdetrange == 1) {
15849 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15850 aux_adc_vmid_rev7_core0[3] = 0x7c;
15851 aux_adc_vmid_rev7_core1[3] = 0x7c;
15852 aux_adc_gain_rev7[3] = 2;
15853 } else {
15854 aux_adc_vmid_rev7_core0[3] = 0x8c;
15855 aux_adc_vmid_rev7_core1[3] = 0x8c;
15856 aux_adc_gain_rev7[3] = 1;
15857 }
15858 } else if (pdetrange == 2) {
15859 if (pi->pubpi.radioid == BCM2057_ID) {
15860 if ((pi->pubpi.radiorev == 5)
15861 || (pi->pubpi.radiorev == 7)
15862 || (pi->pubpi.radiorev == 8)) {
15863 if (chan_freq_range ==
15864 WL_CHAN_FREQ_RANGE_2G) {
15865 aux_adc_vmid_rev7_core0[3] =
15866 0x8c;
15867 aux_adc_vmid_rev7_core1[3] =
15868 0x8c;
15869 aux_adc_gain_rev7[3] = 0;
15870 } else {
15871 aux_adc_vmid_rev7_core0[3] =
15872 0x96;
15873 aux_adc_vmid_rev7_core1[3] =
15874 0x96;
15875 aux_adc_gain_rev7[3] = 0;
15876 }
15877 }
15878 }
15879
15880 } else if (pdetrange == 3) {
15881 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15882 aux_adc_vmid_rev7_core0[3] = 0x89;
15883 aux_adc_vmid_rev7_core1[3] = 0x89;
15884 aux_adc_gain_rev7[3] = 0;
15885 }
15886
15887 } else if (pdetrange == 5) {
15888
15889 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15890 aux_adc_vmid_rev7_core0[3] = 0x80;
15891 aux_adc_vmid_rev7_core1[3] = 0x80;
15892 aux_adc_gain_rev7[3] = 3;
15893 } else {
15894 aux_adc_vmid_rev7_core0[3] = 0x70;
15895 aux_adc_vmid_rev7_core1[3] = 0x70;
15896 aux_adc_gain_rev7[3] = 2;
15897 }
15898 }
15899
15900 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15901 &aux_adc_vmid_rev7_core0);
15902 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15903 &aux_adc_vmid_rev7_core1);
15904 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15905 &aux_adc_gain_rev7);
15906 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15907 &aux_adc_gain_rev7);
15908
15909 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15910
15911 write_phy_reg(pi, 0x23f, 0x1f8);
15912 write_phy_reg(pi, 0x240, 0x1f8);
15913
15914 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15915 1, 0, 32, &leg_data_weights);
15916 leg_data_weights = leg_data_weights & 0xffffff;
15917 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15918 1, 0, 32, &leg_data_weights);
15919
15920 alpha0 = 293;
15921 alpha1 = 435;
15922 alpha2 = 261;
15923 beta0 = 366;
15924 beta1 = 205;
15925 beta2 = 32;
15926 write_phy_reg(pi, 0x145, alpha0);
15927 write_phy_reg(pi, 0x146, alpha1);
15928 write_phy_reg(pi, 0x147, alpha2);
15929 write_phy_reg(pi, 0x148, beta0);
15930 write_phy_reg(pi, 0x149, beta1);
15931 write_phy_reg(pi, 0x14a, beta2);
15932
15933 write_phy_reg(pi, 0x38, 0xC);
15934 write_phy_reg(pi, 0x2ae, 0xC);
15935
15936 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15937 rfseq_tx2rx_events_rev3,
15938 rfseq_tx2rx_dlys_rev3,
15939 sizeof(rfseq_tx2rx_events_rev3) /
15940 sizeof(rfseq_tx2rx_events_rev3[0]));
15941
15942 if (PHY_IPA(pi)) {
15943 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15944 rfseq_rx2tx_events_rev3_ipa,
15945 rfseq_rx2tx_dlys_rev3_ipa,
15946 sizeof
15947 (rfseq_rx2tx_events_rev3_ipa) /
15948 sizeof
15949 (rfseq_rx2tx_events_rev3_ipa
15950 [0]));
15951 }
15952
15953 if ((pi->sh->hw_phyrxchain != 0x3) &&
15954 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15955
15956 if (PHY_IPA(pi)) {
15957 rfseq_rx2tx_dlys_rev3[5] = 59;
15958 rfseq_rx2tx_dlys_rev3[6] = 1;
15959 rfseq_rx2tx_events_rev3[7] =
15960 NPHY_REV3_RFSEQ_CMD_END;
15961 }
15962
15963 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15964 rfseq_rx2tx_events_rev3,
15965 rfseq_rx2tx_dlys_rev3,
15966 sizeof(rfseq_rx2tx_events_rev3) /
15967 sizeof(rfseq_rx2tx_events_rev3
15968 [0]));
15969 }
15970
15971 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15972 write_phy_reg(pi, 0x6a, 0x2);
15973 } else {
15974 write_phy_reg(pi, 0x6a, 0x9c40);
15975 }
15976
15977 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15978
15979 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15980 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15981 32, &min_nvar_val);
15982 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15983 127, 32, &min_nvar_val);
15984 } else {
15985 min_nvar_val = noise_var_tbl_rev3[3];
15986 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15987 32, &min_nvar_val);
15988
15989 min_nvar_val = noise_var_tbl_rev3[127];
15990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15991 127, 32, &min_nvar_val);
15992 }
15993
15994 wlc_phy_workarounds_nphy_gainctrl(pi);
15995
15996 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15997 &dac_control);
15998 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15999 &dac_control);
16000
16001 pdetrange =
16002 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16003 pdetrange : pi->srom_fem2g.pdetrange;
16004
16005 if (pdetrange == 0) {
16006 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16007 aux_adc_vmid = aux_adc_vmid_rev4;
16008 aux_adc_gain = aux_adc_gain_rev4;
16009 } else {
16010 aux_adc_vmid = aux_adc_vmid_rev3;
16011 aux_adc_gain = aux_adc_gain_rev3;
16012 }
16013 chan_freq_range =
16014 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16015 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16016 switch (chan_freq_range) {
16017 case WL_CHAN_FREQ_RANGE_5GL:
16018 aux_adc_vmid[3] = 0x89;
16019 aux_adc_gain[3] = 0;
16020 break;
16021 case WL_CHAN_FREQ_RANGE_5GM:
16022 aux_adc_vmid[3] = 0x89;
16023 aux_adc_gain[3] = 0;
16024 break;
16025 case WL_CHAN_FREQ_RANGE_5GH:
16026 aux_adc_vmid[3] = 0x89;
16027 aux_adc_gain[3] = 0;
16028 break;
16029 default:
16030 break;
16031 }
16032 }
16033 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16034 0x08, 16, aux_adc_vmid);
16035 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16036 0x18, 16, aux_adc_vmid);
16037 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16038 0x0c, 16, aux_adc_gain);
16039 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16040 0x1c, 16, aux_adc_gain);
16041 } else if (pdetrange == 1) {
16042 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16043 0x08, 16, sk_adc_vmid);
16044 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16045 0x18, 16, sk_adc_vmid);
16046 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16047 0x0c, 16, sk_adc_gain);
16048 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16049 0x1c, 16, sk_adc_gain);
16050 } else if (pdetrange == 2) {
16051
16052 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16053 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16054
16055 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16056 chan_freq_range =
16057 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16058 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16059 bcm_adc_vmid[3] = 0x8e;
16060 bcm_adc_gain[3] = 0x03;
16061 } else {
16062 bcm_adc_vmid[3] = 0x94;
16063 bcm_adc_gain[3] = 0x03;
16064 }
16065 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16066 bcm_adc_vmid[3] = 0x84;
16067 bcm_adc_gain[3] = 0x02;
16068 }
16069
16070 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16071 0x08, 16, bcm_adc_vmid);
16072 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16073 0x18, 16, bcm_adc_vmid);
16074 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16075 0x0c, 16, bcm_adc_gain);
16076 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16077 0x1c, 16, bcm_adc_gain);
16078 } else if (pdetrange == 3) {
16079 chan_freq_range =
16080 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16081 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16082 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16083
16084 u16 auxadc_vmid[] = {
16085 0xa2, 0xb4, 0xb4, 0x270 };
16086 u16 auxadc_gain[] = {
16087 0x02, 0x02, 0x02, 0x00 };
16088
16089 wlc_phy_table_write_nphy(pi,
16090 NPHY_TBL_ID_AFECTRL, 4,
16091 0x08, 16, auxadc_vmid);
16092 wlc_phy_table_write_nphy(pi,
16093 NPHY_TBL_ID_AFECTRL, 4,
16094 0x18, 16, auxadc_vmid);
16095 wlc_phy_table_write_nphy(pi,
16096 NPHY_TBL_ID_AFECTRL, 4,
16097 0x0c, 16, auxadc_gain);
16098 wlc_phy_table_write_nphy(pi,
16099 NPHY_TBL_ID_AFECTRL, 4,
16100 0x1c, 16, auxadc_gain);
16101 }
16102 } else if ((pdetrange == 4) || (pdetrange == 5)) {
16103 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16104 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16105 u16 Vmid[2], Av[2];
16106
16107 chan_freq_range =
16108 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16109 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16110 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16111 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16112 Av[0] = (pdetrange == 4) ? 2 : 0;
16113 Av[1] = (pdetrange == 4) ? 2 : 0;
16114 } else {
16115 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16116 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16117 Av[0] = (pdetrange == 4) ? 2 : 0;
16118 Av[1] = (pdetrange == 4) ? 2 : 0;
16119 }
16120
16121 bcm_adc_vmid[3] = Vmid[0];
16122 bcm_adc_gain[3] = Av[0];
16123 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16124 0x08, 16, bcm_adc_vmid);
16125 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16126 0x0c, 16, bcm_adc_gain);
16127
16128 bcm_adc_vmid[3] = Vmid[1];
16129 bcm_adc_gain[3] = Av[1];
16130 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16131 0x18, 16, bcm_adc_vmid);
16132 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16133 0x1c, 16, bcm_adc_gain);
16134 } else {
16135 ASSERT(0);
16136 }
16137
16138 write_radio_reg(pi,
16139 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16140 0x0);
16141 write_radio_reg(pi,
16142 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16143 0x0);
16144
16145 write_radio_reg(pi,
16146 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16147 0x6);
16148 write_radio_reg(pi,
16149 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16150 0x6);
16151
16152 write_radio_reg(pi,
16153 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16154 0x7);
16155 write_radio_reg(pi,
16156 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16157 0x7);
16158
16159 write_radio_reg(pi,
16160 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16161 0x88);
16162 write_radio_reg(pi,
16163 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16164 0x88);
16165
16166 write_radio_reg(pi,
16167 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16168 0x0);
16169 write_radio_reg(pi,
16170 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16171 0x0);
16172
16173 write_radio_reg(pi,
16174 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16175 0x0);
16176 write_radio_reg(pi,
16177 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16178 0x0);
16179
16180 triso =
16181 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16182 triso : pi->srom_fem2g.triso;
16183 if (triso == 7) {
16184 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16185 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16186 }
16187
16188 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16189
16190 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16191 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16192 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16193 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16194 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16195 nss1_data_weights = 0x00088888;
16196 ht_data_weights = 0x00088888;
16197 stbc_data_weights = 0x00088888;
16198 } else {
16199 nss1_data_weights = 0x88888888;
16200 ht_data_weights = 0x88888888;
16201 stbc_data_weights = 0x88888888;
16202 }
16203 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16204 1, 1, 32, &nss1_data_weights);
16205 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16206 1, 2, 32, &ht_data_weights);
16207 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16208 1, 3, 32, &stbc_data_weights);
16209
16210 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16211 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16212 write_radio_reg(pi,
16213 RADIO_2056_TX_GMBB_IDAC |
16214 RADIO_2056_TX0, 0x70);
16215 write_radio_reg(pi,
16216 RADIO_2056_TX_GMBB_IDAC |
16217 RADIO_2056_TX1, 0x70);
16218 }
16219 }
16220
16221 if (!pi->edcrs_threshold_lock) {
16222 write_phy_reg(pi, 0x224, 0x3eb);
16223 write_phy_reg(pi, 0x225, 0x3eb);
16224 write_phy_reg(pi, 0x226, 0x341);
16225 write_phy_reg(pi, 0x227, 0x341);
16226 write_phy_reg(pi, 0x228, 0x42b);
16227 write_phy_reg(pi, 0x229, 0x42b);
16228 write_phy_reg(pi, 0x22a, 0x381);
16229 write_phy_reg(pi, 0x22b, 0x381);
16230 write_phy_reg(pi, 0x22c, 0x42b);
16231 write_phy_reg(pi, 0x22d, 0x42b);
16232 write_phy_reg(pi, 0x22e, 0x381);
16233 write_phy_reg(pi, 0x22f, 0x381);
16234 }
16235
16236 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16237
16238 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK) {
16239 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16240 MHF4_BPHY_TXCORE0,
16241 MHF4_BPHY_TXCORE0, WLC_BAND_ALL);
16242 }
16243 }
16244 } else {
16245
16246 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16247 (pi->sh->boardtype == 0x8b)) {
16248 uint i;
16249 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
16250 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
16251 rfseq_rx2tx_dlys[i] = war_dlys[i];
16252 }
16253
16254 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16255 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16256 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16257 } else {
16258 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16259 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16260 }
16261
16262 regval = 0x000a;
16263 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16264 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16265
16266 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16267 regval = 0xcdaa;
16268 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16269 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16270 }
16271
16272 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16273 regval = 0x0000;
16274 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16275 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16276
16277 regval = 0x7aab;
16278 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16279 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16280
16281 regval = 0x0800;
16282 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16283 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16284 }
16285
16286 write_phy_reg(pi, 0xf8, 0x02d8);
16287 write_phy_reg(pi, 0xf9, 0x0301);
16288 write_phy_reg(pi, 0xfa, 0x02d8);
16289 write_phy_reg(pi, 0xfb, 0x0301);
16290
16291 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16292 rfseq_rx2tx_dlys,
16293 sizeof(rfseq_rx2tx_events) /
16294 sizeof(rfseq_rx2tx_events[0]));
16295
16296 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16297 rfseq_tx2rx_dlys,
16298 sizeof(rfseq_tx2rx_events) /
16299 sizeof(rfseq_tx2rx_events[0]));
16300
16301 wlc_phy_workarounds_nphy_gainctrl(pi);
16302
16303 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16304
16305 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16306 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16307 MHF3_NPHY_MLADV_WAR,
16308 MHF3_NPHY_MLADV_WAR,
16309 WLC_BAND_ALL);
16310
16311 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16312 write_phy_reg(pi, 0x1e3, 0x0);
16313 write_phy_reg(pi, 0x1e4, 0x0);
16314 }
16315
16316 if (NREV_LT(pi->pubpi.phy_rev, 2))
16317 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16318
16319 alpha0 = 293;
16320 alpha1 = 435;
16321 alpha2 = 261;
16322 beta0 = 366;
16323 beta1 = 205;
16324 beta2 = 32;
16325 write_phy_reg(pi, 0x145, alpha0);
16326 write_phy_reg(pi, 0x146, alpha1);
16327 write_phy_reg(pi, 0x147, alpha2);
16328 write_phy_reg(pi, 0x148, beta0);
16329 write_phy_reg(pi, 0x149, beta1);
16330 write_phy_reg(pi, 0x14a, beta2);
16331
16332 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16333 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16334
16335 write_phy_reg(pi, 0x192, 0xb5);
16336 write_phy_reg(pi, 0x193, 0xa4);
16337 write_phy_reg(pi, 0x194, 0x0);
16338 }
16339
16340 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16341 mod_phy_reg(pi, 0x221,
16342 NPHY_FORCESIG_DECODEGATEDCLKS,
16343 NPHY_FORCESIG_DECODEGATEDCLKS);
16344 }
16345 }
16346
16347 if (pi->phyhang_avoid)
16348 wlc_phy_stay_in_carriersearch_nphy(pi, false);
16349 }
16350
16351 static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi)
16352 {
16353 u16 w1th, hpf_code, currband;
16354 int ctr;
16355 u8 rfseq_updategainu_events[] = {
16356 NPHY_RFSEQ_CMD_RX_GAIN,
16357 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16358 NPHY_RFSEQ_CMD_SET_HPF_BW
16359 };
16360 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
16361 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16362 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16363 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16364 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16365 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16366 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16367 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16368 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16369 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16370 s8 *lna1_gain_db = NULL;
16371 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16372 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16373 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16374 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16375 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16376 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16377 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16378 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16379 s8 *lna2_gain_db = NULL;
16380 s8 tiaG_gain_db[] = {
16381 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
16382 s8 tiaA_gain_db[] = {
16383 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
16384 s8 tiaA_gain_db_rev4[] = {
16385 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16386 s8 tiaA_gain_db_rev5[] = {
16387 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16388 s8 tiaA_gain_db_rev6[] = {
16389 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16390 s8 *tia_gain_db;
16391 s8 tiaG_gainbits[] = {
16392 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16393 s8 tiaA_gainbits[] = {
16394 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
16395 s8 tiaA_gainbits_rev4[] = {
16396 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16397 s8 tiaA_gainbits_rev5[] = {
16398 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16399 s8 tiaA_gainbits_rev6[] = {
16400 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16401 s8 *tia_gainbits;
16402 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16403 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
16404 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16405 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16406 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16407 u16 rfseqG_init_gain_rev5_elna[] = {
16408 0x013f, 0x013f, 0x013f, 0x013f };
16409 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16410 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16411 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16412 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16413 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16414 u16 rfseqA_init_gain_rev4_elna[] = {
16415 0x314f, 0x314f, 0x314f, 0x314f };
16416 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16417 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16418 u16 *rfseq_init_gain;
16419 u16 initG_gaincode = 0x627e;
16420 u16 initG_gaincode_rev4 = 0x527e;
16421 u16 initG_gaincode_rev5 = 0x427e;
16422 u16 initG_gaincode_rev5_elna = 0x027e;
16423 u16 initG_gaincode_rev6 = 0x527e;
16424 u16 initG_gaincode_rev6_224B0 = 0x427e;
16425 u16 initG_gaincode_rev6_elna = 0x127e;
16426 u16 initA_gaincode = 0x52de;
16427 u16 initA_gaincode_rev4 = 0x629e;
16428 u16 initA_gaincode_rev4_elna = 0x329e;
16429 u16 initA_gaincode_rev5 = 0x729e;
16430 u16 initA_gaincode_rev6 = 0x729e;
16431 u16 init_gaincode;
16432 u16 clip1hiG_gaincode = 0x107e;
16433 u16 clip1hiG_gaincode_rev4 = 0x007e;
16434 u16 clip1hiG_gaincode_rev5 = 0x1076;
16435 u16 clip1hiG_gaincode_rev6 = 0x007e;
16436 u16 clip1hiA_gaincode = 0x00de;
16437 u16 clip1hiA_gaincode_rev4 = 0x029e;
16438 u16 clip1hiA_gaincode_rev5 = 0x029e;
16439 u16 clip1hiA_gaincode_rev6 = 0x029e;
16440 u16 clip1hi_gaincode;
16441 u16 clip1mdG_gaincode = 0x0066;
16442 u16 clip1mdA_gaincode = 0x00ca;
16443 u16 clip1mdA_gaincode_rev4 = 0x1084;
16444 u16 clip1mdA_gaincode_rev5 = 0x2084;
16445 u16 clip1mdA_gaincode_rev6 = 0x2084;
16446 u16 clip1md_gaincode = 0;
16447 u16 clip1loG_gaincode = 0x0074;
16448 u16 clip1loG_gaincode_rev5[] = {
16449 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16450 };
16451 u16 clip1loG_gaincode_rev6[] = {
16452 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16453 };
16454 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16455 u16 clip1loA_gaincode = 0x00cc;
16456 u16 clip1loA_gaincode_rev4 = 0x0086;
16457 u16 clip1loA_gaincode_rev5 = 0x2086;
16458 u16 clip1loA_gaincode_rev6 = 0x2086;
16459 u16 clip1lo_gaincode;
16460 u8 crsminG_th = 0x18;
16461 u8 crsminG_th_rev5 = 0x18;
16462 u8 crsminG_th_rev6 = 0x18;
16463 u8 crsminA_th = 0x1e;
16464 u8 crsminA_th_rev4 = 0x24;
16465 u8 crsminA_th_rev5 = 0x24;
16466 u8 crsminA_th_rev6 = 0x24;
16467 u8 crsmin_th;
16468 u8 crsminlG_th = 0x18;
16469 u8 crsminlG_th_rev5 = 0x18;
16470 u8 crsminlG_th_rev6 = 0x18;
16471 u8 crsminlA_th = 0x1e;
16472 u8 crsminlA_th_rev4 = 0x24;
16473 u8 crsminlA_th_rev5 = 0x24;
16474 u8 crsminlA_th_rev6 = 0x24;
16475 u8 crsminl_th = 0;
16476 u8 crsminuG_th = 0x18;
16477 u8 crsminuG_th_rev5 = 0x18;
16478 u8 crsminuG_th_rev6 = 0x18;
16479 u8 crsminuA_th = 0x1e;
16480 u8 crsminuA_th_rev4 = 0x24;
16481 u8 crsminuA_th_rev5 = 0x24;
16482 u8 crsminuA_th_rev6 = 0x24;
16483 u8 crsminuA_th_rev6_224B0 = 0x2d;
16484 u8 crsminu_th;
16485 u16 nbclipG_th = 0x20d;
16486 u16 nbclipG_th_rev4 = 0x1a1;
16487 u16 nbclipG_th_rev5 = 0x1d0;
16488 u16 nbclipG_th_rev6 = 0x1d0;
16489 u16 nbclipA_th = 0x1a1;
16490 u16 nbclipA_th_rev4 = 0x107;
16491 u16 nbclipA_th_rev5 = 0x0a9;
16492 u16 nbclipA_th_rev6 = 0x0f0;
16493 u16 nbclip_th = 0;
16494 u8 w1clipG_th = 5;
16495 u8 w1clipG_th_rev5 = 9;
16496 u8 w1clipG_th_rev6 = 5;
16497 u8 w1clipA_th = 25, w1clip_th;
16498 u8 rssi_gain_default = 0x50;
16499 u8 rssiG_gain_rev6_224B0 = 0x50;
16500 u8 rssiA_gain_rev5 = 0x90;
16501 u8 rssiA_gain_rev6 = 0x90;
16502 u8 rssi_gain;
16503 u16 regval[21];
16504 u8 triso;
16505
16506 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16507 pi->srom_fem2g.triso;
16508
16509 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16510 if (pi->pubpi.radiorev == 5) {
16511
16512 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16513 } else if (pi->pubpi.radiorev == 7) {
16514 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16515
16516 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16517 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16518
16519 } else if ((pi->pubpi.radiorev == 3)
16520 || (pi->pubpi.radiorev == 8)) {
16521 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16522
16523 if (pi->pubpi.radiorev == 8) {
16524 mod_phy_reg(pi, 0x283,
16525 (0xff << 0), (0x44 << 0));
16526 mod_phy_reg(pi, 0x280,
16527 (0xff << 0), (0x44 << 0));
16528 }
16529 } else {
16530 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16531 }
16532 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16533
16534 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16535
16536 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16537 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16538
16539 currband =
16540 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16541 if (currband == 0) {
16542 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16543 if (pi->pubpi.radiorev == 11) {
16544 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16545 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16546 rfseq_init_gain =
16547 rfseqG_init_gain_rev6_224B0;
16548 init_gaincode =
16549 initG_gaincode_rev6_224B0;
16550 clip1hi_gaincode =
16551 clip1hiG_gaincode_rev6;
16552 clip1lo_gaincode =
16553 clip1loG_gaincode_rev6_224B0;
16554 nbclip_th = nbclipG_th_rev6;
16555 w1clip_th = w1clipG_th_rev6;
16556 crsmin_th = crsminG_th_rev6;
16557 crsminl_th = crsminlG_th_rev6;
16558 crsminu_th = crsminuG_th_rev6;
16559 rssi_gain = rssiG_gain_rev6_224B0;
16560 } else {
16561 lna1_gain_db = lna1G_gain_db_rev6;
16562 lna2_gain_db = lna2G_gain_db_rev6;
16563 if (pi->sh->boardflags & BFL_EXTLNA) {
16564
16565 rfseq_init_gain =
16566 rfseqG_init_gain_rev6_elna;
16567 init_gaincode =
16568 initG_gaincode_rev6_elna;
16569 } else {
16570 rfseq_init_gain =
16571 rfseqG_init_gain_rev6;
16572 init_gaincode =
16573 initG_gaincode_rev6;
16574 }
16575 clip1hi_gaincode =
16576 clip1hiG_gaincode_rev6;
16577 switch (triso) {
16578 case 0:
16579 clip1lo_gaincode =
16580 clip1loG_gaincode_rev6[0];
16581 break;
16582 case 1:
16583 clip1lo_gaincode =
16584 clip1loG_gaincode_rev6[1];
16585 break;
16586 case 2:
16587 clip1lo_gaincode =
16588 clip1loG_gaincode_rev6[2];
16589 break;
16590 case 3:
16591 default:
16592
16593 clip1lo_gaincode =
16594 clip1loG_gaincode_rev6[3];
16595 break;
16596 case 4:
16597 clip1lo_gaincode =
16598 clip1loG_gaincode_rev6[4];
16599 break;
16600 case 5:
16601 clip1lo_gaincode =
16602 clip1loG_gaincode_rev6[5];
16603 break;
16604 case 6:
16605 clip1lo_gaincode =
16606 clip1loG_gaincode_rev6[6];
16607 break;
16608 case 7:
16609 clip1lo_gaincode =
16610 clip1loG_gaincode_rev6[7];
16611 break;
16612 }
16613 nbclip_th = nbclipG_th_rev6;
16614 w1clip_th = w1clipG_th_rev6;
16615 crsmin_th = crsminG_th_rev6;
16616 crsminl_th = crsminlG_th_rev6;
16617 crsminu_th = crsminuG_th_rev6;
16618 rssi_gain = rssi_gain_default;
16619 }
16620 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16621 lna1_gain_db = lna1G_gain_db_rev5;
16622 lna2_gain_db = lna2G_gain_db_rev5;
16623 if (pi->sh->boardflags & BFL_EXTLNA) {
16624
16625 rfseq_init_gain =
16626 rfseqG_init_gain_rev5_elna;
16627 init_gaincode =
16628 initG_gaincode_rev5_elna;
16629 } else {
16630 rfseq_init_gain = rfseqG_init_gain_rev5;
16631 init_gaincode = initG_gaincode_rev5;
16632 }
16633 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16634 switch (triso) {
16635 case 0:
16636 clip1lo_gaincode =
16637 clip1loG_gaincode_rev5[0];
16638 break;
16639 case 1:
16640 clip1lo_gaincode =
16641 clip1loG_gaincode_rev5[1];
16642 break;
16643 case 2:
16644 clip1lo_gaincode =
16645 clip1loG_gaincode_rev5[2];
16646 break;
16647 case 3:
16648
16649 clip1lo_gaincode =
16650 clip1loG_gaincode_rev5[3];
16651 break;
16652 case 4:
16653 clip1lo_gaincode =
16654 clip1loG_gaincode_rev5[4];
16655 break;
16656 case 5:
16657 clip1lo_gaincode =
16658 clip1loG_gaincode_rev5[5];
16659 break;
16660 case 6:
16661 clip1lo_gaincode =
16662 clip1loG_gaincode_rev5[6];
16663 break;
16664 case 7:
16665 clip1lo_gaincode =
16666 clip1loG_gaincode_rev5[7];
16667 break;
16668 default:
16669 clip1lo_gaincode =
16670 clip1loG_gaincode_rev5[3];
16671 break;
16672 }
16673 nbclip_th = nbclipG_th_rev5;
16674 w1clip_th = w1clipG_th_rev5;
16675 crsmin_th = crsminG_th_rev5;
16676 crsminl_th = crsminlG_th_rev5;
16677 crsminu_th = crsminuG_th_rev5;
16678 rssi_gain = rssi_gain_default;
16679 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16680 lna1_gain_db = lna1G_gain_db_rev4;
16681 lna2_gain_db = lna2G_gain_db;
16682 rfseq_init_gain = rfseqG_init_gain_rev4;
16683 init_gaincode = initG_gaincode_rev4;
16684 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16685 clip1lo_gaincode = clip1loG_gaincode;
16686 nbclip_th = nbclipG_th_rev4;
16687 w1clip_th = w1clipG_th;
16688 crsmin_th = crsminG_th;
16689 crsminl_th = crsminlG_th;
16690 crsminu_th = crsminuG_th;
16691 rssi_gain = rssi_gain_default;
16692 } else {
16693 lna1_gain_db = lna1G_gain_db;
16694 lna2_gain_db = lna2G_gain_db;
16695 rfseq_init_gain = rfseqG_init_gain;
16696 init_gaincode = initG_gaincode;
16697 clip1hi_gaincode = clip1hiG_gaincode;
16698 clip1lo_gaincode = clip1loG_gaincode;
16699 nbclip_th = nbclipG_th;
16700 w1clip_th = w1clipG_th;
16701 crsmin_th = crsminG_th;
16702 crsminl_th = crsminlG_th;
16703 crsminu_th = crsminuG_th;
16704 rssi_gain = rssi_gain_default;
16705 }
16706 tia_gain_db = tiaG_gain_db;
16707 tia_gainbits = tiaG_gainbits;
16708 clip1md_gaincode = clip1mdG_gaincode;
16709 } else {
16710 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16711 lna1_gain_db = lna1A_gain_db_rev6;
16712 lna2_gain_db = lna2A_gain_db_rev6;
16713 tia_gain_db = tiaA_gain_db_rev6;
16714 tia_gainbits = tiaA_gainbits_rev6;
16715 rfseq_init_gain = rfseqA_init_gain_rev6;
16716 init_gaincode = initA_gaincode_rev6;
16717 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16718 clip1md_gaincode = clip1mdA_gaincode_rev6;
16719 clip1lo_gaincode = clip1loA_gaincode_rev6;
16720 crsmin_th = crsminA_th_rev6;
16721 crsminl_th = crsminlA_th_rev6;
16722 if ((pi->pubpi.radiorev == 11) &&
16723 (CHSPEC_IS40(pi->radio_chanspec) == 0)) {
16724 crsminu_th = crsminuA_th_rev6_224B0;
16725 } else {
16726 crsminu_th = crsminuA_th_rev6;
16727 }
16728 nbclip_th = nbclipA_th_rev6;
16729 rssi_gain = rssiA_gain_rev6;
16730 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16731 lna1_gain_db = lna1A_gain_db_rev5;
16732 lna2_gain_db = lna2A_gain_db_rev5;
16733 tia_gain_db = tiaA_gain_db_rev5;
16734 tia_gainbits = tiaA_gainbits_rev5;
16735 rfseq_init_gain = rfseqA_init_gain_rev5;
16736 init_gaincode = initA_gaincode_rev5;
16737 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16738 clip1md_gaincode = clip1mdA_gaincode_rev5;
16739 clip1lo_gaincode = clip1loA_gaincode_rev5;
16740 crsmin_th = crsminA_th_rev5;
16741 crsminl_th = crsminlA_th_rev5;
16742 crsminu_th = crsminuA_th_rev5;
16743 nbclip_th = nbclipA_th_rev5;
16744 rssi_gain = rssiA_gain_rev5;
16745 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16746 lna1_gain_db = lna1A_gain_db_rev4;
16747 lna2_gain_db = lna2A_gain_db_rev4;
16748 tia_gain_db = tiaA_gain_db_rev4;
16749 tia_gainbits = tiaA_gainbits_rev4;
16750 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16751
16752 rfseq_init_gain =
16753 rfseqA_init_gain_rev4_elna;
16754 init_gaincode =
16755 initA_gaincode_rev4_elna;
16756 } else {
16757 rfseq_init_gain = rfseqA_init_gain_rev4;
16758 init_gaincode = initA_gaincode_rev4;
16759 }
16760 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16761 clip1md_gaincode = clip1mdA_gaincode_rev4;
16762 clip1lo_gaincode = clip1loA_gaincode_rev4;
16763 crsmin_th = crsminA_th_rev4;
16764 crsminl_th = crsminlA_th_rev4;
16765 crsminu_th = crsminuA_th_rev4;
16766 nbclip_th = nbclipA_th_rev4;
16767 rssi_gain = rssi_gain_default;
16768 } else {
16769 lna1_gain_db = lna1A_gain_db;
16770 lna2_gain_db = lna2A_gain_db;
16771 tia_gain_db = tiaA_gain_db;
16772 tia_gainbits = tiaA_gainbits;
16773 rfseq_init_gain = rfseqA_init_gain;
16774 init_gaincode = initA_gaincode;
16775 clip1hi_gaincode = clip1hiA_gaincode;
16776 clip1md_gaincode = clip1mdA_gaincode;
16777 clip1lo_gaincode = clip1loA_gaincode;
16778 crsmin_th = crsminA_th;
16779 crsminl_th = crsminlA_th;
16780 crsminu_th = crsminuA_th;
16781 nbclip_th = nbclipA_th;
16782 rssi_gain = rssi_gain_default;
16783 }
16784 w1clip_th = w1clipA_th;
16785 }
16786
16787 write_radio_reg(pi,
16788 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16789 RADIO_2056_RX0), 0x17);
16790 write_radio_reg(pi,
16791 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16792 RADIO_2056_RX1), 0x17);
16793
16794 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16795 0xf0);
16796 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16797 0xf0);
16798
16799 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16800 0x0);
16801 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16802 0x0);
16803
16804 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16805 rssi_gain);
16806 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16807 rssi_gain);
16808
16809 write_radio_reg(pi,
16810 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16811 RADIO_2056_RX0), 0x17);
16812 write_radio_reg(pi,
16813 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16814 RADIO_2056_RX1), 0x17);
16815
16816 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16817 0xFF);
16818 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16819 0xFF);
16820
16821 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16822 8, lna1_gain_db);
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16824 8, lna1_gain_db);
16825
16826 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16827 8, lna2_gain_db);
16828 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16829 8, lna2_gain_db);
16830
16831 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16832 8, tia_gain_db);
16833 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16834 8, tia_gain_db);
16835
16836 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16837 8, tia_gainbits);
16838 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16839 8, tia_gainbits);
16840
16841 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16842 8, &lpf_gain_db);
16843 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16844 8, &lpf_gain_db);
16845 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16846 8, &lpf_gainbits);
16847 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16848 8, &lpf_gainbits);
16849
16850 write_phy_reg(pi, 0x20, init_gaincode);
16851 write_phy_reg(pi, 0x2a7, init_gaincode);
16852
16853 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16854 pi->pubpi.phy_corenum, 0x106, 16,
16855 rfseq_init_gain);
16856
16857 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16858 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16859
16860 write_phy_reg(pi, 0x24, clip1md_gaincode);
16861 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16862
16863 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16864 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16865
16866 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16867 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16868 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16869
16870 write_phy_reg(pi, 0x2b, nbclip_th);
16871 write_phy_reg(pi, 0x41, nbclip_th);
16872
16873 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16874 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16875
16876 write_phy_reg(pi, 0x150, 0x809c);
16877
16878 } else {
16879
16880 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16881 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16882
16883 write_phy_reg(pi, 0x2b, 0x84);
16884 write_phy_reg(pi, 0x41, 0x84);
16885
16886 if (CHSPEC_IS20(pi->radio_chanspec)) {
16887 write_phy_reg(pi, 0x6b, 0x2b);
16888 write_phy_reg(pi, 0x6c, 0x2b);
16889 write_phy_reg(pi, 0x6d, 0x9);
16890 write_phy_reg(pi, 0x6e, 0x9);
16891 }
16892
16893 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16894 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16895 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16896
16897 if (CHSPEC_IS20(pi->radio_chanspec)) {
16898 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16899 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16900
16901 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16902 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16903 }
16904
16905 write_phy_reg(pi, 0x150, 0x809c);
16906
16907 if (pi->nphy_gain_boost)
16908 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16909 (CHSPEC_IS40(pi->radio_chanspec)))
16910 hpf_code = 4;
16911 else
16912 hpf_code = 5;
16913 else if (CHSPEC_IS40(pi->radio_chanspec))
16914 hpf_code = 6;
16915 else
16916 hpf_code = 7;
16917
16918 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16919 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16920
16921 for (ctr = 0; ctr < 4; ctr++) {
16922 regval[ctr] = (hpf_code << 8) | 0x7c;
16923 }
16924 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16925
16926 wlc_phy_adjust_lnagaintbl_nphy(pi);
16927
16928 if (pi->nphy_elna_gain_config) {
16929 regval[0] = 0;
16930 regval[1] = 1;
16931 regval[2] = 1;
16932 regval[3] = 1;
16933 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16934 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16935
16936 for (ctr = 0; ctr < 4; ctr++) {
16937 regval[ctr] = (hpf_code << 8) | 0x74;
16938 }
16939 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16940 }
16941
16942 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16943 for (ctr = 0; ctr < 21; ctr++) {
16944 regval[ctr] = 3 * ctr;
16945 }
16946 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16947 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16948
16949 for (ctr = 0; ctr < 21; ctr++) {
16950 regval[ctr] = (u16) ctr;
16951 }
16952 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16953 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16954 }
16955
16956 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16957 rfseq_updategainu_events,
16958 rfseq_updategainu_dlys,
16959 sizeof(rfseq_updategainu_events) /
16960 sizeof(rfseq_updategainu_events[0]));
16961
16962 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16963
16964 if (CHSPEC_IS2G(pi->radio_chanspec))
16965 mod_phy_reg(pi,
16966 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16967 0x7f, 0x4);
16968 }
16969 }
16970
16971 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi)
16972 {
16973 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
16974 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
16975 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16976 s8 tia_gainbits[] = {
16977 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16978
16979 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16980 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16981
16982 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16983
16984 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16985 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16986
16987 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16988 lna1_gain_db);
16989 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16990 lna1_gain_db);
16991
16992 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16993 lna2_gain_db);
16994 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16995 lna2_gain_db);
16996
16997 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16998 tia_gain_db);
16999 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17000 tia_gain_db);
17001
17002 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17003 tia_gainbits);
17004 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17005 tia_gainbits);
17006
17007 write_phy_reg(pi, 0x37, 0x74);
17008 write_phy_reg(pi, 0x2ad, 0x74);
17009 write_phy_reg(pi, 0x38, 0x18);
17010 write_phy_reg(pi, 0x2ae, 0x18);
17011
17012 write_phy_reg(pi, 0x2b, 0xe8);
17013 write_phy_reg(pi, 0x41, 0xe8);
17014
17015 if (CHSPEC_IS20(pi->radio_chanspec)) {
17016
17017 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17018 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17019 } else {
17020
17021 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17022 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17023 }
17024 }
17025
17026 static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi)
17027 {
17028 u16 currband;
17029 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17030 s8 *lna1_gain_db = NULL;
17031 s8 *lna1_gain_db_2 = NULL;
17032 s8 *lna2_gain_db = NULL;
17033 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17034 s8 *tia_gain_db;
17035 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17036 s8 *tia_gainbits;
17037 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17038 u16 *rfseq_init_gain;
17039 u16 init_gaincode;
17040 u16 clip1hi_gaincode;
17041 u16 clip1md_gaincode = 0;
17042 u16 clip1md_gaincode_B;
17043 u16 clip1lo_gaincode;
17044 u16 clip1lo_gaincode_B;
17045 u8 crsminl_th = 0;
17046 u8 crsminu_th;
17047 u16 nbclip_th = 0;
17048 u8 w1clip_th;
17049 u16 freq;
17050 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
17051 u8 chg_nbclip_th = 0;
17052
17053 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17054 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17055
17056 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17057 if (currband == 0) {
17058
17059 lna1_gain_db = lna1G_gain_db_rev7;
17060
17061 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17062 lna1_gain_db);
17063 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17064 lna1_gain_db);
17065
17066 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17067
17068 if (CHSPEC_IS40(pi->radio_chanspec)) {
17069 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17070 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17071 }
17072
17073 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17074
17075 if (CHSPEC_IS20(pi->radio_chanspec)) {
17076 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17077 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17078 }
17079 } else {
17080
17081 init_gaincode = 0x9e;
17082 clip1hi_gaincode = 0x9e;
17083 clip1md_gaincode_B = 0x24;
17084 clip1lo_gaincode = 0x8a;
17085 clip1lo_gaincode_B = 8;
17086 rfseq_init_gain = rfseqA_init_gain_rev7;
17087
17088 tia_gain_db = tiaA_gain_db_rev7;
17089 tia_gainbits = tiaA_gainbits_rev7;
17090
17091 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17092 if (CHSPEC_IS20(pi->radio_chanspec)) {
17093
17094 w1clip_th = 25;
17095 clip1md_gaincode = 0x82;
17096
17097 if ((freq <= 5080) || (freq == 5825)) {
17098
17099 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
17100 s8 lna1A_gain_db_2_rev7[] = {
17101 11, 17, 22, 25 };
17102 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17103
17104 crsminu_th = 0x3e;
17105 lna1_gain_db = lna1A_gain_db_rev7;
17106 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17107 lna2_gain_db = lna2A_gain_db_rev7;
17108 } else if ((freq >= 5500) && (freq <= 5700)) {
17109
17110 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
17111 s8 lna1A_gain_db_2_rev7[] = {
17112 12, 18, 22, 26 };
17113 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
17114
17115 crsminu_th = 0x45;
17116 clip1md_gaincode_B = 0x14;
17117 nbclip_th = 0xff;
17118 chg_nbclip_th = 1;
17119 lna1_gain_db = lna1A_gain_db_rev7;
17120 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17121 lna2_gain_db = lna2A_gain_db_rev7;
17122 } else {
17123
17124 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17125 s8 lna1A_gain_db_2_rev7[] = {
17126 12, 18, 22, 26 };
17127 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17128
17129 crsminu_th = 0x41;
17130 lna1_gain_db = lna1A_gain_db_rev7;
17131 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17132 lna2_gain_db = lna2A_gain_db_rev7;
17133 }
17134
17135 if (freq <= 4920) {
17136 nvar_baseline_offset0 = 5;
17137 nvar_baseline_offset1 = 5;
17138 } else if ((freq > 4920) && (freq <= 5320)) {
17139 nvar_baseline_offset0 = 3;
17140 nvar_baseline_offset1 = 5;
17141 } else if ((freq > 5320) && (freq <= 5700)) {
17142 nvar_baseline_offset0 = 3;
17143 nvar_baseline_offset1 = 2;
17144 } else {
17145 nvar_baseline_offset0 = 4;
17146 nvar_baseline_offset1 = 0;
17147 }
17148 } else {
17149
17150 crsminu_th = 0x3a;
17151 crsminl_th = 0x3a;
17152 w1clip_th = 20;
17153
17154 if ((freq >= 4920) && (freq <= 5320)) {
17155 nvar_baseline_offset0 = 4;
17156 nvar_baseline_offset1 = 5;
17157 } else if ((freq > 5320) && (freq <= 5550)) {
17158 nvar_baseline_offset0 = 4;
17159 nvar_baseline_offset1 = 2;
17160 } else {
17161 nvar_baseline_offset0 = 5;
17162 nvar_baseline_offset1 = 3;
17163 }
17164 }
17165
17166 write_phy_reg(pi, 0x20, init_gaincode);
17167 write_phy_reg(pi, 0x2a7, init_gaincode);
17168
17169 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17170 pi->pubpi.phy_corenum, 0x106, 16,
17171 rfseq_init_gain);
17172
17173 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17174 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17175
17176 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17177 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17178
17179 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17180 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17181 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17182 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17183
17184 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17185 tia_gain_db);
17186 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17187 tia_gain_db);
17188
17189 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17190 tia_gainbits);
17191 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17192 tia_gainbits);
17193
17194 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17195
17196 if (chg_nbclip_th == 1) {
17197 write_phy_reg(pi, 0x2b, nbclip_th);
17198 write_phy_reg(pi, 0x41, nbclip_th);
17199 }
17200
17201 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17202 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17203
17204 mod_phy_reg(pi, 0x2e4,
17205 (0x3f << 0), (nvar_baseline_offset0 << 0));
17206
17207 mod_phy_reg(pi, 0x2e4,
17208 (0x3f << 6), (nvar_baseline_offset1 << 6));
17209
17210 if (CHSPEC_IS20(pi->radio_chanspec)) {
17211
17212 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17213 lna1_gain_db);
17214 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17215 lna1_gain_db_2);
17216
17217 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17218 8, lna2_gain_db);
17219 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17220 8, lna2_gain_db);
17221
17222 write_phy_reg(pi, 0x24, clip1md_gaincode);
17223 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17224 } else {
17225 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17226 }
17227
17228 }
17229
17230 }
17231
17232 static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi)
17233 {
17234 uint core;
17235 int ctr;
17236 s16 gain_delta[2];
17237 u8 curr_channel;
17238 u16 minmax_gain[2];
17239 u16 regval[4];
17240
17241 if (pi->phyhang_avoid)
17242 wlc_phy_stay_in_carriersearch_nphy(pi, true);
17243
17244 if (pi->nphy_gain_boost) {
17245 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17246
17247 gain_delta[0] = 6;
17248 gain_delta[1] = 6;
17249 } else {
17250
17251 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17252 gain_delta[0] =
17253 (s16)
17254 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17255 curr_channel) +
17256 nphy_lnagain_est0[1]), 13);
17257 gain_delta[1] =
17258 (s16)
17259 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17260 curr_channel) +
17261 nphy_lnagain_est1[1]), 13);
17262 }
17263 } else {
17264
17265 gain_delta[0] = 0;
17266 gain_delta[1] = 0;
17267 }
17268
17269 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17270 if (pi->nphy_elna_gain_config) {
17271
17272 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17273 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17274 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17275 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17276 } else {
17277 for (ctr = 0; ctr < 4; ctr++) {
17278 regval[ctr] =
17279 nphy_def_lnagains[ctr] + gain_delta[core];
17280 }
17281 }
17282 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17283
17284 minmax_gain[core] =
17285 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
17286 }
17287
17288 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17289 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17290
17291 if (pi->phyhang_avoid)
17292 wlc_phy_stay_in_carriersearch_nphy(pi, false);
17293 }
17294
17295 void wlc_phy_switch_radio_nphy(phy_info_t *pi, bool on)
17296 {
17297 if (on) {
17298 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17299 if (!pi->radio_is_on) {
17300 wlc_phy_radio_preinit_205x(pi);
17301 wlc_phy_radio_init_2057(pi);
17302 wlc_phy_radio_postinit_2057(pi);
17303 }
17304
17305 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17306 pi->radio_chanspec);
17307 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17308 wlc_phy_radio_preinit_205x(pi);
17309 wlc_phy_radio_init_2056(pi);
17310 wlc_phy_radio_postinit_2056(pi);
17311
17312 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17313 pi->radio_chanspec);
17314 } else {
17315 wlc_phy_radio_preinit_2055(pi);
17316 wlc_phy_radio_init_2055(pi);
17317 wlc_phy_radio_postinit_2055(pi);
17318 }
17319
17320 pi->radio_is_on = true;
17321
17322 } else {
17323
17324 if (NREV_GE(pi->pubpi.phy_rev, 3)
17325 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17326 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17327 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17328
17329 write_radio_reg(pi,
17330 RADIO_2056_TX_PADA_BOOST_TUNE |
17331 RADIO_2056_TX0, 0);
17332 write_radio_reg(pi,
17333 RADIO_2056_TX_PADG_BOOST_TUNE |
17334 RADIO_2056_TX0, 0);
17335 write_radio_reg(pi,
17336 RADIO_2056_TX_PGAA_BOOST_TUNE |
17337 RADIO_2056_TX0, 0);
17338 write_radio_reg(pi,
17339 RADIO_2056_TX_PGAG_BOOST_TUNE |
17340 RADIO_2056_TX0, 0);
17341 mod_radio_reg(pi,
17342 RADIO_2056_TX_MIXA_BOOST_TUNE |
17343 RADIO_2056_TX0, 0xf0, 0);
17344 write_radio_reg(pi,
17345 RADIO_2056_TX_MIXG_BOOST_TUNE |
17346 RADIO_2056_TX0, 0);
17347
17348 write_radio_reg(pi,
17349 RADIO_2056_TX_PADA_BOOST_TUNE |
17350 RADIO_2056_TX1, 0);
17351 write_radio_reg(pi,
17352 RADIO_2056_TX_PADG_BOOST_TUNE |
17353 RADIO_2056_TX1, 0);
17354 write_radio_reg(pi,
17355 RADIO_2056_TX_PGAA_BOOST_TUNE |
17356 RADIO_2056_TX1, 0);
17357 write_radio_reg(pi,
17358 RADIO_2056_TX_PGAG_BOOST_TUNE |
17359 RADIO_2056_TX1, 0);
17360 mod_radio_reg(pi,
17361 RADIO_2056_TX_MIXA_BOOST_TUNE |
17362 RADIO_2056_TX1, 0xf0, 0);
17363 write_radio_reg(pi,
17364 RADIO_2056_TX_MIXG_BOOST_TUNE |
17365 RADIO_2056_TX1, 0);
17366
17367 pi->radio_is_on = false;
17368 }
17369
17370 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17371 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17372 pi->radio_is_on = false;
17373 }
17374
17375 }
17376 }
17377
17378 static void wlc_phy_radio_preinit_2055(phy_info_t *pi)
17379 {
17380
17381 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17382 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17383
17384 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17385 }
17386
17387 static void wlc_phy_radio_init_2055(phy_info_t *pi)
17388 {
17389 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17390 }
17391
17392 static void wlc_phy_radio_postinit_2055(phy_info_t *pi)
17393 {
17394
17395 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17396 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17397
17398 if (((pi->sh->sromrev >= 4)
17399 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17400 || ((pi->sh->sromrev < 4))) {
17401 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17402 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17403 }
17404
17405 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17406 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17407
17408 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17409 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17410
17411 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17412
17413 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17414
17415 udelay(1000);
17416
17417 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17418
17419 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17420 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17421
17422 ASSERT((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17423 RADIO_2055_RCAL_DONE) == RADIO_2055_RCAL_DONE);
17424
17425 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17426 ~(RADIO_2055_CAL_LPO_ENABLE));
17427
17428 wlc_phy_chanspec_set((wlc_phy_t *) pi, pi->radio_chanspec);
17429
17430 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17431 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17432
17433 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17434 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17435
17436 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17437 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17438 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17439 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17440 if (pi->nphy_gain_boost) {
17441 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17442 ~(RADIO_2055_GAINBST_DISABLE));
17443 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17444 ~(RADIO_2055_GAINBST_DISABLE));
17445 } else {
17446 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17447 RADIO_2055_GAINBST_DISABLE);
17448 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17449 RADIO_2055_GAINBST_DISABLE);
17450 }
17451
17452 udelay(2);
17453 }
17454
17455 static void wlc_phy_radio_preinit_205x(phy_info_t *pi)
17456 {
17457
17458 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17459 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17460
17461 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17462 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17463
17464 }
17465
17466 static void wlc_phy_radio_init_2056(phy_info_t *pi)
17467 {
17468 radio_regs_t *regs_SYN_2056_ptr = NULL;
17469 radio_regs_t *regs_TX_2056_ptr = NULL;
17470 radio_regs_t *regs_RX_2056_ptr = NULL;
17471
17472 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17473 regs_SYN_2056_ptr = regs_SYN_2056;
17474 regs_TX_2056_ptr = regs_TX_2056;
17475 regs_RX_2056_ptr = regs_RX_2056;
17476 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17477 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17478 regs_TX_2056_ptr = regs_TX_2056_A1;
17479 regs_RX_2056_ptr = regs_RX_2056_A1;
17480 } else {
17481 switch (pi->pubpi.radiorev) {
17482 case 5:
17483 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17484 regs_TX_2056_ptr = regs_TX_2056_rev5;
17485 regs_RX_2056_ptr = regs_RX_2056_rev5;
17486 break;
17487
17488 case 6:
17489 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17490 regs_TX_2056_ptr = regs_TX_2056_rev6;
17491 regs_RX_2056_ptr = regs_RX_2056_rev6;
17492 break;
17493
17494 case 7:
17495 case 9:
17496 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17497 regs_TX_2056_ptr = regs_TX_2056_rev7;
17498 regs_RX_2056_ptr = regs_RX_2056_rev7;
17499 break;
17500
17501 case 8:
17502 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17503 regs_TX_2056_ptr = regs_TX_2056_rev8;
17504 regs_RX_2056_ptr = regs_RX_2056_rev8;
17505 break;
17506
17507 case 11:
17508 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17509 regs_TX_2056_ptr = regs_TX_2056_rev11;
17510 regs_RX_2056_ptr = regs_RX_2056_rev11;
17511 break;
17512
17513 default:
17514 ASSERT(0);
17515 break;
17516 }
17517 }
17518
17519 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
17520
17521 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
17522
17523 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
17524
17525 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
17526
17527 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
17528 }
17529
17530 static void wlc_phy_radio_postinit_2056(phy_info_t *pi)
17531 {
17532 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17533
17534 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17535 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
17536 udelay(1000);
17537 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17538
17539 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17540 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN)) {
17541
17542 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17543 } else {
17544
17545 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17546 }
17547
17548 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17549
17550 if (pi->phy_init_por) {
17551 wlc_phy_radio205x_rcal(pi);
17552 }
17553 }
17554
17555 static void wlc_phy_radio_init_2057(phy_info_t *pi)
17556 {
17557 radio_20xx_regs_t *regs_2057_ptr = NULL;
17558
17559 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17560
17561 regs_2057_ptr = regs_2057_rev4;
17562 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17563 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17564 switch (pi->pubpi.radiorev) {
17565 case 5:
17566
17567 if (pi->pubpi.radiover == 0x0) {
17568
17569 regs_2057_ptr = regs_2057_rev5;
17570
17571 } else if (pi->pubpi.radiover == 0x1) {
17572
17573 regs_2057_ptr = regs_2057_rev5v1;
17574 } else {
17575 ASSERT(0);
17576 break;
17577 }
17578
17579 case 7:
17580
17581 regs_2057_ptr = regs_2057_rev7;
17582 break;
17583
17584 case 8:
17585
17586 regs_2057_ptr = regs_2057_rev8;
17587 break;
17588
17589 default:
17590 ASSERT(0);
17591 break;
17592 }
17593 } else {
17594 ASSERT(0);
17595 }
17596
17597 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17598 }
17599
17600 static void wlc_phy_radio_postinit_2057(phy_info_t *pi)
17601 {
17602
17603 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17604
17605 if (pi->sh->chip == !BCM6362_CHIP_ID) {
17606
17607 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x2, 0x2);
17608 }
17609
17610 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17611 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
17612 mdelay(2);
17613 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17614 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17615
17616 if (pi->phy_init_por) {
17617 wlc_phy_radio205x_rcal(pi);
17618 wlc_phy_radio2057_rccal(pi);
17619 }
17620
17621 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17622 }
17623
17624 static bool
17625 wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
17626 chan_info_nphy_radio2057_t **t0,
17627 chan_info_nphy_radio205x_t **t1,
17628 chan_info_nphy_radio2057_rev5_t **t2,
17629 chan_info_nphy_2055_t **t3)
17630 {
17631 uint i;
17632 chan_info_nphy_radio2057_t *chan_info_tbl_p_0 = NULL;
17633 chan_info_nphy_radio205x_t *chan_info_tbl_p_1 = NULL;
17634 chan_info_nphy_radio2057_rev5_t *chan_info_tbl_p_2 = NULL;
17635 u32 tbl_len = 0;
17636
17637 int freq = 0;
17638
17639 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17640
17641 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17642
17643 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
17644 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
17645
17646 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17647 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17648 switch (pi->pubpi.radiorev) {
17649
17650 case 5:
17651
17652 if (pi->pubpi.radiover == 0x0) {
17653
17654 chan_info_tbl_p_2 =
17655 chan_info_nphyrev8_2057_rev5;
17656 tbl_len =
17657 ARRAY_SIZE
17658 (chan_info_nphyrev8_2057_rev5);
17659
17660 } else if (pi->pubpi.radiover == 0x1) {
17661
17662 chan_info_tbl_p_2 =
17663 chan_info_nphyrev9_2057_rev5v1;
17664 tbl_len =
17665 ARRAY_SIZE
17666 (chan_info_nphyrev9_2057_rev5v1);
17667
17668 }
17669 break;
17670
17671 case 7:
17672 chan_info_tbl_p_0 =
17673 chan_info_nphyrev8_2057_rev7;
17674 tbl_len =
17675 ARRAY_SIZE(chan_info_nphyrev8_2057_rev7);
17676 break;
17677
17678 case 8:
17679 chan_info_tbl_p_0 =
17680 chan_info_nphyrev8_2057_rev8;
17681 tbl_len =
17682 ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
17683 break;
17684
17685 default:
17686 if (NORADIO_ENAB(pi->pubpi)) {
17687 goto fail;
17688 }
17689 break;
17690 }
17691 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17692
17693 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
17694 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
17695 } else {
17696 goto fail;
17697 }
17698
17699 for (i = 0; i < tbl_len; i++) {
17700 if (pi->pubpi.radiorev == 5) {
17701
17702 if (chan_info_tbl_p_2[i].chan == channel)
17703 break;
17704 } else {
17705
17706 if (chan_info_tbl_p_0[i].chan == channel)
17707 break;
17708 }
17709 }
17710
17711 if (i >= tbl_len) {
17712 ASSERT(i < tbl_len);
17713 goto fail;
17714 }
17715 if (pi->pubpi.radiorev == 5) {
17716 *t2 = &chan_info_tbl_p_2[i];
17717 freq = chan_info_tbl_p_2[i].freq;
17718 } else {
17719 *t0 = &chan_info_tbl_p_0[i];
17720 freq = chan_info_tbl_p_0[i].freq;
17721 }
17722
17723 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17724 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17725 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
17726 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
17727 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17728 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
17729 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
17730 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17731 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17732 switch (pi->pubpi.radiorev) {
17733 case 5:
17734 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
17735 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
17736 break;
17737 case 6:
17738 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
17739 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
17740 break;
17741 case 7:
17742 case 9:
17743 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17744 tbl_len =
17745 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
17746 break;
17747 case 8:
17748 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
17749 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
17750 break;
17751 case 11:
17752 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
17753 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v11);
17754 break;
17755 default:
17756 if (NORADIO_ENAB(pi->pubpi)) {
17757 goto fail;
17758 }
17759 break;
17760 }
17761 }
17762
17763 for (i = 0; i < tbl_len; i++) {
17764 if (chan_info_tbl_p_1[i].chan == channel)
17765 break;
17766 }
17767
17768 if (i >= tbl_len) {
17769 ASSERT(i < tbl_len);
17770 goto fail;
17771 }
17772 *t1 = &chan_info_tbl_p_1[i];
17773 freq = chan_info_tbl_p_1[i].freq;
17774
17775 } else {
17776 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
17777 if (chan_info_nphy_2055[i].chan == channel)
17778 break;
17779
17780 if (i >= ARRAY_SIZE(chan_info_nphy_2055)) {
17781 ASSERT(i < ARRAY_SIZE(chan_info_nphy_2055));
17782 goto fail;
17783 }
17784 *t3 = &chan_info_nphy_2055[i];
17785 freq = chan_info_nphy_2055[i].freq;
17786 }
17787
17788 *f = freq;
17789 return true;
17790
17791 fail:
17792 *f = WL_CHAN_FREQ_RANGE_2G;
17793 return false;
17794 }
17795
17796 u8 wlc_phy_get_chan_freq_range_nphy(phy_info_t *pi, uint channel)
17797 {
17798 int freq;
17799 chan_info_nphy_radio2057_t *t0 = NULL;
17800 chan_info_nphy_radio205x_t *t1 = NULL;
17801 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
17802 chan_info_nphy_2055_t *t3 = NULL;
17803
17804 if (NORADIO_ENAB(pi->pubpi))
17805 return WL_CHAN_FREQ_RANGE_2G;
17806
17807 if (channel == 0)
17808 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17809
17810 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17811
17812 if (CHSPEC_IS2G(pi->radio_chanspec))
17813 return WL_CHAN_FREQ_RANGE_2G;
17814
17815 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN)) {
17816 return WL_CHAN_FREQ_RANGE_5GL;
17817 } else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN)) {
17818 return WL_CHAN_FREQ_RANGE_5GM;
17819 } else {
17820 return WL_CHAN_FREQ_RANGE_5GH;
17821 }
17822 }
17823
17824 static void
17825 wlc_phy_chanspec_radio2055_setup(phy_info_t *pi, chan_info_nphy_2055_t *ci)
17826 {
17827
17828 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17829 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17830 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17831 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17832
17833 WLC_PHY_WAR_PR51571(pi);
17834
17835 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17836 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17837 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17838 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17839
17840 WLC_PHY_WAR_PR51571(pi);
17841
17842 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17843 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17844 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17845 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17846
17847 WLC_PHY_WAR_PR51571(pi);
17848
17849 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17850 ci->RF_core1_lgbuf_a_tune);
17851 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17852 ci->RF_core1_lgbuf_g_tune);
17853 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17854 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17855 ci->RF_core1_tx_pga_pad_tn);
17856
17857 WLC_PHY_WAR_PR51571(pi);
17858
17859 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17860 ci->RF_core1_tx_mx_bgtrim);
17861 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17862 ci->RF_core2_lgbuf_a_tune);
17863 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17864 ci->RF_core2_lgbuf_g_tune);
17865 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17866
17867 WLC_PHY_WAR_PR51571(pi);
17868
17869 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17870 ci->RF_core2_tx_pga_pad_tn);
17871 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17872 ci->RF_core2_tx_mx_bgtrim);
17873
17874 udelay(50);
17875
17876 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17877 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17878
17879 WLC_PHY_WAR_PR51571(pi);
17880
17881 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17882
17883 udelay(300);
17884 }
17885
17886 static void
17887 wlc_phy_chanspec_radio2056_setup(phy_info_t *pi,
17888 const chan_info_nphy_radio205x_t *ci)
17889 {
17890 radio_regs_t *regs_SYN_2056_ptr = NULL;
17891
17892 write_radio_reg(pi,
17893 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17894 ci->RF_SYN_pll_vcocal1);
17895 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17896 ci->RF_SYN_pll_vcocal2);
17897 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17898 ci->RF_SYN_pll_refdiv);
17899 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17900 ci->RF_SYN_pll_mmd2);
17901 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17902 ci->RF_SYN_pll_mmd1);
17903 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17904 ci->RF_SYN_pll_loopfilter1);
17905 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17906 ci->RF_SYN_pll_loopfilter2);
17907 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17908 ci->RF_SYN_pll_loopfilter3);
17909 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17910 ci->RF_SYN_pll_loopfilter4);
17911 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17912 ci->RF_SYN_pll_loopfilter5);
17913 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17914 ci->RF_SYN_reserved_addr27);
17915 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17916 ci->RF_SYN_reserved_addr28);
17917 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17918 ci->RF_SYN_reserved_addr29);
17919 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17920 ci->RF_SYN_logen_VCOBUF1);
17921 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17922 ci->RF_SYN_logen_MIXER2);
17923 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17924 ci->RF_SYN_logen_BUF3);
17925 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17926 ci->RF_SYN_logen_BUF4);
17927
17928 write_radio_reg(pi,
17929 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17930 ci->RF_RX0_lnaa_tune);
17931 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17932 ci->RF_RX0_lnag_tune);
17933 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17934 ci->RF_TX0_intpaa_boost_tune);
17935 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17936 ci->RF_TX0_intpag_boost_tune);
17937 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17938 ci->RF_TX0_pada_boost_tune);
17939 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17940 ci->RF_TX0_padg_boost_tune);
17941 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17942 ci->RF_TX0_pgaa_boost_tune);
17943 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17944 ci->RF_TX0_pgag_boost_tune);
17945 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17946 ci->RF_TX0_mixa_boost_tune);
17947 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17948 ci->RF_TX0_mixg_boost_tune);
17949
17950 write_radio_reg(pi,
17951 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17952 ci->RF_RX1_lnaa_tune);
17953 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17954 ci->RF_RX1_lnag_tune);
17955 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17956 ci->RF_TX1_intpaa_boost_tune);
17957 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17958 ci->RF_TX1_intpag_boost_tune);
17959 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17960 ci->RF_TX1_pada_boost_tune);
17961 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17962 ci->RF_TX1_padg_boost_tune);
17963 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17964 ci->RF_TX1_pgaa_boost_tune);
17965 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17966 ci->RF_TX1_pgag_boost_tune);
17967 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17968 ci->RF_TX1_mixa_boost_tune);
17969 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17970 ci->RF_TX1_mixg_boost_tune);
17971
17972 if (NREV_IS(pi->pubpi.phy_rev, 3))
17973 regs_SYN_2056_ptr = regs_SYN_2056;
17974 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17975 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17976 else {
17977 switch (pi->pubpi.radiorev) {
17978 case 5:
17979 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17980 break;
17981 case 6:
17982 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17983 break;
17984 case 7:
17985 case 9:
17986 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17987 break;
17988 case 8:
17989 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17990 break;
17991 case 11:
17992 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17993 break;
17994 }
17995 }
17996 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17997 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17998 RADIO_2056_SYN,
17999 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
18000 } else {
18001 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18002 RADIO_2056_SYN,
18003 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
18004 }
18005
18006 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
18007 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18008 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18009 RADIO_2056_SYN, 0x1f);
18010 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18011 RADIO_2056_SYN, 0x1f);
18012
18013 if ((pi->sh->chip == BCM4716_CHIP_ID) ||
18014 (pi->sh->chip == BCM47162_CHIP_ID)) {
18015
18016 write_radio_reg(pi,
18017 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18018 RADIO_2056_SYN, 0x14);
18019 write_radio_reg(pi,
18020 RADIO_2056_SYN_PLL_CP2 |
18021 RADIO_2056_SYN, 0x00);
18022 } else {
18023 write_radio_reg(pi,
18024 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18025 RADIO_2056_SYN, 0xb);
18026 write_radio_reg(pi,
18027 RADIO_2056_SYN_PLL_CP2 |
18028 RADIO_2056_SYN, 0x14);
18029 }
18030 }
18031 }
18032
18033 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
18034 (CHSPEC_IS2G(pi->radio_chanspec))) {
18035 write_radio_reg(pi,
18036 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
18037 0x1f);
18038 write_radio_reg(pi,
18039 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
18040 0x1f);
18041 write_radio_reg(pi,
18042 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18043 0xb);
18044 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18045 0x20);
18046 }
18047
18048 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
18049 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18050 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18051 RADIO_2056_SYN, 0x1f);
18052 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18053 RADIO_2056_SYN, 0x1f);
18054 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
18055 RADIO_2056_SYN, 0x5);
18056 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18057 RADIO_2056_SYN, 0xc);
18058 }
18059 }
18060
18061 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
18062 u16 pag_boost_tune;
18063 u16 padg_boost_tune;
18064 u16 pgag_boost_tune;
18065 u16 mixg_boost_tune;
18066 u16 bias, cascbias;
18067 uint core;
18068
18069 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18070
18071 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18072
18073 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18074 PADG_IDAC, 0xcc);
18075
18076 if ((pi->sh->chip == BCM4716_CHIP_ID) ||
18077 (pi->sh->chip ==
18078 BCM47162_CHIP_ID)) {
18079 bias = 0x40;
18080 cascbias = 0x45;
18081 pag_boost_tune = 0x5;
18082 pgag_boost_tune = 0x33;
18083 padg_boost_tune = 0x77;
18084 mixg_boost_tune = 0x55;
18085 } else {
18086 bias = 0x25;
18087 cascbias = 0x20;
18088
18089 if ((pi->sh->chip ==
18090 BCM43224_CHIP_ID)
18091 || (pi->sh->chip ==
18092 BCM43225_CHIP_ID)
18093 || (pi->sh->chip ==
18094 BCM43421_CHIP_ID)) {
18095 if (pi->sh->chippkg ==
18096 BCM43224_FAB_SMIC) {
18097 bias = 0x2a;
18098 cascbias = 0x38;
18099 }
18100 }
18101
18102 pag_boost_tune = 0x4;
18103 pgag_boost_tune = 0x03;
18104 padg_boost_tune = 0x77;
18105 mixg_boost_tune = 0x65;
18106 }
18107
18108 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18109 INTPAG_IMAIN_STAT, bias);
18110 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18111 INTPAG_IAUX_STAT, bias);
18112 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18113 INTPAG_CASCBIAS, cascbias);
18114
18115 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18116 INTPAG_BOOST_TUNE,
18117 pag_boost_tune);
18118 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18119 PGAG_BOOST_TUNE,
18120 pgag_boost_tune);
18121 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18122 PADG_BOOST_TUNE,
18123 padg_boost_tune);
18124 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18125 MIXG_BOOST_TUNE,
18126 mixg_boost_tune);
18127 } else {
18128
18129 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18130
18131 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18132 INTPAG_IMAIN_STAT, bias);
18133 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18134 INTPAG_IAUX_STAT, bias);
18135 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18136 INTPAG_CASCBIAS, 0x30);
18137 }
18138 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18139 0xee);
18140 }
18141 }
18142
18143 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18144 && CHSPEC_IS5G(pi->radio_chanspec)) {
18145 u16 paa_boost_tune;
18146 u16 pada_boost_tune;
18147 u16 pgaa_boost_tune;
18148 u16 mixa_boost_tune;
18149 u16 freq, pabias, cascbias;
18150 uint core;
18151
18152 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18153
18154 if (freq < 5150) {
18155
18156 paa_boost_tune = 0xa;
18157 pada_boost_tune = 0x77;
18158 pgaa_boost_tune = 0xf;
18159 mixa_boost_tune = 0xf;
18160 } else if (freq < 5340) {
18161
18162 paa_boost_tune = 0x8;
18163 pada_boost_tune = 0x77;
18164 pgaa_boost_tune = 0xfb;
18165 mixa_boost_tune = 0xf;
18166 } else if (freq < 5650) {
18167
18168 paa_boost_tune = 0x0;
18169 pada_boost_tune = 0x77;
18170 pgaa_boost_tune = 0xb;
18171 mixa_boost_tune = 0xf;
18172 } else {
18173
18174 paa_boost_tune = 0x0;
18175 pada_boost_tune = 0x77;
18176 if (freq != 5825) {
18177 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18178 } else {
18179 pgaa_boost_tune = 6;
18180 }
18181 mixa_boost_tune = 0xf;
18182 }
18183
18184 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18185 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18186 INTPAA_BOOST_TUNE, paa_boost_tune);
18187 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18188 PADA_BOOST_TUNE, pada_boost_tune);
18189 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18190 PGAA_BOOST_TUNE, pgaa_boost_tune);
18191 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18192 MIXA_BOOST_TUNE, mixa_boost_tune);
18193
18194 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18195 TXSPARE1, 0x30);
18196 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18197 PA_SPARE2, 0xee);
18198
18199 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18200 PADA_CASCBIAS, 0x3);
18201
18202 cascbias = 0x30;
18203
18204 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
18205 (pi->sh->chip == BCM43225_CHIP_ID) ||
18206 (pi->sh->chip == BCM43421_CHIP_ID)) {
18207 if (pi->sh->chippkg == BCM43224_FAB_SMIC) {
18208 cascbias = 0x35;
18209 }
18210 }
18211
18212 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18213
18214 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18215 INTPAA_IAUX_STAT, pabias);
18216 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18217 INTPAA_IMAIN_STAT, pabias);
18218 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18219 INTPAA_CASCBIAS, cascbias);
18220 }
18221 }
18222
18223 udelay(50);
18224
18225 wlc_phy_radio205x_vcocal_nphy(pi);
18226 }
18227
18228 void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi)
18229 {
18230 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18231 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18232 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18233 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18234 (1 << 2));
18235 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18236 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18237 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18238 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18239 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18240 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18241 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18242 }
18243
18244 udelay(300);
18245 }
18246
18247 #define MAX_205x_RCAL_WAITLOOPS 10000
18248
18249 static u16 wlc_phy_radio205x_rcal(phy_info_t *pi)
18250 {
18251 u16 rcal_reg = 0;
18252 int i;
18253
18254 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18255
18256 if (pi->pubpi.radiorev == 5) {
18257
18258 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18259
18260 udelay(10);
18261
18262 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18263 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18264 0x1);
18265 }
18266 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18267
18268 udelay(10);
18269
18270 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18271
18272 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18273 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18274 if (rcal_reg & 0x1) {
18275 break;
18276 }
18277 udelay(100);
18278 }
18279
18280 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18281
18282 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18283
18284 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18285
18286 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18287 if (pi->pubpi.radiorev == 5) {
18288
18289 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18290 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18291 0x0);
18292 }
18293
18294 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18295
18296 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18297 rcal_reg);
18298 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18299 rcal_reg << 2);
18300 }
18301
18302 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
18303 u16 savereg;
18304
18305 savereg =
18306 read_radio_reg(pi,
18307 RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN);
18308 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18309 savereg | 0x7);
18310 udelay(10);
18311
18312 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18313 0x1);
18314 udelay(10);
18315
18316 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18317 0x9);
18318
18319 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18320 rcal_reg = read_radio_reg(pi,
18321 RADIO_2056_SYN_RCAL_CODE_OUT |
18322 RADIO_2056_SYN);
18323 if (rcal_reg & 0x80) {
18324 break;
18325 }
18326 udelay(100);
18327 }
18328
18329 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18330
18331 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18332 0x1);
18333
18334 rcal_reg =
18335 read_radio_reg(pi,
18336 RADIO_2056_SYN_RCAL_CODE_OUT |
18337 RADIO_2056_SYN);
18338
18339 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18340 0x0);
18341
18342 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18343 savereg);
18344
18345 return rcal_reg & 0x1f;
18346 }
18347 return rcal_reg & 0x3e;
18348 }
18349
18350 static void
18351 wlc_phy_chanspec_radio2057_setup(phy_info_t *pi,
18352 const chan_info_nphy_radio2057_t *ci,
18353 const chan_info_nphy_radio2057_rev5_t *ci2)
18354 {
18355 int coreNum;
18356 u16 txmix2g_tune_boost_pu = 0;
18357 u16 pad2g_tune_pus = 0;
18358
18359 if (pi->pubpi.radiorev == 5) {
18360
18361 write_radio_reg(pi,
18362 RADIO_2057_VCOCAL_COUNTVAL0,
18363 ci2->RF_vcocal_countval0);
18364 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18365 ci2->RF_vcocal_countval1);
18366 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18367 ci2->RF_rfpll_refmaster_sparextalsize);
18368 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18369 ci2->RF_rfpll_loopfilter_r1);
18370 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18371 ci2->RF_rfpll_loopfilter_c2);
18372 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18373 ci2->RF_rfpll_loopfilter_c1);
18374 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18375 ci2->RF_cp_kpd_idac);
18376 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18377 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18378 write_radio_reg(pi,
18379 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18380 write_radio_reg(pi,
18381 RADIO_2057_LOGEN_MX2G_TUNE,
18382 ci2->RF_logen_mx2g_tune);
18383 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18384 ci2->RF_logen_indbuf2g_tune);
18385
18386 write_radio_reg(pi,
18387 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18388 ci2->RF_txmix2g_tune_boost_pu_core0);
18389 write_radio_reg(pi,
18390 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18391 ci2->RF_pad2g_tune_pus_core0);
18392 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18393 ci2->RF_lna2g_tune_core0);
18394
18395 write_radio_reg(pi,
18396 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18397 ci2->RF_txmix2g_tune_boost_pu_core1);
18398 write_radio_reg(pi,
18399 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18400 ci2->RF_pad2g_tune_pus_core1);
18401 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18402 ci2->RF_lna2g_tune_core1);
18403
18404 } else {
18405
18406 write_radio_reg(pi,
18407 RADIO_2057_VCOCAL_COUNTVAL0,
18408 ci->RF_vcocal_countval0);
18409 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18410 ci->RF_vcocal_countval1);
18411 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18412 ci->RF_rfpll_refmaster_sparextalsize);
18413 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18414 ci->RF_rfpll_loopfilter_r1);
18415 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18416 ci->RF_rfpll_loopfilter_c2);
18417 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18418 ci->RF_rfpll_loopfilter_c1);
18419 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18420 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18421 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18422 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18423 write_radio_reg(pi,
18424 RADIO_2057_LOGEN_MX2G_TUNE,
18425 ci->RF_logen_mx2g_tune);
18426 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18427 ci->RF_logen_mx5g_tune);
18428 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18429 ci->RF_logen_indbuf2g_tune);
18430 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18431 ci->RF_logen_indbuf5g_tune);
18432
18433 write_radio_reg(pi,
18434 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18435 ci->RF_txmix2g_tune_boost_pu_core0);
18436 write_radio_reg(pi,
18437 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18438 ci->RF_pad2g_tune_pus_core0);
18439 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18440 ci->RF_pga_boost_tune_core0);
18441 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18442 ci->RF_txmix5g_boost_tune_core0);
18443 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18444 ci->RF_pad5g_tune_misc_pus_core0);
18445 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18446 ci->RF_lna2g_tune_core0);
18447 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18448 ci->RF_lna5g_tune_core0);
18449
18450 write_radio_reg(pi,
18451 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18452 ci->RF_txmix2g_tune_boost_pu_core1);
18453 write_radio_reg(pi,
18454 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18455 ci->RF_pad2g_tune_pus_core1);
18456 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18457 ci->RF_pga_boost_tune_core1);
18458 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18459 ci->RF_txmix5g_boost_tune_core1);
18460 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18461 ci->RF_pad5g_tune_misc_pus_core1);
18462 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18463 ci->RF_lna2g_tune_core1);
18464 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18465 ci->RF_lna5g_tune_core1);
18466 }
18467
18468 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18469
18470 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18471 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18472 0x3f);
18473 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18474 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18475 0x8);
18476 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18477 0x8);
18478 } else {
18479 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18480 0x1f);
18481 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18482 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18483 0x8);
18484 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18485 0x8);
18486 }
18487 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18488 (pi->pubpi.radiorev == 8)) {
18489
18490 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18491 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18492 0x1b);
18493 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18494 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18495 0xa);
18496 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18497 0xa);
18498 } else {
18499 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18500 0x1f);
18501 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18502 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18503 0x8);
18504 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18505 0x8);
18506 }
18507
18508 }
18509
18510 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18511 if (PHY_IPA(pi)) {
18512 if (pi->pubpi.radiorev == 3) {
18513 txmix2g_tune_boost_pu = 0x6b;
18514 }
18515
18516 if (pi->pubpi.radiorev == 5)
18517 pad2g_tune_pus = 0x73;
18518
18519 } else {
18520 if (pi->pubpi.radiorev != 5) {
18521 pad2g_tune_pus = 0x3;
18522
18523 txmix2g_tune_boost_pu = 0x61;
18524 }
18525 }
18526
18527 for (coreNum = 0; coreNum <= 1; coreNum++) {
18528
18529 if (txmix2g_tune_boost_pu != 0)
18530 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18531 TXMIX2G_TUNE_BOOST_PU,
18532 txmix2g_tune_boost_pu);
18533
18534 if (pad2g_tune_pus != 0)
18535 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18536 PAD2G_TUNE_PUS,
18537 pad2g_tune_pus);
18538 }
18539 }
18540
18541 udelay(50);
18542
18543 wlc_phy_radio205x_vcocal_nphy(pi);
18544 }
18545
18546 static u16 wlc_phy_radio2057_rccal(phy_info_t *pi)
18547 {
18548 u16 rccal_valid;
18549 int i;
18550 bool chip43226_6362A0;
18551
18552 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18553 || (pi->pubpi.radiorev == 4)
18554 || (pi->pubpi.radiorev == 6));
18555
18556 rccal_valid = 0;
18557 if (chip43226_6362A0) {
18558 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18559 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18560 } else {
18561 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18562
18563 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18564 }
18565 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18566 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18567
18568 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18569 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18570 if (rccal_valid & 0x2) {
18571 break;
18572 }
18573 udelay(500);
18574 }
18575
18576 ASSERT(rccal_valid & 0x2);
18577
18578 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18579
18580 rccal_valid = 0;
18581 if (chip43226_6362A0) {
18582 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18583 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18584 } else {
18585 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18586
18587 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18588 }
18589 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18590 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18591
18592 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18593 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18594 if (rccal_valid & 0x2) {
18595 break;
18596 }
18597 udelay(500);
18598 }
18599
18600 ASSERT(rccal_valid & 0x2);
18601
18602 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18603
18604 rccal_valid = 0;
18605 if (chip43226_6362A0) {
18606 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18607
18608 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18609 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18610 } else {
18611 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18612 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18613 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18614 }
18615 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18616
18617 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18618 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18619 if (rccal_valid & 0x2) {
18620 break;
18621 }
18622 udelay(500);
18623 }
18624
18625 ASSERT(rccal_valid & 0x2);
18626
18627 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18628
18629 return rccal_valid;
18630 }
18631
18632 static void
18633 wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi, u16 reduction_factr)
18634 {
18635 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18636 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18637 CHSPEC_IS40(pi->radio_chanspec)) {
18638 if (!pi->nphy_anarxlpf_adjusted) {
18639 write_radio_reg(pi,
18640 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18641 RADIO_2056_RX0),
18642 ((pi->nphy_rccal_value +
18643 reduction_factr) | 0x80));
18644
18645 pi->nphy_anarxlpf_adjusted = true;
18646 }
18647 } else {
18648 if (pi->nphy_anarxlpf_adjusted) {
18649 write_radio_reg(pi,
18650 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18651 RADIO_2056_RX0),
18652 (pi->nphy_rccal_value | 0x80));
18653
18654 pi->nphy_anarxlpf_adjusted = false;
18655 }
18656 }
18657 }
18658 }
18659
18660 static void
18661 wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *tone_id_buf,
18662 u32 *noise_var_buf)
18663 {
18664 int i;
18665 u32 offset;
18666 int tone_id;
18667 int tbllen =
18668 CHSPEC_IS40(pi->
18669 radio_chanspec) ? NPHY_NOISEVAR_TBLLEN40 :
18670 NPHY_NOISEVAR_TBLLEN20;
18671
18672 if (pi->nphy_noisevars_adjusted) {
18673 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18674 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18675 offset = (tone_id >= 0) ?
18676 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18677 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18678 offset, 32,
18679 (void *)&pi->
18680 nphy_saved_noisevars.
18681 min_noise_vars[i]);
18682 }
18683
18684 pi->nphy_saved_noisevars.bufcount = 0;
18685 pi->nphy_noisevars_adjusted = false;
18686 }
18687
18688 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18689 pi->nphy_saved_noisevars.bufcount = 0;
18690
18691 for (i = 0; i < ntones; i++) {
18692 tone_id = tone_id_buf[i];
18693 offset = (tone_id >= 0) ?
18694 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18695 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18696 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18697 offset, 32,
18698 &pi->nphy_saved_noisevars.
18699 min_noise_vars[i]);
18700 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18701 offset, 32,
18702 (void *)&noise_var_buf[i]);
18703 pi->nphy_saved_noisevars.bufcount++;
18704 }
18705
18706 pi->nphy_noisevars_adjusted = true;
18707 }
18708 }
18709
18710 static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr)
18711 {
18712 u16 regval;
18713
18714 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18715 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18716 CHSPEC_IS40(pi->radio_chanspec)) {
18717 if (!pi->nphy_crsminpwr_adjusted) {
18718 regval = read_phy_reg(pi, 0x27d);
18719 pi->nphy_crsminpwr[0] = regval & 0xff;
18720 regval &= 0xff00;
18721 regval |= (u16) minpwr;
18722 write_phy_reg(pi, 0x27d, regval);
18723
18724 regval = read_phy_reg(pi, 0x280);
18725 pi->nphy_crsminpwr[1] = regval & 0xff;
18726 regval &= 0xff00;
18727 regval |= (u16) minpwr;
18728 write_phy_reg(pi, 0x280, regval);
18729
18730 regval = read_phy_reg(pi, 0x283);
18731 pi->nphy_crsminpwr[2] = regval & 0xff;
18732 regval &= 0xff00;
18733 regval |= (u16) minpwr;
18734 write_phy_reg(pi, 0x283, regval);
18735
18736 pi->nphy_crsminpwr_adjusted = true;
18737 }
18738 } else {
18739 if (pi->nphy_crsminpwr_adjusted) {
18740 regval = read_phy_reg(pi, 0x27d);
18741 regval &= 0xff00;
18742 regval |= pi->nphy_crsminpwr[0];
18743 write_phy_reg(pi, 0x27d, regval);
18744
18745 regval = read_phy_reg(pi, 0x280);
18746 regval &= 0xff00;
18747 regval |= pi->nphy_crsminpwr[1];
18748 write_phy_reg(pi, 0x280, regval);
18749
18750 regval = read_phy_reg(pi, 0x283);
18751 regval &= 0xff00;
18752 regval |= pi->nphy_crsminpwr[2];
18753 write_phy_reg(pi, 0x283, regval);
18754
18755 pi->nphy_crsminpwr_adjusted = false;
18756 }
18757 }
18758 }
18759 }
18760
18761 static void wlc_phy_txlpfbw_nphy(phy_info_t *pi)
18762 {
18763 u8 tx_lpf_bw = 0;
18764
18765 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18766 if (CHSPEC_IS40(pi->radio_chanspec)) {
18767 tx_lpf_bw = 3;
18768 } else {
18769 tx_lpf_bw = 1;
18770 }
18771
18772 if (PHY_IPA(pi)) {
18773 if (CHSPEC_IS40(pi->radio_chanspec)) {
18774 tx_lpf_bw = 5;
18775 } else {
18776 tx_lpf_bw = 4;
18777 }
18778 }
18779 write_phy_reg(pi, 0xe8,
18780 (tx_lpf_bw << 0) |
18781 (tx_lpf_bw << 3) |
18782 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18783
18784 if (PHY_IPA(pi)) {
18785
18786 if (CHSPEC_IS40(pi->radio_chanspec)) {
18787 tx_lpf_bw = 4;
18788 } else {
18789 tx_lpf_bw = 1;
18790 }
18791
18792 write_phy_reg(pi, 0xe9,
18793 (tx_lpf_bw << 0) |
18794 (tx_lpf_bw << 3) |
18795 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18796 }
18797 }
18798 }
18799
18800 static void wlc_phy_spurwar_nphy(phy_info_t *pi)
18801 {
18802 u16 cur_channel = 0;
18803 int nphy_adj_tone_id_buf[] = { 57, 58 };
18804 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
18805 bool isAdjustNoiseVar = false;
18806 uint numTonesAdjust = 0;
18807 u32 tempval = 0;
18808
18809 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18810 if (pi->phyhang_avoid)
18811 wlc_phy_stay_in_carriersearch_nphy(pi, true);
18812
18813 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18814
18815 if (pi->nphy_gband_spurwar_en) {
18816
18817 wlc_phy_adjust_rx_analpfbw_nphy(pi,
18818 NPHY_ANARXLPFBW_REDUCTIONFACT);
18819
18820 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18821 if ((cur_channel == 11)
18822 && CHSPEC_IS40(pi->radio_chanspec)) {
18823
18824 wlc_phy_adjust_min_noisevar_nphy(pi, 2,
18825 nphy_adj_tone_id_buf,
18826 nphy_adj_noise_var_buf);
18827 } else {
18828
18829 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18830 NULL,
18831 NULL);
18832 }
18833 }
18834 wlc_phy_adjust_crsminpwr_nphy(pi,
18835 NPHY_ADJUSTED_MINCRSPOWER);
18836 }
18837
18838 if ((pi->nphy_gband_spurwar2_en)
18839 && CHSPEC_IS2G(pi->radio_chanspec)) {
18840
18841 if (CHSPEC_IS40(pi->radio_chanspec)) {
18842 switch (cur_channel) {
18843 case 3:
18844 nphy_adj_tone_id_buf[0] = 57;
18845 nphy_adj_tone_id_buf[1] = 58;
18846 nphy_adj_noise_var_buf[0] = 0x22f;
18847 nphy_adj_noise_var_buf[1] = 0x25f;
18848 isAdjustNoiseVar = true;
18849 break;
18850 case 4:
18851 nphy_adj_tone_id_buf[0] = 41;
18852 nphy_adj_tone_id_buf[1] = 42;
18853 nphy_adj_noise_var_buf[0] = 0x22f;
18854 nphy_adj_noise_var_buf[1] = 0x25f;
18855 isAdjustNoiseVar = true;
18856 break;
18857 case 5:
18858 nphy_adj_tone_id_buf[0] = 25;
18859 nphy_adj_tone_id_buf[1] = 26;
18860 nphy_adj_noise_var_buf[0] = 0x24f;
18861 nphy_adj_noise_var_buf[1] = 0x25f;
18862 isAdjustNoiseVar = true;
18863 break;
18864 case 6:
18865 nphy_adj_tone_id_buf[0] = 9;
18866 nphy_adj_tone_id_buf[1] = 10;
18867 nphy_adj_noise_var_buf[0] = 0x22f;
18868 nphy_adj_noise_var_buf[1] = 0x24f;
18869 isAdjustNoiseVar = true;
18870 break;
18871 case 7:
18872 nphy_adj_tone_id_buf[0] = 121;
18873 nphy_adj_tone_id_buf[1] = 122;
18874 nphy_adj_noise_var_buf[0] = 0x18f;
18875 nphy_adj_noise_var_buf[1] = 0x24f;
18876 isAdjustNoiseVar = true;
18877 break;
18878 case 8:
18879 nphy_adj_tone_id_buf[0] = 105;
18880 nphy_adj_tone_id_buf[1] = 106;
18881 nphy_adj_noise_var_buf[0] = 0x22f;
18882 nphy_adj_noise_var_buf[1] = 0x25f;
18883 isAdjustNoiseVar = true;
18884 break;
18885 case 9:
18886 nphy_adj_tone_id_buf[0] = 89;
18887 nphy_adj_tone_id_buf[1] = 90;
18888 nphy_adj_noise_var_buf[0] = 0x22f;
18889 nphy_adj_noise_var_buf[1] = 0x24f;
18890 isAdjustNoiseVar = true;
18891 break;
18892 case 10:
18893 nphy_adj_tone_id_buf[0] = 73;
18894 nphy_adj_tone_id_buf[1] = 74;
18895 nphy_adj_noise_var_buf[0] = 0x22f;
18896 nphy_adj_noise_var_buf[1] = 0x24f;
18897 isAdjustNoiseVar = true;
18898 break;
18899 default:
18900 isAdjustNoiseVar = false;
18901 break;
18902 }
18903 }
18904
18905 if (isAdjustNoiseVar) {
18906 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18907 sizeof(nphy_adj_tone_id_buf[0]);
18908
18909 wlc_phy_adjust_min_noisevar_nphy(pi,
18910 numTonesAdjust,
18911 nphy_adj_tone_id_buf,
18912 nphy_adj_noise_var_buf);
18913
18914 tempval = 0;
18915
18916 } else {
18917
18918 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18919 NULL);
18920 }
18921 }
18922
18923 if ((pi->nphy_aband_spurwar_en) &&
18924 (CHSPEC_IS5G(pi->radio_chanspec))) {
18925 switch (cur_channel) {
18926 case 54:
18927 nphy_adj_tone_id_buf[0] = 32;
18928 nphy_adj_noise_var_buf[0] = 0x25f;
18929 break;
18930 case 38:
18931 case 102:
18932 case 118:
18933 if ((pi->sh->chip == BCM4716_CHIP_ID) &&
18934 (pi->sh->chippkg == BCM4717_PKG_ID)) {
18935 nphy_adj_tone_id_buf[0] = 32;
18936 nphy_adj_noise_var_buf[0] = 0x21f;
18937 } else {
18938 nphy_adj_tone_id_buf[0] = 0;
18939 nphy_adj_noise_var_buf[0] = 0x0;
18940 }
18941 break;
18942 case 134:
18943 nphy_adj_tone_id_buf[0] = 32;
18944 nphy_adj_noise_var_buf[0] = 0x21f;
18945 break;
18946 case 151:
18947 nphy_adj_tone_id_buf[0] = 16;
18948 nphy_adj_noise_var_buf[0] = 0x23f;
18949 break;
18950 case 153:
18951 case 161:
18952 nphy_adj_tone_id_buf[0] = 48;
18953 nphy_adj_noise_var_buf[0] = 0x23f;
18954 break;
18955 default:
18956 nphy_adj_tone_id_buf[0] = 0;
18957 nphy_adj_noise_var_buf[0] = 0x0;
18958 break;
18959 }
18960
18961 if (nphy_adj_tone_id_buf[0]
18962 && nphy_adj_noise_var_buf[0]) {
18963 wlc_phy_adjust_min_noisevar_nphy(pi, 1,
18964 nphy_adj_tone_id_buf,
18965 nphy_adj_noise_var_buf);
18966 } else {
18967 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18968 NULL);
18969 }
18970 }
18971
18972 if (pi->phyhang_avoid)
18973 wlc_phy_stay_in_carriersearch_nphy(pi, false);
18974 }
18975 }
18976
18977 static void
18978 wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chanspec,
18979 const nphy_sfo_cfg_t *ci)
18980 {
18981 u16 val;
18982
18983 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18984 if (CHSPEC_IS5G(chanspec) && !val) {
18985
18986 val = R_REG(&pi->regs->psm_phy_hdr_param);
18987 W_REG(&pi->regs->psm_phy_hdr_param,
18988 (val | MAC_PHY_FORCE_CLK));
18989
18990 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18991 (BBCFG_RESETCCA | BBCFG_RESETRX));
18992
18993 W_REG(&pi->regs->psm_phy_hdr_param, val);
18994
18995 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18996 } else if (!CHSPEC_IS5G(chanspec) && val) {
18997
18998 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
18999
19000 val = R_REG(&pi->regs->psm_phy_hdr_param);
19001 W_REG(&pi->regs->psm_phy_hdr_param,
19002 (val | MAC_PHY_FORCE_CLK));
19003
19004 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
19005 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
19006
19007 W_REG(&pi->regs->psm_phy_hdr_param, val);
19008 }
19009
19010 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
19011 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
19012 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
19013
19014 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
19015 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
19016 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
19017
19018 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
19019 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
19020
19021 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
19022 } else {
19023 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
19024 NPHY_ClassifierCtrl_ofdm_en);
19025
19026 if (CHSPEC_IS2G(chanspec))
19027 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
19028 }
19029
19030 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
19031 wlc_phy_txpwr_fixpower_nphy(pi);
19032 }
19033
19034 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
19035
19036 wlc_phy_adjust_lnagaintbl_nphy(pi);
19037 }
19038
19039 wlc_phy_txlpfbw_nphy(pi);
19040
19041 if (NREV_GE(pi->pubpi.phy_rev, 3)
19042 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
19043 u8 spuravoid = 0;
19044
19045 val = CHSPEC_CHANNEL(chanspec);
19046 if (!CHSPEC_IS40(pi->radio_chanspec)) {
19047 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19048 if ((val == 13) || (val == 14) || (val == 153)) {
19049 spuravoid = 1;
19050 }
19051 } else {
19052
19053 if (((val >= 5) && (val <= 8)) || (val == 13)
19054 || (val == 14)) {
19055 spuravoid = 1;
19056 }
19057 }
19058 } else {
19059 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19060 if (val == 54) {
19061 spuravoid = 1;
19062 }
19063 } else {
19064
19065 if (pi->nphy_aband_spurwar_en &&
19066 ((val == 38) || (val == 102)
19067 || (val == 118))) {
19068 if ((pi->sh->chip ==
19069 BCM4716_CHIP_ID)
19070 && (pi->sh->chippkg ==
19071 BCM4717_PKG_ID)) {
19072 spuravoid = 0;
19073 } else {
19074 spuravoid = 1;
19075 }
19076 }
19077 }
19078 }
19079
19080 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19081 spuravoid = 1;
19082
19083 if ((pi->sh->chip == BCM4716_CHIP_ID) ||
19084 (pi->sh->chip == BCM47162_CHIP_ID)) {
19085 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19086 } else {
19087 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
19088 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19089 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
19090 }
19091
19092 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
19093 (pi->sh->chip == BCM43225_CHIP_ID) ||
19094 (pi->sh->chip == BCM43421_CHIP_ID)) {
19095
19096 if (spuravoid == 1) {
19097
19098 W_REG(&pi->regs->tsf_clk_frac_l,
19099 0x5341);
19100 W_REG(&pi->regs->tsf_clk_frac_h,
19101 0x8);
19102 } else {
19103
19104 W_REG(&pi->regs->tsf_clk_frac_l,
19105 0x8889);
19106 W_REG(&pi->regs->tsf_clk_frac_h,
19107 0x8);
19108 }
19109 }
19110
19111 if (!((pi->sh->chip == BCM4716_CHIP_ID) ||
19112 (pi->sh->chip == BCM47162_CHIP_ID))) {
19113 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19114 }
19115
19116 mod_phy_reg(pi, 0x01, (0x1 << 15),
19117 ((spuravoid > 0) ? (0x1 << 15) : 0));
19118
19119 wlc_phy_resetcca_nphy(pi);
19120
19121 pi->phy_isspuravoid = (spuravoid > 0);
19122 }
19123
19124 if (NREV_LT(pi->pubpi.phy_rev, 7))
19125 write_phy_reg(pi, 0x17e, 0x3830);
19126
19127 wlc_phy_spurwar_nphy(pi);
19128 }
19129
19130 void wlc_phy_chanspec_set_nphy(phy_info_t *pi, chanspec_t chanspec)
19131 {
19132 int freq;
19133 chan_info_nphy_radio2057_t *t0 = NULL;
19134 chan_info_nphy_radio205x_t *t1 = NULL;
19135 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
19136 chan_info_nphy_2055_t *t3 = NULL;
19137
19138 if (NORADIO_ENAB(pi->pubpi)) {
19139 return;
19140 }
19141
19142 if (!wlc_phy_chan2freq_nphy
19143 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19144 return;
19145
19146 wlc_phy_chanspec_radio_set((wlc_phy_t *) pi, chanspec);
19147
19148 if (CHSPEC_BW(chanspec) != pi->bw)
19149 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19150
19151 if (CHSPEC_IS40(chanspec)) {
19152 if (CHSPEC_SB_UPPER(chanspec)) {
19153 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19154 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19155 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19156 }
19157 } else {
19158 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19159 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19160 and_phy_reg(pi, 0x310,
19161 (~PRIM_SEL_UP20 & 0xffff));
19162 }
19163 }
19164 }
19165
19166 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19167 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19168
19169 if ((pi->pubpi.radiorev <= 4)
19170 || (pi->pubpi.radiorev == 6)) {
19171 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19172 0x2,
19173 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19174 : 0));
19175 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19176 0x2,
19177 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19178 : 0));
19179 }
19180
19181 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19182 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19183 (pi->pubpi.radiorev ==
19184 5) ? (const nphy_sfo_cfg_t
19185 *)&(t2->
19186 PHY_BW1a)
19187 : (const nphy_sfo_cfg_t *)
19188 &(t0->PHY_BW1a));
19189
19190 } else {
19191
19192 mod_radio_reg(pi,
19193 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19194 0x4,
19195 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19196 wlc_phy_chanspec_radio2056_setup(pi, t1);
19197
19198 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19199 (const nphy_sfo_cfg_t *)
19200 &(t1->PHY_BW1a));
19201 }
19202
19203 } else {
19204
19205 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19206 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19207 : (0x05 << 4)));
19208
19209 wlc_phy_chanspec_radio2055_setup(pi, t3);
19210 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19211 (const nphy_sfo_cfg_t *)&(t3->
19212 PHY_BW1a));
19213 }
19214
19215 }
19216
19217 static void wlc_phy_savecal_nphy(phy_info_t *pi)
19218 {
19219 void *tbl_ptr;
19220 int coreNum;
19221 u16 *txcal_radio_regs = NULL;
19222
19223 if (pi->phyhang_avoid)
19224 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19225
19226 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19227
19228 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19229 &pi->calibration_cache.
19230 rxcal_coeffs_2G);
19231
19232 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19233 txcal_radio_regs =
19234 pi->calibration_cache.txcal_radio_regs_2G;
19235 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19236
19237 pi->calibration_cache.txcal_radio_regs_2G[0] =
19238 read_radio_reg(pi,
19239 RADIO_2056_TX_LOFT_FINE_I |
19240 RADIO_2056_TX0);
19241 pi->calibration_cache.txcal_radio_regs_2G[1] =
19242 read_radio_reg(pi,
19243 RADIO_2056_TX_LOFT_FINE_Q |
19244 RADIO_2056_TX0);
19245 pi->calibration_cache.txcal_radio_regs_2G[2] =
19246 read_radio_reg(pi,
19247 RADIO_2056_TX_LOFT_FINE_I |
19248 RADIO_2056_TX1);
19249 pi->calibration_cache.txcal_radio_regs_2G[3] =
19250 read_radio_reg(pi,
19251 RADIO_2056_TX_LOFT_FINE_Q |
19252 RADIO_2056_TX1);
19253
19254 pi->calibration_cache.txcal_radio_regs_2G[4] =
19255 read_radio_reg(pi,
19256 RADIO_2056_TX_LOFT_COARSE_I |
19257 RADIO_2056_TX0);
19258 pi->calibration_cache.txcal_radio_regs_2G[5] =
19259 read_radio_reg(pi,
19260 RADIO_2056_TX_LOFT_COARSE_Q |
19261 RADIO_2056_TX0);
19262 pi->calibration_cache.txcal_radio_regs_2G[6] =
19263 read_radio_reg(pi,
19264 RADIO_2056_TX_LOFT_COARSE_I |
19265 RADIO_2056_TX1);
19266 pi->calibration_cache.txcal_radio_regs_2G[7] =
19267 read_radio_reg(pi,
19268 RADIO_2056_TX_LOFT_COARSE_Q |
19269 RADIO_2056_TX1);
19270 } else {
19271 pi->calibration_cache.txcal_radio_regs_2G[0] =
19272 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19273 pi->calibration_cache.txcal_radio_regs_2G[1] =
19274 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19275 pi->calibration_cache.txcal_radio_regs_2G[2] =
19276 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19277 pi->calibration_cache.txcal_radio_regs_2G[3] =
19278 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19279 }
19280
19281 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19282 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19283 } else {
19284
19285 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19286 &pi->calibration_cache.
19287 rxcal_coeffs_5G);
19288
19289 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19290 txcal_radio_regs =
19291 pi->calibration_cache.txcal_radio_regs_5G;
19292 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19293
19294 pi->calibration_cache.txcal_radio_regs_5G[0] =
19295 read_radio_reg(pi,
19296 RADIO_2056_TX_LOFT_FINE_I |
19297 RADIO_2056_TX0);
19298 pi->calibration_cache.txcal_radio_regs_5G[1] =
19299 read_radio_reg(pi,
19300 RADIO_2056_TX_LOFT_FINE_Q |
19301 RADIO_2056_TX0);
19302 pi->calibration_cache.txcal_radio_regs_5G[2] =
19303 read_radio_reg(pi,
19304 RADIO_2056_TX_LOFT_FINE_I |
19305 RADIO_2056_TX1);
19306 pi->calibration_cache.txcal_radio_regs_5G[3] =
19307 read_radio_reg(pi,
19308 RADIO_2056_TX_LOFT_FINE_Q |
19309 RADIO_2056_TX1);
19310
19311 pi->calibration_cache.txcal_radio_regs_5G[4] =
19312 read_radio_reg(pi,
19313 RADIO_2056_TX_LOFT_COARSE_I |
19314 RADIO_2056_TX0);
19315 pi->calibration_cache.txcal_radio_regs_5G[5] =
19316 read_radio_reg(pi,
19317 RADIO_2056_TX_LOFT_COARSE_Q |
19318 RADIO_2056_TX0);
19319 pi->calibration_cache.txcal_radio_regs_5G[6] =
19320 read_radio_reg(pi,
19321 RADIO_2056_TX_LOFT_COARSE_I |
19322 RADIO_2056_TX1);
19323 pi->calibration_cache.txcal_radio_regs_5G[7] =
19324 read_radio_reg(pi,
19325 RADIO_2056_TX_LOFT_COARSE_Q |
19326 RADIO_2056_TX1);
19327 } else {
19328 pi->calibration_cache.txcal_radio_regs_5G[0] =
19329 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19330 pi->calibration_cache.txcal_radio_regs_5G[1] =
19331 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19332 pi->calibration_cache.txcal_radio_regs_5G[2] =
19333 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19334 pi->calibration_cache.txcal_radio_regs_5G[3] =
19335 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19336 }
19337
19338 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19339 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19340 }
19341 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19342 for (coreNum = 0; coreNum <= 1; coreNum++) {
19343
19344 txcal_radio_regs[2 * coreNum] =
19345 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19346 LOFT_FINE_I);
19347 txcal_radio_regs[2 * coreNum + 1] =
19348 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19349 LOFT_FINE_Q);
19350
19351 txcal_radio_regs[2 * coreNum + 4] =
19352 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19353 LOFT_COARSE_I);
19354 txcal_radio_regs[2 * coreNum + 5] =
19355 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19356 LOFT_COARSE_Q);
19357 }
19358 }
19359
19360 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19361
19362 if (pi->phyhang_avoid)
19363 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19364 }
19365
19366 static void wlc_phy_restorecal_nphy(phy_info_t *pi)
19367 {
19368 u16 *loft_comp;
19369 u16 txcal_coeffs_bphy[4];
19370 u16 *tbl_ptr;
19371 int coreNum;
19372 u16 *txcal_radio_regs = NULL;
19373
19374 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19375 if (pi->nphy_iqcal_chanspec_2G == 0)
19376 return;
19377
19378 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19379 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19380 } else {
19381 if (pi->nphy_iqcal_chanspec_5G == 0)
19382 return;
19383
19384 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19385 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19386 }
19387
19388 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16,
19389 (void *)tbl_ptr);
19390
19391 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19392 txcal_coeffs_bphy[0] = tbl_ptr[0];
19393 txcal_coeffs_bphy[1] = tbl_ptr[1];
19394 txcal_coeffs_bphy[2] = tbl_ptr[2];
19395 txcal_coeffs_bphy[3] = tbl_ptr[3];
19396 } else {
19397 txcal_coeffs_bphy[0] = 0;
19398 txcal_coeffs_bphy[1] = 0;
19399 txcal_coeffs_bphy[2] = 0;
19400 txcal_coeffs_bphy[3] = 0;
19401 }
19402
19403 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19404 txcal_coeffs_bphy);
19405
19406 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19407
19408 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19409
19410 if (NREV_LT(pi->pubpi.phy_rev, 2))
19411 wlc_phy_tx_iq_war_nphy(pi);
19412
19413 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19414 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19415 txcal_radio_regs =
19416 pi->calibration_cache.txcal_radio_regs_2G;
19417 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19418
19419 write_radio_reg(pi,
19420 RADIO_2056_TX_LOFT_FINE_I |
19421 RADIO_2056_TX0,
19422 pi->calibration_cache.
19423 txcal_radio_regs_2G[0]);
19424 write_radio_reg(pi,
19425 RADIO_2056_TX_LOFT_FINE_Q |
19426 RADIO_2056_TX0,
19427 pi->calibration_cache.
19428 txcal_radio_regs_2G[1]);
19429 write_radio_reg(pi,
19430 RADIO_2056_TX_LOFT_FINE_I |
19431 RADIO_2056_TX1,
19432 pi->calibration_cache.
19433 txcal_radio_regs_2G[2]);
19434 write_radio_reg(pi,
19435 RADIO_2056_TX_LOFT_FINE_Q |
19436 RADIO_2056_TX1,
19437 pi->calibration_cache.
19438 txcal_radio_regs_2G[3]);
19439
19440 write_radio_reg(pi,
19441 RADIO_2056_TX_LOFT_COARSE_I |
19442 RADIO_2056_TX0,
19443 pi->calibration_cache.
19444 txcal_radio_regs_2G[4]);
19445 write_radio_reg(pi,
19446 RADIO_2056_TX_LOFT_COARSE_Q |
19447 RADIO_2056_TX0,
19448 pi->calibration_cache.
19449 txcal_radio_regs_2G[5]);
19450 write_radio_reg(pi,
19451 RADIO_2056_TX_LOFT_COARSE_I |
19452 RADIO_2056_TX1,
19453 pi->calibration_cache.
19454 txcal_radio_regs_2G[6]);
19455 write_radio_reg(pi,
19456 RADIO_2056_TX_LOFT_COARSE_Q |
19457 RADIO_2056_TX1,
19458 pi->calibration_cache.
19459 txcal_radio_regs_2G[7]);
19460 } else {
19461 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19462 pi->calibration_cache.
19463 txcal_radio_regs_2G[0]);
19464 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19465 pi->calibration_cache.
19466 txcal_radio_regs_2G[1]);
19467 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19468 pi->calibration_cache.
19469 txcal_radio_regs_2G[2]);
19470 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19471 pi->calibration_cache.
19472 txcal_radio_regs_2G[3]);
19473 }
19474
19475 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19476 &pi->calibration_cache.
19477 rxcal_coeffs_2G);
19478 } else {
19479 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19480 txcal_radio_regs =
19481 pi->calibration_cache.txcal_radio_regs_5G;
19482 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19483
19484 write_radio_reg(pi,
19485 RADIO_2056_TX_LOFT_FINE_I |
19486 RADIO_2056_TX0,
19487 pi->calibration_cache.
19488 txcal_radio_regs_5G[0]);
19489 write_radio_reg(pi,
19490 RADIO_2056_TX_LOFT_FINE_Q |
19491 RADIO_2056_TX0,
19492 pi->calibration_cache.
19493 txcal_radio_regs_5G[1]);
19494 write_radio_reg(pi,
19495 RADIO_2056_TX_LOFT_FINE_I |
19496 RADIO_2056_TX1,
19497 pi->calibration_cache.
19498 txcal_radio_regs_5G[2]);
19499 write_radio_reg(pi,
19500 RADIO_2056_TX_LOFT_FINE_Q |
19501 RADIO_2056_TX1,
19502 pi->calibration_cache.
19503 txcal_radio_regs_5G[3]);
19504
19505 write_radio_reg(pi,
19506 RADIO_2056_TX_LOFT_COARSE_I |
19507 RADIO_2056_TX0,
19508 pi->calibration_cache.
19509 txcal_radio_regs_5G[4]);
19510 write_radio_reg(pi,
19511 RADIO_2056_TX_LOFT_COARSE_Q |
19512 RADIO_2056_TX0,
19513 pi->calibration_cache.
19514 txcal_radio_regs_5G[5]);
19515 write_radio_reg(pi,
19516 RADIO_2056_TX_LOFT_COARSE_I |
19517 RADIO_2056_TX1,
19518 pi->calibration_cache.
19519 txcal_radio_regs_5G[6]);
19520 write_radio_reg(pi,
19521 RADIO_2056_TX_LOFT_COARSE_Q |
19522 RADIO_2056_TX1,
19523 pi->calibration_cache.
19524 txcal_radio_regs_5G[7]);
19525 } else {
19526 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19527 pi->calibration_cache.
19528 txcal_radio_regs_5G[0]);
19529 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19530 pi->calibration_cache.
19531 txcal_radio_regs_5G[1]);
19532 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19533 pi->calibration_cache.
19534 txcal_radio_regs_5G[2]);
19535 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19536 pi->calibration_cache.
19537 txcal_radio_regs_5G[3]);
19538 }
19539
19540 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19541 &pi->calibration_cache.
19542 rxcal_coeffs_5G);
19543 }
19544
19545 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19546 for (coreNum = 0; coreNum <= 1; coreNum++) {
19547
19548 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19549 LOFT_FINE_I,
19550 txcal_radio_regs[2 * coreNum]);
19551 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19552 LOFT_FINE_Q,
19553 txcal_radio_regs[2 * coreNum + 1]);
19554
19555 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19556 LOFT_COARSE_I,
19557 txcal_radio_regs[2 * coreNum + 4]);
19558 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19559 LOFT_COARSE_Q,
19560 txcal_radio_regs[2 * coreNum + 5]);
19561 }
19562 }
19563 }
19564
19565 void wlc_phy_antsel_init(wlc_phy_t *ppi, bool lut_init)
19566 {
19567 phy_info_t *pi = (phy_info_t *) ppi;
19568 u16 mask = 0xfc00;
19569 u32 mc = 0;
19570
19571 if (NREV_GE(pi->pubpi.phy_rev, 7))
19572 return;
19573
19574 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19575 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
19576
19577 if (lut_init == false)
19578 return;
19579
19580 if (pi->srom_fem2g.antswctrllut == 0) {
19581 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19582 1, 0x02, 16, &v0);
19583 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19584 1, 0x03, 16, &v1);
19585 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19586 1, 0x08, 16, &v2);
19587 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19588 1, 0x0C, 16, &v3);
19589 } else {
19590 ASSERT(0);
19591 }
19592
19593 if (pi->srom_fem5g.antswctrllut == 0) {
19594 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19595 1, 0x12, 16, &v0);
19596 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19597 1, 0x13, 16, &v1);
19598 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19599 1, 0x18, 16, &v2);
19600 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19601 1, 0x1C, 16, &v3);
19602 } else {
19603 ASSERT(0);
19604 }
19605 } else {
19606
19607 write_phy_reg(pi, 0xc8, 0x0);
19608 write_phy_reg(pi, 0xc9, 0x0);
19609
19610 si_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
19611
19612 mc = R_REG(&pi->regs->maccontrol);
19613 mc &= ~MCTL_GPOUT_SEL_MASK;
19614 W_REG(&pi->regs->maccontrol, mc);
19615
19616 OR_REG(&pi->regs->psm_gpio_oe, mask);
19617
19618 AND_REG(&pi->regs->psm_gpio_out, ~mask);
19619
19620 if (lut_init) {
19621 write_phy_reg(pi, 0xf8, 0x02d8);
19622 write_phy_reg(pi, 0xf9, 0x0301);
19623 write_phy_reg(pi, 0xfa, 0x02d8);
19624 write_phy_reg(pi, 0xfb, 0x0301);
19625 }
19626 }
19627 }
19628
19629 u16 wlc_phy_classifier_nphy(phy_info_t *pi, u16 mask, u16 val)
19630 {
19631 u16 curr_ctl, new_ctl;
19632 bool suspended = false;
19633
19634 if (D11REV_IS(pi->sh->corerev, 16)) {
19635 suspended =
19636 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
19637 false : true;
19638 if (!suspended)
19639 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19640 }
19641
19642 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19643
19644 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19645
19646 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19647
19648 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19649 wlapi_enable_mac(pi->sh->physhim);
19650
19651 return new_ctl;
19652 }
19653
19654 static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals)
19655 {
19656
19657 if (write == 0) {
19658 vals[0] = read_phy_reg(pi, 0x2c);
19659 vals[1] = read_phy_reg(pi, 0x42);
19660 } else {
19661 write_phy_reg(pi, 0x2c, vals[0]);
19662 write_phy_reg(pi, 0x42, vals[1]);
19663 }
19664 }
19665
19666 void wlc_phy_force_rfseq_nphy(phy_info_t *pi, u8 cmd)
19667 {
19668 u16 trigger_mask, status_mask;
19669 u16 orig_RfseqCoreActv;
19670
19671 switch (cmd) {
19672 case NPHY_RFSEQ_RX2TX:
19673 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19674 status_mask = NPHY_RfseqStatus_rx2tx;
19675 break;
19676 case NPHY_RFSEQ_TX2RX:
19677 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19678 status_mask = NPHY_RfseqStatus_tx2rx;
19679 break;
19680 case NPHY_RFSEQ_RESET2RX:
19681 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19682 status_mask = NPHY_RfseqStatus_reset2rx;
19683 break;
19684 case NPHY_RFSEQ_UPDATEGAINH:
19685 trigger_mask = NPHY_RfseqTrigger_updategainh;
19686 status_mask = NPHY_RfseqStatus_updategainh;
19687 break;
19688 case NPHY_RFSEQ_UPDATEGAINL:
19689 trigger_mask = NPHY_RfseqTrigger_updategainl;
19690 status_mask = NPHY_RfseqStatus_updategainl;
19691 break;
19692 case NPHY_RFSEQ_UPDATEGAINU:
19693 trigger_mask = NPHY_RfseqTrigger_updategainu;
19694 status_mask = NPHY_RfseqStatus_updategainu;
19695 break;
19696 default:
19697 return;
19698 }
19699
19700 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19701 or_phy_reg(pi, 0xa1,
19702 (NPHY_RfseqMode_CoreActv_override |
19703 NPHY_RfseqMode_Trigger_override));
19704 or_phy_reg(pi, 0xa3, trigger_mask);
19705 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19706 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
19707
19708 ASSERT((read_phy_reg(pi, 0xa4) & status_mask) == 0);
19709 }
19710
19711 static void
19712 wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *events, u8 *dlys,
19713 u8 len)
19714 {
19715 u32 t1_offset, t2_offset;
19716 u8 ctr;
19717 u8 end_event =
19718 NREV_GE(pi->pubpi.phy_rev,
19719 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
19720 u8 end_dly = 1;
19721
19722 ASSERT(len <= 16);
19723
19724 if (pi->phyhang_avoid)
19725 wlc_phy_stay_in_carriersearch_nphy(pi, true);
19726
19727 t1_offset = cmd << 4;
19728 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19729 events);
19730 t2_offset = t1_offset + 0x080;
19731 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19732 dlys);
19733
19734 for (ctr = len; ctr < 16; ctr++) {
19735 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19736 t1_offset + ctr, 8, &end_event);
19737 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19738 t2_offset + ctr, 8, &end_dly);
19739 }
19740
19741 if (pi->phyhang_avoid)
19742 wlc_phy_stay_in_carriersearch_nphy(pi, false);
19743 }
19744
19745 static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset)
19746 {
19747 u16 lpf_bw_ctl_val = 0;
19748 u16 rx2tx_lpf_rc_lut_offset = 0;
19749
19750 if (offset == 0) {
19751 if (CHSPEC_IS40(pi->radio_chanspec)) {
19752 rx2tx_lpf_rc_lut_offset = 0x159;
19753 } else {
19754 rx2tx_lpf_rc_lut_offset = 0x154;
19755 }
19756 } else {
19757 rx2tx_lpf_rc_lut_offset = offset;
19758 }
19759 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19760 (u32) rx2tx_lpf_rc_lut_offset, 16,
19761 &lpf_bw_ctl_val);
19762
19763 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19764
19765 return lpf_bw_ctl_val;
19766 }
19767
19768 static void
19769 wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
19770 u8 core_mask, u8 off, u8 override_id)
19771 {
19772 u8 core_num;
19773 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
19774 u8 val_shift = 0;
19775
19776 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19777 en_mask = field;
19778 for (core_num = 0; core_num < 2; core_num++) {
19779 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19780
19781 switch (field) {
19782 case (0x1 << 2):
19783 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19784 val_addr = (core_num == 0) ? 0x7a :
19785 0x7d;
19786 val_mask = (0x1 << 1);
19787 val_shift = 1;
19788 break;
19789 case (0x1 << 3):
19790 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19791 val_addr = (core_num == 0) ? 0x7a :
19792 0x7d;
19793 val_mask = (0x1 << 2);
19794 val_shift = 2;
19795 break;
19796 case (0x1 << 4):
19797 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19798 val_addr = (core_num == 0) ? 0x7a :
19799 0x7d;
19800 val_mask = (0x1 << 4);
19801 val_shift = 4;
19802 break;
19803 case (0x1 << 5):
19804 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19805 val_addr = (core_num == 0) ? 0x7a :
19806 0x7d;
19807 val_mask = (0x1 << 5);
19808 val_shift = 5;
19809 break;
19810 case (0x1 << 6):
19811 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19812 val_addr = (core_num == 0) ? 0x7a :
19813 0x7d;
19814 val_mask = (0x1 << 6);
19815 val_shift = 6;
19816 break;
19817 case (0x1 << 7):
19818 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19819 val_addr = (core_num == 0) ? 0x7a :
19820 0x7d;
19821 val_mask = (0x1 << 7);
19822 val_shift = 7;
19823 break;
19824 case (0x1 << 10):
19825 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19826 val_addr = (core_num == 0) ? 0xf8 :
19827 0xfa;
19828 val_mask = (0x7 << 4);
19829 val_shift = 4;
19830 break;
19831 case (0x1 << 11):
19832 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19833 val_addr = (core_num == 0) ? 0x7b :
19834 0x7e;
19835 val_mask = (0xffff << 0);
19836 val_shift = 0;
19837 break;
19838 case (0x1 << 12):
19839 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19840 val_addr = (core_num == 0) ? 0x7c :
19841 0x7f;
19842 val_mask = (0xffff << 0);
19843 val_shift = 0;
19844 break;
19845 case (0x3 << 13):
19846 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19847 val_addr = (core_num == 0) ? 0x348 :
19848 0x349;
19849 val_mask = (0xff << 0);
19850 val_shift = 0;
19851 break;
19852 case (0x1 << 13):
19853 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19854 val_addr = (core_num == 0) ? 0x348 :
19855 0x349;
19856 val_mask = (0xf << 0);
19857 val_shift = 0;
19858 break;
19859 default:
19860 addr = 0xffff;
19861 break;
19862 }
19863 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19864
19865 switch (field) {
19866 case (0x1 << 1):
19867 en_addr = (core_num == 0) ? 0x342 :
19868 0x343;
19869 val_addr = (core_num == 0) ? 0x340 :
19870 0x341;
19871 val_mask = (0x1 << 1);
19872 val_shift = 1;
19873 break;
19874 case (0x1 << 3):
19875 en_addr = (core_num == 0) ? 0x342 :
19876 0x343;
19877 val_addr = (core_num == 0) ? 0x340 :
19878 0x341;
19879 val_mask = (0x1 << 3);
19880 val_shift = 3;
19881 break;
19882 case (0x1 << 5):
19883 en_addr = (core_num == 0) ? 0x342 :
19884 0x343;
19885 val_addr = (core_num == 0) ? 0x340 :
19886 0x341;
19887 val_mask = (0x1 << 5);
19888 val_shift = 5;
19889 break;
19890 case (0x1 << 4):
19891 en_addr = (core_num == 0) ? 0x342 :
19892 0x343;
19893 val_addr = (core_num == 0) ? 0x340 :
19894 0x341;
19895 val_mask = (0x1 << 4);
19896 val_shift = 4;
19897 break;
19898 case (0x1 << 2):
19899
19900 en_addr = (core_num == 0) ? 0x342 :
19901 0x343;
19902 val_addr = (core_num == 0) ? 0x340 :
19903 0x341;
19904 val_mask = (0x1 << 2);
19905 val_shift = 2;
19906 break;
19907 case (0x1 << 7):
19908
19909 en_addr = (core_num == 0) ? 0x342 :
19910 0x343;
19911 val_addr = (core_num == 0) ? 0x340 :
19912 0x341;
19913 val_mask = (0x7 << 8);
19914 val_shift = 8;
19915 break;
19916 case (0x1 << 11):
19917 en_addr = (core_num == 0) ? 0x342 :
19918 0x343;
19919 val_addr = (core_num == 0) ? 0x340 :
19920 0x341;
19921 val_mask = (0x1 << 14);
19922 val_shift = 14;
19923 break;
19924 case (0x1 << 10):
19925 en_addr = (core_num == 0) ? 0x342 :
19926 0x343;
19927 val_addr = (core_num == 0) ? 0x340 :
19928 0x341;
19929 val_mask = (0x1 << 13);
19930 val_shift = 13;
19931 break;
19932 case (0x1 << 9):
19933 en_addr = (core_num == 0) ? 0x342 :
19934 0x343;
19935 val_addr = (core_num == 0) ? 0x340 :
19936 0x341;
19937 val_mask = (0x1 << 12);
19938 val_shift = 12;
19939 break;
19940 case (0x1 << 8):
19941 en_addr = (core_num == 0) ? 0x342 :
19942 0x343;
19943 val_addr = (core_num == 0) ? 0x340 :
19944 0x341;
19945 val_mask = (0x1 << 11);
19946 val_shift = 11;
19947 break;
19948 case (0x1 << 6):
19949 en_addr = (core_num == 0) ? 0x342 :
19950 0x343;
19951 val_addr = (core_num == 0) ? 0x340 :
19952 0x341;
19953 val_mask = (0x1 << 6);
19954 val_shift = 6;
19955 break;
19956 case (0x1 << 0):
19957 en_addr = (core_num == 0) ? 0x342 :
19958 0x343;
19959 val_addr = (core_num == 0) ? 0x340 :
19960 0x341;
19961 val_mask = (0x1 << 0);
19962 val_shift = 0;
19963 break;
19964 default:
19965 addr = 0xffff;
19966 break;
19967 }
19968 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19969
19970 switch (field) {
19971 case (0x1 << 3):
19972 en_addr = (core_num == 0) ? 0x346 :
19973 0x347;
19974 val_addr = (core_num == 0) ? 0x344 :
19975 0x345;
19976 val_mask = (0x1 << 3);
19977 val_shift = 3;
19978 break;
19979 case (0x1 << 1):
19980 en_addr = (core_num == 0) ? 0x346 :
19981 0x347;
19982 val_addr = (core_num == 0) ? 0x344 :
19983 0x345;
19984 val_mask = (0x1 << 1);
19985 val_shift = 1;
19986 break;
19987 case (0x1 << 0):
19988 en_addr = (core_num == 0) ? 0x346 :
19989 0x347;
19990 val_addr = (core_num == 0) ? 0x344 :
19991 0x345;
19992 val_mask = (0x1 << 0);
19993 val_shift = 0;
19994 break;
19995 case (0x1 << 2):
19996 en_addr = (core_num == 0) ? 0x346 :
19997 0x347;
19998 val_addr = (core_num == 0) ? 0x344 :
19999 0x345;
20000 val_mask = (0x1 << 2);
20001 val_shift = 2;
20002 break;
20003 case (0x1 << 4):
20004 en_addr = (core_num == 0) ? 0x346 :
20005 0x347;
20006 val_addr = (core_num == 0) ? 0x344 :
20007 0x345;
20008 val_mask = (0x1 << 4);
20009 val_shift = 4;
20010 break;
20011 default:
20012 addr = 0xffff;
20013 break;
20014 }
20015 }
20016
20017 if (off) {
20018 and_phy_reg(pi, en_addr, ~en_mask);
20019 and_phy_reg(pi, val_addr, ~val_mask);
20020 } else {
20021
20022 if ((core_mask == 0)
20023 || (core_mask & (1 << core_num))) {
20024 or_phy_reg(pi, en_addr, en_mask);
20025
20026 if (addr != 0xffff) {
20027 mod_phy_reg(pi, val_addr,
20028 val_mask,
20029 (value <<
20030 val_shift));
20031 }
20032 }
20033 }
20034 }
20035 }
20036 }
20037
20038 static void
20039 wlc_phy_rfctrl_override_nphy(phy_info_t *pi, u16 field, u16 value,
20040 u8 core_mask, u8 off)
20041 {
20042 u8 core_num;
20043 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
20044 0, val_mask = 0;
20045 u8 shift = 0, val_shift = 0;
20046
20047 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
20048
20049 en_mask = field;
20050 for (core_num = 0; core_num < 2; core_num++) {
20051
20052 switch (field) {
20053 case (0x1 << 1):
20054 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20055 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20056 val_mask = (0x1 << 0);
20057 val_shift = 0;
20058 break;
20059 case (0x1 << 2):
20060 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20061 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20062 val_mask = (0x1 << 1);
20063 val_shift = 1;
20064 break;
20065 case (0x1 << 3):
20066 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20067 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20068 val_mask = (0x1 << 2);
20069 val_shift = 2;
20070 break;
20071 case (0x1 << 4):
20072 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20073 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20074 val_mask = (0x1 << 4);
20075 val_shift = 4;
20076 break;
20077 case (0x1 << 5):
20078 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20079 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20080 val_mask = (0x1 << 5);
20081 val_shift = 5;
20082 break;
20083 case (0x1 << 6):
20084 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20085 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20086 val_mask = (0x1 << 6);
20087 val_shift = 6;
20088 break;
20089 case (0x1 << 7):
20090 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20091 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20092 val_mask = (0x1 << 7);
20093 val_shift = 7;
20094 break;
20095 case (0x1 << 8):
20096 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20097 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20098 val_mask = (0x7 << 8);
20099 val_shift = 8;
20100 break;
20101 case (0x1 << 11):
20102 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20103 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20104 val_mask = (0x7 << 13);
20105 val_shift = 13;
20106 break;
20107
20108 case (0x1 << 9):
20109 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20110 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20111 val_mask = (0x7 << 0);
20112 val_shift = 0;
20113 break;
20114
20115 case (0x1 << 10):
20116 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20117 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20118 val_mask = (0x7 << 4);
20119 val_shift = 4;
20120 break;
20121
20122 case (0x1 << 12):
20123 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20124 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20125 val_mask = (0xffff << 0);
20126 val_shift = 0;
20127 break;
20128 case (0x1 << 13):
20129 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20130 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20131 val_mask = (0xffff << 0);
20132 val_shift = 0;
20133 break;
20134 case (0x1 << 14):
20135 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20136 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20137 val_mask = (0x3 << 6);
20138 val_shift = 6;
20139 break;
20140 case (0x1 << 0):
20141 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20142 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20143 val_mask = (0x1 << 15);
20144 val_shift = 15;
20145 break;
20146 default:
20147 addr = 0xffff;
20148 break;
20149 }
20150
20151 if (off) {
20152 and_phy_reg(pi, en_addr, ~en_mask);
20153 and_phy_reg(pi, val_addr, ~val_mask);
20154 } else {
20155
20156 if ((core_mask == 0)
20157 || (core_mask & (1 << core_num))) {
20158 or_phy_reg(pi, en_addr, en_mask);
20159
20160 if (addr != 0xffff) {
20161 mod_phy_reg(pi, val_addr,
20162 val_mask,
20163 (value <<
20164 val_shift));
20165 }
20166 }
20167 }
20168 }
20169 } else {
20170
20171 if (off) {
20172 and_phy_reg(pi, 0xec, ~field);
20173 value = 0x0;
20174 } else {
20175 or_phy_reg(pi, 0xec, field);
20176 }
20177
20178 for (core_num = 0; core_num < 2; core_num++) {
20179
20180 switch (field) {
20181 case (0x1 << 1):
20182 case (0x1 << 9):
20183 case (0x1 << 12):
20184 case (0x1 << 13):
20185 case (0x1 << 14):
20186 addr = 0x78;
20187
20188 core_mask = 0x1;
20189 break;
20190 case (0x1 << 2):
20191 case (0x1 << 3):
20192 case (0x1 << 4):
20193 case (0x1 << 5):
20194 case (0x1 << 6):
20195 case (0x1 << 7):
20196 case (0x1 << 8):
20197 addr = (core_num == 0) ? 0x7a : 0x7d;
20198 break;
20199 case (0x1 << 10):
20200 addr = (core_num == 0) ? 0x7b : 0x7e;
20201 break;
20202 case (0x1 << 11):
20203 addr = (core_num == 0) ? 0x7c : 0x7f;
20204 break;
20205 default:
20206 addr = 0xffff;
20207 }
20208
20209 switch (field) {
20210 case (0x1 << 1):
20211 mask = (0x7 << 3);
20212 shift = 3;
20213 break;
20214 case (0x1 << 9):
20215 mask = (0x1 << 2);
20216 shift = 2;
20217 break;
20218 case (0x1 << 12):
20219 mask = (0x1 << 8);
20220 shift = 8;
20221 break;
20222 case (0x1 << 13):
20223 mask = (0x1 << 9);
20224 shift = 9;
20225 break;
20226 case (0x1 << 14):
20227 mask = (0xf << 12);
20228 shift = 12;
20229 break;
20230 case (0x1 << 2):
20231 mask = (0x1 << 0);
20232 shift = 0;
20233 break;
20234 case (0x1 << 3):
20235 mask = (0x1 << 1);
20236 shift = 1;
20237 break;
20238 case (0x1 << 4):
20239 mask = (0x1 << 2);
20240 shift = 2;
20241 break;
20242 case (0x1 << 5):
20243 mask = (0x3 << 4);
20244 shift = 4;
20245 break;
20246 case (0x1 << 6):
20247 mask = (0x3 << 6);
20248 shift = 6;
20249 break;
20250 case (0x1 << 7):
20251 mask = (0x1 << 8);
20252 shift = 8;
20253 break;
20254 case (0x1 << 8):
20255 mask = (0x1 << 9);
20256 shift = 9;
20257 break;
20258 case (0x1 << 10):
20259 mask = 0x1fff;
20260 shift = 0x0;
20261 break;
20262 case (0x1 << 11):
20263 mask = 0x1fff;
20264 shift = 0x0;
20265 break;
20266 default:
20267 mask = 0x0;
20268 shift = 0x0;
20269 break;
20270 }
20271
20272 if ((addr != 0xffff) && (core_mask & (1 << core_num))) {
20273 mod_phy_reg(pi, addr, mask, (value << shift));
20274 }
20275 }
20276
20277 or_phy_reg(pi, 0xec, (0x1 << 0));
20278 or_phy_reg(pi, 0x78, (0x1 << 0));
20279 udelay(1);
20280 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20281 }
20282 }
20283
20284 static void
20285 wlc_phy_rfctrl_override_1tomany_nphy(phy_info_t *pi, u16 cmd, u16 value,
20286 u8 core_mask, u8 off)
20287 {
20288 u16 rfmxgain = 0, lpfgain = 0;
20289 u16 tgain = 0;
20290
20291 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20292
20293 switch (cmd) {
20294 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20295 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
20296 value, core_mask, off,
20297 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20298 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), value,
20299 core_mask, off,
20300 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20301 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), value,
20302 core_mask, off,
20303 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20304 break;
20305 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20306 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20307 value, core_mask, off,
20308 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20309 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20310 core_mask, off,
20311 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20312 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20313 core_mask, off,
20314 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20315 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20316 core_mask, off,
20317 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20318 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0,
20319 core_mask, off,
20320 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20321 break;
20322 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20323 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20324 value, core_mask, off,
20325 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20326 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20327 core_mask, off,
20328 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20329 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20330 core_mask, off,
20331 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20332 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), value,
20333 core_mask, off,
20334 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20335 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1,
20336 core_mask, off,
20337 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20338 break;
20339 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20340 rfmxgain = value & 0x000ff;
20341 lpfgain = value & 0x0ff00;
20342 lpfgain = lpfgain >> 8;
20343
20344 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
20345 rfmxgain, core_mask,
20346 off,
20347 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20348 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x3 << 13),
20349 lpfgain, core_mask,
20350 off,
20351 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20352 break;
20353 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20354 tgain = value & 0x7fff;
20355 lpfgain = value & 0x8000;
20356 lpfgain = lpfgain >> 14;
20357
20358 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
20359 tgain, core_mask, off,
20360 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20361 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 13),
20362 lpfgain, core_mask,
20363 off,
20364 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20365 break;
20366 }
20367 }
20368 }
20369
20370 static void
20371 wlc_phy_scale_offset_rssi_nphy(phy_info_t *pi, u16 scale, s8 offset,
20372 u8 coresel, u8 rail, u8 rssi_type)
20373 {
20374 u16 valuetostuff;
20375
20376 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20377 NPHY_RSSICAL_MAXREAD : offset;
20378 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20379 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20380
20381 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20382
20383 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20384 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20385 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20386 write_phy_reg(pi, 0x1a6, valuetostuff);
20387 }
20388 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20389 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20390 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20391 write_phy_reg(pi, 0x1ac, valuetostuff);
20392 }
20393 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20394 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20395 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20396 write_phy_reg(pi, 0x1b2, valuetostuff);
20397 }
20398 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20399 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20400 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20401 write_phy_reg(pi, 0x1b8, valuetostuff);
20402 }
20403
20404 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20405 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20406 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20407 write_phy_reg(pi, 0x1a4, valuetostuff);
20408 }
20409 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20410 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20411 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20412 write_phy_reg(pi, 0x1aa, valuetostuff);
20413 }
20414 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20415 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20416 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20417 write_phy_reg(pi, 0x1b0, valuetostuff);
20418 }
20419 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20420 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20421 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20422 write_phy_reg(pi, 0x1b6, valuetostuff);
20423 }
20424
20425 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20426 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20427 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20428 write_phy_reg(pi, 0x1a5, valuetostuff);
20429 }
20430 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20431 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20432 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20433 write_phy_reg(pi, 0x1ab, valuetostuff);
20434 }
20435 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20436 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20437 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20438 write_phy_reg(pi, 0x1b1, valuetostuff);
20439 }
20440 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20441 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20442 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20443 write_phy_reg(pi, 0x1b7, valuetostuff);
20444 }
20445
20446 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20447 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20448 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20449 write_phy_reg(pi, 0x1a7, valuetostuff);
20450 }
20451 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20452 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20453 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20454 write_phy_reg(pi, 0x1ad, valuetostuff);
20455 }
20456 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20457 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20458 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20459 write_phy_reg(pi, 0x1b3, valuetostuff);
20460 }
20461 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20462 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20463 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20464 write_phy_reg(pi, 0x1b9, valuetostuff);
20465 }
20466
20467 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20468 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20469 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20470 write_phy_reg(pi, 0x1a8, valuetostuff);
20471 }
20472 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20473 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20474 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20475 write_phy_reg(pi, 0x1ae, valuetostuff);
20476 }
20477 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20478 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20479 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20480 write_phy_reg(pi, 0x1b4, valuetostuff);
20481 }
20482 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20483 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20484 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20485 write_phy_reg(pi, 0x1ba, valuetostuff);
20486 }
20487
20488 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20489 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20490 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20491 write_phy_reg(pi, 0x1a9, valuetostuff);
20492 }
20493 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20494 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20495 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20496 write_phy_reg(pi, 0x1b5, valuetostuff);
20497 }
20498
20499 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20500 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20501 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20502 write_phy_reg(pi, 0x1af, valuetostuff);
20503 }
20504 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20505 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20506 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20507 write_phy_reg(pi, 0x1bb, valuetostuff);
20508 }
20509 }
20510
20511 void wlc_phy_rssisel_nphy(phy_info_t *pi, u8 core_code, u8 rssi_type)
20512 {
20513 u16 mask, val;
20514 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
20515 startseq;
20516 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
20517 rfctrlovr_trigger_val;
20518 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20519 u16 rfctrlcmd_val, rfctrlovr_val;
20520 u8 core;
20521
20522 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20523 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20524 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20525 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20526
20527 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20528 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20529
20530 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20531 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20532
20533 mask = (0x1 << 2) |
20534 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20535 mod_phy_reg(pi, 0xf9, mask, 0);
20536 mod_phy_reg(pi, 0xfb, mask, 0);
20537
20538 } else {
20539 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20540 if (core_code == RADIO_MIMO_CORESEL_CORE1
20541 && core == PHY_CORE_1)
20542 continue;
20543 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20544 && core == PHY_CORE_0)
20545 continue;
20546
20547 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20548 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20549
20550 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20551 rssi_type == NPHY_RSSI_SEL_W2 ||
20552 rssi_type == NPHY_RSSI_SEL_NB) {
20553
20554 mod_phy_reg(pi,
20555 (core ==
20556 PHY_CORE_0) ? 0xa6 : 0xa7,
20557 (0x3 << 8), 0);
20558
20559 mask = (0x1 << 2) |
20560 (0x1 << 3) |
20561 (0x1 << 4) | (0x1 << 5);
20562 mod_phy_reg(pi,
20563 (core ==
20564 PHY_CORE_0) ? 0xf9 : 0xfb,
20565 mask, 0);
20566
20567 if (rssi_type == NPHY_RSSI_SEL_W1) {
20568 if (CHSPEC_IS5G
20569 (pi->radio_chanspec)) {
20570 mask = (0x1 << 2);
20571 val = 1 << 2;
20572 } else {
20573 mask = (0x1 << 3);
20574 val = 1 << 3;
20575 }
20576 } else if (rssi_type ==
20577 NPHY_RSSI_SEL_W2) {
20578 mask = (0x1 << 4);
20579 val = 1 << 4;
20580 } else {
20581 mask = (0x1 << 5);
20582 val = 1 << 5;
20583 }
20584 mod_phy_reg(pi,
20585 (core ==
20586 PHY_CORE_0) ? 0xf9 : 0xfb,
20587 mask, val);
20588
20589 mask = (0x1 << 5);
20590 val = 1 << 5;
20591 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20592 0xe5 : 0xe6, mask, val);
20593 } else {
20594 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20595
20596 mask = (0x3 << 8);
20597 val = 1 << 8;
20598 mod_phy_reg(pi,
20599 (core ==
20600 PHY_CORE_0) ? 0xa6
20601 : 0xa7, mask, val);
20602 mask = (0x3 << 10);
20603 val = 1 << 10;
20604 mod_phy_reg(pi,
20605 (core ==
20606 PHY_CORE_0) ? 0xa6
20607 : 0xa7, mask, val);
20608 } else if (rssi_type ==
20609 NPHY_RSSI_SEL_IQ) {
20610
20611 mask = (0x3 << 8);
20612 val = 2 << 8;
20613 mod_phy_reg(pi,
20614 (core ==
20615 PHY_CORE_0) ? 0xa6
20616 : 0xa7, mask, val);
20617 mask = (0x3 << 10);
20618 val = 2 << 10;
20619 mod_phy_reg(pi,
20620 (core ==
20621 PHY_CORE_0) ? 0xa6
20622 : 0xa7, mask, val);
20623 } else {
20624
20625 mask = (0x3 << 8);
20626 val = 3 << 8;
20627 mod_phy_reg(pi,
20628 (core ==
20629 PHY_CORE_0) ? 0xa6
20630 : 0xa7, mask, val);
20631 mask = (0x3 << 10);
20632 val = 3 << 10;
20633 mod_phy_reg(pi,
20634 (core ==
20635 PHY_CORE_0) ? 0xa6
20636 : 0xa7, mask, val);
20637
20638 if (PHY_IPA(pi)) {
20639 if (NREV_GE
20640 (pi->pubpi.phy_rev,
20641 7)) {
20642
20643 write_radio_reg
20644 (pi,
20645 ((core ==
20646 PHY_CORE_0)
20647 ?
20648 RADIO_2057_TX0_TX_SSI_MUX
20649 :
20650 RADIO_2057_TX1_TX_SSI_MUX),
20651 (CHSPEC_IS5G
20652 (pi->
20653 radio_chanspec)
20654 ? 0xc :
20655 0xe));
20656 } else {
20657 write_radio_reg
20658 (pi,
20659 RADIO_2056_TX_TX_SSI_MUX
20660 |
20661 ((core ==
20662 PHY_CORE_0)
20663 ?
20664 RADIO_2056_TX0
20665 :
20666 RADIO_2056_TX1),
20667 (CHSPEC_IS5G
20668 (pi->
20669 radio_chanspec)
20670 ? 0xc :
20671 0xe));
20672 }
20673 } else {
20674
20675 if (NREV_GE
20676 (pi->pubpi.phy_rev,
20677 7)) {
20678 write_radio_reg
20679 (pi,
20680 ((core ==
20681 PHY_CORE_0)
20682 ?
20683 RADIO_2057_TX0_TX_SSI_MUX
20684 :
20685 RADIO_2057_TX1_TX_SSI_MUX),
20686 0x11);
20687
20688 if (pi->pubpi.
20689 radioid ==
20690 BCM2057_ID)
20691 write_radio_reg
20692 (pi,
20693 RADIO_2057_IQTEST_SEL_PU,
20694 0x1);
20695
20696 } else {
20697 write_radio_reg
20698 (pi,
20699 RADIO_2056_TX_TX_SSI_MUX
20700 |
20701 ((core ==
20702 PHY_CORE_0)
20703 ?
20704 RADIO_2056_TX0
20705 :
20706 RADIO_2056_TX1),
20707 0x11);
20708 }
20709 }
20710
20711 afectrlovr_rssi_val = 1 << 9;
20712 mod_phy_reg(pi,
20713 (core ==
20714 PHY_CORE_0) ? 0x8f
20715 : 0xa5, (0x1 << 9),
20716 afectrlovr_rssi_val);
20717 }
20718 }
20719 }
20720 }
20721 } else {
20722
20723 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20724 (rssi_type == NPHY_RSSI_SEL_W2) ||
20725 (rssi_type == NPHY_RSSI_SEL_NB)) {
20726
20727 val = 0x0;
20728 } else if (rssi_type == NPHY_RSSI_SEL_TBD) {
20729
20730 val = 0x1;
20731 } else if (rssi_type == NPHY_RSSI_SEL_IQ) {
20732
20733 val = 0x2;
20734 } else {
20735
20736 val = 0x3;
20737 }
20738 mask = ((0x3 << 12) | (0x3 << 14));
20739 val = (val << 12) | (val << 14);
20740 mod_phy_reg(pi, 0xa6, mask, val);
20741 mod_phy_reg(pi, 0xa7, mask, val);
20742
20743 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20744 (rssi_type == NPHY_RSSI_SEL_W2) ||
20745 (rssi_type == NPHY_RSSI_SEL_NB)) {
20746 if (rssi_type == NPHY_RSSI_SEL_W1) {
20747 val = 0x1;
20748 }
20749 if (rssi_type == NPHY_RSSI_SEL_W2) {
20750 val = 0x2;
20751 }
20752 if (rssi_type == NPHY_RSSI_SEL_NB) {
20753 val = 0x3;
20754 }
20755 mask = (0x3 << 4);
20756 val = (val << 4);
20757 mod_phy_reg(pi, 0x7a, mask, val);
20758 mod_phy_reg(pi, 0x7d, mask, val);
20759 }
20760
20761 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20762 afectrlovr_rssi_val = 0;
20763 rfctrlcmd_rxen_val = 0;
20764 rfctrlcmd_coresel_val = 0;
20765 rfctrlovr_rssi_val = 0;
20766 rfctrlovr_rxen_val = 0;
20767 rfctrlovr_coresel_val = 0;
20768 rfctrlovr_trigger_val = 0;
20769 startseq = 0;
20770 } else {
20771 afectrlovr_rssi_val = 1;
20772 rfctrlcmd_rxen_val = 1;
20773 rfctrlcmd_coresel_val = core_code;
20774 rfctrlovr_rssi_val = 1;
20775 rfctrlovr_rxen_val = 1;
20776 rfctrlovr_coresel_val = 1;
20777 rfctrlovr_trigger_val = 1;
20778 startseq = 1;
20779 }
20780
20781 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20782 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20783 12) | (afectrlovr_rssi_val << 13);
20784 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20785 afectrlovr_rssi_val);
20786
20787 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20788 (rssi_type == NPHY_RSSI_SEL_W2) ||
20789 (rssi_type == NPHY_RSSI_SEL_NB)) {
20790 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20791 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20792 (rfctrlcmd_coresel_val << 3);
20793
20794 rfctrlovr_mask = ((0x1 << 5) |
20795 (0x1 << 12) |
20796 (0x1 << 1) | (0x1 << 0));
20797 rfctrlovr_val = (rfctrlovr_rssi_val <<
20798 5) |
20799 (rfctrlovr_rxen_val << 12) |
20800 (rfctrlovr_coresel_val << 1) |
20801 (rfctrlovr_trigger_val << 0);
20802
20803 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20804 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20805
20806 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
20807 udelay(20);
20808
20809 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20810 }
20811 }
20812 }
20813
20814 int
20815 wlc_phy_poll_rssi_nphy(phy_info_t *pi, u8 rssi_type, s32 *rssi_buf,
20816 u8 nsamps)
20817 {
20818 s16 rssi0, rssi1;
20819 u16 afectrlCore1_save = 0;
20820 u16 afectrlCore2_save = 0;
20821 u16 afectrlOverride1_save = 0;
20822 u16 afectrlOverride2_save = 0;
20823 u16 rfctrlOverrideAux0_save = 0;
20824 u16 rfctrlOverrideAux1_save = 0;
20825 u16 rfctrlMiscReg1_save = 0;
20826 u16 rfctrlMiscReg2_save = 0;
20827 u16 rfctrlcmd_save = 0;
20828 u16 rfctrloverride_save = 0;
20829 u16 rfctrlrssiothers1_save = 0;
20830 u16 rfctrlrssiothers2_save = 0;
20831 s8 tmp_buf[4];
20832 u8 ctr = 0, samp = 0;
20833 s32 rssi_out_val;
20834 u16 gpiosel_orig;
20835
20836 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20837 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20838 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20839 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20840 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20841 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20842 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20843 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20844 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20845 } else {
20846 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20847 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20848 rfctrloverride_save = read_phy_reg(pi, 0xec);
20849 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20850 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20851 }
20852
20853 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20854
20855 gpiosel_orig = read_phy_reg(pi, 0xca);
20856 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20857 write_phy_reg(pi, 0xca, 5);
20858 }
20859
20860 for (ctr = 0; ctr < 4; ctr++) {
20861 rssi_buf[ctr] = 0;
20862 }
20863
20864 for (samp = 0; samp < nsamps; samp++) {
20865 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20866 rssi0 = read_phy_reg(pi, 0x1c9);
20867 rssi1 = read_phy_reg(pi, 0x1ca);
20868 } else {
20869 rssi0 = read_phy_reg(pi, 0x219);
20870 rssi1 = read_phy_reg(pi, 0x21a);
20871 }
20872
20873 ctr = 0;
20874 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
20875 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20876 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
20877 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
20878
20879 for (ctr = 0; ctr < 4; ctr++) {
20880 rssi_buf[ctr] += tmp_buf[ctr];
20881 }
20882
20883 }
20884
20885 rssi_out_val = rssi_buf[3] & 0xff;
20886 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20887 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20888 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20889
20890 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20891 write_phy_reg(pi, 0xca, gpiosel_orig);
20892 }
20893
20894 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20895 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20896 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20897 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20898 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20899 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20900 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20901 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20902 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20903 } else {
20904 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20905 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20906 write_phy_reg(pi, 0xec, rfctrloverride_save);
20907 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20908 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20909 }
20910
20911 return rssi_out_val;
20912 }
20913
20914 s16 wlc_phy_tempsense_nphy(phy_info_t *pi)
20915 {
20916 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20917 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20918 u16 pwrdet_rxtx_core1_save;
20919 u16 pwrdet_rxtx_core2_save;
20920 u16 afectrlCore1_save;
20921 u16 afectrlCore2_save;
20922 u16 afectrlOverride_save;
20923 u16 afectrlOverride2_save;
20924 u16 pd_pll_ts_save;
20925 u16 gpioSel_save;
20926 s32 radio_temp[4];
20927 s32 radio_temp2[4];
20928 u16 syn_tempprocsense_save;
20929 s16 offset = 0;
20930
20931 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20932 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20933 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20934 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
20935 s32 auxADC_Vl;
20936 u16 RfctrlOverride5_save, RfctrlOverride6_save;
20937 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20938 u16 RSSIMultCoef0QPowerDet_save;
20939 u16 tempsense_Rcal;
20940
20941 syn_tempprocsense_save =
20942 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20943
20944 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20945 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20946 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20947 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20948 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20949 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20950 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20951 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20952 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20953
20954 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20955 &auxADC_Vmid_save);
20956 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20957 &auxADC_Av_save);
20958 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20959 &auxADC_rssi_ctrlL_save);
20960 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20961 &auxADC_rssi_ctrlH_save);
20962
20963 write_phy_reg(pi, 0x1ae, 0x0);
20964
20965 auxADC_rssi_ctrlL = 0x0;
20966 auxADC_rssi_ctrlH = 0x20;
20967 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20968 &auxADC_rssi_ctrlL);
20969 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20970 &auxADC_rssi_ctrlH);
20971
20972 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20973
20974 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20975 tempsense_Rcal | 0x01);
20976
20977 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20978 1, 0, 0,
20979 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20980 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20981 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20982 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20983 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20984
20985 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20986 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20987 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20988 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
20989 udelay(5);
20990 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20991 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20992 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20993 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20994 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20995 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20996 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20997 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20998 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
20999 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
21000
21001 auxADC_Vmid = 0xA3;
21002 auxADC_Av = 0x0;
21003 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21004 &auxADC_Vmid);
21005 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21006 &auxADC_Av);
21007
21008 udelay(3);
21009
21010 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21011 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21012 tempsense_Rcal | 0x03);
21013
21014 udelay(5);
21015 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21016
21017 auxADC_Av = 0x7;
21018 if (radio_temp[1] + radio_temp2[1] < -30) {
21019 auxADC_Vmid = 0x45;
21020 auxADC_Vl = 263;
21021 } else if (radio_temp[1] + radio_temp2[1] < -9) {
21022 auxADC_Vmid = 0x200;
21023 auxADC_Vl = 467;
21024 } else if (radio_temp[1] + radio_temp2[1] < 11) {
21025 auxADC_Vmid = 0x266;
21026 auxADC_Vl = 634;
21027 } else {
21028 auxADC_Vmid = 0x2D5;
21029 auxADC_Vl = 816;
21030 }
21031
21032 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21033 &auxADC_Vmid);
21034 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21035 &auxADC_Av);
21036
21037 udelay(3);
21038
21039 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21040 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21041 tempsense_Rcal | 0x01);
21042
21043 udelay(5);
21044 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21045
21046 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21047 syn_tempprocsense_save);
21048
21049 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21050 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21051 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21052 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21053 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
21054 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
21055 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
21056 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
21057 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
21058
21059 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21060 &auxADC_Vmid_save);
21061 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21062 &auxADC_Av_save);
21063 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
21064 &auxADC_rssi_ctrlL_save);
21065 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
21066 &auxADC_rssi_ctrlH_save);
21067
21068 if (pi->sh->chip == BCM5357_CHIP_ID) {
21069 radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
21070 + 88 * (auxADC_Vl) - 27111 +
21071 128) / 256;
21072 } else if (pi->sh->chip == BCM43236_CHIP_ID) {
21073 radio_temp[0] = (198 * (radio_temp[1] + radio_temp2[1])
21074 + 91 * (auxADC_Vl) - 27243 +
21075 128) / 256;
21076 } else {
21077 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
21078 + 82 * (auxADC_Vl) - 28861 +
21079 128) / 256;
21080 }
21081
21082 offset = (s16) pi->phy_tempsense_offset;
21083
21084 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21085 syn_tempprocsense_save =
21086 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
21087
21088 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21089 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21090 afectrlOverride_save = read_phy_reg(pi, 0x8f);
21091 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21092 gpioSel_save = read_phy_reg(pi, 0xca);
21093
21094 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21095
21096 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21097 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21098 } else {
21099 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
21100 }
21101
21102 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21103 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21104 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
21105 } else {
21106 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21107 }
21108
21109 radio_temp[0] =
21110 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
21111
21112 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
21113 syn_tempprocsense_save);
21114
21115 write_phy_reg(pi, 0xca, gpioSel_save);
21116 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21117 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21118 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21119 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21120
21121 offset = (s16) pi->phy_tempsense_offset;
21122 } else {
21123
21124 pwrdet_rxtx_core1_save =
21125 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
21126 pwrdet_rxtx_core2_save =
21127 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
21128 core1_txrf_iqcal1_save =
21129 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
21130 core1_txrf_iqcal2_save =
21131 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
21132 core2_txrf_iqcal1_save =
21133 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
21134 core2_txrf_iqcal2_save =
21135 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
21136 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
21137
21138 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21139 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21140 afectrlOverride_save = read_phy_reg(pi, 0xa5);
21141 gpioSel_save = read_phy_reg(pi, 0xca);
21142
21143 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
21144 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
21145 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
21146 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
21147 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
21148 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
21149 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
21150
21151 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21152 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21153
21154 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21155 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21156
21157 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21158 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21159
21160 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
21161 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
21162 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
21163 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
21164
21165 radio_temp[0] =
21166 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21167 radio_temp[3]);
21168
21169 radio_temp[0] =
21170 (radio_temp[0] + (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21171
21172 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
21173
21174 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
21175 pwrdet_rxtx_core1_save);
21176 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
21177 pwrdet_rxtx_core2_save);
21178 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
21179 core1_txrf_iqcal1_save);
21180 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21181 core2_txrf_iqcal1_save);
21182 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21183 core1_txrf_iqcal2_save);
21184 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21185 core2_txrf_iqcal2_save);
21186 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21187
21188 write_phy_reg(pi, 0xca, gpioSel_save);
21189 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21190 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21191 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21192 }
21193
21194 return (s16) radio_temp[0] + offset;
21195 }
21196
21197 static void
21198 wlc_phy_set_rssi_2055_vcm(phy_info_t *pi, u8 rssi_type, u8 *vcm_buf)
21199 {
21200 u8 core;
21201
21202 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21203 if (rssi_type == NPHY_RSSI_SEL_NB) {
21204 if (core == PHY_CORE_0) {
21205 mod_radio_reg(pi,
21206 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21207 RADIO_2055_NBRSSI_VCM_I_MASK,
21208 vcm_buf[2 *
21209 core] <<
21210 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21211 mod_radio_reg(pi,
21212 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21213 RADIO_2055_NBRSSI_VCM_Q_MASK,
21214 vcm_buf[2 * core +
21215 1] <<
21216 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21217 } else {
21218 mod_radio_reg(pi,
21219 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21220 RADIO_2055_NBRSSI_VCM_I_MASK,
21221 vcm_buf[2 *
21222 core] <<
21223 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21224 mod_radio_reg(pi,
21225 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21226 RADIO_2055_NBRSSI_VCM_Q_MASK,
21227 vcm_buf[2 * core +
21228 1] <<
21229 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21230 }
21231 } else {
21232
21233 if (core == PHY_CORE_0) {
21234 mod_radio_reg(pi,
21235 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21236 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21237 vcm_buf[2 *
21238 core] <<
21239 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21240 } else {
21241 mod_radio_reg(pi,
21242 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21243 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21244 vcm_buf[2 *
21245 core] <<
21246 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21247 }
21248 }
21249 }
21250 }
21251
21252 void wlc_phy_rssi_cal_nphy(phy_info_t *pi)
21253 {
21254 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21255
21256 wlc_phy_rssi_cal_nphy_rev3(pi);
21257 } else {
21258 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21259 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21260 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21261 }
21262 }
21263
21264 static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type)
21265 {
21266 s32 target_code;
21267 u16 classif_state;
21268 u16 clip_state[2];
21269 u16 rssi_ctrl_state[2], pd_state[2];
21270 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21271 u16 rfctrlintc_override_val;
21272 u16 clip_off[] = { 0xffff, 0xffff };
21273 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
21274 u8 vcm, min_vcm, vcm_tmp[4];
21275 u8 vcm_final[4] = { 0, 0, 0, 0 };
21276 u8 result_idx, ctr;
21277 s32 poll_results[4][4] = {
21278 {0, 0, 0, 0},
21279 {0, 0, 0, 0},
21280 {0, 0, 0, 0},
21281 {0, 0, 0, 0}
21282 };
21283 s32 poll_miniq[4][2] = {
21284 {0, 0},
21285 {0, 0},
21286 {0, 0},
21287 {0, 0}
21288 };
21289 s32 min_d, curr_d;
21290 s32 fine_digital_offset[4];
21291 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21292 s32 min_poll;
21293
21294 switch (rssi_type) {
21295 case NPHY_RSSI_SEL_NB:
21296 target_code = NPHY_RSSICAL_NB_TARGET;
21297 break;
21298 case NPHY_RSSI_SEL_W1:
21299 target_code = NPHY_RSSICAL_W1_TARGET;
21300 break;
21301 case NPHY_RSSI_SEL_W2:
21302 target_code = NPHY_RSSICAL_W2_TARGET;
21303 break;
21304 default:
21305 return;
21306 break;
21307 }
21308
21309 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21310 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21311 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21312 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21313
21314 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21315 rfctrlintc_override_val =
21316 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21317
21318 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21319 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21320 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21321 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21322
21323 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21324 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21325 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21326 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21327
21328 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21329 RADIO_2055_WBRSSI_G2_PD;
21330 pd_state[0] =
21331 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21332 pd_state[1] =
21333 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21334 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21335 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21336 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21337 RADIO_2055_WBRSSI_G2_SEL;
21338 rssi_ctrl_state[0] =
21339 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21340 rssi_ctrl_state[1] =
21341 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21342 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21343
21344 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21345 NPHY_RAIL_I, rssi_type);
21346 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21347 NPHY_RAIL_Q, rssi_type);
21348
21349 for (vcm = 0; vcm < 4; vcm++) {
21350
21351 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21352 if (rssi_type != NPHY_RSSI_SEL_W2) {
21353 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21354 }
21355
21356 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21357 NPHY_RSSICAL_NPOLL);
21358
21359 if ((rssi_type == NPHY_RSSI_SEL_W1)
21360 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21361 for (ctr = 0; ctr < 2; ctr++) {
21362 poll_miniq[vcm][ctr] =
21363 min(poll_results[vcm][ctr * 2 + 0],
21364 poll_results[vcm][ctr * 2 + 1]);
21365 }
21366 }
21367 }
21368
21369 for (result_idx = 0; result_idx < 4; result_idx++) {
21370 min_d = NPHY_RSSICAL_MAXD;
21371 min_vcm = 0;
21372 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21373 for (vcm = 0; vcm < 4; vcm++) {
21374 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21375 poll_results[vcm][result_idx] :
21376 poll_miniq[vcm][result_idx / 2]) -
21377 (target_code * NPHY_RSSICAL_NPOLL));
21378 if (curr_d < min_d) {
21379 min_d = curr_d;
21380 min_vcm = vcm;
21381 }
21382 if (poll_results[vcm][result_idx] < min_poll) {
21383 min_poll = poll_results[vcm][result_idx];
21384 }
21385 }
21386 vcm_final[result_idx] = min_vcm;
21387 poll_results_min[result_idx] = min_poll;
21388 }
21389
21390 if (rssi_type != NPHY_RSSI_SEL_W2) {
21391 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21392 }
21393
21394 for (result_idx = 0; result_idx < 4; result_idx++) {
21395 fine_digital_offset[result_idx] =
21396 (target_code * NPHY_RSSICAL_NPOLL) -
21397 poll_results[vcm_final[result_idx]][result_idx];
21398 if (fine_digital_offset[result_idx] < 0) {
21399 fine_digital_offset[result_idx] =
21400 ABS(fine_digital_offset[result_idx]);
21401 fine_digital_offset[result_idx] +=
21402 (NPHY_RSSICAL_NPOLL / 2);
21403 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21404 fine_digital_offset[result_idx] =
21405 -fine_digital_offset[result_idx];
21406 } else {
21407 fine_digital_offset[result_idx] +=
21408 (NPHY_RSSICAL_NPOLL / 2);
21409 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21410 }
21411
21412 if (poll_results_min[result_idx] ==
21413 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21414 fine_digital_offset[result_idx] =
21415 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21416 }
21417
21418 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
21419 (s8)
21420 fine_digital_offset[result_idx],
21421 (result_idx / 2 ==
21422 0) ? RADIO_MIMO_CORESEL_CORE1 :
21423 RADIO_MIMO_CORESEL_CORE2,
21424 (result_idx % 2 ==
21425 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21426 rssi_type);
21427 }
21428
21429 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21430 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21431 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL) {
21432 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21433 NPHY_RSSI_SEL_NB);
21434 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL) {
21435 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21436 NPHY_RSSI_SEL_W1);
21437 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL) {
21438 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21439 NPHY_RSSI_SEL_W2);
21440 } else {
21441 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21442 NPHY_RSSI_SEL_W2);
21443 }
21444 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL) {
21445 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21446 NPHY_RSSI_SEL_NB);
21447 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL) {
21448 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21449 NPHY_RSSI_SEL_W1);
21450 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL) {
21451 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21452 NPHY_RSSI_SEL_W2);
21453 } else {
21454 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21455 NPHY_RSSI_SEL_W2);
21456 }
21457
21458 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21459
21460 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21461 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21462 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21463 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21464
21465 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21466 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21467
21468 wlc_phy_resetcca_nphy(pi);
21469 }
21470
21471 int BCMFASTPATH
21472 wlc_phy_rssi_compute_nphy(phy_info_t *pi, wlc_d11rxhdr_t *wlc_rxh)
21473 {
21474 d11rxhdr_t *rxh = &wlc_rxh->rxhdr;
21475 s16 rxpwr, rxpwr0, rxpwr1;
21476 s16 phyRx0_l, phyRx2_l;
21477
21478 rxpwr = 0;
21479 rxpwr0 = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21480 rxpwr1 = (le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
21481
21482 if (rxpwr0 > 127)
21483 rxpwr0 -= 256;
21484 if (rxpwr1 > 127)
21485 rxpwr1 -= 256;
21486
21487 phyRx0_l = le16_to_cpu(rxh->PhyRxStatus_0) & 0x00ff;
21488 phyRx2_l = le16_to_cpu(rxh->PhyRxStatus_2) & 0x00ff;
21489 if (phyRx2_l > 127)
21490 phyRx2_l -= 256;
21491
21492 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21493 rxpwr0 = rxpwr1;
21494 rxpwr1 = phyRx2_l;
21495 }
21496
21497 wlc_rxh->rxpwr[0] = (s8) rxpwr0;
21498 wlc_rxh->rxpwr[1] = (s8) rxpwr1;
21499 wlc_rxh->do_rssi_ma = 0;
21500
21501 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21502 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21503 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21504 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21505 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21506 rxpwr = (rxpwr0 + rxpwr1) >> 1;
21507 else
21508 ASSERT(0);
21509
21510 return rxpwr;
21511 }
21512
21513 static void
21514 wlc_phy_rfctrlintc_override_nphy(phy_info_t *pi, u8 field, u16 value,
21515 u8 core_code)
21516 {
21517 u16 mask;
21518 u16 val;
21519 u8 core;
21520
21521 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21522 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21523 if (core_code == RADIO_MIMO_CORESEL_CORE1
21524 && core == PHY_CORE_1)
21525 continue;
21526 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21527 && core == PHY_CORE_0)
21528 continue;
21529
21530 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21531
21532 mask = (0x1 << 10);
21533 val = 1 << 10;
21534 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21535 0x92, mask, val);
21536 }
21537
21538 if (field == NPHY_RfctrlIntc_override_OFF) {
21539
21540 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21541 0x92, 0);
21542
21543 wlc_phy_force_rfseq_nphy(pi,
21544 NPHY_RFSEQ_RESET2RX);
21545 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21546
21547 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21548
21549 mask = (0x1 << 6) | (0x1 << 7);
21550
21551 val = value << 6;
21552 mod_phy_reg(pi,
21553 (core ==
21554 PHY_CORE_0) ? 0x91 : 0x92,
21555 mask, val);
21556
21557 or_phy_reg(pi,
21558 (core ==
21559 PHY_CORE_0) ? 0x91 : 0x92,
21560 (0x1 << 10));
21561
21562 and_phy_reg(pi, 0x2ff, (u16)
21563 ~(0x3 << 14));
21564 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21565 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21566 } else {
21567
21568 mask = (0x1 << 6) |
21569 (0x1 << 7) |
21570 (0x1 << 8) | (0x1 << 9);
21571 val = value << 6;
21572 mod_phy_reg(pi,
21573 (core ==
21574 PHY_CORE_0) ? 0x91 : 0x92,
21575 mask, val);
21576
21577 mask = (0x1 << 0);
21578 val = 1 << 0;
21579 mod_phy_reg(pi,
21580 (core ==
21581 PHY_CORE_0) ? 0xe7 : 0xec,
21582 mask, val);
21583
21584 mask = (core == PHY_CORE_0) ? (0x1 << 0)
21585 : (0x1 << 1);
21586 val = 1 << ((core == PHY_CORE_0) ?
21587 0 : 1);
21588 mod_phy_reg(pi, 0x78, mask, val);
21589
21590 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21591 != 0), 10000);
21592 ASSERT((read_phy_reg(pi, 0x78) & val) ==
21593 0);
21594
21595 mask = (0x1 << 0);
21596 val = 0 << 0;
21597 mod_phy_reg(pi,
21598 (core ==
21599 PHY_CORE_0) ? 0xe7 : 0xec,
21600 mask, val);
21601 }
21602 } else if (field == NPHY_RfctrlIntc_override_PA) {
21603 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21604
21605 mask = (0x1 << 4) | (0x1 << 5);
21606
21607 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21608 val = value << 5;
21609 } else {
21610 val = value << 4;
21611 }
21612
21613 mod_phy_reg(pi,
21614 (core ==
21615 PHY_CORE_0) ? 0x91 : 0x92,
21616 mask, val);
21617
21618 or_phy_reg(pi,
21619 (core ==
21620 PHY_CORE_0) ? 0x91 : 0x92,
21621 (0x1 << 12));
21622 } else {
21623
21624 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21625 mask = (0x1 << 5);
21626 val = value << 5;
21627 } else {
21628 mask = (0x1 << 4);
21629 val = value << 4;
21630 }
21631 mod_phy_reg(pi,
21632 (core ==
21633 PHY_CORE_0) ? 0x91 : 0x92,
21634 mask, val);
21635 }
21636 } else if (field == NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21637 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21638 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21639
21640 mask = (0x1 << 0);
21641 val = value << 0;
21642 mod_phy_reg(pi,
21643 (core ==
21644 PHY_CORE_0) ? 0x91
21645 : 0x92, mask, val);
21646
21647 mask = (0x1 << 2);
21648 mod_phy_reg(pi,
21649 (core ==
21650 PHY_CORE_0) ? 0x91
21651 : 0x92, mask, 0);
21652 } else {
21653
21654 mask = (0x1 << 2);
21655 val = value << 2;
21656 mod_phy_reg(pi,
21657 (core ==
21658 PHY_CORE_0) ? 0x91
21659 : 0x92, mask, val);
21660
21661 mask = (0x1 << 0);
21662 mod_phy_reg(pi,
21663 (core ==
21664 PHY_CORE_0) ? 0x91
21665 : 0x92, mask, 0);
21666 }
21667
21668 mask = (0x1 << 11);
21669 val = 1 << 11;
21670 mod_phy_reg(pi,
21671 (core ==
21672 PHY_CORE_0) ? 0x91 : 0x92,
21673 mask, val);
21674 } else {
21675
21676 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21677 mask = (0x1 << 0);
21678 val = value << 0;
21679 } else {
21680 mask = (0x1 << 2);
21681 val = value << 2;
21682 }
21683 mod_phy_reg(pi,
21684 (core ==
21685 PHY_CORE_0) ? 0x91 : 0x92,
21686 mask, val);
21687 }
21688 } else if (field ==
21689 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21690 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21691 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21692
21693 mask = (0x1 << 1);
21694 val = value << 1;
21695 mod_phy_reg(pi,
21696 (core ==
21697 PHY_CORE_0) ? 0x91
21698 : 0x92, mask, val);
21699
21700 mask = (0x1 << 3);
21701 mod_phy_reg(pi,
21702 (core ==
21703 PHY_CORE_0) ? 0x91
21704 : 0x92, mask, 0);
21705 } else {
21706
21707 mask = (0x1 << 3);
21708 val = value << 3;
21709 mod_phy_reg(pi,
21710 (core ==
21711 PHY_CORE_0) ? 0x91
21712 : 0x92, mask, val);
21713
21714 mask = (0x1 << 1);
21715 mod_phy_reg(pi,
21716 (core ==
21717 PHY_CORE_0) ? 0x91
21718 : 0x92, mask, 0);
21719 }
21720
21721 mask = (0x1 << 11);
21722 val = 1 << 11;
21723 mod_phy_reg(pi,
21724 (core ==
21725 PHY_CORE_0) ? 0x91 : 0x92,
21726 mask, val);
21727 } else {
21728
21729 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21730 mask = (0x1 << 1);
21731 val = value << 1;
21732 } else {
21733 mask = (0x1 << 3);
21734 val = value << 3;
21735 }
21736 mod_phy_reg(pi,
21737 (core ==
21738 PHY_CORE_0) ? 0x91 : 0x92,
21739 mask, val);
21740 }
21741 }
21742 }
21743 } else {
21744 return;
21745 }
21746 }
21747
21748 static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi)
21749 {
21750 u16 classif_state;
21751 u16 clip_state[2];
21752 u16 clip_off[] = { 0xffff, 0xffff };
21753 s32 target_code;
21754 u8 vcm, min_vcm;
21755 u8 vcm_final = 0;
21756 u8 result_idx;
21757 s32 poll_results[8][4] = {
21758 {0, 0, 0, 0},
21759 {0, 0, 0, 0},
21760 {0, 0, 0, 0},
21761 {0, 0, 0, 0},
21762 {0, 0, 0, 0},
21763 {0, 0, 0, 0},
21764 {0, 0, 0, 0},
21765 {0, 0, 0, 0}
21766 };
21767 s32 poll_result_core[4] = { 0, 0, 0, 0 };
21768 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21769 s32 fine_digital_offset[4];
21770 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21771 s32 min_poll;
21772 u8 vcm_level_max;
21773 u8 core;
21774 u8 wb_cnt;
21775 u8 rssi_type;
21776 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21777 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21778 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21779 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21780 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21781 u16 NPHY_RfctrlCmd_save;
21782 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21783 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
21784 u8 rxcore_state;
21785 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21786 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21787 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21788 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
21789
21790 NPHY_REV7_RfctrlOverride3_save = NPHY_REV7_RfctrlOverride4_save =
21791 NPHY_REV7_RfctrlOverride5_save = NPHY_REV7_RfctrlOverride6_save =
21792 NPHY_REV7_RfctrlMiscReg3_save = NPHY_REV7_RfctrlMiscReg4_save =
21793 NPHY_REV7_RfctrlMiscReg5_save = NPHY_REV7_RfctrlMiscReg6_save = 0;
21794
21795 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21796 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21797 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21798 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21799
21800 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21801 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21802 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21803 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21804 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21805 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21806 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21807 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21808 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21809 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21810 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21811 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21812 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21813 }
21814 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21815 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21816 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21817 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21818 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21819 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21820 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21821 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21822 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21823 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21824 }
21825 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21826 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21827
21828 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21829 RADIO_MIMO_CORESEL_ALLRXTX);
21830 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21831 RADIO_MIMO_CORESEL_ALLRXTX);
21832
21833 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21834 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21835 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21836 0, 0, 0);
21837 } else {
21838 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21839 }
21840
21841 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21842 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21843 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21844 1, 0, 0);
21845 } else {
21846 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21847 }
21848
21849 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21850 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21851 1, 0, 0,
21852 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21853 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21854 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21855 } else {
21856 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21857 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21858 }
21859
21860 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21861 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21862 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
21863 0, 0, 0,
21864 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21865 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0,
21866 0,
21867 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21868 } else {
21869 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21870 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21871 }
21872
21873 } else {
21874 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21875 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
21876 0, 0, 0,
21877 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21878 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 1, 0,
21879 0,
21880 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21881 } else {
21882 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21883 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21884 }
21885 }
21886
21887 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
21888
21889 vcm_level_max = 8;
21890
21891 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21892
21893 if ((rxcore_state & (1 << core)) == 0)
21894 continue;
21895
21896 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21897 core ==
21898 PHY_CORE_0 ?
21899 RADIO_MIMO_CORESEL_CORE1 :
21900 RADIO_MIMO_CORESEL_CORE2,
21901 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21902 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21903 core ==
21904 PHY_CORE_0 ?
21905 RADIO_MIMO_CORESEL_CORE1 :
21906 RADIO_MIMO_CORESEL_CORE2,
21907 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21908
21909 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21910 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21911
21912 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21913 RADIO_2057_NB_MASTER_CORE0 :
21914 RADIO_2057_NB_MASTER_CORE1,
21915 RADIO_2057_VCM_MASK, vcm);
21916 } else {
21917
21918 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21919 ((core ==
21920 PHY_CORE_0) ? RADIO_2056_RX0 :
21921 RADIO_2056_RX1),
21922 RADIO_2056_VCM_MASK,
21923 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21924 }
21925
21926 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21927 &poll_results[vcm][0],
21928 NPHY_RSSICAL_NPOLL);
21929 }
21930
21931 for (result_idx = 0; result_idx < 4; result_idx++) {
21932 if ((core == result_idx / 2) && (result_idx % 2 == 0)) {
21933
21934 min_d = NPHY_RSSICAL_MAXD;
21935 min_vcm = 0;
21936 min_poll =
21937 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL +
21938 1;
21939 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21940 curr_d = poll_results[vcm][result_idx] *
21941 poll_results[vcm][result_idx] +
21942 poll_results[vcm][result_idx + 1] *
21943 poll_results[vcm][result_idx + 1];
21944 if (curr_d < min_d) {
21945 min_d = curr_d;
21946 min_vcm = vcm;
21947 }
21948 if (poll_results[vcm][result_idx] <
21949 min_poll) {
21950 min_poll =
21951 poll_results[vcm]
21952 [result_idx];
21953 }
21954 }
21955 vcm_final = min_vcm;
21956 poll_results_min[result_idx] = min_poll;
21957 }
21958 }
21959
21960 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21961 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21962 RADIO_2057_NB_MASTER_CORE0 :
21963 RADIO_2057_NB_MASTER_CORE1,
21964 RADIO_2057_VCM_MASK, vcm_final);
21965 } else {
21966 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21967 ((core ==
21968 PHY_CORE_0) ? RADIO_2056_RX0 :
21969 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21970 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21971 }
21972
21973 for (result_idx = 0; result_idx < 4; result_idx++) {
21974 if (core == result_idx / 2) {
21975 fine_digital_offset[result_idx] =
21976 (NPHY_RSSICAL_NB_TARGET *
21977 NPHY_RSSICAL_NPOLL) -
21978 poll_results[vcm_final][result_idx];
21979 if (fine_digital_offset[result_idx] < 0) {
21980 fine_digital_offset[result_idx] =
21981 ABS(fine_digital_offset
21982 [result_idx]);
21983 fine_digital_offset[result_idx] +=
21984 (NPHY_RSSICAL_NPOLL / 2);
21985 fine_digital_offset[result_idx] /=
21986 NPHY_RSSICAL_NPOLL;
21987 fine_digital_offset[result_idx] =
21988 -fine_digital_offset[result_idx];
21989 } else {
21990 fine_digital_offset[result_idx] +=
21991 (NPHY_RSSICAL_NPOLL / 2);
21992 fine_digital_offset[result_idx] /=
21993 NPHY_RSSICAL_NPOLL;
21994 }
21995
21996 if (poll_results_min[result_idx] ==
21997 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21998 fine_digital_offset[result_idx] =
21999 (NPHY_RSSICAL_NB_TARGET -
22000 NPHY_RSSICAL_MAXREAD - 1);
22001 }
22002
22003 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
22004 (s8)
22005 fine_digital_offset
22006 [result_idx],
22007 (result_idx /
22008 2 ==
22009 0) ?
22010 RADIO_MIMO_CORESEL_CORE1
22011 :
22012 RADIO_MIMO_CORESEL_CORE2,
22013 (result_idx %
22014 2 ==
22015 0) ? NPHY_RAIL_I
22016 : NPHY_RAIL_Q,
22017 NPHY_RSSI_SEL_NB);
22018 }
22019 }
22020
22021 }
22022
22023 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22024
22025 if ((rxcore_state & (1 << core)) == 0)
22026 continue;
22027
22028 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22029 if (wb_cnt == 0) {
22030 rssi_type = NPHY_RSSI_SEL_W1;
22031 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22032 } else {
22033 rssi_type = NPHY_RSSI_SEL_W2;
22034 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22035 }
22036
22037 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22038 core ==
22039 PHY_CORE_0 ?
22040 RADIO_MIMO_CORESEL_CORE1
22041 :
22042 RADIO_MIMO_CORESEL_CORE2,
22043 NPHY_RAIL_I, rssi_type);
22044 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22045 core ==
22046 PHY_CORE_0 ?
22047 RADIO_MIMO_CORESEL_CORE1
22048 :
22049 RADIO_MIMO_CORESEL_CORE2,
22050 NPHY_RAIL_Q, rssi_type);
22051
22052 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22053 NPHY_RSSICAL_NPOLL);
22054
22055 for (result_idx = 0; result_idx < 4; result_idx++) {
22056 if (core == result_idx / 2) {
22057 fine_digital_offset[result_idx] =
22058 (target_code * NPHY_RSSICAL_NPOLL) -
22059 poll_result_core[result_idx];
22060 if (fine_digital_offset[result_idx] < 0) {
22061 fine_digital_offset[result_idx]
22062 =
22063 ABS(fine_digital_offset
22064 [result_idx]);
22065 fine_digital_offset[result_idx]
22066 += (NPHY_RSSICAL_NPOLL / 2);
22067 fine_digital_offset[result_idx]
22068 /= NPHY_RSSICAL_NPOLL;
22069 fine_digital_offset[result_idx]
22070 =
22071 -fine_digital_offset
22072 [result_idx];
22073 } else {
22074 fine_digital_offset[result_idx]
22075 += (NPHY_RSSICAL_NPOLL / 2);
22076 fine_digital_offset[result_idx]
22077 /= NPHY_RSSICAL_NPOLL;
22078 }
22079
22080 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
22081 (s8)
22082 fine_digital_offset
22083 [core *
22084 2],
22085 (core ==
22086 PHY_CORE_0)
22087 ?
22088 RADIO_MIMO_CORESEL_CORE1
22089 :
22090 RADIO_MIMO_CORESEL_CORE2,
22091 (result_idx
22092 % 2 ==
22093 0) ?
22094 NPHY_RAIL_I
22095 :
22096 NPHY_RAIL_Q,
22097 rssi_type);
22098 }
22099 }
22100
22101 }
22102 }
22103
22104 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22105 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22106
22107 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22108
22109 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22110 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22111 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22112
22113 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22114 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22115 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22116
22117 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22118 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22119 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22120 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22121 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22122 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22123 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22124 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22125 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22126 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22127 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22128 }
22129 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22130 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22131 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22132 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22133 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22134 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22135 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22136 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22137 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22138 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22139 }
22140 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22141 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22142
22143 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22144 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22145 pi->rssical_cache.rssical_radio_regs_2G[0] =
22146 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22147 pi->rssical_cache.rssical_radio_regs_2G[1] =
22148 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22149 } else {
22150 pi->rssical_cache.rssical_radio_regs_2G[0] =
22151 read_radio_reg(pi,
22152 RADIO_2056_RX_RSSI_MISC |
22153 RADIO_2056_RX0);
22154 pi->rssical_cache.rssical_radio_regs_2G[1] =
22155 read_radio_reg(pi,
22156 RADIO_2056_RX_RSSI_MISC |
22157 RADIO_2056_RX1);
22158 }
22159
22160 pi->rssical_cache.rssical_phyregs_2G[0] =
22161 read_phy_reg(pi, 0x1a6);
22162 pi->rssical_cache.rssical_phyregs_2G[1] =
22163 read_phy_reg(pi, 0x1ac);
22164 pi->rssical_cache.rssical_phyregs_2G[2] =
22165 read_phy_reg(pi, 0x1b2);
22166 pi->rssical_cache.rssical_phyregs_2G[3] =
22167 read_phy_reg(pi, 0x1b8);
22168 pi->rssical_cache.rssical_phyregs_2G[4] =
22169 read_phy_reg(pi, 0x1a4);
22170 pi->rssical_cache.rssical_phyregs_2G[5] =
22171 read_phy_reg(pi, 0x1aa);
22172 pi->rssical_cache.rssical_phyregs_2G[6] =
22173 read_phy_reg(pi, 0x1b0);
22174 pi->rssical_cache.rssical_phyregs_2G[7] =
22175 read_phy_reg(pi, 0x1b6);
22176 pi->rssical_cache.rssical_phyregs_2G[8] =
22177 read_phy_reg(pi, 0x1a5);
22178 pi->rssical_cache.rssical_phyregs_2G[9] =
22179 read_phy_reg(pi, 0x1ab);
22180 pi->rssical_cache.rssical_phyregs_2G[10] =
22181 read_phy_reg(pi, 0x1b1);
22182 pi->rssical_cache.rssical_phyregs_2G[11] =
22183 read_phy_reg(pi, 0x1b7);
22184
22185 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22186 } else {
22187 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22188 pi->rssical_cache.rssical_radio_regs_5G[0] =
22189 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22190 pi->rssical_cache.rssical_radio_regs_5G[1] =
22191 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22192 } else {
22193 pi->rssical_cache.rssical_radio_regs_5G[0] =
22194 read_radio_reg(pi,
22195 RADIO_2056_RX_RSSI_MISC |
22196 RADIO_2056_RX0);
22197 pi->rssical_cache.rssical_radio_regs_5G[1] =
22198 read_radio_reg(pi,
22199 RADIO_2056_RX_RSSI_MISC |
22200 RADIO_2056_RX1);
22201 }
22202
22203 pi->rssical_cache.rssical_phyregs_5G[0] =
22204 read_phy_reg(pi, 0x1a6);
22205 pi->rssical_cache.rssical_phyregs_5G[1] =
22206 read_phy_reg(pi, 0x1ac);
22207 pi->rssical_cache.rssical_phyregs_5G[2] =
22208 read_phy_reg(pi, 0x1b2);
22209 pi->rssical_cache.rssical_phyregs_5G[3] =
22210 read_phy_reg(pi, 0x1b8);
22211 pi->rssical_cache.rssical_phyregs_5G[4] =
22212 read_phy_reg(pi, 0x1a4);
22213 pi->rssical_cache.rssical_phyregs_5G[5] =
22214 read_phy_reg(pi, 0x1aa);
22215 pi->rssical_cache.rssical_phyregs_5G[6] =
22216 read_phy_reg(pi, 0x1b0);
22217 pi->rssical_cache.rssical_phyregs_5G[7] =
22218 read_phy_reg(pi, 0x1b6);
22219 pi->rssical_cache.rssical_phyregs_5G[8] =
22220 read_phy_reg(pi, 0x1a5);
22221 pi->rssical_cache.rssical_phyregs_5G[9] =
22222 read_phy_reg(pi, 0x1ab);
22223 pi->rssical_cache.rssical_phyregs_5G[10] =
22224 read_phy_reg(pi, 0x1b1);
22225 pi->rssical_cache.rssical_phyregs_5G[11] =
22226 read_phy_reg(pi, 0x1b7);
22227
22228 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22229 }
22230
22231 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22232 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22233 }
22234
22235 static void wlc_phy_restore_rssical_nphy(phy_info_t *pi)
22236 {
22237 ASSERT(NREV_GE(pi->pubpi.phy_rev, 3));
22238
22239 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22240 if (pi->nphy_rssical_chanspec_2G == 0)
22241 return;
22242
22243 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22244 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22245 RADIO_2057_VCM_MASK,
22246 pi->rssical_cache.
22247 rssical_radio_regs_2G[0]);
22248 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22249 RADIO_2057_VCM_MASK,
22250 pi->rssical_cache.
22251 rssical_radio_regs_2G[1]);
22252 } else {
22253 mod_radio_reg(pi,
22254 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22255 RADIO_2056_VCM_MASK,
22256 pi->rssical_cache.
22257 rssical_radio_regs_2G[0]);
22258 mod_radio_reg(pi,
22259 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22260 RADIO_2056_VCM_MASK,
22261 pi->rssical_cache.
22262 rssical_radio_regs_2G[1]);
22263 }
22264
22265 write_phy_reg(pi, 0x1a6,
22266 pi->rssical_cache.rssical_phyregs_2G[0]);
22267 write_phy_reg(pi, 0x1ac,
22268 pi->rssical_cache.rssical_phyregs_2G[1]);
22269 write_phy_reg(pi, 0x1b2,
22270 pi->rssical_cache.rssical_phyregs_2G[2]);
22271 write_phy_reg(pi, 0x1b8,
22272 pi->rssical_cache.rssical_phyregs_2G[3]);
22273 write_phy_reg(pi, 0x1a4,
22274 pi->rssical_cache.rssical_phyregs_2G[4]);
22275 write_phy_reg(pi, 0x1aa,
22276 pi->rssical_cache.rssical_phyregs_2G[5]);
22277 write_phy_reg(pi, 0x1b0,
22278 pi->rssical_cache.rssical_phyregs_2G[6]);
22279 write_phy_reg(pi, 0x1b6,
22280 pi->rssical_cache.rssical_phyregs_2G[7]);
22281 write_phy_reg(pi, 0x1a5,
22282 pi->rssical_cache.rssical_phyregs_2G[8]);
22283 write_phy_reg(pi, 0x1ab,
22284 pi->rssical_cache.rssical_phyregs_2G[9]);
22285 write_phy_reg(pi, 0x1b1,
22286 pi->rssical_cache.rssical_phyregs_2G[10]);
22287 write_phy_reg(pi, 0x1b7,
22288 pi->rssical_cache.rssical_phyregs_2G[11]);
22289
22290 } else {
22291 if (pi->nphy_rssical_chanspec_5G == 0)
22292 return;
22293
22294 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22295 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22296 RADIO_2057_VCM_MASK,
22297 pi->rssical_cache.
22298 rssical_radio_regs_5G[0]);
22299 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22300 RADIO_2057_VCM_MASK,
22301 pi->rssical_cache.
22302 rssical_radio_regs_5G[1]);
22303 } else {
22304 mod_radio_reg(pi,
22305 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22306 RADIO_2056_VCM_MASK,
22307 pi->rssical_cache.
22308 rssical_radio_regs_5G[0]);
22309 mod_radio_reg(pi,
22310 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22311 RADIO_2056_VCM_MASK,
22312 pi->rssical_cache.
22313 rssical_radio_regs_5G[1]);
22314 }
22315
22316 write_phy_reg(pi, 0x1a6,
22317 pi->rssical_cache.rssical_phyregs_5G[0]);
22318 write_phy_reg(pi, 0x1ac,
22319 pi->rssical_cache.rssical_phyregs_5G[1]);
22320 write_phy_reg(pi, 0x1b2,
22321 pi->rssical_cache.rssical_phyregs_5G[2]);
22322 write_phy_reg(pi, 0x1b8,
22323 pi->rssical_cache.rssical_phyregs_5G[3]);
22324 write_phy_reg(pi, 0x1a4,
22325 pi->rssical_cache.rssical_phyregs_5G[4]);
22326 write_phy_reg(pi, 0x1aa,
22327 pi->rssical_cache.rssical_phyregs_5G[5]);
22328 write_phy_reg(pi, 0x1b0,
22329 pi->rssical_cache.rssical_phyregs_5G[6]);
22330 write_phy_reg(pi, 0x1b6,
22331 pi->rssical_cache.rssical_phyregs_5G[7]);
22332 write_phy_reg(pi, 0x1a5,
22333 pi->rssical_cache.rssical_phyregs_5G[8]);
22334 write_phy_reg(pi, 0x1ab,
22335 pi->rssical_cache.rssical_phyregs_5G[9]);
22336 write_phy_reg(pi, 0x1b1,
22337 pi->rssical_cache.rssical_phyregs_5G[10]);
22338 write_phy_reg(pi, 0x1b7,
22339 pi->rssical_cache.rssical_phyregs_5G[11]);
22340 }
22341 }
22342
22343 static u16
22344 wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
22345 u8 dac_test_mode)
22346 {
22347 u8 phy_bw, is_phybw40;
22348 u16 num_samps, t, spur;
22349 fixed theta = 0, rot = 0;
22350 u32 tbl_len;
22351 cs32 *tone_buf = NULL;
22352
22353 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22354 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22355 tbl_len = (phy_bw << 3);
22356
22357 if (dac_test_mode == 1) {
22358 spur = read_phy_reg(pi, 0x01);
22359 spur = (spur >> 15) & 1;
22360 phy_bw = (spur == 1) ? 82 : 80;
22361 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22362
22363 tbl_len = (phy_bw << 1);
22364 }
22365
22366 tone_buf = kmalloc(sizeof(cs32) * tbl_len, GFP_ATOMIC);
22367 if (tone_buf == NULL) {
22368 return 0;
22369 }
22370
22371 num_samps = (u16) tbl_len;
22372 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22373 theta = 0;
22374
22375 for (t = 0; t < num_samps; t++) {
22376
22377 wlc_phy_cordic(theta, &tone_buf[t]);
22378
22379 theta += rot;
22380
22381 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
22382 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
22383 }
22384
22385 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22386
22387 if (tone_buf != NULL)
22388 kfree(tone_buf);
22389
22390 return num_samps;
22391 }
22392
22393 int
22394 wlc_phy_tx_tone_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
22395 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
22396 {
22397 u16 num_samps;
22398 u16 loops = 0xffff;
22399 u16 wait = 0;
22400
22401 num_samps =
22402 wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val, dac_test_mode);
22403 if (num_samps == 0) {
22404 return BCME_ERROR;
22405 }
22406
22407 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22408 dac_test_mode, modify_bbmult);
22409
22410 return BCME_OK;
22411 }
22412
22413 static void
22414 wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
22415 u16 num_samps)
22416 {
22417 u16 t;
22418 u32 *data_buf = NULL;
22419
22420 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
22421 if (data_buf == NULL) {
22422 return;
22423 }
22424
22425 if (pi->phyhang_avoid)
22426 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22427
22428 for (t = 0; t < num_samps; t++) {
22429 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22430 (((unsigned int)tone_buf[t].q) & 0x3ff);
22431 }
22432 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22433 data_buf);
22434
22435 if (data_buf != NULL)
22436 kfree(data_buf);
22437
22438 if (pi->phyhang_avoid)
22439 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22440 }
22441
22442 static void
22443 wlc_phy_runsamples_nphy(phy_info_t *pi, u16 num_samps, u16 loops,
22444 u16 wait, u8 iqmode, u8 dac_test_mode,
22445 bool modify_bbmult)
22446 {
22447 u16 bb_mult;
22448 u8 phy_bw, sample_cmd;
22449 u16 orig_RfseqCoreActv;
22450 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
22451 lpf_bw_ctl_miscreg4;
22452
22453 if (pi->phyhang_avoid)
22454 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22455
22456 phy_bw = 20;
22457 if (CHSPEC_IS40(pi->radio_chanspec))
22458 phy_bw = 40;
22459
22460 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22461
22462 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22463 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22464 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22465 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22466 (0x7 << 8);
22467 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22468 (0x7 << 8);
22469 } else {
22470 wlc_phy_rfctrl_override_nphy_rev7(pi,
22471 (0x1 << 7),
22472 wlc_phy_read_lpf_bw_ctl_nphy
22473 (pi, 0), 0, 0,
22474 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22475
22476 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
22477
22478 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22479 (0x7 << 8);
22480 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22481 (0x7 << 8);
22482 }
22483 }
22484
22485 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22486
22487 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22488 &bb_mult);
22489 pi->nphy_bb_mult_save =
22490 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22491 }
22492
22493 if (modify_bbmult) {
22494 bb_mult = (phy_bw == 20) ? 100 : 71;
22495 bb_mult = (bb_mult << 8) + bb_mult;
22496 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22497 &bb_mult);
22498 }
22499
22500 if (pi->phyhang_avoid)
22501 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22502
22503 write_phy_reg(pi, 0xc6, num_samps - 1);
22504
22505 if (loops != 0xffff) {
22506 write_phy_reg(pi, 0xc4, loops - 1);
22507 } else {
22508 write_phy_reg(pi, 0xc4, loops);
22509 }
22510 write_phy_reg(pi, 0xc5, wait);
22511
22512 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22513 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22514 if (iqmode) {
22515
22516 and_phy_reg(pi, 0xc2, 0x7FFF);
22517
22518 or_phy_reg(pi, 0xc2, 0x8000);
22519 } else {
22520
22521 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22522 write_phy_reg(pi, 0xc3, sample_cmd);
22523 }
22524
22525 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22526
22527 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22528 }
22529
22530 void wlc_phy_stopplayback_nphy(phy_info_t *pi)
22531 {
22532 u16 playback_status;
22533 u16 bb_mult;
22534
22535 if (pi->phyhang_avoid)
22536 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22537
22538 playback_status = read_phy_reg(pi, 0xc7);
22539 if (playback_status & 0x1) {
22540 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22541 } else if (playback_status & 0x2) {
22542
22543 and_phy_reg(pi, 0xc2,
22544 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
22545 }
22546
22547 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
22548
22549 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22550
22551 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22552 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22553 &bb_mult);
22554
22555 pi->nphy_bb_mult_save = 0;
22556 }
22557
22558 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22559 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22560 wlc_phy_rfctrl_override_nphy_rev7(pi,
22561 (0x1 << 7),
22562 0, 0, 1,
22563 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22564 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
22565 }
22566 }
22567
22568 if (pi->phyhang_avoid)
22569 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22570 }
22571
22572 nphy_txgains_t wlc_phy_get_tx_gain_nphy(phy_info_t *pi)
22573 {
22574 u16 base_idx[2], curr_gain[2];
22575 u8 core_no;
22576 nphy_txgains_t target_gain;
22577 u32 *tx_pwrctrl_tbl = NULL;
22578
22579 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22580 if (pi->phyhang_avoid)
22581 wlc_phy_stay_in_carriersearch_nphy(pi, true);
22582
22583 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22584 curr_gain);
22585
22586 if (pi->phyhang_avoid)
22587 wlc_phy_stay_in_carriersearch_nphy(pi, false);
22588
22589 for (core_no = 0; core_no < 2; core_no++) {
22590 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22591 target_gain.ipa[core_no] =
22592 curr_gain[core_no] & 0x0007;
22593 target_gain.pad[core_no] =
22594 ((curr_gain[core_no] & 0x00F8) >> 3);
22595 target_gain.pga[core_no] =
22596 ((curr_gain[core_no] & 0x0F00) >> 8);
22597 target_gain.txgm[core_no] =
22598 ((curr_gain[core_no] & 0x7000) >> 12);
22599 target_gain.txlpf[core_no] =
22600 ((curr_gain[core_no] & 0x8000) >> 15);
22601 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22602 target_gain.ipa[core_no] =
22603 curr_gain[core_no] & 0x000F;
22604 target_gain.pad[core_no] =
22605 ((curr_gain[core_no] & 0x00F0) >> 4);
22606 target_gain.pga[core_no] =
22607 ((curr_gain[core_no] & 0x0F00) >> 8);
22608 target_gain.txgm[core_no] =
22609 ((curr_gain[core_no] & 0x7000) >> 12);
22610 } else {
22611 target_gain.ipa[core_no] =
22612 curr_gain[core_no] & 0x0003;
22613 target_gain.pad[core_no] =
22614 ((curr_gain[core_no] & 0x000C) >> 2);
22615 target_gain.pga[core_no] =
22616 ((curr_gain[core_no] & 0x0070) >> 4);
22617 target_gain.txgm[core_no] =
22618 ((curr_gain[core_no] & 0x0380) >> 7);
22619 }
22620 }
22621 } else {
22622 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22623 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22624 for (core_no = 0; core_no < 2; core_no++) {
22625 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22626 if (PHY_IPA(pi)) {
22627 tx_pwrctrl_tbl =
22628 wlc_phy_get_ipa_gaintbl_nphy(pi);
22629 } else {
22630 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22631 if NREV_IS
22632 (pi->pubpi.phy_rev, 3) {
22633 tx_pwrctrl_tbl =
22634 nphy_tpc_5GHz_txgain_rev3;
22635 } else if NREV_IS
22636 (pi->pubpi.phy_rev, 4) {
22637 tx_pwrctrl_tbl =
22638 (pi->srom_fem5g.
22639 extpagain ==
22640 3) ?
22641 nphy_tpc_5GHz_txgain_HiPwrEPA
22642 :
22643 nphy_tpc_5GHz_txgain_rev4;
22644 } else {
22645 tx_pwrctrl_tbl =
22646 nphy_tpc_5GHz_txgain_rev5;
22647 }
22648 } else {
22649 if (NREV_GE
22650 (pi->pubpi.phy_rev, 7)) {
22651 if (pi->pubpi.
22652 radiorev == 3) {
22653 tx_pwrctrl_tbl =
22654 nphy_tpc_txgain_epa_2057rev3;
22655 } else if (pi->pubpi.
22656 radiorev ==
22657 5) {
22658 tx_pwrctrl_tbl =
22659 nphy_tpc_txgain_epa_2057rev5;
22660 }
22661
22662 } else {
22663 if (NREV_GE
22664 (pi->pubpi.phy_rev,
22665 5)
22666 && (pi->srom_fem2g.
22667 extpagain ==
22668 3)) {
22669 tx_pwrctrl_tbl =
22670 nphy_tpc_txgain_HiPwrEPA;
22671 } else {
22672 tx_pwrctrl_tbl =
22673 nphy_tpc_txgain_rev3;
22674 }
22675 }
22676 }
22677 }
22678 if NREV_GE
22679 (pi->pubpi.phy_rev, 7) {
22680 target_gain.ipa[core_no] =
22681 (tx_pwrctrl_tbl[base_idx[core_no]]
22682 >> 16) & 0x7;
22683 target_gain.pad[core_no] =
22684 (tx_pwrctrl_tbl[base_idx[core_no]]
22685 >> 19) & 0x1f;
22686 target_gain.pga[core_no] =
22687 (tx_pwrctrl_tbl[base_idx[core_no]]
22688 >> 24) & 0xf;
22689 target_gain.txgm[core_no] =
22690 (tx_pwrctrl_tbl[base_idx[core_no]]
22691 >> 28) & 0x7;
22692 target_gain.txlpf[core_no] =
22693 (tx_pwrctrl_tbl[base_idx[core_no]]
22694 >> 31) & 0x1;
22695 } else {
22696 target_gain.ipa[core_no] =
22697 (tx_pwrctrl_tbl[base_idx[core_no]]
22698 >> 16) & 0xf;
22699 target_gain.pad[core_no] =
22700 (tx_pwrctrl_tbl[base_idx[core_no]]
22701 >> 20) & 0xf;
22702 target_gain.pga[core_no] =
22703 (tx_pwrctrl_tbl[base_idx[core_no]]
22704 >> 24) & 0xf;
22705 target_gain.txgm[core_no] =
22706 (tx_pwrctrl_tbl[base_idx[core_no]]
22707 >> 28) & 0x7;
22708 }
22709 } else {
22710 target_gain.ipa[core_no] =
22711 (nphy_tpc_txgain[base_idx[core_no]] >> 16) &
22712 0x3;
22713 target_gain.pad[core_no] =
22714 (nphy_tpc_txgain[base_idx[core_no]] >> 18) &
22715 0x3;
22716 target_gain.pga[core_no] =
22717 (nphy_tpc_txgain[base_idx[core_no]] >> 20) &
22718 0x7;
22719 target_gain.txgm[core_no] =
22720 (nphy_tpc_txgain[base_idx[core_no]] >> 23) &
22721 0x7;
22722 }
22723 }
22724 }
22725
22726 return target_gain;
22727 }
22728
22729 static void
22730 wlc_phy_iqcal_gainparams_nphy(phy_info_t *pi, u16 core_no,
22731 nphy_txgains_t target_gain,
22732 nphy_iqcal_params_t *params)
22733 {
22734 u8 k;
22735 int idx;
22736 u16 gain_index;
22737 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
22738
22739 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22740 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22741 params->txlpf = target_gain.txlpf[core_no];
22742 }
22743 params->txgm = target_gain.txgm[core_no];
22744 params->pga = target_gain.pga[core_no];
22745 params->pad = target_gain.pad[core_no];
22746 params->ipa = target_gain.ipa[core_no];
22747 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22748 params->cal_gain =
22749 ((params->txlpf << 15) | (params->
22750 txgm << 12) | (params->
22751 pga << 8) |
22752 (params->pad << 3) | (params->ipa));
22753 } else {
22754 params->cal_gain =
22755 ((params->txgm << 12) | (params->
22756 pga << 8) | (params->
22757 pad << 4) |
22758 (params->ipa));
22759 }
22760 params->ncorr[0] = 0x79;
22761 params->ncorr[1] = 0x79;
22762 params->ncorr[2] = 0x79;
22763 params->ncorr[3] = 0x79;
22764 params->ncorr[4] = 0x79;
22765 } else {
22766
22767 gain_index = ((target_gain.pad[core_no] << 0) |
22768 (target_gain.pga[core_no] << 4) | (target_gain.
22769 txgm[core_no]
22770 << 8));
22771
22772 idx = -1;
22773 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22774 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22775 gain_index) {
22776 idx = k;
22777 break;
22778 }
22779 }
22780
22781 ASSERT(idx != -1);
22782
22783 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22784 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22785 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22786 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22787 (params->pad << 2));
22788 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22789 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22790 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22791 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22792 }
22793 }
22794
22795 static void wlc_phy_txcal_radio_setup_nphy(phy_info_t *pi)
22796 {
22797 u16 jtag_core, core;
22798
22799 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22800
22801 for (core = 0; core <= 1; core++) {
22802
22803 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22804 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22805 TX_SSI_MASTER);
22806
22807 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22808 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22809 IQCAL_VCM_HG);
22810
22811 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22812 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22813 IQCAL_IDAC);
22814
22815 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22816 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM);
22817
22818 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22819
22820 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22821 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22822 TX_SSI_MUX);
22823
22824 if (pi->pubpi.radiorev != 5)
22825 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22826 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22827 TSSIA);
22828
22829 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22830 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22831
22832 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22833 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22834 TSSI_MISC1);
22835
22836 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22837 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22838 TX_SSI_MASTER, 0x0a);
22839 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22840 IQCAL_VCM_HG, 0x43);
22841 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22842 IQCAL_IDAC, 0x55);
22843 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22844 TSSI_VCM, 0x00);
22845 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22846 TSSIG, 0x00);
22847 if (pi->use_int_tx_iqlo_cal_nphy) {
22848 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22849 core, TX_SSI_MUX, 0x4);
22850 if (!
22851 (pi->
22852 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
22853
22854 WRITE_RADIO_REG3(pi, RADIO_2057,
22855 TX, core,
22856 TSSIA, 0x31);
22857 } else {
22858
22859 WRITE_RADIO_REG3(pi, RADIO_2057,
22860 TX, core,
22861 TSSIA, 0x21);
22862 }
22863 }
22864 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22865 TSSI_MISC1, 0x00);
22866 } else {
22867 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22868 TX_SSI_MASTER, 0x06);
22869 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22870 IQCAL_VCM_HG, 0x43);
22871 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22872 IQCAL_IDAC, 0x55);
22873 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22874 TSSI_VCM, 0x00);
22875
22876 if (pi->pubpi.radiorev != 5)
22877 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22878 core, TSSIA, 0x00);
22879 if (pi->use_int_tx_iqlo_cal_nphy) {
22880 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22881 core, TX_SSI_MUX,
22882 0x06);
22883 if (!
22884 (pi->
22885 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
22886
22887 WRITE_RADIO_REG3(pi, RADIO_2057,
22888 TX, core,
22889 TSSIG, 0x31);
22890 } else {
22891
22892 WRITE_RADIO_REG3(pi, RADIO_2057,
22893 TX, core,
22894 TSSIG, 0x21);
22895 }
22896 }
22897 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22898 TSSI_MISC1, 0x00);
22899 }
22900 }
22901 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22902
22903 for (core = 0; core <= 1; core++) {
22904 jtag_core =
22905 (core ==
22906 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22907
22908 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22909 read_radio_reg(pi,
22910 RADIO_2056_TX_TX_SSI_MASTER |
22911 jtag_core);
22912
22913 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22914 read_radio_reg(pi,
22915 RADIO_2056_TX_IQCAL_VCM_HG |
22916 jtag_core);
22917
22918 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22919 read_radio_reg(pi,
22920 RADIO_2056_TX_IQCAL_IDAC |
22921 jtag_core);
22922
22923 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22924 read_radio_reg(pi,
22925 RADIO_2056_TX_TSSI_VCM | jtag_core);
22926
22927 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22928 read_radio_reg(pi,
22929 RADIO_2056_TX_TX_AMP_DET |
22930 jtag_core);
22931
22932 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22933 read_radio_reg(pi,
22934 RADIO_2056_TX_TX_SSI_MUX |
22935 jtag_core);
22936
22937 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22938 read_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core);
22939
22940 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22941 read_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core);
22942
22943 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22944 read_radio_reg(pi,
22945 RADIO_2056_TX_TSSI_MISC1 |
22946 jtag_core);
22947
22948 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22949 read_radio_reg(pi,
22950 RADIO_2056_TX_TSSI_MISC2 |
22951 jtag_core);
22952
22953 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22954 read_radio_reg(pi,
22955 RADIO_2056_TX_TSSI_MISC3 |
22956 jtag_core);
22957
22958 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22959 write_radio_reg(pi,
22960 RADIO_2056_TX_TX_SSI_MASTER |
22961 jtag_core, 0x0a);
22962 write_radio_reg(pi,
22963 RADIO_2056_TX_IQCAL_VCM_HG |
22964 jtag_core, 0x40);
22965 write_radio_reg(pi,
22966 RADIO_2056_TX_IQCAL_IDAC |
22967 jtag_core, 0x55);
22968 write_radio_reg(pi,
22969 RADIO_2056_TX_TSSI_VCM |
22970 jtag_core, 0x00);
22971 write_radio_reg(pi,
22972 RADIO_2056_TX_TX_AMP_DET |
22973 jtag_core, 0x00);
22974
22975 if (PHY_IPA(pi)) {
22976 write_radio_reg(pi,
22977 RADIO_2056_TX_TX_SSI_MUX
22978 | jtag_core, 0x4);
22979 write_radio_reg(pi,
22980 RADIO_2056_TX_TSSIA |
22981 jtag_core, 0x1);
22982 } else {
22983 write_radio_reg(pi,
22984 RADIO_2056_TX_TX_SSI_MUX
22985 | jtag_core, 0x00);
22986 write_radio_reg(pi,
22987 RADIO_2056_TX_TSSIA |
22988 jtag_core, 0x2f);
22989 }
22990 write_radio_reg(pi,
22991 RADIO_2056_TX_TSSIG | jtag_core,
22992 0x00);
22993 write_radio_reg(pi,
22994 RADIO_2056_TX_TSSI_MISC1 |
22995 jtag_core, 0x00);
22996
22997 write_radio_reg(pi,
22998 RADIO_2056_TX_TSSI_MISC2 |
22999 jtag_core, 0x00);
23000 write_radio_reg(pi,
23001 RADIO_2056_TX_TSSI_MISC3 |
23002 jtag_core, 0x00);
23003 } else {
23004 write_radio_reg(pi,
23005 RADIO_2056_TX_TX_SSI_MASTER |
23006 jtag_core, 0x06);
23007 write_radio_reg(pi,
23008 RADIO_2056_TX_IQCAL_VCM_HG |
23009 jtag_core, 0x40);
23010 write_radio_reg(pi,
23011 RADIO_2056_TX_IQCAL_IDAC |
23012 jtag_core, 0x55);
23013 write_radio_reg(pi,
23014 RADIO_2056_TX_TSSI_VCM |
23015 jtag_core, 0x00);
23016 write_radio_reg(pi,
23017 RADIO_2056_TX_TX_AMP_DET |
23018 jtag_core, 0x00);
23019 write_radio_reg(pi,
23020 RADIO_2056_TX_TSSIA | jtag_core,
23021 0x00);
23022
23023 if (PHY_IPA(pi)) {
23024
23025 write_radio_reg(pi,
23026 RADIO_2056_TX_TX_SSI_MUX
23027 | jtag_core, 0x06);
23028 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23029
23030 write_radio_reg(pi,
23031 RADIO_2056_TX_TSSIG
23032 | jtag_core,
23033 0x11);
23034 } else {
23035
23036 write_radio_reg(pi,
23037 RADIO_2056_TX_TSSIG
23038 | jtag_core,
23039 0x1);
23040 }
23041 } else {
23042 write_radio_reg(pi,
23043 RADIO_2056_TX_TX_SSI_MUX
23044 | jtag_core, 0x00);
23045 write_radio_reg(pi,
23046 RADIO_2056_TX_TSSIG |
23047 jtag_core, 0x20);
23048 }
23049
23050 write_radio_reg(pi,
23051 RADIO_2056_TX_TSSI_MISC1 |
23052 jtag_core, 0x00);
23053 write_radio_reg(pi,
23054 RADIO_2056_TX_TSSI_MISC2 |
23055 jtag_core, 0x00);
23056 write_radio_reg(pi,
23057 RADIO_2056_TX_TSSI_MISC3 |
23058 jtag_core, 0x00);
23059 }
23060 }
23061 } else {
23062
23063 pi->tx_rx_cal_radio_saveregs[0] =
23064 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23065 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23066 pi->tx_rx_cal_radio_saveregs[1] =
23067 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23068 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23069
23070 pi->tx_rx_cal_radio_saveregs[2] =
23071 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23072 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23073 pi->tx_rx_cal_radio_saveregs[3] =
23074 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23075 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23076
23077 pi->tx_rx_cal_radio_saveregs[4] =
23078 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23079 pi->tx_rx_cal_radio_saveregs[5] =
23080 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23081
23082 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23083 0) {
23084
23085 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23086 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23087 } else {
23088
23089 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23090 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23091 }
23092
23093 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23094
23095 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23096 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23097 } else {
23098
23099 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23100 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23101 }
23102 }
23103 }
23104
23105 static void wlc_phy_txcal_radio_cleanup_nphy(phy_info_t *pi)
23106 {
23107 u16 jtag_core, core;
23108
23109 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23110 for (core = 0; core <= 1; core++) {
23111
23112 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23113 TX_SSI_MASTER,
23114 pi->
23115 tx_rx_cal_radio_saveregs[(core * 11) +
23116 0]);
23117
23118 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23119 pi->
23120 tx_rx_cal_radio_saveregs[(core * 11) +
23121 1]);
23122
23123 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23124 pi->
23125 tx_rx_cal_radio_saveregs[(core * 11) +
23126 2]);
23127
23128 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23129 pi->
23130 tx_rx_cal_radio_saveregs[(core * 11) +
23131 3]);
23132
23133 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23134 pi->
23135 tx_rx_cal_radio_saveregs[(core * 11) +
23136 5]);
23137
23138 if (pi->pubpi.radiorev != 5)
23139 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23140 TSSIA,
23141 pi->
23142 tx_rx_cal_radio_saveregs[(core
23143 *
23144 11) +
23145 6]);
23146
23147 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23148 pi->
23149 tx_rx_cal_radio_saveregs[(core * 11) +
23150 7]);
23151
23152 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23153 pi->
23154 tx_rx_cal_radio_saveregs[(core * 11) +
23155 8]);
23156 }
23157 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23158 for (core = 0; core <= 1; core++) {
23159 jtag_core =
23160 (core ==
23161 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23162
23163 write_radio_reg(pi,
23164 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23165 pi->
23166 tx_rx_cal_radio_saveregs[(core * 11) +
23167 0]);
23168
23169 write_radio_reg(pi,
23170 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23171 pi->
23172 tx_rx_cal_radio_saveregs[(core * 11) +
23173 1]);
23174
23175 write_radio_reg(pi,
23176 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23177 pi->
23178 tx_rx_cal_radio_saveregs[(core * 11) +
23179 2]);
23180
23181 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23182 pi->
23183 tx_rx_cal_radio_saveregs[(core * 11) +
23184 3]);
23185
23186 write_radio_reg(pi,
23187 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23188 pi->
23189 tx_rx_cal_radio_saveregs[(core * 11) +
23190 4]);
23191
23192 write_radio_reg(pi,
23193 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23194 pi->
23195 tx_rx_cal_radio_saveregs[(core * 11) +
23196 5]);
23197
23198 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23199 pi->
23200 tx_rx_cal_radio_saveregs[(core * 11) +
23201 6]);
23202
23203 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23204 pi->
23205 tx_rx_cal_radio_saveregs[(core * 11) +
23206 7]);
23207
23208 write_radio_reg(pi,
23209 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23210 pi->
23211 tx_rx_cal_radio_saveregs[(core * 11) +
23212 8]);
23213
23214 write_radio_reg(pi,
23215 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23216 pi->
23217 tx_rx_cal_radio_saveregs[(core * 11) +
23218 9]);
23219
23220 write_radio_reg(pi,
23221 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23222 pi->
23223 tx_rx_cal_radio_saveregs[(core * 11) +
23224 10]);
23225 }
23226 } else {
23227
23228 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23229 pi->tx_rx_cal_radio_saveregs[0]);
23230 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23231 pi->tx_rx_cal_radio_saveregs[1]);
23232 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23233 pi->tx_rx_cal_radio_saveregs[2]);
23234 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23235 pi->tx_rx_cal_radio_saveregs[3]);
23236 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23237 pi->tx_rx_cal_radio_saveregs[4]);
23238 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23239 pi->tx_rx_cal_radio_saveregs[5]);
23240 }
23241 }
23242
23243 static void wlc_phy_txcal_physetup_nphy(phy_info_t *pi)
23244 {
23245 u16 val, mask;
23246
23247 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23248 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23249 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23250
23251 mask = ((0x3 << 8) | (0x3 << 10));
23252 val = (0x2 << 8);
23253 val |= (0x2 << 10);
23254 mod_phy_reg(pi, 0xa6, mask, val);
23255 mod_phy_reg(pi, 0xa7, mask, val);
23256
23257 val = read_phy_reg(pi, 0x8f);
23258 pi->tx_rx_cal_phy_saveregs[2] = val;
23259 val |= ((0x1 << 9) | (0x1 << 10));
23260 write_phy_reg(pi, 0x8f, val);
23261
23262 val = read_phy_reg(pi, 0xa5);
23263 pi->tx_rx_cal_phy_saveregs[3] = val;
23264 val |= ((0x1 << 9) | (0x1 << 10));
23265 write_phy_reg(pi, 0xa5, val);
23266
23267 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23268 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23269
23270 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23271 &val);
23272 pi->tx_rx_cal_phy_saveregs[5] = val;
23273 val = 0;
23274 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23275 &val);
23276
23277 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23278 &val);
23279 pi->tx_rx_cal_phy_saveregs[6] = val;
23280 val = 0;
23281 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23282 &val);
23283
23284 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23285 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23286
23287 if (!(pi->use_int_tx_iqlo_cal_nphy)) {
23288
23289 wlc_phy_rfctrlintc_override_nphy(pi,
23290 NPHY_RfctrlIntc_override_PA,
23291 1,
23292 RADIO_MIMO_CORESEL_CORE1
23293 |
23294 RADIO_MIMO_CORESEL_CORE2);
23295 } else {
23296
23297 wlc_phy_rfctrlintc_override_nphy(pi,
23298 NPHY_RfctrlIntc_override_PA,
23299 0,
23300 RADIO_MIMO_CORESEL_CORE1
23301 |
23302 RADIO_MIMO_CORESEL_CORE2);
23303 }
23304
23305 wlc_phy_rfctrlintc_override_nphy(pi,
23306 NPHY_RfctrlIntc_override_TRSW,
23307 0x2, RADIO_MIMO_CORESEL_CORE1);
23308 wlc_phy_rfctrlintc_override_nphy(pi,
23309 NPHY_RfctrlIntc_override_TRSW,
23310 0x8, RADIO_MIMO_CORESEL_CORE2);
23311
23312 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23313 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23314 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23315 0x29b, (0x1 << 0), (0) << 0);
23316
23317 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23318 0x29b, (0x1 << 0), (0) << 0);
23319
23320 if (NREV_IS(pi->pubpi.phy_rev, 7)
23321 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23322 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
23323 wlc_phy_read_lpf_bw_ctl_nphy
23324 (pi, 0), 0, 0,
23325 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23326 }
23327
23328 if (pi->use_int_tx_iqlo_cal_nphy
23329 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23330
23331 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23332
23333 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23334 1 << 4);
23335
23336 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23337 mod_radio_reg(pi,
23338 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23339 1, 0);
23340 mod_radio_reg(pi,
23341 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23342 1, 0);
23343 } else {
23344 mod_radio_reg(pi,
23345 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23346 1, 0);
23347 mod_radio_reg(pi,
23348 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23349 1, 0);
23350 }
23351 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23352 wlc_phy_rfctrl_override_nphy_rev7(pi,
23353 (0x1 << 3), 0,
23354 0x3, 0,
23355 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23356 }
23357 }
23358 } else {
23359 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23360 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23361
23362 mask = ((0x3 << 12) | (0x3 << 14));
23363 val = (0x2 << 12);
23364 val |= (0x2 << 14);
23365 mod_phy_reg(pi, 0xa6, mask, val);
23366 mod_phy_reg(pi, 0xa7, mask, val);
23367
23368 val = read_phy_reg(pi, 0xa5);
23369 pi->tx_rx_cal_phy_saveregs[2] = val;
23370 val |= ((0x1 << 12) | (0x1 << 13));
23371 write_phy_reg(pi, 0xa5, val);
23372
23373 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23374 &val);
23375 pi->tx_rx_cal_phy_saveregs[3] = val;
23376 val |= 0x2000;
23377 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23378 &val);
23379
23380 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23381 &val);
23382 pi->tx_rx_cal_phy_saveregs[4] = val;
23383 val |= 0x2000;
23384 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23385 &val);
23386
23387 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23388 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23389 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23390 write_phy_reg(pi, 0x91, val);
23391 write_phy_reg(pi, 0x92, val);
23392 }
23393 }
23394
23395 static void wlc_phy_txcal_phycleanup_nphy(phy_info_t *pi)
23396 {
23397 u16 mask;
23398
23399 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23400 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23401 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23402 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23403 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23404 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23405
23406 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23407 &pi->tx_rx_cal_phy_saveregs[5]);
23408 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23409 &pi->tx_rx_cal_phy_saveregs[6]);
23410
23411 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23412 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23413
23414 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23415 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23416
23417 if (NREV_IS(pi->pubpi.phy_rev, 7)
23418 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23419 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
23420 1,
23421 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23422 }
23423
23424 wlc_phy_resetcca_nphy(pi);
23425
23426 if (pi->use_int_tx_iqlo_cal_nphy
23427 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23428
23429 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23430 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23431 mod_radio_reg(pi,
23432 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23433 1, 1);
23434 mod_radio_reg(pi,
23435 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23436 1, 1);
23437 } else {
23438 mod_radio_reg(pi,
23439 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23440 1, 1);
23441 mod_radio_reg(pi,
23442 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23443 1, 1);
23444 }
23445
23446 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23447 0);
23448 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23449 wlc_phy_rfctrl_override_nphy_rev7(pi,
23450 (0x1 << 3), 0,
23451 0x3, 1,
23452 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23453 }
23454 }
23455 } else {
23456 mask = ((0x3 << 12) | (0x3 << 14));
23457 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23458 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23459 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23460
23461 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23462 &pi->tx_rx_cal_phy_saveregs[3]);
23463
23464 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23465 &pi->tx_rx_cal_phy_saveregs[4]);
23466
23467 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23468 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23469 }
23470 }
23471
23472 #define NPHY_CAL_TSSISAMPS 64
23473 #define NPHY_TEST_TONE_FREQ_40MHz 4000
23474 #define NPHY_TEST_TONE_FREQ_20MHz 2500
23475
23476 void
23477 wlc_phy_est_tonepwr_nphy(phy_info_t *pi, s32 *qdBm_pwrbuf, u8 num_samps)
23478 {
23479 u16 tssi_reg;
23480 s32 temp, pwrindex[2];
23481 s32 idle_tssi[2];
23482 s32 rssi_buf[4];
23483 s32 tssival[2];
23484 u8 tssi_type;
23485
23486 tssi_reg = read_phy_reg(pi, 0x1e9);
23487
23488 temp = (s32) (tssi_reg & 0x3f);
23489 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23490
23491 temp = (s32) ((tssi_reg >> 8) & 0x3f);
23492 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23493
23494 tssi_type =
23495 CHSPEC_IS5G(pi->radio_chanspec) ?
23496 (u8)NPHY_RSSI_SEL_TSSI_5G:(u8)NPHY_RSSI_SEL_TSSI_2G;
23497
23498 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23499
23500 tssival[0] = rssi_buf[0] / ((s32) num_samps);
23501 tssival[1] = rssi_buf[2] / ((s32) num_samps);
23502
23503 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23504 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23505
23506 if (pwrindex[0] < 0) {
23507 pwrindex[0] = 0;
23508 } else if (pwrindex[0] > 63) {
23509 pwrindex[0] = 63;
23510 }
23511
23512 if (pwrindex[1] < 0) {
23513 pwrindex[1] = 0;
23514 } else if (pwrindex[1] > 63) {
23515 pwrindex[1] = 63;
23516 }
23517
23518 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
23519 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
23520 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
23521 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
23522 }
23523
23524 static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi)
23525 {
23526 u16 txcal_gain[2];
23527
23528 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23529 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
23530 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23531 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
23532
23533 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23534 txcal_gain);
23535
23536 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23537 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23538 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23539 } else {
23540 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23541 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23542 }
23543
23544 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23545 txcal_gain);
23546 }
23547
23548 static void wlc_phy_precal_txgain_nphy(phy_info_t *pi)
23549 {
23550 bool save_bbmult = false;
23551 u8 txcal_index_2057_rev5n7 = 0;
23552 u8 txcal_index_2057_rev3n4n6 = 10;
23553
23554 if (pi->use_int_tx_iqlo_cal_nphy) {
23555 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23556 if ((pi->pubpi.radiorev == 3) ||
23557 (pi->pubpi.radiorev == 4) ||
23558 (pi->pubpi.radiorev == 6)) {
23559
23560 pi->nphy_txcal_pwr_idx[0] =
23561 txcal_index_2057_rev3n4n6;
23562 pi->nphy_txcal_pwr_idx[1] =
23563 txcal_index_2057_rev3n4n6;
23564 wlc_phy_txpwr_index_nphy(pi, 3,
23565 txcal_index_2057_rev3n4n6,
23566 false);
23567 } else {
23568
23569 pi->nphy_txcal_pwr_idx[0] =
23570 txcal_index_2057_rev5n7;
23571 pi->nphy_txcal_pwr_idx[1] =
23572 txcal_index_2057_rev5n7;
23573 wlc_phy_txpwr_index_nphy(pi, 3,
23574 txcal_index_2057_rev5n7,
23575 false);
23576 }
23577 save_bbmult = true;
23578
23579 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23580 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
23581 if (pi->sh->hw_phytxchain != 3) {
23582 pi->nphy_txcal_pwr_idx[1] =
23583 pi->nphy_txcal_pwr_idx[0];
23584 wlc_phy_txpwr_index_nphy(pi, 3,
23585 pi->
23586 nphy_txcal_pwr_idx[0],
23587 true);
23588 save_bbmult = true;
23589 }
23590
23591 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23592 if (PHY_IPA(pi)) {
23593 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23594 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23595 false);
23596 } else {
23597 pi->nphy_txcal_pwr_idx[0] = 80;
23598 pi->nphy_txcal_pwr_idx[1] = 80;
23599 wlc_phy_txpwr_index_nphy(pi, 3, 80,
23600 false);
23601 save_bbmult = true;
23602 }
23603 } else {
23604
23605 wlc_phy_internal_cal_txgain_nphy(pi);
23606 save_bbmult = true;
23607 }
23608
23609 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23610 if (PHY_IPA(pi)) {
23611 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23612 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23613 false);
23614 } else {
23615 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23616 false);
23617 }
23618 } else {
23619
23620 wlc_phy_internal_cal_txgain_nphy(pi);
23621 save_bbmult = true;
23622 }
23623 }
23624
23625 } else {
23626 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
23627 }
23628
23629 if (save_bbmult) {
23630 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23631 &pi->nphy_txcal_bbmult);
23632 }
23633 }
23634
23635 void
23636 wlc_phy_cal_txgainctrl_nphy(phy_info_t *pi, s32 dBm_targetpower, bool debug)
23637 {
23638 int gainctrl_loopidx;
23639 uint core;
23640 u16 m0m1, curr_m0m1;
23641 s32 delta_power;
23642 s32 txpwrindex;
23643 s32 qdBm_power[2];
23644 u16 orig_BBConfig;
23645 u16 phy_saveregs[4];
23646 u32 freq_test;
23647 u16 ampl_test = 250;
23648 uint stepsize;
23649 bool phyhang_avoid_state = false;
23650
23651 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23652
23653 stepsize = 2;
23654 } else {
23655
23656 stepsize = 1;
23657 }
23658
23659 if (CHSPEC_IS40(pi->radio_chanspec)) {
23660 freq_test = 5000;
23661 } else {
23662 freq_test = 2500;
23663 }
23664
23665 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23666 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
23667
23668 if (pi->phyhang_avoid)
23669 wlc_phy_stay_in_carriersearch_nphy(pi, true);
23670
23671 phyhang_avoid_state = pi->phyhang_avoid;
23672 pi->phyhang_avoid = false;
23673
23674 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23675 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23676 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23677 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23678 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23679 RADIO_MIMO_CORESEL_CORE1 |
23680 RADIO_MIMO_CORESEL_CORE2);
23681
23682 if (!debug) {
23683 wlc_phy_rfctrlintc_override_nphy(pi,
23684 NPHY_RfctrlIntc_override_TRSW,
23685 0x2, RADIO_MIMO_CORESEL_CORE1);
23686 wlc_phy_rfctrlintc_override_nphy(pi,
23687 NPHY_RfctrlIntc_override_TRSW,
23688 0x8, RADIO_MIMO_CORESEL_CORE2);
23689 } else {
23690 wlc_phy_rfctrlintc_override_nphy(pi,
23691 NPHY_RfctrlIntc_override_TRSW,
23692 0x1, RADIO_MIMO_CORESEL_CORE1);
23693 wlc_phy_rfctrlintc_override_nphy(pi,
23694 NPHY_RfctrlIntc_override_TRSW,
23695 0x7, RADIO_MIMO_CORESEL_CORE2);
23696 }
23697
23698 orig_BBConfig = read_phy_reg(pi, 0x01);
23699 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23700
23701 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23702
23703 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
23704 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
23705
23706 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23707 gainctrl_loopidx++) {
23708 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23709 false);
23710
23711 if (core == PHY_CORE_0) {
23712 curr_m0m1 = m0m1 & 0xff00;
23713 } else {
23714 curr_m0m1 = m0m1 & 0x00ff;
23715 }
23716
23717 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23718 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23719
23720 udelay(50);
23721
23722 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23723 NPHY_CAL_TSSISAMPS);
23724
23725 pi->nphy_bb_mult_save = 0;
23726 wlc_phy_stopplayback_nphy(pi);
23727
23728 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23729
23730 txpwrindex -= stepsize * delta_power;
23731 if (txpwrindex < 0) {
23732 txpwrindex = 0;
23733 } else if (txpwrindex > 127) {
23734 txpwrindex = 127;
23735 }
23736
23737 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23738 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23739 (pi->srom_fem5g.extpagain == 3)) {
23740 if (txpwrindex < 30) {
23741 txpwrindex = 30;
23742 }
23743 }
23744 } else {
23745 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23746 (pi->srom_fem2g.extpagain == 3)) {
23747 if (txpwrindex < 50) {
23748 txpwrindex = 50;
23749 }
23750 }
23751 }
23752
23753 wlc_phy_txpwr_index_nphy(pi, (1 << core),
23754 (u8) txpwrindex, true);
23755 }
23756
23757 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
23758
23759 if (debug) {
23760 u16 radio_gain;
23761 u16 dbg_m0m1;
23762
23763 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23764
23765 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23766 false);
23767
23768 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23769 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23770
23771 udelay(100);
23772
23773 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23774 NPHY_CAL_TSSISAMPS);
23775
23776 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23777 &radio_gain);
23778
23779 mdelay(4000);
23780 pi->nphy_bb_mult_save = 0;
23781 wlc_phy_stopplayback_nphy(pi);
23782 }
23783 }
23784
23785 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
23786 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
23787
23788 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23789
23790 write_phy_reg(pi, 0x01, orig_BBConfig);
23791
23792 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23793 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23794 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23795 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23796
23797 pi->phyhang_avoid = phyhang_avoid_state;
23798
23799 if (pi->phyhang_avoid)
23800 wlc_phy_stay_in_carriersearch_nphy(pi, false);
23801 }
23802
23803 static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core)
23804 {
23805 int index;
23806 u32 bbmult_scale;
23807 u16 bbmult;
23808 u16 tblentry;
23809
23810 nphy_txiqcal_ladder_t ladder_lo[] = {
23811 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23812 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23813 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23814 };
23815
23816 nphy_txiqcal_ladder_t ladder_iq[] = {
23817 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23818 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23819 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23820 };
23821
23822 bbmult = (core == PHY_CORE_0) ?
23823 ((pi->nphy_txcal_bbmult >> 8) & 0xff) : (pi->
23824 nphy_txcal_bbmult & 0xff);
23825
23826 for (index = 0; index < 18; index++) {
23827 bbmult_scale = ladder_lo[index].percent * bbmult;
23828 bbmult_scale /= 100;
23829
23830 tblentry =
23831 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23832 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23833 &tblentry);
23834
23835 bbmult_scale = ladder_iq[index].percent * bbmult;
23836 bbmult_scale /= 100;
23837
23838 tblentry =
23839 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23840 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23841 16, &tblentry);
23842 }
23843 }
23844
23845 void wlc_phy_cal_perical_nphy_run(phy_info_t *pi, u8 caltype)
23846 {
23847 nphy_txgains_t target_gain;
23848 u8 tx_pwr_ctrl_state;
23849 bool fullcal = true;
23850 bool restore_tx_gain = false;
23851 bool mphase;
23852
23853 if (NORADIO_ENAB(pi->pubpi)) {
23854 wlc_phy_cal_perical_mphase_reset(pi);
23855 return;
23856 }
23857
23858 if (PHY_MUTED(pi))
23859 return;
23860
23861 ASSERT(pi->nphy_perical != PHY_PERICAL_DISABLE);
23862
23863 if (caltype == PHY_PERICAL_AUTO)
23864 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23865 else if (caltype == PHY_PERICAL_PARTIAL)
23866 fullcal = false;
23867
23868 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23869 fullcal =
23870 (pi->cal_type_override == PHY_PERICAL_FULL) ? true : false;
23871 }
23872
23873 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23874 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23875 wlc_phy_cal_perical_mphase_restart(pi);
23876 }
23877
23878 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL)) {
23879 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23880 }
23881
23882 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23883
23884 wlc_phyreg_enter((wlc_phy_t *) pi);
23885
23886 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23887 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23888 pi->nphy_cal_orig_pwr_idx[0] =
23889 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
23890 pi->nphy_cal_orig_pwr_idx[1] =
23891 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
23892
23893 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23894 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23895 0x110, 16,
23896 pi->nphy_cal_orig_tx_gain);
23897 } else {
23898 pi->nphy_cal_orig_tx_gain[0] = 0;
23899 pi->nphy_cal_orig_tx_gain[1] = 0;
23900 }
23901 }
23902 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23903 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23904 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23905
23906 if (pi->antsel_type == ANTSEL_2x3)
23907 wlc_phy_antsel_init((wlc_phy_t *) pi, true);
23908
23909 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23910 if (!mphase) {
23911
23912 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23913 wlc_phy_precal_txgain_nphy(pi);
23914 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23915 restore_tx_gain = true;
23916
23917 target_gain = pi->nphy_cal_target_gain;
23918 }
23919 if (BCME_OK ==
23920 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23921 if (PHY_IPA(pi))
23922 wlc_phy_a4(pi, true);
23923
23924 wlc_phyreg_exit((wlc_phy_t *) pi);
23925 wlapi_enable_mac(pi->sh->physhim);
23926 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23927 10000);
23928 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23929 wlc_phyreg_enter((wlc_phy_t *) pi);
23930
23931 if (BCME_OK == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23932 (pi->
23933 first_cal_after_assoc
23934 || (pi->
23935 cal_type_override
23936 ==
23937 PHY_PERICAL_FULL))
23938 ? 2 : 0, false)) {
23939 wlc_phy_savecal_nphy(pi);
23940
23941 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23942
23943 pi->nphy_perical_last = pi->sh->now;
23944 }
23945 }
23946 if (caltype != PHY_PERICAL_AUTO) {
23947 wlc_phy_rssi_cal_nphy(pi);
23948 }
23949
23950 if (pi->first_cal_after_assoc
23951 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
23952 pi->first_cal_after_assoc = false;
23953 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23954 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23955 }
23956
23957 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23958 wlc_phy_radio205x_vcocal_nphy(pi);
23959 }
23960 } else {
23961 ASSERT(pi->nphy_perical >= PHY_PERICAL_MPHASE);
23962
23963 switch (pi->mphase_cal_phase_id) {
23964 case MPHASE_CAL_STATE_INIT:
23965 pi->nphy_perical_last = pi->sh->now;
23966 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23967
23968 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23969 wlc_phy_precal_txgain_nphy(pi);
23970 }
23971 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23972 pi->mphase_cal_phase_id++;
23973 break;
23974
23975 case MPHASE_CAL_STATE_TXPHASE0:
23976 case MPHASE_CAL_STATE_TXPHASE1:
23977 case MPHASE_CAL_STATE_TXPHASE2:
23978 case MPHASE_CAL_STATE_TXPHASE3:
23979 case MPHASE_CAL_STATE_TXPHASE4:
23980 case MPHASE_CAL_STATE_TXPHASE5:
23981 if ((pi->radar_percal_mask & 0x10) != 0)
23982 pi->nphy_rxcal_active = true;
23983
23984 if (wlc_phy_cal_txiqlo_nphy
23985 (pi, pi->nphy_cal_target_gain, fullcal,
23986 true) != BCME_OK) {
23987
23988 wlc_phy_cal_perical_mphase_reset(pi);
23989 break;
23990 }
23991
23992 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23993 (pi->mphase_cal_phase_id ==
23994 MPHASE_CAL_STATE_TXPHASE4)) {
23995 pi->mphase_cal_phase_id += 2;
23996 } else {
23997 pi->mphase_cal_phase_id++;
23998 }
23999 break;
24000
24001 case MPHASE_CAL_STATE_PAPDCAL:
24002 if ((pi->radar_percal_mask & 0x2) != 0)
24003 pi->nphy_rxcal_active = true;
24004
24005 if (PHY_IPA(pi)) {
24006 wlc_phy_a4(pi, true);
24007 }
24008 pi->mphase_cal_phase_id++;
24009 break;
24010
24011 case MPHASE_CAL_STATE_RXCAL:
24012 if ((pi->radar_percal_mask & 0x1) != 0)
24013 pi->nphy_rxcal_active = true;
24014 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
24015 (pi->first_cal_after_assoc ||
24016 (pi->cal_type_override ==
24017 PHY_PERICAL_FULL)) ? 2 : 0,
24018 false) == BCME_OK) {
24019 wlc_phy_savecal_nphy(pi);
24020 }
24021
24022 pi->mphase_cal_phase_id++;
24023 break;
24024
24025 case MPHASE_CAL_STATE_RSSICAL:
24026 if ((pi->radar_percal_mask & 0x4) != 0)
24027 pi->nphy_rxcal_active = true;
24028 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
24029 wlc_phy_rssi_cal_nphy(pi);
24030
24031 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24032 wlc_phy_radio205x_vcocal_nphy(pi);
24033 }
24034 restore_tx_gain = true;
24035
24036 if (pi->first_cal_after_assoc) {
24037 pi->mphase_cal_phase_id++;
24038 } else {
24039 wlc_phy_cal_perical_mphase_reset(pi);
24040 }
24041
24042 break;
24043
24044 case MPHASE_CAL_STATE_IDLETSSI:
24045 if ((pi->radar_percal_mask & 0x8) != 0)
24046 pi->nphy_rxcal_active = true;
24047
24048 if (pi->first_cal_after_assoc) {
24049 pi->first_cal_after_assoc = false;
24050 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
24051 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
24052 }
24053
24054 wlc_phy_cal_perical_mphase_reset(pi);
24055 break;
24056
24057 default:
24058 ASSERT(0);
24059 wlc_phy_cal_perical_mphase_reset(pi);
24060 break;
24061 }
24062 }
24063
24064 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24065 if (restore_tx_gain) {
24066 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
24067
24068 wlc_phy_txpwr_index_nphy(pi, 1,
24069 pi->
24070 nphy_cal_orig_pwr_idx
24071 [0], false);
24072 wlc_phy_txpwr_index_nphy(pi, 2,
24073 pi->
24074 nphy_cal_orig_pwr_idx
24075 [1], false);
24076
24077 pi->nphy_txpwrindex[0].index = -1;
24078 pi->nphy_txpwrindex[1].index = -1;
24079 } else {
24080 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
24081 (s8) (pi->
24082 nphy_txpwrindex
24083 [0].
24084 index_internal),
24085 false);
24086 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
24087 (s8) (pi->
24088 nphy_txpwrindex
24089 [1].
24090 index_internal),
24091 false);
24092 }
24093 }
24094 }
24095
24096 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
24097 wlc_phyreg_exit((wlc_phy_t *) pi);
24098 wlapi_enable_mac(pi->sh->physhim);
24099 }
24100
24101 int
24102 wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
24103 bool fullcal, bool mphase)
24104 {
24105 u16 val;
24106 u16 tbl_buf[11];
24107 u8 cal_cnt;
24108 u16 cal_cmd;
24109 u8 num_cals, max_cal_cmds;
24110 u16 core_no, cal_type;
24111 u16 diq_start = 0;
24112 u8 phy_bw;
24113 u16 max_val;
24114 u16 tone_freq;
24115 u16 gain_save[2];
24116 u16 cal_gain[2];
24117 nphy_iqcal_params_t cal_params[2];
24118 u32 tbl_len;
24119 void *tbl_ptr;
24120 bool ladder_updated[2];
24121 u8 mphase_cal_lastphase = 0;
24122 int bcmerror = BCME_OK;
24123 bool phyhang_avoid_state = false;
24124
24125 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
24126 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24127 0x1902,
24128 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24129 0x6407
24130 };
24131
24132 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
24133 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24134 0x3200,
24135 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24136 0x6407
24137 };
24138
24139 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
24140 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24141 0x1202,
24142 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24143 0x4707
24144 };
24145
24146 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
24147 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24148 0x2300,
24149 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24150 0x4707
24151 };
24152
24153 u16 tbl_tx_iqlo_cal_startcoefs[] = {
24154 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24155 0x0000
24156 };
24157
24158 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
24159 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24160 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24161 };
24162
24163 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
24164 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24165 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24166 };
24167
24168 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
24169 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24170 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24171 0x0000
24172 };
24173
24174 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
24175 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24176 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24177 };
24178
24179 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
24180 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24181 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24182 };
24183
24184 wlc_phy_stay_in_carriersearch_nphy(pi, true);
24185
24186 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24187 phyhang_avoid_state = pi->phyhang_avoid;
24188 pi->phyhang_avoid = false;
24189 }
24190
24191 if (CHSPEC_IS40(pi->radio_chanspec)) {
24192 phy_bw = 40;
24193 } else {
24194 phy_bw = 20;
24195 }
24196
24197 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24198
24199 for (core_no = 0; core_no <= 1; core_no++) {
24200 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24201 &cal_params[core_no]);
24202 cal_gain[core_no] = cal_params[core_no].cal_gain;
24203 }
24204
24205 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24206
24207 wlc_phy_txcal_radio_setup_nphy(pi);
24208
24209 wlc_phy_txcal_physetup_nphy(pi);
24210
24211 ladder_updated[0] = ladder_updated[1] = false;
24212 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24213 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24214 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24215
24216 if (phy_bw == 40) {
24217 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
24218 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
24219 } else {
24220 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
24221 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
24222 }
24223 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24224 16, tbl_ptr);
24225
24226 if (phy_bw == 40) {
24227 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
24228 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
24229 } else {
24230 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
24231 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
24232 }
24233 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24234 16, tbl_ptr);
24235 }
24236
24237 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24238 write_phy_reg(pi, 0xc2, 0x8ad9);
24239 } else {
24240 write_phy_reg(pi, 0xc2, 0x8aa9);
24241 }
24242
24243 max_val = 250;
24244 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24245
24246 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24247 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
24248 bcmerror = BCME_OK;
24249 } else {
24250 bcmerror =
24251 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0, false);
24252 }
24253
24254 if (bcmerror == BCME_OK) {
24255
24256 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24257 tbl_ptr = pi->mphase_txcal_bestcoeffs;
24258 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24259 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24260
24261 tbl_len -= 2;
24262 }
24263 } else {
24264 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24265
24266 tbl_ptr = pi->nphy_txiqlocal_bestc;
24267 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24268 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24269
24270 tbl_len -= 2;
24271 }
24272 } else {
24273
24274 fullcal = true;
24275
24276 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24277 tbl_ptr =
24278 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24279 tbl_len =
24280 ARRAY_SIZE
24281 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24282 } else {
24283 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24284 tbl_len =
24285 ARRAY_SIZE
24286 (tbl_tx_iqlo_cal_startcoefs);
24287 }
24288 }
24289 }
24290 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24291 16, tbl_ptr);
24292
24293 if (fullcal) {
24294 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24295 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24296 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
24297 } else {
24298 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24299 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24300 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
24301 }
24302
24303 if (mphase) {
24304 cal_cnt = pi->mphase_txcal_cmdidx;
24305 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds) {
24306 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24307 } else {
24308 num_cals = max_cal_cmds;
24309 }
24310 } else {
24311 cal_cnt = 0;
24312 num_cals = max_cal_cmds;
24313 }
24314
24315 for (; cal_cnt < num_cals; cal_cnt++) {
24316
24317 if (fullcal) {
24318 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24319 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24320 [cal_cnt] :
24321 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24322 } else {
24323 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24324 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[cal_cnt]
24325 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24326 }
24327
24328 core_no = ((cal_cmd & 0x3000) >> 12);
24329 cal_type = ((cal_cmd & 0x0F00) >> 8);
24330
24331 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24332 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24333 PHY_IPA(pi)
24334 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24335 if (!ladder_updated[core_no]) {
24336 wlc_phy_update_txcal_ladder_nphy(pi,
24337 core_no);
24338 ladder_updated[core_no] = true;
24339 }
24340 }
24341
24342 val =
24343 (cal_params[core_no].
24344 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24345 write_phy_reg(pi, 0xc1, val);
24346
24347 if ((cal_type == 1) || (cal_type == 3)
24348 || (cal_type == 4)) {
24349
24350 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24351 1, 69 + core_no, 16,
24352 tbl_buf);
24353
24354 diq_start = tbl_buf[0];
24355
24356 tbl_buf[0] = 0;
24357 wlc_phy_table_write_nphy(pi,
24358 NPHY_TBL_ID_IQLOCAL, 1,
24359 69 + core_no, 16,
24360 tbl_buf);
24361 }
24362
24363 write_phy_reg(pi, 0xc0, cal_cmd);
24364
24365 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24366 20000);
24367 ASSERT((read_phy_reg(pi, 0xc0) & 0xc000) == 0);
24368
24369 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24370 tbl_len, 96, 16, tbl_buf);
24371 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24372 tbl_len, 64, 16, tbl_buf);
24373
24374 if ((cal_type == 1) || (cal_type == 3)
24375 || (cal_type == 4)) {
24376
24377 tbl_buf[0] = diq_start;
24378
24379 }
24380
24381 }
24382
24383 if (mphase) {
24384 pi->mphase_txcal_cmdidx = num_cals;
24385 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24386 pi->mphase_txcal_cmdidx = 0;
24387 }
24388
24389 mphase_cal_lastphase =
24390 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24391 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24392
24393 if (!mphase
24394 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24395
24396 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24397 16, tbl_buf);
24398 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24399 16, tbl_buf);
24400
24401 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24402
24403 tbl_buf[0] = 0;
24404 tbl_buf[1] = 0;
24405 tbl_buf[2] = 0;
24406 tbl_buf[3] = 0;
24407
24408 }
24409 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24410 16, tbl_buf);
24411
24412 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24413 16, tbl_buf);
24414 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24415 16, tbl_buf);
24416
24417 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24418 16, tbl_buf);
24419
24420 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
24421 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24422
24423 tbl_len -= 2;
24424 }
24425 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24426 tbl_len, 96, 16,
24427 pi->nphy_txiqlocal_bestc);
24428
24429 pi->nphy_txiqlocal_coeffsvalid = true;
24430 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24431 } else {
24432 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
24433 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24434
24435 tbl_len -= 2;
24436 }
24437 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24438 tbl_len, 96, 16,
24439 pi->mphase_txcal_bestcoeffs);
24440 }
24441
24442 wlc_phy_stopplayback_nphy(pi);
24443
24444 write_phy_reg(pi, 0xc2, 0x0000);
24445
24446 }
24447
24448 wlc_phy_txcal_phycleanup_nphy(pi);
24449
24450 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24451 gain_save);
24452
24453 wlc_phy_txcal_radio_cleanup_nphy(pi);
24454
24455 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24456 if (!mphase
24457 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24458 wlc_phy_tx_iq_war_nphy(pi);
24459 }
24460
24461 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24462 pi->phyhang_avoid = phyhang_avoid_state;
24463 }
24464
24465 wlc_phy_stay_in_carriersearch_nphy(pi, false);
24466
24467 return bcmerror;
24468 }
24469
24470 static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi)
24471 {
24472 u16 tbl_buf[7];
24473
24474 ASSERT(NREV_LT(pi->pubpi.phy_rev, 2));
24475
24476 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24477 (pi->nphy_txiqlocal_coeffsvalid)) {
24478 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24479 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
24480
24481 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24482 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24483 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24484 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24485
24486 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24487 16, pi->nphy_txiqlocal_bestc);
24488
24489 tbl_buf[0] = 0;
24490 tbl_buf[1] = 0;
24491 tbl_buf[2] = 0;
24492 tbl_buf[3] = 0;
24493 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24494 16, tbl_buf);
24495
24496 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24497 16,
24498 &pi->nphy_txiqlocal_bestc[5]);
24499
24500 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24501 16,
24502 &pi->nphy_txiqlocal_bestc[5]);
24503 }
24504 }
24505 }
24506
24507 static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi)
24508 {
24509 nphy_iq_comp_t tx_comp;
24510
24511 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, (void *)&tx_comp);
24512
24513 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24514 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24515 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24516 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24517 }
24518
24519 void
24520 wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, u8 write, nphy_iq_comp_t *pcomp)
24521 {
24522 if (write) {
24523 write_phy_reg(pi, 0x9a, pcomp->a0);
24524 write_phy_reg(pi, 0x9b, pcomp->b0);
24525 write_phy_reg(pi, 0x9c, pcomp->a1);
24526 write_phy_reg(pi, 0x9d, pcomp->b1);
24527 } else {
24528 pcomp->a0 = read_phy_reg(pi, 0x9a);
24529 pcomp->b0 = read_phy_reg(pi, 0x9b);
24530 pcomp->a1 = read_phy_reg(pi, 0x9c);
24531 pcomp->b1 = read_phy_reg(pi, 0x9d);
24532 }
24533 }
24534
24535 void
24536 wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, u16 num_samps,
24537 u8 wait_time, u8 wait_for_crs)
24538 {
24539 u8 core;
24540
24541 write_phy_reg(pi, 0x12b, num_samps);
24542 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24543 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24544 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24545
24546 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24547
24548 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24549 10000);
24550 ASSERT((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0);
24551
24552 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24553 ASSERT(pi->pubpi.phy_corenum <= PHY_CORE_MAX);
24554 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24555 est[core].i_pwr =
24556 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24557 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24558 est[core].q_pwr =
24559 (read_phy_reg(pi, NPHY_IqestqpwrAccHi(core)) << 16)
24560 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24561 est[core].iq_prod =
24562 (read_phy_reg(pi, NPHY_IqestIqAccHi(core)) << 16) |
24563 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24564 }
24565 }
24566 }
24567
24568 #define CAL_RETRY_CNT 2
24569 static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, u8 core_mask)
24570 {
24571 u8 curr_core;
24572 phy_iq_est_t est[PHY_CORE_MAX];
24573 nphy_iq_comp_t old_comp, new_comp;
24574 s32 iq = 0;
24575 u32 ii = 0, qq = 0;
24576 s16 iq_nbits, qq_nbits, brsh, arsh;
24577 s32 a, b, temp;
24578 int bcmerror = BCME_OK;
24579 uint cal_retry = 0;
24580
24581 if (core_mask == 0x0)
24582 return;
24583
24584 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24585 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24586 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24587
24588 cal_try:
24589 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24590
24591 new_comp = old_comp;
24592
24593 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24594
24595 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24596 iq = est[curr_core].iq_prod;
24597 ii = est[curr_core].i_pwr;
24598 qq = est[curr_core].q_pwr;
24599 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24600 iq = est[curr_core].iq_prod;
24601 ii = est[curr_core].i_pwr;
24602 qq = est[curr_core].q_pwr;
24603 } else {
24604 continue;
24605 }
24606
24607 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24608 bcmerror = BCME_ERROR;
24609 break;
24610 }
24611
24612 iq_nbits = wlc_phy_nbits(iq);
24613 qq_nbits = wlc_phy_nbits(qq);
24614
24615 arsh = 10 - (30 - iq_nbits);
24616 if (arsh >= 0) {
24617 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
24618 temp = (s32) (ii >> arsh);
24619 if (temp == 0) {
24620 bcmerror = BCME_ERROR;
24621 break;
24622 }
24623 } else {
24624 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
24625 temp = (s32) (ii << -arsh);
24626 if (temp == 0) {
24627 bcmerror = BCME_ERROR;
24628 break;
24629 }
24630 }
24631
24632 a /= temp;
24633
24634 brsh = qq_nbits - 31 + 20;
24635 if (brsh >= 0) {
24636 b = (qq << (31 - qq_nbits));
24637 temp = (s32) (ii >> brsh);
24638 if (temp == 0) {
24639 bcmerror = BCME_ERROR;
24640 break;
24641 }
24642 } else {
24643 b = (qq << (31 - qq_nbits));
24644 temp = (s32) (ii << -brsh);
24645 if (temp == 0) {
24646 bcmerror = BCME_ERROR;
24647 break;
24648 }
24649 }
24650 b /= temp;
24651 b -= a * a;
24652 b = (s32) wlc_phy_sqrt_int((u32) b);
24653 b -= (1 << 10);
24654
24655 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24656 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24657 new_comp.a0 = (s16) a & 0x3ff;
24658 new_comp.b0 = (s16) b & 0x3ff;
24659 } else {
24660
24661 new_comp.a0 = (s16) b & 0x3ff;
24662 new_comp.b0 = (s16) a & 0x3ff;
24663 }
24664 }
24665 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24666 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24667 new_comp.a1 = (s16) a & 0x3ff;
24668 new_comp.b1 = (s16) b & 0x3ff;
24669 } else {
24670
24671 new_comp.a1 = (s16) b & 0x3ff;
24672 new_comp.b1 = (s16) a & 0x3ff;
24673 }
24674 }
24675 }
24676
24677 if (bcmerror != BCME_OK) {
24678 printk("%s: Failed, cnt = %d\n", __func__, cal_retry);
24679
24680 if (cal_retry < CAL_RETRY_CNT) {
24681 cal_retry++;
24682 goto cal_try;
24683 }
24684
24685 new_comp = old_comp;
24686 } else if (cal_retry > 0) {
24687 }
24688
24689 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24690 }
24691
24692 static void wlc_phy_rxcal_radio_setup_nphy(phy_info_t *pi, u8 rx_core)
24693 {
24694 u16 offtune_val;
24695 u16 bias_g = 0;
24696 u16 bias_a = 0;
24697
24698 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24699 if (rx_core == PHY_CORE_0) {
24700 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24701 pi->tx_rx_cal_radio_saveregs[0] =
24702 read_radio_reg(pi,
24703 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24704 pi->tx_rx_cal_radio_saveregs[1] =
24705 read_radio_reg(pi,
24706 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24707
24708 write_radio_reg(pi,
24709 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24710 0x3);
24711 write_radio_reg(pi,
24712 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24713 0xaf);
24714
24715 } else {
24716 pi->tx_rx_cal_radio_saveregs[0] =
24717 read_radio_reg(pi,
24718 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24719 pi->tx_rx_cal_radio_saveregs[1] =
24720 read_radio_reg(pi,
24721 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24722
24723 write_radio_reg(pi,
24724 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24725 0x3);
24726 write_radio_reg(pi,
24727 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24728 0x7f);
24729 }
24730
24731 } else {
24732 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24733 pi->tx_rx_cal_radio_saveregs[0] =
24734 read_radio_reg(pi,
24735 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24736 pi->tx_rx_cal_radio_saveregs[1] =
24737 read_radio_reg(pi,
24738 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24739
24740 write_radio_reg(pi,
24741 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24742 0x3);
24743 write_radio_reg(pi,
24744 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24745 0xaf);
24746
24747 } else {
24748 pi->tx_rx_cal_radio_saveregs[0] =
24749 read_radio_reg(pi,
24750 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24751 pi->tx_rx_cal_radio_saveregs[1] =
24752 read_radio_reg(pi,
24753 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24754
24755 write_radio_reg(pi,
24756 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24757 0x3);
24758 write_radio_reg(pi,
24759 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24760 0x7f);
24761 }
24762 }
24763
24764 } else {
24765 if (rx_core == PHY_CORE_0) {
24766 pi->tx_rx_cal_radio_saveregs[0] =
24767 read_radio_reg(pi,
24768 RADIO_2056_TX_RXIQCAL_TXMUX |
24769 RADIO_2056_TX1);
24770 pi->tx_rx_cal_radio_saveregs[1] =
24771 read_radio_reg(pi,
24772 RADIO_2056_RX_RXIQCAL_RXMUX |
24773 RADIO_2056_RX0);
24774
24775 if (pi->pubpi.radiorev >= 5) {
24776 pi->tx_rx_cal_radio_saveregs[2] =
24777 read_radio_reg(pi,
24778 RADIO_2056_RX_RXSPARE2 |
24779 RADIO_2056_RX0);
24780 pi->tx_rx_cal_radio_saveregs[3] =
24781 read_radio_reg(pi,
24782 RADIO_2056_TX_TXSPARE2 |
24783 RADIO_2056_TX1);
24784 }
24785
24786 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24787
24788 if (pi->pubpi.radiorev >= 5) {
24789 pi->tx_rx_cal_radio_saveregs[4] =
24790 read_radio_reg(pi,
24791 RADIO_2056_RX_LNAA_MASTER
24792 | RADIO_2056_RX0);
24793
24794 write_radio_reg(pi,
24795 RADIO_2056_RX_LNAA_MASTER
24796 | RADIO_2056_RX0, 0x40);
24797
24798 write_radio_reg(pi,
24799 RADIO_2056_TX_TXSPARE2 |
24800 RADIO_2056_TX1, bias_a);
24801
24802 write_radio_reg(pi,
24803 RADIO_2056_RX_RXSPARE2 |
24804 RADIO_2056_RX0, bias_a);
24805 } else {
24806 pi->tx_rx_cal_radio_saveregs[4] =
24807 read_radio_reg(pi,
24808 RADIO_2056_RX_LNAA_TUNE
24809 | RADIO_2056_RX0);
24810
24811 offtune_val =
24812 (pi->
24813 tx_rx_cal_radio_saveregs[2] & 0xF0)
24814 >> 8;
24815 offtune_val =
24816 (offtune_val <= 0x7) ? 0xF : 0;
24817
24818 mod_radio_reg(pi,
24819 RADIO_2056_RX_LNAA_TUNE |
24820 RADIO_2056_RX0, 0xF0,
24821 (offtune_val << 8));
24822 }
24823
24824 write_radio_reg(pi,
24825 RADIO_2056_TX_RXIQCAL_TXMUX |
24826 RADIO_2056_TX1, 0x9);
24827 write_radio_reg(pi,
24828 RADIO_2056_RX_RXIQCAL_RXMUX |
24829 RADIO_2056_RX0, 0x9);
24830 } else {
24831 if (pi->pubpi.radiorev >= 5) {
24832 pi->tx_rx_cal_radio_saveregs[4] =
24833 read_radio_reg(pi,
24834 RADIO_2056_RX_LNAG_MASTER
24835 | RADIO_2056_RX0);
24836
24837 write_radio_reg(pi,
24838 RADIO_2056_RX_LNAG_MASTER
24839 | RADIO_2056_RX0, 0x40);
24840
24841 write_radio_reg(pi,
24842 RADIO_2056_TX_TXSPARE2 |
24843 RADIO_2056_TX1, bias_g);
24844
24845 write_radio_reg(pi,
24846 RADIO_2056_RX_RXSPARE2 |
24847 RADIO_2056_RX0, bias_g);
24848
24849 } else {
24850 pi->tx_rx_cal_radio_saveregs[4] =
24851 read_radio_reg(pi,
24852 RADIO_2056_RX_LNAG_TUNE
24853 | RADIO_2056_RX0);
24854
24855 offtune_val =
24856 (pi->
24857 tx_rx_cal_radio_saveregs[2] & 0xF0)
24858 >> 8;
24859 offtune_val =
24860 (offtune_val <= 0x7) ? 0xF : 0;
24861
24862 mod_radio_reg(pi,
24863 RADIO_2056_RX_LNAG_TUNE |
24864 RADIO_2056_RX0, 0xF0,
24865 (offtune_val << 8));
24866 }
24867
24868 write_radio_reg(pi,
24869 RADIO_2056_TX_RXIQCAL_TXMUX |
24870 RADIO_2056_TX1, 0x6);
24871 write_radio_reg(pi,
24872 RADIO_2056_RX_RXIQCAL_RXMUX |
24873 RADIO_2056_RX0, 0x6);
24874 }
24875
24876 } else {
24877 pi->tx_rx_cal_radio_saveregs[0] =
24878 read_radio_reg(pi,
24879 RADIO_2056_TX_RXIQCAL_TXMUX |
24880 RADIO_2056_TX0);
24881 pi->tx_rx_cal_radio_saveregs[1] =
24882 read_radio_reg(pi,
24883 RADIO_2056_RX_RXIQCAL_RXMUX |
24884 RADIO_2056_RX1);
24885
24886 if (pi->pubpi.radiorev >= 5) {
24887 pi->tx_rx_cal_radio_saveregs[2] =
24888 read_radio_reg(pi,
24889 RADIO_2056_RX_RXSPARE2 |
24890 RADIO_2056_RX1);
24891 pi->tx_rx_cal_radio_saveregs[3] =
24892 read_radio_reg(pi,
24893 RADIO_2056_TX_TXSPARE2 |
24894 RADIO_2056_TX0);
24895 }
24896
24897 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24898
24899 if (pi->pubpi.radiorev >= 5) {
24900 pi->tx_rx_cal_radio_saveregs[4] =
24901 read_radio_reg(pi,
24902 RADIO_2056_RX_LNAA_MASTER
24903 | RADIO_2056_RX1);
24904
24905 write_radio_reg(pi,
24906 RADIO_2056_RX_LNAA_MASTER
24907 | RADIO_2056_RX1, 0x40);
24908
24909 write_radio_reg(pi,
24910 RADIO_2056_TX_TXSPARE2 |
24911 RADIO_2056_TX0, bias_a);
24912
24913 write_radio_reg(pi,
24914 RADIO_2056_RX_RXSPARE2 |
24915 RADIO_2056_RX1, bias_a);
24916 } else {
24917 pi->tx_rx_cal_radio_saveregs[4] =
24918 read_radio_reg(pi,
24919 RADIO_2056_RX_LNAA_TUNE
24920 | RADIO_2056_RX1);
24921
24922 offtune_val =
24923 (pi->
24924 tx_rx_cal_radio_saveregs[2] & 0xF0)
24925 >> 8;
24926 offtune_val =
24927 (offtune_val <= 0x7) ? 0xF : 0;
24928
24929 mod_radio_reg(pi,
24930 RADIO_2056_RX_LNAA_TUNE |
24931 RADIO_2056_RX1, 0xF0,
24932 (offtune_val << 8));
24933 }
24934
24935 write_radio_reg(pi,
24936 RADIO_2056_TX_RXIQCAL_TXMUX |
24937 RADIO_2056_TX0, 0x9);
24938 write_radio_reg(pi,
24939 RADIO_2056_RX_RXIQCAL_RXMUX |
24940 RADIO_2056_RX1, 0x9);
24941 } else {
24942 if (pi->pubpi.radiorev >= 5) {
24943 pi->tx_rx_cal_radio_saveregs[4] =
24944 read_radio_reg(pi,
24945 RADIO_2056_RX_LNAG_MASTER
24946 | RADIO_2056_RX1);
24947
24948 write_radio_reg(pi,
24949 RADIO_2056_RX_LNAG_MASTER
24950 | RADIO_2056_RX1, 0x40);
24951
24952 write_radio_reg(pi,
24953 RADIO_2056_TX_TXSPARE2 |
24954 RADIO_2056_TX0, bias_g);
24955
24956 write_radio_reg(pi,
24957 RADIO_2056_RX_RXSPARE2 |
24958 RADIO_2056_RX1, bias_g);
24959 } else {
24960 pi->tx_rx_cal_radio_saveregs[4] =
24961 read_radio_reg(pi,
24962 RADIO_2056_RX_LNAG_TUNE
24963 | RADIO_2056_RX1);
24964
24965 offtune_val =
24966 (pi->
24967 tx_rx_cal_radio_saveregs[2] & 0xF0)
24968 >> 8;
24969 offtune_val =
24970 (offtune_val <= 0x7) ? 0xF : 0;
24971
24972 mod_radio_reg(pi,
24973 RADIO_2056_RX_LNAG_TUNE |
24974 RADIO_2056_RX1, 0xF0,
24975 (offtune_val << 8));
24976 }
24977
24978 write_radio_reg(pi,
24979 RADIO_2056_TX_RXIQCAL_TXMUX |
24980 RADIO_2056_TX0, 0x6);
24981 write_radio_reg(pi,
24982 RADIO_2056_RX_RXIQCAL_RXMUX |
24983 RADIO_2056_RX1, 0x6);
24984 }
24985 }
24986 }
24987 }
24988
24989 static void wlc_phy_rxcal_radio_cleanup_nphy(phy_info_t *pi, u8 rx_core)
24990 {
24991 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24992 if (rx_core == PHY_CORE_0) {
24993 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24994 write_radio_reg(pi,
24995 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24996 pi->
24997 tx_rx_cal_radio_saveregs[0]);
24998 write_radio_reg(pi,
24999 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
25000 pi->
25001 tx_rx_cal_radio_saveregs[1]);
25002
25003 } else {
25004 write_radio_reg(pi,
25005 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
25006 pi->
25007 tx_rx_cal_radio_saveregs[0]);
25008 write_radio_reg(pi,
25009 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
25010 pi->
25011 tx_rx_cal_radio_saveregs[1]);
25012 }
25013
25014 } else {
25015 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25016 write_radio_reg(pi,
25017 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
25018 pi->
25019 tx_rx_cal_radio_saveregs[0]);
25020 write_radio_reg(pi,
25021 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
25022 pi->
25023 tx_rx_cal_radio_saveregs[1]);
25024
25025 } else {
25026 write_radio_reg(pi,
25027 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
25028 pi->
25029 tx_rx_cal_radio_saveregs[0]);
25030 write_radio_reg(pi,
25031 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
25032 pi->
25033 tx_rx_cal_radio_saveregs[1]);
25034 }
25035 }
25036
25037 } else {
25038 if (rx_core == PHY_CORE_0) {
25039 write_radio_reg(pi,
25040 RADIO_2056_TX_RXIQCAL_TXMUX |
25041 RADIO_2056_TX1,
25042 pi->tx_rx_cal_radio_saveregs[0]);
25043
25044 write_radio_reg(pi,
25045 RADIO_2056_RX_RXIQCAL_RXMUX |
25046 RADIO_2056_RX0,
25047 pi->tx_rx_cal_radio_saveregs[1]);
25048
25049 if (pi->pubpi.radiorev >= 5) {
25050 write_radio_reg(pi,
25051 RADIO_2056_RX_RXSPARE2 |
25052 RADIO_2056_RX0,
25053 pi->
25054 tx_rx_cal_radio_saveregs[2]);
25055
25056 write_radio_reg(pi,
25057 RADIO_2056_TX_TXSPARE2 |
25058 RADIO_2056_TX1,
25059 pi->
25060 tx_rx_cal_radio_saveregs[3]);
25061 }
25062
25063 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25064 if (pi->pubpi.radiorev >= 5) {
25065 write_radio_reg(pi,
25066 RADIO_2056_RX_LNAA_MASTER
25067 | RADIO_2056_RX0,
25068 pi->
25069 tx_rx_cal_radio_saveregs
25070 [4]);
25071 } else {
25072 write_radio_reg(pi,
25073 RADIO_2056_RX_LNAA_TUNE
25074 | RADIO_2056_RX0,
25075 pi->
25076 tx_rx_cal_radio_saveregs
25077 [4]);
25078 }
25079 } else {
25080 if (pi->pubpi.radiorev >= 5) {
25081 write_radio_reg(pi,
25082 RADIO_2056_RX_LNAG_MASTER
25083 | RADIO_2056_RX0,
25084 pi->
25085 tx_rx_cal_radio_saveregs
25086 [4]);
25087 } else {
25088 write_radio_reg(pi,
25089 RADIO_2056_RX_LNAG_TUNE
25090 | RADIO_2056_RX0,
25091 pi->
25092 tx_rx_cal_radio_saveregs
25093 [4]);
25094 }
25095 }
25096
25097 } else {
25098 write_radio_reg(pi,
25099 RADIO_2056_TX_RXIQCAL_TXMUX |
25100 RADIO_2056_TX0,
25101 pi->tx_rx_cal_radio_saveregs[0]);
25102
25103 write_radio_reg(pi,
25104 RADIO_2056_RX_RXIQCAL_RXMUX |
25105 RADIO_2056_RX1,
25106 pi->tx_rx_cal_radio_saveregs[1]);
25107
25108 if (pi->pubpi.radiorev >= 5) {
25109 write_radio_reg(pi,
25110 RADIO_2056_RX_RXSPARE2 |
25111 RADIO_2056_RX1,
25112 pi->
25113 tx_rx_cal_radio_saveregs[2]);
25114
25115 write_radio_reg(pi,
25116 RADIO_2056_TX_TXSPARE2 |
25117 RADIO_2056_TX0,
25118 pi->
25119 tx_rx_cal_radio_saveregs[3]);
25120 }
25121
25122 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25123 if (pi->pubpi.radiorev >= 5) {
25124 write_radio_reg(pi,
25125 RADIO_2056_RX_LNAA_MASTER
25126 | RADIO_2056_RX1,
25127 pi->
25128 tx_rx_cal_radio_saveregs
25129 [4]);
25130 } else {
25131 write_radio_reg(pi,
25132 RADIO_2056_RX_LNAA_TUNE
25133 | RADIO_2056_RX1,
25134 pi->
25135 tx_rx_cal_radio_saveregs
25136 [4]);
25137 }
25138 } else {
25139 if (pi->pubpi.radiorev >= 5) {
25140 write_radio_reg(pi,
25141 RADIO_2056_RX_LNAG_MASTER
25142 | RADIO_2056_RX1,
25143 pi->
25144 tx_rx_cal_radio_saveregs
25145 [4]);
25146 } else {
25147 write_radio_reg(pi,
25148 RADIO_2056_RX_LNAG_TUNE
25149 | RADIO_2056_RX1,
25150 pi->
25151 tx_rx_cal_radio_saveregs
25152 [4]);
25153 }
25154 }
25155 }
25156 }
25157 }
25158
25159 static void wlc_phy_rxcal_physetup_nphy(phy_info_t *pi, u8 rx_core)
25160 {
25161 u8 tx_core;
25162 u16 rx_antval, tx_antval;
25163
25164 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25165
25166 tx_core = rx_core;
25167 } else {
25168 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25169 }
25170
25171 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25172 pi->tx_rx_cal_phy_saveregs[1] =
25173 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25174 pi->tx_rx_cal_phy_saveregs[2] =
25175 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25176 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25177 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25178 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25179 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25180 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25181 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25182 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25183 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25184 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25185 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25186 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25187 }
25188
25189 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25190 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25191 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25192 0x29b, (0x1 << 0), (0) << 0);
25193
25194 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25195 0x29b, (0x1 << 0), (0) << 0);
25196
25197 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25198
25199 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25200
25201 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25202
25203 } else {
25204
25205 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25206 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25207 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25208 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25209 }
25210
25211 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25212 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25213 (0x1 << 2), (0x1 << 2));
25214 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25215 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25216 (0x1 << 0) | (0x1 << 1), 0);
25217 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25218 0x8f : 0xa5,
25219 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25220 }
25221
25222 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25223 RADIO_MIMO_CORESEL_CORE1 |
25224 RADIO_MIMO_CORESEL_CORE2);
25225
25226 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25227 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25228 0, 0, 0,
25229 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25230 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25231 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25232 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25233 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25234 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25235 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25236 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25237 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25238 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25239 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25240 if (CHSPEC_IS40(pi->radio_chanspec)) {
25241 wlc_phy_rfctrl_override_nphy_rev7(pi,
25242 (0x1 << 7),
25243 2, 0, 0,
25244 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25245 } else {
25246 wlc_phy_rfctrl_override_nphy_rev7(pi,
25247 (0x1 << 7),
25248 0, 0, 0,
25249 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25250 }
25251 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25252 0, 0, 0,
25253 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25254 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25255 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25256 } else {
25257 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25258 }
25259
25260 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25261
25262 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25263
25264 wlc_phy_rfctrlintc_override_nphy(pi,
25265 NPHY_RfctrlIntc_override_TRSW,
25266 0x1, rx_core + 1);
25267 } else {
25268
25269 if (rx_core == PHY_CORE_0) {
25270 rx_antval = 0x1;
25271 tx_antval = 0x8;
25272 } else {
25273 rx_antval = 0x4;
25274 tx_antval = 0x2;
25275 }
25276
25277 wlc_phy_rfctrlintc_override_nphy(pi,
25278 NPHY_RfctrlIntc_override_TRSW,
25279 rx_antval, rx_core + 1);
25280 wlc_phy_rfctrlintc_override_nphy(pi,
25281 NPHY_RfctrlIntc_override_TRSW,
25282 tx_antval, tx_core + 1);
25283 }
25284 }
25285
25286 static void wlc_phy_rxcal_phycleanup_nphy(phy_info_t *pi, u8 rx_core)
25287 {
25288
25289 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25290 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25291 pi->tx_rx_cal_phy_saveregs[1]);
25292 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25293 pi->tx_rx_cal_phy_saveregs[2]);
25294 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25295 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25296
25297 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25298 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25299 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25300 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25301 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25302 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25303 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25304 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25305 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25306 }
25307
25308 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25309 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25310 }
25311
25312 static void
25313 wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rx_core,
25314 u16 *rxgain, u8 cal_type)
25315 {
25316
25317 u16 num_samps;
25318 phy_iq_est_t est[PHY_CORE_MAX];
25319 u8 tx_core;
25320 nphy_iq_comp_t save_comp, zero_comp;
25321 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0, thresh_pwr =
25322 10000;
25323 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
25324 bool gainctrl_done = false;
25325 u8 mix_tia_gain = 3;
25326 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25327 s8 curr_gaintbl_index = 3;
25328 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
25329 nphy_ipa_txrxgain_t *nphy_rxcal_gaintbl;
25330 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
25331 int fine_gain_idx;
25332 s8 txpwrindex;
25333 u16 nphy_rxcal_txgain[2];
25334
25335 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25336
25337 tx_core = rx_core;
25338 } else {
25339 tx_core = 1 - rx_core;
25340 }
25341
25342 num_samps = 1024;
25343 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25344
25345 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25346 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25347 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25348
25349 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25350 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25351 mix_tia_gain = 3;
25352 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25353 mix_tia_gain = 4;
25354 } else {
25355 mix_tia_gain = 6;
25356 }
25357 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25358 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25359 } else {
25360 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25361 }
25362 } else {
25363 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25364 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25365 } else {
25366 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25367 }
25368 }
25369
25370 do {
25371
25372 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25373 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25374 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25375 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25376 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25377 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25378 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25379
25380 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25381 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25382 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25383 ((lpf_biq1 << 12) |
25384 (lpf_biq0 << 8) |
25385 (mix_tia_gain <<
25386 4) | (lna2 << 2)
25387 | lna1), 0x3, 0);
25388 } else {
25389 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25390 ((hpvga << 12) |
25391 (lpf_biq1 << 10) |
25392 (lpf_biq0 << 8) |
25393 (mix_tia_gain << 4) |
25394 (lna2 << 2) | lna1), 0x3,
25395 0);
25396 }
25397
25398 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25399
25400 if (txpwrindex == -1) {
25401 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25402 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25403 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25404 2, 0x110, 16,
25405 nphy_rxcal_txgain);
25406 } else {
25407 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25408 false);
25409 }
25410
25411 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25412 NPHY_RXCAL_TONEFREQ_40MHz :
25413 NPHY_RXCAL_TONEFREQ_20MHz,
25414 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
25415
25416 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25417 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25418 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25419 curr_pwr = i_pwr + q_pwr;
25420
25421 switch (gainctrl_dirn) {
25422 case NPHY_RXCAL_GAIN_INIT:
25423 if (curr_pwr > thresh_pwr) {
25424 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25425 prev_gaintbl_index = curr_gaintbl_index;
25426 curr_gaintbl_index--;
25427 } else {
25428 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25429 prev_gaintbl_index = curr_gaintbl_index;
25430 curr_gaintbl_index++;
25431 }
25432 break;
25433
25434 case NPHY_RXCAL_GAIN_UP:
25435 if (curr_pwr > thresh_pwr) {
25436 gainctrl_done = true;
25437 optim_pwr = prev_pwr;
25438 optim_gaintbl_index = prev_gaintbl_index;
25439 } else {
25440 prev_gaintbl_index = curr_gaintbl_index;
25441 curr_gaintbl_index++;
25442 }
25443 break;
25444
25445 case NPHY_RXCAL_GAIN_DOWN:
25446 if (curr_pwr > thresh_pwr) {
25447 prev_gaintbl_index = curr_gaintbl_index;
25448 curr_gaintbl_index--;
25449 } else {
25450 gainctrl_done = true;
25451 optim_pwr = curr_pwr;
25452 optim_gaintbl_index = curr_gaintbl_index;
25453 }
25454 break;
25455
25456 default:
25457 ASSERT(0);
25458 }
25459
25460 if ((curr_gaintbl_index < 0) ||
25461 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
25462 gainctrl_done = true;
25463 optim_pwr = curr_pwr;
25464 optim_gaintbl_index = prev_gaintbl_index;
25465 } else {
25466 prev_pwr = curr_pwr;
25467 }
25468
25469 wlc_phy_stopplayback_nphy(pi);
25470 } while (!gainctrl_done);
25471
25472 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25473 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25474 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25475 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25476 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25477 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25478
25479 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25480 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25481
25482 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25483 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25484
25485 if (fine_gain_idx + (int)lpf_biq0 > 10) {
25486 lpf_biq1 = 10 - lpf_biq0;
25487 } else {
25488 lpf_biq1 = (u16) max(fine_gain_idx, 0);
25489 }
25490 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25491 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25492 ((lpf_biq1 << 12) |
25493 (lpf_biq0 << 8) |
25494 (mix_tia_gain << 4) |
25495 (lna2 << 2) | lna1), 0x3,
25496 0);
25497 } else {
25498 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
25499 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25500 ((hpvga << 12) | (lpf_biq1 << 10) |
25501 (lpf_biq0 << 8) | (mix_tia_gain <<
25502 4) | (lna2 <<
25503 2) |
25504 lna1), 0x3, 0);
25505
25506 }
25507
25508 if (rxgain != NULL) {
25509 *rxgain++ = lna1;
25510 *rxgain++ = lna2;
25511 *rxgain++ = mix_tia_gain;
25512 *rxgain++ = lpf_biq0;
25513 *rxgain++ = lpf_biq1;
25514 *rxgain = hpvga;
25515 }
25516
25517 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25518 }
25519
25520 static void
25521 wlc_phy_rxcal_gainctrl_nphy(phy_info_t *pi, u8 rx_core, u16 *rxgain,
25522 u8 cal_type)
25523 {
25524 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25525 }
25526
25527 static u8
25528 wlc_phy_rc_sweep_nphy(phy_info_t *pi, u8 core_idx, u8 loopback_type)
25529 {
25530 u32 target_bws[2] = { 9500, 21000 };
25531 u32 ref_tones[2] = { 3000, 6000 };
25532 u32 target_bw, ref_tone;
25533
25534 u32 target_pwr_ratios[2] = { 28606, 18468 };
25535 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
25536
25537 u16 start_rccal_ovr_val = 128;
25538 u16 txlpf_rccal_lpc_ovr_val = 128;
25539 u16 rxlpf_rccal_hpc_ovr_val = 159;
25540
25541 u16 orig_txlpf_rccal_lpc_ovr_val;
25542 u16 orig_rxlpf_rccal_hpc_ovr_val;
25543 u16 radio_addr_offset_rx;
25544 u16 radio_addr_offset_tx;
25545 u16 orig_dcBypass;
25546 u16 orig_RxStrnFilt40Num[6];
25547 u16 orig_RxStrnFilt40Den[4];
25548 u16 orig_rfctrloverride[2];
25549 u16 orig_rfctrlauxreg[2];
25550 u16 orig_rfctrlrssiothers;
25551 u16 tx_lpf_bw = 4;
25552
25553 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25554 u16 lpf_hpc = 7, hpvga_hpc = 7;
25555
25556 s8 rccal_stepsize;
25557 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
25558 u32 ref_iq_vals = 0, target_iq_vals = 0;
25559 u16 num_samps, log_num_samps = 10;
25560 phy_iq_est_t est[PHY_CORE_MAX];
25561
25562 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25563 return 0;
25564 }
25565
25566 num_samps = (1 << log_num_samps);
25567
25568 if (CHSPEC_IS40(pi->radio_chanspec)) {
25569 target_bw = target_bws[1];
25570 target_pwr_ratio = target_pwr_ratios[1];
25571 ref_tone = ref_tones[1];
25572 rx_lpf_bw = rx_lpf_bws[1];
25573 } else {
25574 target_bw = target_bws[0];
25575 target_pwr_ratio = target_pwr_ratios[0];
25576 ref_tone = ref_tones[0];
25577 rx_lpf_bw = rx_lpf_bws[0];
25578 }
25579
25580 if (core_idx == 0) {
25581 radio_addr_offset_rx = RADIO_2056_RX0;
25582 radio_addr_offset_tx =
25583 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25584 } else {
25585 radio_addr_offset_rx = RADIO_2056_RX1;
25586 radio_addr_offset_tx =
25587 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25588 }
25589
25590 orig_txlpf_rccal_lpc_ovr_val =
25591 read_radio_reg(pi,
25592 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25593 orig_rxlpf_rccal_hpc_ovr_val =
25594 read_radio_reg(pi,
25595 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25596 radio_addr_offset_rx));
25597
25598 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25599
25600 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25601 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25602 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25603 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25604 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25605 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25606 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25607 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25608 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25609 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25610
25611 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25612 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25613 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25614 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25615 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25616
25617 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25618 txlpf_rccal_lpc_ovr_val);
25619
25620 write_radio_reg(pi,
25621 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25622 rxlpf_rccal_hpc_ovr_val);
25623
25624 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25625
25626 write_phy_reg(pi, 0x267, 0x02d4);
25627 write_phy_reg(pi, 0x268, 0x0000);
25628 write_phy_reg(pi, 0x269, 0x0000);
25629 write_phy_reg(pi, 0x26a, 0x0000);
25630 write_phy_reg(pi, 0x26b, 0x0000);
25631 write_phy_reg(pi, 0x26c, 0x02d4);
25632 write_phy_reg(pi, 0x26d, 0x0000);
25633 write_phy_reg(pi, 0x26e, 0x0000);
25634 write_phy_reg(pi, 0x26f, 0x0000);
25635 write_phy_reg(pi, 0x270, 0x0000);
25636
25637 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25638 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25639 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25640 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25641
25642 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25643 (0x7 << 10), (tx_lpf_bw << 10));
25644 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25645 (0x7 << 0), (hpvga_hpc << 0));
25646 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25647 (0x7 << 4), (lpf_hpc << 4));
25648 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25649 (0x7 << 8), (rx_lpf_bw << 8));
25650
25651 rccal_stepsize = 16;
25652 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25653
25654 while (rccal_stepsize >= 0) {
25655 write_radio_reg(pi,
25656 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25657 radio_addr_offset_rx), rccal_val);
25658
25659 if (rccal_stepsize == 16) {
25660
25661 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
25662 0, 1, false);
25663 udelay(2);
25664
25665 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25666
25667 if (core_idx == 0) {
25668 ref_iq_vals =
25669 max_t(u32, (est[0].i_pwr +
25670 est[0].q_pwr) >> (log_num_samps + 1),
25671 1);
25672 } else {
25673 ref_iq_vals =
25674 max_t(u32, (est[1].i_pwr +
25675 est[1].q_pwr) >> (log_num_samps + 1),
25676 1);
25677 }
25678
25679 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
25680 0, 1, false);
25681 udelay(2);
25682 }
25683
25684 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25685
25686 if (core_idx == 0) {
25687 target_iq_vals =
25688 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25689 1);
25690 } else {
25691 target_iq_vals =
25692 (est[1].i_pwr + est[1].q_pwr) >> (log_num_samps +
25693 1);
25694 }
25695 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25696
25697 if (rccal_stepsize == 0) {
25698 rccal_stepsize--;
25699 } else if (rccal_stepsize == 1) {
25700 last_rccal_val = rccal_val;
25701 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25702 last_pwr_ratio = pwr_ratio;
25703 rccal_stepsize--;
25704 } else {
25705 rccal_stepsize = (rccal_stepsize >> 1);
25706 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25707 rccal_stepsize : (-rccal_stepsize));
25708 }
25709
25710 if (rccal_stepsize == -1) {
25711 best_rccal_val =
25712 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25713 ABS((int)pwr_ratio -
25714 (int)target_pwr_ratio)) ? last_rccal_val :
25715 rccal_val;
25716
25717 if (CHSPEC_IS40(pi->radio_chanspec)) {
25718 if ((best_rccal_val > 140)
25719 || (best_rccal_val < 135)) {
25720 best_rccal_val = 138;
25721 }
25722 } else {
25723 if ((best_rccal_val > 142)
25724 || (best_rccal_val < 137)) {
25725 best_rccal_val = 140;
25726 }
25727 }
25728
25729 write_radio_reg(pi,
25730 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25731 radio_addr_offset_rx), best_rccal_val);
25732 }
25733 }
25734
25735 wlc_phy_stopplayback_nphy(pi);
25736
25737 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25738 orig_txlpf_rccal_lpc_ovr_val);
25739 write_radio_reg(pi,
25740 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25741 orig_rxlpf_rccal_hpc_ovr_val);
25742
25743 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25744
25745 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25746 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25747 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25748 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25749 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25750 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25751 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25752 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25753 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25754 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25755
25756 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25757 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25758 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25759 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25760 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25761
25762 pi->nphy_anarxlpf_adjusted = false;
25763
25764 return best_rccal_val - 0x80;
25765 }
25766
25767 #define WAIT_FOR_SCOPE 4000
25768 static int
25769 wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t target_gain,
25770 u8 cal_type, bool debug)
25771 {
25772 u16 orig_BBConfig;
25773 u8 core_no, rx_core;
25774 u8 best_rccal[2];
25775 u16 gain_save[2];
25776 u16 cal_gain[2];
25777 nphy_iqcal_params_t cal_params[2];
25778 u8 rxcore_state;
25779 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25780 s8 txlpf_idac;
25781 bool phyhang_avoid_state = false;
25782 bool skip_rxiqcal = false;
25783
25784 orig_BBConfig = read_phy_reg(pi, 0x01);
25785 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25786
25787 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25788
25789 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25790 phyhang_avoid_state = pi->phyhang_avoid;
25791 pi->phyhang_avoid = false;
25792 }
25793
25794 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25795
25796 for (core_no = 0; core_no <= 1; core_no++) {
25797 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25798 &cal_params[core_no]);
25799 cal_gain[core_no] = cal_params[core_no].cal_gain;
25800 }
25801
25802 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25803
25804 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
25805
25806 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25807
25808 skip_rxiqcal =
25809 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
25810
25811 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25812
25813 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25814
25815 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25816
25817 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25818
25819 wlc_phy_tx_tone_nphy(pi,
25820 (CHSPEC_IS40(pi->radio_chanspec)) ?
25821 NPHY_RXCAL_TONEFREQ_40MHz :
25822 NPHY_RXCAL_TONEFREQ_20MHz,
25823 NPHY_RXCAL_TONEAMP, 0, cal_type,
25824 false);
25825
25826 if (debug)
25827 mdelay(WAIT_FOR_SCOPE);
25828
25829 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25830 wlc_phy_stopplayback_nphy(pi);
25831 }
25832
25833 if (((cal_type == 1) || (cal_type == 2))
25834 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25835
25836 if (rx_core == PHY_CORE_1) {
25837
25838 if (rxcore_state == 1) {
25839 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25840 *) pi, 3);
25841 }
25842
25843 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25844 1);
25845
25846 best_rccal[rx_core] =
25847 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25848 pi->nphy_rccal_value = best_rccal[rx_core];
25849
25850 if (rxcore_state == 1) {
25851 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25852 *) pi,
25853 rxcore_state);
25854 }
25855 }
25856 }
25857
25858 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25859
25860 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25861 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25862 }
25863
25864 if ((cal_type == 1) || (cal_type == 2)) {
25865
25866 best_rccal[0] = best_rccal[1];
25867 write_radio_reg(pi,
25868 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25869 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25870
25871 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25872 rxlpf_rccal_hpc =
25873 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25874 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25875
25876 if (PHY_IPA(pi)) {
25877 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25878 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25879 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25880 TXLPF_IDAC_4, txlpf_idac);
25881 }
25882
25883 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31), 0);
25884 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31), 0);
25885
25886 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25887 ((rx_core ==
25888 PHY_CORE_0) ? RADIO_2056_RX0 :
25889 RADIO_2056_RX1)),
25890 (rxlpf_rccal_hpc | 0x80));
25891
25892 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25893 ((rx_core ==
25894 PHY_CORE_0) ? RADIO_2056_TX0 :
25895 RADIO_2056_TX1)),
25896 (txlpf_rccal_lpc | 0x80));
25897 }
25898 }
25899
25900 write_phy_reg(pi, 0x01, orig_BBConfig);
25901
25902 wlc_phy_resetcca_nphy(pi);
25903
25904 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25905 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25906 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25907 0, 0x3, 1);
25908 } else {
25909 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25910 }
25911 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25912
25913 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25914 gain_save);
25915
25916 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25917 pi->phyhang_avoid = phyhang_avoid_state;
25918 }
25919
25920 wlc_phy_stay_in_carriersearch_nphy(pi, false);
25921
25922 return BCME_OK;
25923 }
25924
25925 static int
25926 wlc_phy_cal_rxiq_nphy_rev2(phy_info_t *pi, nphy_txgains_t target_gain,
25927 bool debug)
25928 {
25929 phy_iq_est_t est[PHY_CORE_MAX];
25930 u8 core_num, rx_core, tx_core;
25931 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
25932 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25933 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
25934 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25935 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
25936 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25937 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25938 u16 num_samps;
25939 u32 i_pwr, q_pwr, tot_pwr[3];
25940 u8 gain_pass, use_hpf_num;
25941 u16 mask, val1, val2;
25942 u16 core_no;
25943 u16 gain_save[2];
25944 u16 cal_gain[2];
25945 nphy_iqcal_params_t cal_params[2];
25946 u8 phy_bw;
25947 int bcmerror = BCME_OK;
25948 bool first_playtone = true;
25949
25950 wlc_phy_stay_in_carriersearch_nphy(pi, true);
25951
25952 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25953
25954 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25955 }
25956
25957 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25958
25959 for (core_no = 0; core_no <= 1; core_no++) {
25960 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25961 &cal_params[core_no]);
25962 cal_gain[core_no] = cal_params[core_no].cal_gain;
25963 }
25964
25965 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25966
25967 num_samps = 1024;
25968 desired_log2_pwr = 13;
25969
25970 for (core_num = 0; core_num < 2; core_num++) {
25971
25972 rx_core = core_num;
25973 tx_core = 1 - core_num;
25974
25975 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25976 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25977 0xa6 : 0xa7);
25978 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25979 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25980 0x91 : 0x92);
25981 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25982 0x91 : 0x92);
25983
25984 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25985 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25986
25987 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25988 ((0x1 << 1) | (0x1 << 2)));
25989 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25990
25991 if (((pi->nphy_rxcalparams) & 0xff000000)) {
25992
25993 write_phy_reg(pi,
25994 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25995 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25996 0x110));
25997 } else {
25998
25999 write_phy_reg(pi,
26000 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
26001 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
26002 0x120));
26003 }
26004
26005 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
26006 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
26007 0x114));
26008
26009 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
26010 if (rx_core == PHY_CORE_0) {
26011 val1 = RADIO_2055_COUPLE_RX_MASK;
26012 val2 = RADIO_2055_COUPLE_TX_MASK;
26013 } else {
26014 val1 = RADIO_2055_COUPLE_TX_MASK;
26015 val2 = RADIO_2055_COUPLE_RX_MASK;
26016 }
26017
26018 if ((pi->nphy_rxcalparams & 0x10000)) {
26019 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
26020 val1);
26021 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
26022 val2);
26023 }
26024
26025 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
26026
26027 if (debug)
26028 mdelay(WAIT_FOR_SCOPE);
26029
26030 if (gain_pass < 3) {
26031 curr_lna = lna_vals[gain_pass];
26032 curr_hpf1 = hpf1_vals[gain_pass];
26033 curr_hpf2 = hpf2_vals[gain_pass];
26034 } else {
26035
26036 if (tot_pwr[1] > 10000) {
26037 curr_lna = lna_vals[2];
26038 curr_hpf1 = hpf1_vals[2];
26039 curr_hpf2 = hpf2_vals[2];
26040 use_hpf_num = 1;
26041 curr_hpf = curr_hpf1;
26042 actual_log2_pwr =
26043 wlc_phy_nbits(tot_pwr[2]);
26044 } else {
26045 if (tot_pwr[0] > 10000) {
26046 curr_lna = lna_vals[1];
26047 curr_hpf1 = hpf1_vals[1];
26048 curr_hpf2 = hpf2_vals[1];
26049 use_hpf_num = 1;
26050 curr_hpf = curr_hpf1;
26051 actual_log2_pwr =
26052 wlc_phy_nbits(tot_pwr[1]);
26053 } else {
26054 curr_lna = lna_vals[0];
26055 curr_hpf1 = hpf1_vals[0];
26056 curr_hpf2 = hpf2_vals[0];
26057 use_hpf_num = 2;
26058 curr_hpf = curr_hpf2;
26059 actual_log2_pwr =
26060 wlc_phy_nbits(tot_pwr[0]);
26061 }
26062 }
26063
26064 hpf_change = desired_log2_pwr - actual_log2_pwr;
26065 curr_hpf += hpf_change;
26066 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
26067 if (use_hpf_num == 1) {
26068 curr_hpf1 = curr_hpf;
26069 } else {
26070 curr_hpf2 = curr_hpf;
26071 }
26072 }
26073
26074 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
26075 ((curr_hpf2 << 8) |
26076 (curr_hpf1 << 4) |
26077 (curr_lna << 2)), 0x3, 0);
26078 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26079
26080 wlc_phy_stopplayback_nphy(pi);
26081
26082 if (first_playtone) {
26083 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
26084 (u16) (pi->
26085 nphy_rxcalparams
26086 &
26087 0xffff),
26088 0, 0, true);
26089 first_playtone = false;
26090 } else {
26091 phy_bw =
26092 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
26093 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
26094 0, 0, 0, true);
26095 }
26096
26097 if (bcmerror == BCME_OK) {
26098 if (gain_pass < 3) {
26099
26100 wlc_phy_rx_iq_est_nphy(pi, est,
26101 num_samps, 32,
26102 0);
26103 i_pwr =
26104 (est[rx_core].i_pwr +
26105 num_samps / 2) / num_samps;
26106 q_pwr =
26107 (est[rx_core].q_pwr +
26108 num_samps / 2) / num_samps;
26109 tot_pwr[gain_pass] = i_pwr + q_pwr;
26110 } else {
26111
26112 wlc_phy_calc_rx_iq_comp_nphy(pi,
26113 (1 <<
26114 rx_core));
26115 }
26116
26117 wlc_phy_stopplayback_nphy(pi);
26118 }
26119
26120 if (bcmerror != BCME_OK)
26121 break;
26122 }
26123
26124 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
26125 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
26126
26127 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
26128 0x92, orig_RfctrlIntcTx);
26129 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
26130 0x92, orig_RfctrlIntcRx);
26131 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
26132 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
26133 0xa7, orig_AfectrlCore);
26134 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
26135
26136 if (bcmerror != BCME_OK)
26137 break;
26138 }
26139
26140 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
26141 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26142
26143 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26144 gain_save);
26145
26146 wlc_phy_stay_in_carriersearch_nphy(pi, false);
26147
26148 return bcmerror;
26149 }
26150
26151 int
26152 wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
26153 u8 cal_type, bool debug)
26154 {
26155 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26156
26157 cal_type = 0;
26158 }
26159 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26160 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26161 debug);
26162 } else {
26163 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
26164 }
26165 }
26166
26167 static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi)
26168 {
26169 int j, type = 2;
26170 u16 addr_offset = 0x2c5;
26171
26172 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26173 write_phy_reg(pi, addr_offset + j,
26174 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26175 }
26176 }
26177
26178 static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi)
26179 {
26180 int j, type;
26181 u16 addr_offset[] = { 0x186, 0x195,
26182 0x2c5
26183 };
26184
26185 for (type = 0; type < 3; type++) {
26186 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26187 write_phy_reg(pi, addr_offset[type] + j,
26188 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26189 }
26190 }
26191
26192 if (IS40MHZ(pi)) {
26193 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26194 write_phy_reg(pi, 0x186 + j,
26195 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26196 }
26197 } else {
26198 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26199 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26200 write_phy_reg(pi, 0x186 + j,
26201 NPHY_IPA_REV4_txdigi_filtcoeffs[5]
26202 [j]);
26203 }
26204 }
26205
26206 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26207 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26208 write_phy_reg(pi, 0x2c5 + j,
26209 NPHY_IPA_REV4_txdigi_filtcoeffs[6]
26210 [j]);
26211 }
26212 }
26213 }
26214 }
26215
26216 static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi)
26217 {
26218 int j;
26219
26220 if (IS40MHZ(pi)) {
26221 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26222 write_phy_reg(pi, 0x195 + j,
26223 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26224 }
26225 } else {
26226 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26227 write_phy_reg(pi, 0x186 + j,
26228 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26229 }
26230 }
26231 }
26232
26233 static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi)
26234 {
26235 u16 m0m1;
26236
26237 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26238
26239 return m0m1;
26240 }
26241
26242 static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1)
26243 {
26244 u16 m0m1 = (u16) ((m0 << 8) | m1);
26245
26246 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26247 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26248 }
26249
26250 static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi)
26251 {
26252 u32 *tx_pwrctrl_tbl = NULL;
26253
26254 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26255
26256 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26257
26258 if ((pi->pubpi.radiorev == 4)
26259 || (pi->pubpi.radiorev == 6)) {
26260
26261 tx_pwrctrl_tbl =
26262 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26263 } else if (pi->pubpi.radiorev == 3) {
26264
26265 tx_pwrctrl_tbl =
26266 nphy_tpc_txgain_ipa_2g_2057rev3;
26267 } else if (pi->pubpi.radiorev == 5) {
26268
26269 tx_pwrctrl_tbl =
26270 nphy_tpc_txgain_ipa_2g_2057rev5;
26271 } else if ((pi->pubpi.radiorev == 7)
26272 || (pi->pubpi.radiorev == 8)) {
26273
26274 tx_pwrctrl_tbl =
26275 nphy_tpc_txgain_ipa_2g_2057rev7;
26276 } else {
26277 ASSERT(0);
26278 }
26279
26280 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26281
26282 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26283 if (pi->sh->chip == BCM47162_CHIP_ID) {
26284
26285 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26286 }
26287
26288 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26289
26290 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26291 } else {
26292
26293 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26294 }
26295
26296 } else {
26297
26298 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26299 if ((pi->pubpi.radiorev == 3) ||
26300 (pi->pubpi.radiorev == 4) ||
26301 (pi->pubpi.radiorev == 6)) {
26302
26303 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26304 } else if ((pi->pubpi.radiorev == 7)
26305 || (pi->pubpi.radiorev == 8)) {
26306
26307 tx_pwrctrl_tbl =
26308 nphy_tpc_txgain_ipa_5g_2057rev7;
26309 } else {
26310 ASSERT(0);
26311 }
26312
26313 } else {
26314 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26315 }
26316 }
26317
26318 return tx_pwrctrl_tbl;
26319 }
26320
26321 static void
26322 wlc_phy_papd_cal_setup_nphy(phy_info_t *pi, nphy_papd_restore_state *state,
26323 u8 core)
26324 {
26325 s32 tone_freq;
26326 u8 off_core;
26327 u16 mixgain = 0;
26328
26329 off_core = core ^ 0x1;
26330 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26331
26332 if (NREV_IS(pi->pubpi.phy_rev, 7)
26333 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26334 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26335 wlc_phy_read_lpf_bw_ctl_nphy
26336 (pi, 0), 0, 0,
26337 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26338 }
26339
26340 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26341 if (pi->pubpi.radiorev == 5) {
26342 mixgain = (core == 0) ? 0x20 : 0x00;
26343
26344 } else if ((pi->pubpi.radiorev == 7)
26345 || (pi->pubpi.radiorev == 8)) {
26346
26347 mixgain = 0x00;
26348
26349 } else if ((pi->pubpi.radiorev <= 4)
26350 || (pi->pubpi.radiorev == 6)) {
26351
26352 mixgain = 0x00;
26353 } else {
26354 ASSERT(0);
26355 }
26356
26357 } else {
26358 if ((pi->pubpi.radiorev == 4) ||
26359 (pi->pubpi.radiorev == 6)) {
26360
26361 mixgain = 0x50;
26362 } else if ((pi->pubpi.radiorev == 3)
26363 || (pi->pubpi.radiorev == 7)
26364 || (pi->pubpi.radiorev == 8)) {
26365
26366 mixgain = 0x0;
26367 } else {
26368 ASSERT(0);
26369 }
26370 }
26371
26372 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26373 mixgain, (1 << core), 0,
26374 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26375
26376 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26377 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26378 1, (1 << core), 0);
26379 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26380 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26381 0, (1 << off_core), 0);
26382
26383 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26384 0, 0x3, 0,
26385 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26386 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26387 (1 << core), 0,
26388 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26389 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26390 (1 << core), 0,
26391 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26392 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26393 (1 << core), 0,
26394 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26395 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26396 (1 << core), 0,
26397 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26398 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26399 (1 << core), 0,
26400 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26401 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26402 (1 << core), 0,
26403 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26404 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26405 (1 << core), 0,
26406 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26407
26408 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26409 0, (1 << core), 0,
26410 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26411 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26412 (1 << core), 0,
26413 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26414
26415 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26416 0xa6 : 0xa7);
26417 state->afeoverride[core] =
26418 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26419 state->afectrl[off_core] =
26420 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26421 state->afeoverride[off_core] =
26422 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26423
26424 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26425 (0x1 << 2), 0);
26426 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26427 0xa5), (0x1 << 2), (0x1 << 2));
26428
26429 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26430 (0x1 << 2), (0x1 << 2));
26431 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26432 0x8f), (0x1 << 2), (0x1 << 2));
26433
26434 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26435 state->pwrup[core] =
26436 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26437 TXRXCOUPLE_2G_PWRUP);
26438 state->atten[core] =
26439 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26440 TXRXCOUPLE_2G_ATTEN);
26441 state->pwrup[off_core] =
26442 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26443 TXRXCOUPLE_2G_PWRUP);
26444 state->atten[off_core] =
26445 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26446 TXRXCOUPLE_2G_ATTEN);
26447
26448 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26449 TXRXCOUPLE_2G_PWRUP, 0xc);
26450
26451 if ((pi->pubpi.radiorev == 3) ||
26452 (pi->pubpi.radiorev == 4) ||
26453 (pi->pubpi.radiorev == 6)) {
26454
26455 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26456 TXRXCOUPLE_2G_ATTEN, 0xf0);
26457
26458 } else if (pi->pubpi.radiorev == 5) {
26459
26460 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26461 TXRXCOUPLE_2G_ATTEN,
26462 (core == 0) ? 0xf7 : 0xf2);
26463
26464 } else if ((pi->pubpi.radiorev == 7)
26465 || (pi->pubpi.radiorev == 8)) {
26466
26467 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26468 TXRXCOUPLE_2G_ATTEN, 0xf0);
26469
26470 } else {
26471 ASSERT(0);
26472 }
26473
26474 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26475 TXRXCOUPLE_2G_PWRUP, 0x0);
26476 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26477 TXRXCOUPLE_2G_ATTEN, 0xff);
26478
26479 } else {
26480 state->pwrup[core] =
26481 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26482 TXRXCOUPLE_5G_PWRUP);
26483 state->atten[core] =
26484 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26485 TXRXCOUPLE_5G_ATTEN);
26486 state->pwrup[off_core] =
26487 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26488 TXRXCOUPLE_5G_PWRUP);
26489 state->atten[off_core] =
26490 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26491 TXRXCOUPLE_5G_ATTEN);
26492
26493 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26494 TXRXCOUPLE_5G_PWRUP, 0xc);
26495
26496 if ((pi->pubpi.radiorev == 7)
26497 || (pi->pubpi.radiorev == 8)) {
26498
26499 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26500 TXRXCOUPLE_5G_ATTEN, 0xf4);
26501
26502 } else {
26503 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26504 TXRXCOUPLE_5G_ATTEN, 0xf0);
26505 }
26506
26507 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26508 TXRXCOUPLE_5G_PWRUP, 0x0);
26509 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26510 TXRXCOUPLE_5G_ATTEN, 0xff);
26511 }
26512
26513 tone_freq = 4000;
26514
26515 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
26516
26517 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26518 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26519
26520 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26521 0x2a4, (0x1 << 13), (1) << 13);
26522
26523 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26524 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26525
26526 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26527 0x2a4, (0x1 << 13), (0) << 13);
26528
26529 } else {
26530
26531 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26532
26533 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26534
26535 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26536
26537 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26538 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26539
26540 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26541 0xa6 : 0xa7);
26542 state->afeoverride[core] =
26543 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26544
26545 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26546 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26547 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26548 0xa5),
26549 (0x1 << 0) |
26550 (0x1 << 1) |
26551 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26552
26553 state->vga_master[core] =
26554 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26555 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26556 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26557 state->fbmix[core] =
26558 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26559 TXFBMIX_G);
26560 state->intpa_master[core] =
26561 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26562 INTPAG_MASTER);
26563
26564 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26565 0x03);
26566 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26567 INTPAG_MASTER, 0x04);
26568 } else {
26569 state->fbmix[core] =
26570 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26571 TXFBMIX_A);
26572 state->intpa_master[core] =
26573 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26574 INTPAA_MASTER);
26575
26576 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26577 0x03);
26578 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26579 INTPAA_MASTER, 0x04);
26580
26581 }
26582
26583 tone_freq = 4000;
26584
26585 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
26586
26587 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26588 0x29b, (0x1 << 0), (1) << 0);
26589
26590 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26591 0x29b, (0x1 << 0), (0) << 0);
26592
26593 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26594 }
26595 }
26596
26597 static void
26598 wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi, nphy_papd_restore_state *state)
26599 {
26600 u8 core;
26601
26602 wlc_phy_stopplayback_nphy(pi);
26603
26604 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26605
26606 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26607
26608 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26609 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26610 TXRXCOUPLE_2G_PWRUP, 0);
26611 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26612 TXRXCOUPLE_2G_ATTEN,
26613 state->atten[core]);
26614 } else {
26615 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26616 TXRXCOUPLE_5G_PWRUP, 0);
26617 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26618 TXRXCOUPLE_5G_ATTEN,
26619 state->atten[core]);
26620 }
26621 }
26622
26623 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
26624 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26625 1, 0x3, 0,
26626 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26627 } else {
26628 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26629 0, 0x3, 1,
26630 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26631 }
26632 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26633 0, 0x3, 1,
26634 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26635 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26636 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26637 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26638 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26639 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26640 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26641 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26642 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26643 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26644 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26645 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26646 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26647 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26648 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26649 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26650 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26651 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26652 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26653 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26654 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26655 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26656 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26657 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26658 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26659 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26660 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26661 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26662 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26663 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26664 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26665
26666 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26667
26668 write_phy_reg(pi, (core == PHY_CORE_0) ?
26669 0xa6 : 0xa7, state->afectrl[core]);
26670 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26671 0xa5, state->afeoverride[core]);
26672 }
26673
26674 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26675 (state->mm & 0xff));
26676
26677 if (NREV_IS(pi->pubpi.phy_rev, 7)
26678 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26679 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
26680 1,
26681 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26682 }
26683 } else {
26684
26685 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26686 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26687 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26688
26689 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26690 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26691
26692 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26693
26694 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26695 state->vga_master[core]);
26696 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26697 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26698 TXFBMIX_G, state->fbmix[core]);
26699 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26700 INTPAG_MASTER,
26701 state->intpa_master[core]);
26702 } else {
26703 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26704 TXFBMIX_A, state->fbmix[core]);
26705 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26706 INTPAA_MASTER,
26707 state->intpa_master[core]);
26708 }
26709
26710 write_phy_reg(pi, (core == PHY_CORE_0) ?
26711 0xa6 : 0xa7, state->afectrl[core]);
26712 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26713 0xa5, state->afeoverride[core]);
26714 }
26715
26716 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26717 (state->mm & 0xff));
26718
26719 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26720 }
26721 }
26722
26723 static void
26724 wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32 start,
26725 u32 end)
26726 {
26727 u32 *buf, *src, *dst, sz;
26728
26729 sz = end - start + 1;
26730 ASSERT(end > start);
26731 ASSERT(end < NPHY_PAPD_EPS_TBL_SIZE);
26732
26733 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
26734 if (NULL == buf) {
26735 return;
26736 }
26737
26738 src = buf;
26739 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26740
26741 wlc_phy_table_read_nphy(pi,
26742 (core ==
26743 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26744 NPHY_TBL_ID_EPSILONTBL1),
26745 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26746
26747 do {
26748 u32 phy_a1, phy_a2;
26749 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
26750
26751 phy_a1 = end - min(end, (winsz >> 1));
26752 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1, end + (winsz >> 1));
26753 phy_a3 = phy_a2 - phy_a1 + 1;
26754 phy_a6 = 0;
26755 phy_a7 = 0;
26756
26757 do {
26758 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26759 &phy_a5);
26760 phy_a6 += phy_a4;
26761 phy_a7 += phy_a5;
26762 } while (phy_a2-- != phy_a1);
26763
26764 phy_a6 /= phy_a3;
26765 phy_a7 /= phy_a3;
26766 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
26767 } while (end-- != start);
26768
26769 wlc_phy_table_write_nphy(pi,
26770 (core ==
26771 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26772 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26773
26774 kfree(buf);
26775 }
26776
26777 static void
26778 wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *txgains,
26779 phy_cal_mode_t cal_mode, u8 core)
26780 {
26781 u16 phy_a1, phy_a2, phy_a3;
26782 u16 phy_a4, phy_a5;
26783 bool phy_a6;
26784 u8 phy_a7, m[2];
26785 u32 phy_a8 = 0;
26786 nphy_txgains_t phy_a9;
26787
26788 if (NREV_LT(pi->pubpi.phy_rev, 3))
26789 return;
26790
26791 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26792
26793 ASSERT((cal_mode == CAL_FULL) || (cal_mode == CAL_GCTRL)
26794 || (cal_mode == CAL_SOFT));
26795 phy_a6 = ((cal_mode == CAL_GCTRL)
26796 || (cal_mode == CAL_SOFT)) ? true : false;
26797
26798 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26799
26800 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26801
26802 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26803 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26804 (phy_a9.txgm[core] << 12) |
26805 (phy_a9.pga[core] << 8) |
26806 (txgains->gains.pad[core] << 3) |
26807 (phy_a9.ipa[core]));
26808 } else {
26809 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26810 (phy_a9.txgm[core] << 12) |
26811 (txgains->gains.pga[core] << 8) |
26812 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26813 }
26814
26815 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26816 NPHY_REV7_RfctrlOverride_cmd_txgain,
26817 phy_a5, (1 << core), 0);
26818
26819 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26820 if ((pi->pubpi.radiorev <= 4)
26821 || (pi->pubpi.radiorev == 6)) {
26822
26823 m[core] = IS40MHZ(pi) ? 60 : 79;
26824 } else {
26825
26826 m[core] = IS40MHZ(pi) ? 45 : 64;
26827 }
26828
26829 } else {
26830 m[core] = IS40MHZ(pi) ? 75 : 107;
26831 }
26832
26833 m[phy_a7] = 0;
26834 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26835
26836 phy_a2 = 63;
26837
26838 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26839 if (pi->sh->chip == BCM6362_CHIP_ID) {
26840 phy_a1 = 35;
26841 phy_a3 = 35;
26842 } else if ((pi->pubpi.radiorev == 4)
26843 || (pi->pubpi.radiorev == 6)) {
26844 phy_a1 = 30;
26845 phy_a3 = 30;
26846 } else {
26847 phy_a1 = 25;
26848 phy_a3 = 25;
26849 }
26850 } else {
26851 if ((pi->pubpi.radiorev == 5)
26852 || (pi->pubpi.radiorev == 7)
26853 || (pi->pubpi.radiorev == 8)) {
26854 phy_a1 = 25;
26855 phy_a3 = 25;
26856 } else {
26857 phy_a1 = 35;
26858 phy_a3 = 35;
26859 }
26860 }
26861
26862 if (cal_mode == CAL_GCTRL) {
26863 if ((pi->pubpi.radiorev == 5)
26864 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26865 phy_a1 = 55;
26866 } else if (((pi->pubpi.radiorev == 7) &&
26867 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26868 ((pi->pubpi.radiorev == 8) &&
26869 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26870 phy_a1 = 60;
26871 } else {
26872 phy_a1 = 63;
26873 }
26874
26875 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26876
26877 phy_a1 = 35;
26878 phy_a3 = 35;
26879 }
26880
26881 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26882 0x29b, (0x1 << 0), (1) << 0);
26883
26884 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26885 0x29b, (0x1 << 0), (0) << 0);
26886
26887 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26888 0x2a4, (0x1 << 13), (1) << 13);
26889
26890 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26891 0x2a4, (0x1 << 13), (0) << 13);
26892
26893 write_phy_reg(pi, 0x2a1, 0x80);
26894 write_phy_reg(pi, 0x2a2, 0x100);
26895
26896 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26897 0x2a4, (0x7 << 4), (11) << 4);
26898
26899 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26900 0x2a4, (0x7 << 8), (11) << 8);
26901
26902 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26903 0x2a4, (0x7 << 0), (0x3) << 0);
26904
26905 write_phy_reg(pi, 0x2e5, 0x20);
26906
26907 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26908
26909 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26910
26911 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26912
26913 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26914 1, ((core == 0) ? 1 : 2), 0,
26915 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26916 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26917 0, ((core == 0) ? 2 : 1), 0,
26918 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26919
26920 write_phy_reg(pi, 0x2be, 1);
26921 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26922
26923 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26924 0, 0x3, 0,
26925 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26926
26927 wlc_phy_table_write_nphy(pi,
26928 (core ==
26929 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26930 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26931 32, &phy_a8);
26932
26933 if (cal_mode != CAL_GCTRL) {
26934 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26935 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26936 }
26937 }
26938
26939 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26940 NPHY_REV7_RfctrlOverride_cmd_txgain,
26941 phy_a5, (1 << core), 1);
26942
26943 } else {
26944
26945 if (txgains) {
26946 if (txgains->useindex) {
26947 phy_a4 = 15 - ((txgains->index) >> 3);
26948 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26949 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26950 phy_a5 = 0x00f7 | (phy_a4 << 8);
26951
26952 if (pi->sh->chip ==
26953 BCM47162_CHIP_ID) {
26954 phy_a5 =
26955 0x10f7 | (phy_a4 <<
26956 8);
26957 }
26958 } else
26959 if (NREV_IS(pi->pubpi.phy_rev, 5))
26960 phy_a5 = 0x10f7 | (phy_a4 << 8);
26961 else
26962 phy_a5 = 0x50f7 | (phy_a4 << 8);
26963 } else {
26964 phy_a5 = 0x70f7 | (phy_a4 << 8);
26965 }
26966 wlc_phy_rfctrl_override_nphy(pi,
26967 (0x1 << 13),
26968 phy_a5,
26969 (1 << core), 0);
26970 } else {
26971 wlc_phy_rfctrl_override_nphy(pi,
26972 (0x1 << 13),
26973 0x5bf7,
26974 (1 << core), 0);
26975 }
26976 }
26977
26978 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26979 m[core] = IS40MHZ(pi) ? 45 : 64;
26980 } else {
26981 m[core] = IS40MHZ(pi) ? 75 : 107;
26982 }
26983
26984 m[phy_a7] = 0;
26985 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26986
26987 phy_a2 = 63;
26988
26989 if (cal_mode == CAL_FULL) {
26990 phy_a1 = 25;
26991 phy_a3 = 25;
26992 } else if (cal_mode == CAL_SOFT) {
26993 phy_a1 = 25;
26994 phy_a3 = 25;
26995 } else if (cal_mode == CAL_GCTRL) {
26996 phy_a1 = 63;
26997 phy_a3 = 25;
26998 } else {
26999
27000 phy_a1 = 25;
27001 phy_a3 = 25;
27002 }
27003
27004 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27005 0x29b, (0x1 << 0), (1) << 0);
27006
27007 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
27008 0x29b, (0x1 << 0), (0) << 0);
27009
27010 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27011 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27012 0x2a4, (0x1 << 13), (1) << 13);
27013
27014 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27015 0x2a4, (0x1 << 13), (0) << 13);
27016
27017 write_phy_reg(pi, 0x2a1, 0x20);
27018 write_phy_reg(pi, 0x2a2, 0x60);
27019
27020 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27021 0x2a4, (0xf << 4), (9) << 4);
27022
27023 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27024 0x2a4, (0xf << 8), (9) << 8);
27025
27026 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27027 0x2a4, (0xf << 0), (0x2) << 0);
27028
27029 write_phy_reg(pi, 0x2e5, 0x20);
27030 } else {
27031 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27032 0x2a4, (0x1 << 11), (1) << 11);
27033
27034 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27035 0x2a4, (0x1 << 11), (0) << 11);
27036
27037 write_phy_reg(pi, 0x2a1, 0x80);
27038 write_phy_reg(pi, 0x2a2, 0x600);
27039
27040 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27041 0x2a4, (0x7 << 4), (0) << 4);
27042
27043 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27044 0x2a4, (0x7 << 8), (0) << 8);
27045
27046 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27047 0x2a4, (0x7 << 0), (0x3) << 0);
27048
27049 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
27050
27051 }
27052
27053 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
27054
27055 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
27056
27057 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
27058
27059 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
27060
27061 write_phy_reg(pi, 0x2be, 1);
27062 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
27063
27064 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
27065
27066 wlc_phy_table_write_nphy(pi,
27067 (core ==
27068 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
27069 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
27070 32, &phy_a8);
27071
27072 if (cal_mode != CAL_GCTRL) {
27073 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
27074 }
27075 }
27076 }
27077
27078 static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core)
27079 {
27080 int phy_a1;
27081 int phy_a2;
27082 bool phy_a3;
27083 nphy_ipa_txcalgains_t phy_a4;
27084 bool phy_a5 = false;
27085 bool phy_a6 = true;
27086 s32 phy_a7, phy_a8;
27087 u32 phy_a9;
27088 int phy_a10;
27089 bool phy_a11 = false;
27090 int phy_a12;
27091 u8 phy_a13 = 0;
27092 u8 phy_a14;
27093 u8 *phy_a15 = NULL;
27094
27095 phy_a4.useindex = true;
27096 phy_a12 = start_gain;
27097
27098 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27099
27100 phy_a2 = 20;
27101 phy_a1 = 1;
27102
27103 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27104 if (pi->pubpi.radiorev == 5) {
27105
27106 phy_a15 = pad_gain_codes_used_2057rev5;
27107 phy_a13 = sizeof(pad_gain_codes_used_2057rev5) /
27108 sizeof(pad_gain_codes_used_2057rev5[0]) - 1;
27109
27110 } else if ((pi->pubpi.radiorev == 7)
27111 || (pi->pubpi.radiorev == 8)) {
27112
27113 phy_a15 = pad_gain_codes_used_2057rev7;
27114 phy_a13 = sizeof(pad_gain_codes_used_2057rev7) /
27115 sizeof(pad_gain_codes_used_2057rev7[0]) - 1;
27116
27117 } else {
27118
27119 phy_a15 = pad_all_gain_codes_2057;
27120 phy_a13 = sizeof(pad_all_gain_codes_2057) /
27121 sizeof(pad_all_gain_codes_2057[0]) - 1;
27122 }
27123
27124 } else {
27125
27126 phy_a15 = pga_all_gain_codes_2057;
27127 phy_a13 = sizeof(pga_all_gain_codes_2057) /
27128 sizeof(pga_all_gain_codes_2057[0]) - 1;
27129 }
27130
27131 phy_a14 = 0;
27132
27133 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27134 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27135 phy_a4.gains.pad[core] =
27136 (u16) phy_a15[phy_a12];
27137 } else {
27138 phy_a4.gains.pga[core] =
27139 (u16) phy_a15[phy_a12];
27140 }
27141
27142 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27143
27144 wlc_phy_table_read_nphy(pi,
27145 (core ==
27146 PHY_CORE_0 ?
27147 NPHY_TBL_ID_EPSILONTBL0 :
27148 NPHY_TBL_ID_EPSILONTBL1), 1,
27149 63, 32, &phy_a9);
27150
27151 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27152
27153 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27154 (phy_a8 == 4095) || (phy_a8 == -4096));
27155
27156 if (!phy_a6 && (phy_a3 != phy_a5)) {
27157 if (!phy_a3) {
27158 phy_a12 -= (u8) phy_a1;
27159 }
27160 phy_a11 = true;
27161 break;
27162 }
27163
27164 if (phy_a3)
27165 phy_a12 += (u8) phy_a1;
27166 else
27167 phy_a12 -= (u8) phy_a1;
27168
27169 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27170 if (phy_a12 < phy_a14) {
27171 phy_a12 = phy_a14;
27172 } else {
27173 phy_a12 = phy_a13;
27174 }
27175 phy_a11 = true;
27176 break;
27177 }
27178
27179 phy_a6 = false;
27180 phy_a5 = phy_a3;
27181 }
27182
27183 } else {
27184 phy_a2 = 10;
27185 phy_a1 = 8;
27186 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27187 phy_a4.index = (u8) phy_a12;
27188 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27189
27190 wlc_phy_table_read_nphy(pi,
27191 (core ==
27192 PHY_CORE_0 ?
27193 NPHY_TBL_ID_EPSILONTBL0 :
27194 NPHY_TBL_ID_EPSILONTBL1), 1,
27195 63, 32, &phy_a9);
27196
27197 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27198
27199 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27200 (phy_a8 == 4095) || (phy_a8 == -4096));
27201
27202 if (!phy_a6 && (phy_a3 != phy_a5)) {
27203 if (!phy_a3) {
27204 phy_a12 -= (u8) phy_a1;
27205 }
27206 phy_a11 = true;
27207 break;
27208 }
27209
27210 if (phy_a3)
27211 phy_a12 += (u8) phy_a1;
27212 else
27213 phy_a12 -= (u8) phy_a1;
27214
27215 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27216 if (phy_a12 < 0) {
27217 phy_a12 = 0;
27218 } else {
27219 phy_a12 = 127;
27220 }
27221 phy_a11 = true;
27222 break;
27223 }
27224
27225 phy_a6 = false;
27226 phy_a5 = phy_a3;
27227 }
27228
27229 }
27230
27231 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27232 return (u8) phy_a15[phy_a12];
27233 } else {
27234 return (u8) phy_a12;
27235 }
27236
27237 }
27238
27239 static void wlc_phy_a4(phy_info_t *pi, bool full_cal)
27240 {
27241 nphy_ipa_txcalgains_t phy_b1[2];
27242 nphy_papd_restore_state phy_b2;
27243 bool phy_b3;
27244 u8 phy_b4;
27245 u8 phy_b5;
27246 s16 phy_b6, phy_b7, phy_b8;
27247 u16 phy_b9;
27248 s16 phy_b10, phy_b11, phy_b12;
27249
27250 phy_b11 = 0;
27251 phy_b12 = 0;
27252 phy_b7 = 0;
27253 phy_b8 = 0;
27254 phy_b6 = 0;
27255
27256 if (pi->nphy_papd_skip == 1)
27257 return;
27258
27259 phy_b3 =
27260 (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
27261 if (!phy_b3) {
27262 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27263 }
27264
27265 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27266
27267 pi->nphy_force_papd_cal = false;
27268
27269 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27270 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27271 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27272
27273 pi->nphy_papd_last_cal = pi->sh->now;
27274 pi->nphy_papd_recal_counter++;
27275
27276 if (NORADIO_ENAB(pi->pubpi))
27277 return;
27278
27279 phy_b4 = pi->nphy_txpwrctrl;
27280 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27281
27282 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27283 nphy_papd_scaltbl);
27284 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27285 nphy_papd_scaltbl);
27286
27287 phy_b9 = read_phy_reg(pi, 0x01);
27288 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27289
27290 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27291 s32 i, val = 0;
27292 for (i = 0; i < 64; i++) {
27293 wlc_phy_table_write_nphy(pi,
27294 ((phy_b5 ==
27295 PHY_CORE_0) ?
27296 NPHY_TBL_ID_EPSILONTBL0 :
27297 NPHY_TBL_ID_EPSILONTBL1), 1,
27298 i, 32, &val);
27299 }
27300 }
27301
27302 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27303
27304 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27305 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27306 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27307
27308 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27309 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27310
27311 if ((pi->pubpi.radiorev == 3)
27312 || (pi->pubpi.radiorev == 4)
27313 || (pi->pubpi.radiorev == 6)) {
27314
27315 pi->nphy_papd_cal_gain_index[phy_b5] =
27316 23;
27317
27318 } else if (pi->pubpi.radiorev == 5) {
27319
27320 pi->nphy_papd_cal_gain_index[phy_b5] =
27321 0;
27322 pi->nphy_papd_cal_gain_index[phy_b5] =
27323 wlc_phy_a3_nphy(pi,
27324 pi->
27325 nphy_papd_cal_gain_index
27326 [phy_b5], phy_b5);
27327
27328 } else if ((pi->pubpi.radiorev == 7)
27329 || (pi->pubpi.radiorev == 8)) {
27330
27331 pi->nphy_papd_cal_gain_index[phy_b5] =
27332 0;
27333 pi->nphy_papd_cal_gain_index[phy_b5] =
27334 wlc_phy_a3_nphy(pi,
27335 pi->
27336 nphy_papd_cal_gain_index
27337 [phy_b5], phy_b5);
27338
27339 } else {
27340 ASSERT(0);
27341 }
27342
27343 phy_b1[phy_b5].gains.pad[phy_b5] =
27344 pi->nphy_papd_cal_gain_index[phy_b5];
27345
27346 } else {
27347 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27348 pi->nphy_papd_cal_gain_index[phy_b5] =
27349 wlc_phy_a3_nphy(pi,
27350 pi->
27351 nphy_papd_cal_gain_index
27352 [phy_b5], phy_b5);
27353 phy_b1[phy_b5].gains.pga[phy_b5] =
27354 pi->nphy_papd_cal_gain_index[phy_b5];
27355 }
27356 } else {
27357 phy_b1[phy_b5].useindex = true;
27358 phy_b1[phy_b5].index = 16;
27359 phy_b1[phy_b5].index =
27360 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index, phy_b5);
27361
27362 pi->nphy_papd_cal_gain_index[phy_b5] =
27363 15 - ((phy_b1[phy_b5].index) >> 3);
27364 }
27365
27366 switch (pi->nphy_papd_cal_type) {
27367 case 0:
27368 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27369 break;
27370 case 1:
27371 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27372 break;
27373 }
27374
27375 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27376 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27377 }
27378 }
27379
27380 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27381 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27382 }
27383
27384 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27385 int eps_offset = 0;
27386
27387 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27388 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27389 if (pi->pubpi.radiorev == 3) {
27390 eps_offset = -2;
27391 } else if (pi->pubpi.radiorev == 5) {
27392 eps_offset = 3;
27393 } else {
27394 eps_offset = -1;
27395 }
27396 } else {
27397 eps_offset = 2;
27398 }
27399
27400 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27401 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27402 phy_b10 = 0;
27403 if ((pi->pubpi.radiorev == 3) ||
27404 (pi->pubpi.radiorev == 4) ||
27405 (pi->pubpi.radiorev == 6)) {
27406 phy_b12 =
27407 -
27408 (nphy_papd_padgain_dlt_2g_2057rev3n4
27409 [phy_b8]
27410 + 1) / 2;
27411 phy_b10 = -1;
27412 } else if (pi->pubpi.radiorev == 5) {
27413 phy_b12 =
27414 -(nphy_papd_padgain_dlt_2g_2057rev5
27415 [phy_b8]
27416 + 1) / 2;
27417 } else if ((pi->pubpi.radiorev == 7) ||
27418 (pi->pubpi.radiorev == 8)) {
27419 phy_b12 =
27420 -(nphy_papd_padgain_dlt_2g_2057rev7
27421 [phy_b8]
27422 + 1) / 2;
27423 } else {
27424 ASSERT(0);
27425 }
27426 } else {
27427 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27428 if ((pi->pubpi.radiorev == 3) ||
27429 (pi->pubpi.radiorev == 4) ||
27430 (pi->pubpi.radiorev == 6)) {
27431 phy_b11 =
27432 -(nphy_papd_pgagain_dlt_5g_2057
27433 [phy_b7]
27434 + 1) / 2;
27435 } else if ((pi->pubpi.radiorev == 7)
27436 || (pi->pubpi.radiorev == 8)) {
27437 phy_b11 =
27438 -(nphy_papd_pgagain_dlt_5g_2057rev7
27439 [phy_b7]
27440 + 1) / 2;
27441 } else {
27442 ASSERT(0);
27443 }
27444
27445 phy_b10 = -9;
27446 }
27447
27448 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27449 phy_b6 =
27450 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27451 } else {
27452 phy_b6 =
27453 -60 + 27 + eps_offset + phy_b11 + phy_b10;
27454 }
27455
27456 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27457 0x29c, (0x1ff << 7), (phy_b6) << 7);
27458
27459 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27460 } else {
27461 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27462 eps_offset = 4;
27463 } else {
27464 eps_offset = 2;
27465 }
27466
27467 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27468
27469 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27470 phy_b11 =
27471 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27472 1) / 2;
27473 phy_b10 = 0;
27474 } else {
27475 phy_b11 =
27476 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27477 1) / 2;
27478 phy_b10 = -9;
27479 }
27480
27481 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27482
27483 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27484 0x29c, (0x1ff << 7), (phy_b6) << 7);
27485
27486 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27487 }
27488 }
27489
27490 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27491 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27492
27493 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27494 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27495
27496 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27497 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27498 0x2a4, (0x1 << 13), (0) << 13);
27499
27500 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27501 0x2a4, (0x1 << 13), (0) << 13);
27502
27503 } else {
27504 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27505 0x2a4, (0x1 << 11), (0) << 11);
27506
27507 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27508 0x2a4, (0x1 << 11), (0) << 11);
27509
27510 }
27511 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27512
27513 write_phy_reg(pi, 0x01, phy_b9);
27514
27515 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27516
27517 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27518 if (phy_b4 == PHY_TPC_HW_OFF) {
27519 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
27520 (s8) (pi->nphy_txpwrindex[0].
27521 index_internal), false);
27522 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
27523 (s8) (pi->nphy_txpwrindex[1].
27524 index_internal), false);
27525 }
27526
27527 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27528
27529 if (!phy_b3) {
27530 wlapi_enable_mac(pi->sh->physhim);
27531 }
27532 }
27533
27534 void wlc_phy_txpwr_fixpower_nphy(phy_info_t *pi)
27535 {
27536 uint core;
27537 u32 txgain;
27538 u16 rad_gain, dac_gain, bbmult, m1m2;
27539 u8 txpi[2], chan_freq_range;
27540 s32 rfpwr_offset;
27541
27542 ASSERT(pi->nphy_txpwrctrl == PHY_TPC_HW_OFF);
27543
27544 if (pi->phyhang_avoid)
27545 wlc_phy_stay_in_carriersearch_nphy(pi, true);
27546
27547 if (pi->sh->sromrev < 4) {
27548 txpi[0] = txpi[1] = 72;
27549 } else {
27550
27551 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27552 switch (chan_freq_range) {
27553 case WL_CHAN_FREQ_RANGE_2G:
27554 txpi[0] = pi->nphy_txpid2g[0];
27555 txpi[1] = pi->nphy_txpid2g[1];
27556 break;
27557 case WL_CHAN_FREQ_RANGE_5GL:
27558 txpi[0] = pi->nphy_txpid5gl[0];
27559 txpi[1] = pi->nphy_txpid5gl[1];
27560 break;
27561 case WL_CHAN_FREQ_RANGE_5GM:
27562 txpi[0] = pi->nphy_txpid5g[0];
27563 txpi[1] = pi->nphy_txpid5g[1];
27564 break;
27565 case WL_CHAN_FREQ_RANGE_5GH:
27566 txpi[0] = pi->nphy_txpid5gh[0];
27567 txpi[1] = pi->nphy_txpid5gh[1];
27568 break;
27569 default:
27570 txpi[0] = txpi[1] = 91;
27571 break;
27572 }
27573 }
27574
27575 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27576 txpi[0] = txpi[1] = 30;
27577 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27578 txpi[0] = txpi[1] = 40;
27579 }
27580
27581 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27582
27583 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27584 (txpi[1] < 40) || (txpi[1] > 100))
27585 txpi[0] = txpi[1] = 91;
27586 }
27587
27588 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27589 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27590 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27591 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27592
27593 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27594 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27595 if (PHY_IPA(pi)) {
27596 u32 *tx_gaintbl =
27597 wlc_phy_get_ipa_gaintbl_nphy(pi);
27598 txgain = tx_gaintbl[txpi[core]];
27599 } else {
27600 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27601 if NREV_IS
27602 (pi->pubpi.phy_rev, 3) {
27603 txgain =
27604 nphy_tpc_5GHz_txgain_rev3
27605 [txpi[core]];
27606 } else if NREV_IS
27607 (pi->pubpi.phy_rev, 4) {
27608 txgain =
27609 (pi->srom_fem5g.extpagain ==
27610 3) ?
27611 nphy_tpc_5GHz_txgain_HiPwrEPA
27612 [txpi[core]] :
27613 nphy_tpc_5GHz_txgain_rev4
27614 [txpi[core]];
27615 } else {
27616 txgain =
27617 nphy_tpc_5GHz_txgain_rev5
27618 [txpi[core]];
27619 }
27620 } else {
27621 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
27622 (pi->srom_fem2g.extpagain == 3)) {
27623 txgain =
27624 nphy_tpc_txgain_HiPwrEPA
27625 [txpi[core]];
27626 } else {
27627 txgain =
27628 nphy_tpc_txgain_rev3[txpi
27629 [core]];
27630 }
27631 }
27632 }
27633 } else {
27634 txgain = nphy_tpc_txgain[txpi[core]];
27635 }
27636
27637 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27638 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27639 } else {
27640 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27641 }
27642
27643 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27644 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27645 } else {
27646 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27647 }
27648 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27649
27650 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27651 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27652 0xa5), (0x1 << 8), (0x1 << 8));
27653 } else {
27654 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27655 }
27656 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27657
27658 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27659 &rad_gain);
27660
27661 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27662 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27663 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27664 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27665
27666 if (PHY_IPA(pi)) {
27667 wlc_phy_table_read_nphy(pi,
27668 (core ==
27669 PHY_CORE_0 ?
27670 NPHY_TBL_ID_CORE1TXPWRCTL :
27671 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27672 576 + txpi[core], 32,
27673 &rfpwr_offset);
27674
27675 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27676 0x29b, (0x1ff << 4),
27677 ((s16) rfpwr_offset) << 4);
27678
27679 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27680 0x29b, (0x1 << 2), (1) << 2);
27681
27682 }
27683 }
27684
27685 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
27686
27687 if (pi->phyhang_avoid)
27688 wlc_phy_stay_in_carriersearch_nphy(pi, false);
27689 }
27690
27691 static void
27692 wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
27693 u8 tmp_max_pwr, u8 rate_start,
27694 u8 rate_end)
27695 {
27696 u8 rate;
27697 u8 word_num, nibble_num;
27698 u8 tmp_nibble;
27699
27700 for (rate = rate_start; rate <= rate_end; rate++) {
27701 word_num = (rate - rate_start) >> 2;
27702 nibble_num = (rate - rate_start) & 0x3;
27703 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27704
27705 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27706 }
27707 }
27708
27709 static void
27710 wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27711 u8 rate_start, u8 rate_end)
27712 {
27713 u8 rate;
27714
27715 for (rate = rate_start; rate <= rate_end; rate++) {
27716 srom_max[rate] -= 2 * pwr_offset;
27717 }
27718 }
27719
27720 void
27721 wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27722 u8 rate_mcs_end, u8 rate_ofdm_start)
27723 {
27724 u8 rate1, rate2;
27725
27726 rate2 = rate_ofdm_start;
27727 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27728 power[rate1] = power[rate2];
27729 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27730 }
27731 power[rate_mcs_end] = power[rate_mcs_end - 1];
27732 }
27733
27734 void
27735 wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27736 u8 rate_ofdm_end, u8 rate_mcs_start)
27737 {
27738 u8 rate1, rate2;
27739
27740 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27741 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27742 power[rate1] = power[rate2];
27743 if (rate1 == rate_ofdm_start)
27744 power[++rate1] = power[rate2];
27745 }
27746 }
27747
27748 void wlc_phy_txpwr_apply_nphy(phy_info_t *pi)
27749 {
27750 uint rate1, rate2, band_num;
27751 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27752 u8 tmp_max_pwr = 0;
27753 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
27754 u8 *tx_srom_max_rate = NULL;
27755
27756 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27757 switch (band_num) {
27758 case 0:
27759
27760 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
27761 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27762
27763 pwr_offsets1[0] = pi->cck2gpo;
27764 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27765 pwr_offsets1,
27766 tmp_max_pwr,
27767 TXP_FIRST_CCK,
27768 TXP_LAST_CCK);
27769
27770 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
27771 pwr_offsets1[1] =
27772 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
27773
27774 pwr_offsets2 = pi->mcs2gpo;
27775
27776 tmp_cddpo = pi->cdd2gpo;
27777 tmp_stbcpo = pi->stbc2gpo;
27778 tmp_bw40po = pi->bw402gpo;
27779
27780 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27781 break;
27782 case 1:
27783
27784 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
27785 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27786
27787 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
27788 pwr_offsets1[1] =
27789 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
27790
27791 pwr_offsets2 = pi->mcs5gpo;
27792
27793 tmp_cddpo = pi->cdd5gpo;
27794 tmp_stbcpo = pi->stbc5gpo;
27795 tmp_bw40po = pi->bw405gpo;
27796
27797 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27798 break;
27799 case 2:
27800
27801 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
27802 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27803
27804 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
27805 pwr_offsets1[1] =
27806 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
27807
27808 pwr_offsets2 = pi->mcs5glpo;
27809
27810 tmp_cddpo = pi->cdd5glpo;
27811 tmp_stbcpo = pi->stbc5glpo;
27812 tmp_bw40po = pi->bw405glpo;
27813
27814 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27815 break;
27816 case 3:
27817
27818 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
27819 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27820
27821 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
27822 pwr_offsets1[1] =
27823 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
27824
27825 pwr_offsets2 = pi->mcs5ghpo;
27826
27827 tmp_cddpo = pi->cdd5ghpo;
27828 tmp_stbcpo = pi->stbc5ghpo;
27829 tmp_bw40po = pi->bw405ghpo;
27830
27831 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27832 break;
27833 }
27834
27835 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27836 tmp_max_pwr, TXP_FIRST_OFDM,
27837 TXP_LAST_OFDM);
27838
27839 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27840 TXP_FIRST_MCS_20_SISO,
27841 TXP_LAST_MCS_20_SISO,
27842 TXP_FIRST_OFDM);
27843
27844 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27845 tmp_max_pwr,
27846 TXP_FIRST_MCS_20_CDD,
27847 TXP_LAST_MCS_20_CDD);
27848
27849 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27850
27851 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27852 TXP_FIRST_MCS_20_CDD,
27853 TXP_LAST_MCS_20_CDD);
27854 }
27855
27856 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27857 TXP_FIRST_OFDM_20_CDD,
27858 TXP_LAST_OFDM_20_CDD,
27859 TXP_FIRST_MCS_20_CDD);
27860
27861 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27862 tmp_max_pwr,
27863 TXP_FIRST_MCS_20_STBC,
27864 TXP_LAST_MCS_20_STBC);
27865
27866 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27867
27868 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27869 tmp_stbcpo,
27870 TXP_FIRST_MCS_20_STBC,
27871 TXP_LAST_MCS_20_STBC);
27872 }
27873
27874 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27875 &pwr_offsets2[2], tmp_max_pwr,
27876 TXP_FIRST_MCS_20_SDM,
27877 TXP_LAST_MCS_20_SDM);
27878
27879 if (NPHY_IS_SROM_REINTERPRET) {
27880
27881 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27882 &pwr_offsets2[4],
27883 tmp_max_pwr,
27884 TXP_FIRST_MCS_40_SISO,
27885 TXP_LAST_MCS_40_SISO);
27886
27887 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27888 TXP_FIRST_OFDM_40_SISO,
27889 TXP_LAST_OFDM_40_SISO,
27890 TXP_FIRST_MCS_40_SISO);
27891
27892 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27893 &pwr_offsets2[4],
27894 tmp_max_pwr,
27895 TXP_FIRST_MCS_40_CDD,
27896 TXP_LAST_MCS_40_CDD);
27897
27898 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27899 TXP_FIRST_MCS_40_CDD,
27900 TXP_LAST_MCS_40_CDD);
27901
27902 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27903 TXP_FIRST_OFDM_40_CDD,
27904 TXP_LAST_OFDM_40_CDD,
27905 TXP_FIRST_MCS_40_CDD);
27906
27907 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27908 &pwr_offsets2[4],
27909 tmp_max_pwr,
27910 TXP_FIRST_MCS_40_STBC,
27911 TXP_LAST_MCS_40_STBC);
27912
27913 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27914 tmp_stbcpo,
27915 TXP_FIRST_MCS_40_STBC,
27916 TXP_LAST_MCS_40_STBC);
27917
27918 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27919 &pwr_offsets2[6],
27920 tmp_max_pwr,
27921 TXP_FIRST_MCS_40_SDM,
27922 TXP_LAST_MCS_40_SDM);
27923 } else {
27924
27925 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27926 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27927 rate1++, rate2++)
27928 tx_srom_max_rate[rate1] =
27929 tx_srom_max_rate[rate2];
27930 }
27931
27932 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27933 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27934 tmp_bw40po,
27935 TXP_FIRST_OFDM_40_SISO,
27936 TXP_LAST_MCS_40_SDM);
27937 }
27938
27939 tx_srom_max_rate[TXP_MCS_32] =
27940 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27941 }
27942
27943 return;
27944 }
27945
27946 static void wlc_phy_txpwr_srom_read_ppr_nphy(phy_info_t *pi)
27947 {
27948 u16 bw40po, cddpo, stbcpo, bwduppo;
27949 uint band_num;
27950
27951 if (pi->sh->sromrev >= 9) {
27952
27953 return;
27954 }
27955
27956 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
27957 pi->bw402gpo = bw40po & 0xf;
27958 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27959 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27960 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27961
27962 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
27963 pi->cdd2gpo = cddpo & 0xf;
27964 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27965 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27966 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27967
27968 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
27969 pi->stbc2gpo = stbcpo & 0xf;
27970 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27971 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27972 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27973
27974 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
27975 pi->bwdup2gpo = bwduppo & 0xf;
27976 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27977 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27978 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27979
27980 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27981 switch (band_num) {
27982 case 0:
27983
27984 pi->nphy_txpid2g[PHY_CORE_0] =
27985 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
27986 pi->nphy_txpid2g[PHY_CORE_1] =
27987 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
27988 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
27989 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
27990 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
27991 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
27992 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
27993 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
27994 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
27995 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
27996 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
27997 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
27998 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
27999 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
28000 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
28001 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
28002 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
28003 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
28004 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
28005 (s8) PHY_GETINTVAR(pi, "itt2ga0");
28006 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
28007 (s8) PHY_GETINTVAR(pi, "itt2ga1");
28008
28009 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
28010
28011 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
28012
28013 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
28014 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
28015 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
28016 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
28017 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
28018 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
28019 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
28020 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
28021 break;
28022 case 1:
28023
28024 pi->nphy_txpid5g[PHY_CORE_0] =
28025 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
28026 pi->nphy_txpid5g[PHY_CORE_1] =
28027 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
28028 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
28029 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
28030 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
28031 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
28032 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
28033 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
28034 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
28035 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
28036 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
28037 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
28038 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
28039 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
28040 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
28041 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
28042 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
28043 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
28044 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
28045 (s8) PHY_GETINTVAR(pi, "itt5ga0");
28046 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
28047 (s8) PHY_GETINTVAR(pi, "itt5ga1");
28048
28049 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
28050
28051 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
28052 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
28053 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
28054 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
28055 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
28056 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
28057 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
28058 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
28059 break;
28060 case 2:
28061
28062 pi->nphy_txpid5gl[0] =
28063 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
28064 pi->nphy_txpid5gl[1] =
28065 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
28066 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
28067 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
28068 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
28069 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
28070 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
28071 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
28072 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
28073 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
28074 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
28075 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
28076 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
28077 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
28078 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
28079 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
28080 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
28081 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
28082 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
28083 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
28084
28085 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
28086
28087 pi->mcs5glpo[0] =
28088 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
28089 pi->mcs5glpo[1] =
28090 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
28091 pi->mcs5glpo[2] =
28092 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
28093 pi->mcs5glpo[3] =
28094 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
28095 pi->mcs5glpo[4] =
28096 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
28097 pi->mcs5glpo[5] =
28098 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
28099 pi->mcs5glpo[6] =
28100 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
28101 pi->mcs5glpo[7] =
28102 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
28103 break;
28104 case 3:
28105
28106 pi->nphy_txpid5gh[0] =
28107 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
28108 pi->nphy_txpid5gh[1] =
28109 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
28110 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
28111 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
28112 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
28113 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
28114 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
28115 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
28116 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
28117 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
28118 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
28119 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
28120 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
28121 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
28122 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
28123 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
28124 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
28125 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
28126 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
28127 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
28128
28129 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
28130
28131 pi->mcs5ghpo[0] =
28132 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
28133 pi->mcs5ghpo[1] =
28134 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
28135 pi->mcs5ghpo[2] =
28136 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
28137 pi->mcs5ghpo[3] =
28138 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
28139 pi->mcs5ghpo[4] =
28140 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
28141 pi->mcs5ghpo[5] =
28142 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
28143 pi->mcs5ghpo[6] =
28144 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
28145 pi->mcs5ghpo[7] =
28146 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
28147 break;
28148 }
28149 }
28150
28151 wlc_phy_txpwr_apply_nphy(pi);
28152 }
28153
28154 static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi)
28155 {
28156
28157 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
28158 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
28159 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
28160
28161 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
28162 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
28163 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
28164 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
28165 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
28166
28167 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
28168 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
28169 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
28170 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
28171 if (PHY_GETVAR(pi, "antswctl5g")) {
28172
28173 pi->srom_fem5g.antswctrllut =
28174 (u8) PHY_GETINTVAR(pi, "antswctl5g");
28175 } else {
28176
28177 pi->srom_fem5g.antswctrllut =
28178 (u8) PHY_GETINTVAR(pi, "antswctl2g");
28179 }
28180
28181 wlc_phy_txpower_ipa_upd(pi);
28182
28183 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
28184 if (pi->phy_txcore_disable_temp == 0) {
28185 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
28186 }
28187
28188 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
28189 if (pi->phy_tempsense_offset != 0) {
28190 if (pi->phy_tempsense_offset >
28191 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET)) {
28192 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
28193 } else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
28194 NPHY_SROM_MINTEMPOFFSET)) {
28195 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
28196 } else {
28197 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
28198 }
28199 }
28200
28201 pi->phy_txcore_enable_temp =
28202 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
28203
28204 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
28205 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA) {
28206 pi->phycal_tempdelta = 0;
28207 }
28208
28209 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
28210
28211 return true;
28212 }
28213
28214 void wlc_phy_txpower_recalc_target_nphy(phy_info_t *pi)
28215 {
28216 u8 tx_pwr_ctrl_state;
28217 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28218 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28219
28220 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28221
28222 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28223 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28224 (void)R_REG(&pi->regs->maccontrol);
28225 udelay(1);
28226 }
28227
28228 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28229
28230 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28231 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28232 }
28233
28234 static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi)
28235 {
28236 u32 idx;
28237 u16 iqloCalbuf[7];
28238 u32 iqcomp, locomp, curr_locomp;
28239 s8 locomp_i, locomp_q;
28240 s8 curr_locomp_i, curr_locomp_q;
28241 u32 tbl_id, tbl_len, tbl_offset;
28242 u32 regval[128];
28243
28244 if (pi->phyhang_avoid)
28245 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28246
28247 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
28248
28249 tbl_len = 128;
28250 tbl_offset = 320;
28251 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28252 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28253 iqcomp =
28254 (tbl_id ==
28255 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
28256 (iqloCalbuf[1] & 0x3ff)
28257 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
28258 (iqloCalbuf[3] & 0x3ff);
28259
28260 for (idx = 0; idx < tbl_len; idx++) {
28261 regval[idx] = iqcomp;
28262 }
28263 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28264 regval);
28265 }
28266
28267 tbl_offset = 448;
28268 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28269 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28270
28271 locomp =
28272 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
28273 locomp_i = (s8) ((locomp >> 8) & 0xff);
28274 locomp_q = (s8) ((locomp) & 0xff);
28275 for (idx = 0; idx < tbl_len; idx++) {
28276 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28277 curr_locomp_i = locomp_i;
28278 curr_locomp_q = locomp_q;
28279 } else {
28280 curr_locomp_i = (s8) ((locomp_i *
28281 nphy_tpc_loscale[idx] +
28282 128) >> 8);
28283 curr_locomp_q =
28284 (s8) ((locomp_q * nphy_tpc_loscale[idx] +
28285 128) >> 8);
28286 }
28287 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
28288 curr_locomp |= (u32) (curr_locomp_q & 0xff);
28289 regval[idx] = curr_locomp;
28290 }
28291 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28292 regval);
28293 }
28294
28295 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28296
28297 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28298 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28299 }
28300
28301 if (pi->phyhang_avoid)
28302 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28303 }
28304
28305 static void wlc_phy_ipa_internal_tssi_setup_nphy(phy_info_t *pi)
28306 {
28307 u8 core;
28308
28309 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28310 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28311 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28312 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28313 TX_SSI_MASTER, 0x5);
28314 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28315 TX_SSI_MUX, 0xe);
28316
28317 if (pi->pubpi.radiorev != 5)
28318 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28319 core, TSSIA, 0);
28320
28321 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28322
28323 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28324 core, TSSIG, 0x1);
28325 } else {
28326
28327 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28328 core, TSSIG, 0x31);
28329 }
28330 } else {
28331 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28332 TX_SSI_MASTER, 0x9);
28333 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28334 TX_SSI_MUX, 0xc);
28335 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28336 TSSIG, 0);
28337
28338 if (pi->pubpi.radiorev != 5) {
28339 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28340
28341 WRITE_RADIO_REG3(pi, RADIO_2057,
28342 TX, core,
28343 TSSIA, 0x1);
28344 } else {
28345
28346 WRITE_RADIO_REG3(pi, RADIO_2057,
28347 TX, core,
28348 TSSIA, 0x31);
28349 }
28350 }
28351 }
28352 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28353 0);
28354 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28355 0);
28356 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28357 0x3);
28358 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28359 0x0);
28360 }
28361 } else {
28362 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28363 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28364 0x80);
28365 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28366 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28367
28368 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28369 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28370 0x0);
28371 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28372 0x0);
28373 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28374 0x3);
28375 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28376 0x0);
28377 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28378 0x8);
28379 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28380 0x0);
28381 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28382 0x0);
28383
28384 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28385 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28386 TX_SSI_MASTER, 0x5);
28387
28388 if (pi->pubpi.radiorev != 5)
28389 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28390 core, TSSIA, 0x0);
28391 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28392
28393 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28394 core, TSSIG, 0x31);
28395 } else {
28396 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28397 core, TSSIG, 0x11);
28398 }
28399 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28400 TX_SSI_MUX, 0xe);
28401 } else {
28402 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28403 TX_SSI_MASTER, 0x9);
28404 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28405 TSSIA, 0x31);
28406 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28407 TSSIG, 0x0);
28408 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28409 TX_SSI_MUX, 0xc);
28410 }
28411 }
28412 }
28413 }
28414
28415 static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi)
28416 {
28417 s32 rssi_buf[4];
28418 s32 int_val;
28419
28420 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28421
28422 return;
28423
28424 if (PHY_IPA(pi)) {
28425 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28426 }
28427
28428 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28429 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28430 0, 0x3, 0,
28431 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28432 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28433 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28434 }
28435
28436 wlc_phy_stopplayback_nphy(pi);
28437
28438 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
28439
28440 udelay(20);
28441 int_val =
28442 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
28443 1);
28444 wlc_phy_stopplayback_nphy(pi);
28445 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28446
28447 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28448 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28449 0, 0x3, 1,
28450 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28451 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28452 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28453 }
28454
28455 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28456
28457 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28458 (u8) ((int_val >> 24) & 0xff);
28459 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28460 (u8) ((int_val >> 24) & 0xff);
28461
28462 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28463 (u8) ((int_val >> 8) & 0xff);
28464 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28465 (u8) ((int_val >> 8) & 0xff);
28466 } else {
28467 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28468 (u8) ((int_val >> 24) & 0xff);
28469
28470 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28471 (u8) ((int_val >> 8) & 0xff);
28472
28473 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28474 (u8) ((int_val >> 16) & 0xff);
28475 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28476 (u8) ((int_val) & 0xff);
28477 }
28478
28479 }
28480
28481 static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi)
28482 {
28483 u32 idx;
28484 s16 a1[2], b0[2], b1[2];
28485 s8 target_pwr_qtrdbm[2];
28486 s32 num, den, pwr_est;
28487 u8 chan_freq_range;
28488 u8 idle_tssi[2];
28489 u32 tbl_id, tbl_len, tbl_offset;
28490 u32 regval[64];
28491 u8 core;
28492
28493 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28494 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28495 (void)R_REG(&pi->regs->maccontrol);
28496 udelay(1);
28497 }
28498
28499 if (pi->phyhang_avoid)
28500 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28501
28502 or_phy_reg(pi, 0x122, (0x1 << 0));
28503
28504 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28505 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
28506 } else {
28507
28508 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28509 }
28510
28511 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28512 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28513
28514 if (pi->sh->sromrev < 4) {
28515 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28516 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28517 target_pwr_qtrdbm[0] = 13 * 4;
28518 target_pwr_qtrdbm[1] = 13 * 4;
28519 a1[0] = -424;
28520 a1[1] = -424;
28521 b0[0] = 5612;
28522 b0[1] = 5612;
28523 b1[1] = -1393;
28524 b1[0] = -1393;
28525 } else {
28526
28527 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28528 switch (chan_freq_range) {
28529 case WL_CHAN_FREQ_RANGE_2G:
28530 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28531 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28532 target_pwr_qtrdbm[0] =
28533 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28534 target_pwr_qtrdbm[1] =
28535 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28536 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28537 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28538 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28539 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28540 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28541 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28542 break;
28543 case WL_CHAN_FREQ_RANGE_5GL:
28544 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28545 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28546 target_pwr_qtrdbm[0] =
28547 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28548 target_pwr_qtrdbm[1] =
28549 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28550 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28551 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28552 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28553 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28554 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28555 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28556 break;
28557 case WL_CHAN_FREQ_RANGE_5GM:
28558 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28559 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28560 target_pwr_qtrdbm[0] =
28561 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28562 target_pwr_qtrdbm[1] =
28563 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28564 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28565 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28566 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28567 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28568 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28569 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28570 break;
28571 case WL_CHAN_FREQ_RANGE_5GH:
28572 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28573 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28574 target_pwr_qtrdbm[0] =
28575 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28576 target_pwr_qtrdbm[1] =
28577 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28578 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28579 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28580 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28581 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28582 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28583 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28584 break;
28585 default:
28586 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28587 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28588 target_pwr_qtrdbm[0] = 13 * 4;
28589 target_pwr_qtrdbm[1] = 13 * 4;
28590 a1[0] = -424;
28591 a1[1] = -424;
28592 b0[0] = 5612;
28593 b0[1] = 5612;
28594 b1[1] = -1393;
28595 b1[0] = -1393;
28596 break;
28597 }
28598 }
28599
28600 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
28601 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
28602
28603 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28604 if (pi->srom_fem2g.tssipos) {
28605 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28606 }
28607
28608 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28609 for (core = 0; core <= 1; core++) {
28610 if (PHY_IPA(pi)) {
28611
28612 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28613 WRITE_RADIO_REG3(pi, RADIO_2057,
28614 TX, core,
28615 TX_SSI_MUX,
28616 0xe);
28617 } else {
28618 WRITE_RADIO_REG3(pi, RADIO_2057,
28619 TX, core,
28620 TX_SSI_MUX,
28621 0xc);
28622 }
28623 } else {
28624 }
28625 }
28626 } else {
28627 if (PHY_IPA(pi)) {
28628
28629 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28630 RADIO_2056_TX0,
28631 (CHSPEC_IS5G
28632 (pi->
28633 radio_chanspec)) ? 0xc : 0xe);
28634 write_radio_reg(pi,
28635 RADIO_2056_TX_TX_SSI_MUX |
28636 RADIO_2056_TX1,
28637 (CHSPEC_IS5G
28638 (pi->
28639 radio_chanspec)) ? 0xc : 0xe);
28640 } else {
28641
28642 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28643 RADIO_2056_TX0, 0x11);
28644 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28645 RADIO_2056_TX1, 0x11);
28646 }
28647 }
28648 }
28649
28650 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28651 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28652 (void)R_REG(&pi->regs->maccontrol);
28653 udelay(1);
28654 }
28655
28656 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28657 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28658 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28659 } else {
28660 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28661 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28662 }
28663
28664 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28665 mod_phy_reg(pi, 0x222, (0xff << 0),
28666 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28667 } else if (NREV_GT(pi->pubpi.phy_rev, 1)) {
28668 mod_phy_reg(pi, 0x222, (0xff << 0),
28669 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28670 }
28671
28672 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28673 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28674
28675 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28676
28677 write_phy_reg(pi, 0x1e9,
28678 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28679
28680 write_phy_reg(pi, 0x1ea,
28681 (target_pwr_qtrdbm[0] << 0) |
28682 (target_pwr_qtrdbm[1] << 8));
28683
28684 tbl_len = 64;
28685 tbl_offset = 0;
28686 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28687 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28688
28689 for (idx = 0; idx < tbl_len; idx++) {
28690 num =
28691 8 * (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28692 den = 32768 + a1[tbl_id - 26] * idx;
28693 pwr_est = max(((4 * num + den / 2) / den), -8);
28694 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28695 if (idx <=
28696 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28697 pwr_est =
28698 max(pwr_est,
28699 target_pwr_qtrdbm[tbl_id - 26] +
28700 1);
28701 }
28702 regval[idx] = (u32) pwr_est;
28703 }
28704 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28705 regval);
28706 }
28707
28708 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28709 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28710 pi->adj_pwr_tbl_nphy);
28711 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28712 pi->adj_pwr_tbl_nphy);
28713
28714 if (pi->phyhang_avoid)
28715 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28716 }
28717
28718 static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi)
28719 {
28720 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28721 (0x1 << 14) | (0x1 << 13));
28722 }
28723
28724 static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core)
28725 {
28726 u16 tmp;
28727 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28728
28729 tmp = (tmp & (0x7f << 8)) >> 8;
28730 return (u8) tmp;
28731 }
28732
28733 static void
28734 wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0, u8 idx1)
28735 {
28736 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28737
28738 if (NREV_GT(pi->pubpi.phy_rev, 1))
28739 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28740 }
28741
28742 u16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi)
28743 {
28744 u16 tmp;
28745 u16 pwr_idx[2];
28746
28747 if (wlc_phy_txpwr_ison_nphy(pi)) {
28748 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28749 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28750
28751 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28752 } else {
28753 tmp =
28754 ((pi->nphy_txpwrindex[PHY_CORE_0].
28755 index_internal & 0xff) << 8) | (pi->
28756 nphy_txpwrindex
28757 [PHY_CORE_1].
28758 index_internal & 0xff);
28759 }
28760
28761 return tmp;
28762 }
28763
28764 void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi)
28765 {
28766 if (PHY_IPA(pi)
28767 && (pi->nphy_force_papd_cal
28768 || (wlc_phy_txpwr_ison_nphy(pi)
28769 &&
28770 (((u32)
28771 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28772 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28773 || ((u32)
28774 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28775 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4))))) {
28776 wlc_phy_a4(pi, true);
28777 }
28778 }
28779
28780 void wlc_phy_txpwrctrl_enable_nphy(phy_info_t *pi, u8 ctrl_type)
28781 {
28782 u16 mask = 0, val = 0, ishw = 0;
28783 u8 ctr;
28784 uint core;
28785 u32 tbl_offset;
28786 u32 tbl_len;
28787 u16 regval[84];
28788
28789 if (pi->phyhang_avoid)
28790 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28791
28792 switch (ctrl_type) {
28793 case PHY_TPC_HW_OFF:
28794 case PHY_TPC_HW_ON:
28795 pi->nphy_txpwrctrl = ctrl_type;
28796 break;
28797 default:
28798 break;
28799 }
28800
28801 if (ctrl_type == PHY_TPC_HW_OFF) {
28802 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28803
28804 if (wlc_phy_txpwr_ison_nphy(pi)) {
28805 for (core = 0; core < pi->pubpi.phy_corenum;
28806 core++)
28807 pi->nphy_txpwr_idx[core] =
28808 wlc_phy_txpwr_idx_cur_get_nphy(pi,
28809 (u8)
28810 core);
28811 }
28812
28813 }
28814
28815 tbl_len = 84;
28816 tbl_offset = 64;
28817 for (ctr = 0; ctr < tbl_len; ctr++) {
28818 regval[ctr] = 0;
28819 }
28820 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28821 regval);
28822 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28823 regval);
28824
28825 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28826
28827 and_phy_reg(pi, 0x1e7,
28828 (u16) (~((0x1 << 15) |
28829 (0x1 << 14) | (0x1 << 13))));
28830 } else {
28831 and_phy_reg(pi, 0x1e7,
28832 (u16) (~((0x1 << 14) | (0x1 << 13))));
28833 }
28834
28835 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28836 or_phy_reg(pi, 0x8f, (0x1 << 8));
28837 or_phy_reg(pi, 0xa5, (0x1 << 8));
28838 } else {
28839 or_phy_reg(pi, 0xa5, (0x1 << 14));
28840 }
28841
28842 if (NREV_IS(pi->pubpi.phy_rev, 2))
28843 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28844 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28845 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28846
28847 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28848 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28849 MHF1_IQSWAP_WAR, WLC_BAND_ALL);
28850
28851 } else {
28852
28853 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28854 8, pi->adj_pwr_tbl_nphy);
28855 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28856 8, pi->adj_pwr_tbl_nphy);
28857
28858 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28859 mask = (0x1 << 14) | (0x1 << 13);
28860 val = (ishw << 14) | (ishw << 13);
28861
28862 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28863 mask |= (0x1 << 15);
28864 val |= (ishw << 15);
28865 }
28866
28867 mod_phy_reg(pi, 0x1e7, mask, val);
28868
28869 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28870 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28871 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28872 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28873 } else {
28874 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28875 if (NREV_GT(pi->pubpi.phy_rev, 1))
28876 mod_phy_reg(pi, 0x222,
28877 (0xff << 0), 0x64);
28878 }
28879 }
28880
28881 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28882 if ((pi->nphy_txpwr_idx[0] != 128)
28883 && (pi->nphy_txpwr_idx[1] != 128)) {
28884 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28885 pi->
28886 nphy_txpwr_idx
28887 [0],
28888 pi->
28889 nphy_txpwr_idx
28890 [1]);
28891 }
28892 }
28893
28894 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28895 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28896 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28897 } else {
28898 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28899 }
28900
28901 if (NREV_IS(pi->pubpi.phy_rev, 2))
28902 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28903 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28904 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28905
28906 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28907 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28908 0x0, WLC_BAND_ALL);
28909
28910 if (PHY_IPA(pi)) {
28911 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28912 0x29b, (0x1 << 2), (0) << 2);
28913
28914 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28915 0x29b, (0x1 << 2), (0) << 2);
28916
28917 }
28918
28919 }
28920
28921 if (pi->phyhang_avoid)
28922 wlc_phy_stay_in_carriersearch_nphy(pi, false);
28923 }
28924
28925 void
28926 wlc_phy_txpwr_index_nphy(phy_info_t *pi, u8 core_mask, s8 txpwrindex,
28927 bool restore_cals)
28928 {
28929 u8 core, txpwrctl_tbl;
28930 u16 tx_ind0, iq_ind0, lo_ind0;
28931 u16 m1m2;
28932 u32 txgain;
28933 u16 rad_gain, dac_gain;
28934 u8 bbmult;
28935 u32 iqcomp;
28936 u16 iqcomp_a, iqcomp_b;
28937 u32 locomp;
28938 u16 tmpval;
28939 u8 tx_pwr_ctrl_state;
28940 s32 rfpwr_offset;
28941 u16 regval[2];
28942
28943 if (pi->phyhang_avoid)
28944 wlc_phy_stay_in_carriersearch_nphy(pi, true);
28945
28946 tx_ind0 = 192;
28947 iq_ind0 = 320;
28948 lo_ind0 = 448;
28949
28950 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28951
28952 if ((core_mask & (1 << core)) == 0) {
28953 continue;
28954 }
28955
28956 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28957
28958 if (txpwrindex < 0) {
28959 if (pi->nphy_txpwrindex[core].index < 0) {
28960
28961 continue;
28962 }
28963
28964 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28965 mod_phy_reg(pi, 0x8f,
28966 (0x1 << 8),
28967 pi->nphy_txpwrindex[core].
28968 AfectrlOverride);
28969 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28970 pi->nphy_txpwrindex[core].
28971 AfectrlOverride);
28972 } else {
28973 mod_phy_reg(pi, 0xa5,
28974 (0x1 << 14),
28975 pi->nphy_txpwrindex[core].
28976 AfectrlOverride);
28977 }
28978
28979 write_phy_reg(pi, (core == PHY_CORE_0) ?
28980 0xaa : 0xab,
28981 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28982
28983 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28984 &pi->nphy_txpwrindex[core].
28985 rad_gain);
28986
28987 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28988 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28989 m1m2 |= ((core == PHY_CORE_0) ?
28990 (pi->nphy_txpwrindex[core].bbmult << 8) :
28991 (pi->nphy_txpwrindex[core].bbmult << 0));
28992 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28993
28994 if (restore_cals) {
28995
28996 wlc_phy_table_write_nphy(pi, 15, 2,
28997 (80 + 2 * core), 16,
28998 (void *)&pi->
28999 nphy_txpwrindex[core].
29000 iqcomp_a);
29001
29002 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29003 16,
29004 &pi->
29005 nphy_txpwrindex[core].
29006 locomp);
29007 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
29008 16,
29009 (void *)&pi->
29010 nphy_txpwrindex[core].
29011 locomp);
29012 }
29013
29014 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
29015
29016 pi->nphy_txpwrindex[core].index_internal =
29017 pi->nphy_txpwrindex[core].index_internal_save;
29018 } else {
29019
29020 if (pi->nphy_txpwrindex[core].index < 0) {
29021
29022 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29023 mod_phy_reg(pi, 0x8f,
29024 (0x1 << 8),
29025 pi->nphy_txpwrindex[core].
29026 AfectrlOverride);
29027 mod_phy_reg(pi, 0xa5, (0x1 << 8),
29028 pi->nphy_txpwrindex[core].
29029 AfectrlOverride);
29030 } else {
29031 pi->nphy_txpwrindex[core].
29032 AfectrlOverride =
29033 read_phy_reg(pi, 0xa5);
29034 }
29035
29036 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
29037 read_phy_reg(pi,
29038 (core ==
29039 PHY_CORE_0) ? 0xaa : 0xab);
29040
29041 wlc_phy_table_read_nphy(pi, 7, 1,
29042 (0x110 + core), 16,
29043 &pi->
29044 nphy_txpwrindex[core].
29045 rad_gain);
29046
29047 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
29048 &tmpval);
29049 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
29050 tmpval &= 0xff;
29051 pi->nphy_txpwrindex[core].bbmult =
29052 (u8) tmpval;
29053
29054 wlc_phy_table_read_nphy(pi, 15, 2,
29055 (80 + 2 * core), 16,
29056 (void *)&pi->
29057 nphy_txpwrindex[core].
29058 iqcomp_a);
29059
29060 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
29061 16,
29062 (void *)&pi->
29063 nphy_txpwrindex[core].
29064 locomp);
29065
29066 pi->nphy_txpwrindex[core].index_internal_save =
29067 pi->nphy_txpwrindex[core].index_internal;
29068 }
29069
29070 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
29071 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
29072
29073 if (NREV_IS(pi->pubpi.phy_rev, 1))
29074 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
29075
29076 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29077 (tx_ind0 + txpwrindex), 32,
29078 &txgain);
29079
29080 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29081 rad_gain =
29082 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
29083 } else {
29084 rad_gain =
29085 (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
29086 }
29087 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
29088 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
29089
29090 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29091 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
29092 0xa5), (0x1 << 8), (0x1 << 8));
29093 } else {
29094 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
29095 }
29096 write_phy_reg(pi, (core == PHY_CORE_0) ?
29097 0xaa : 0xab, dac_gain);
29098
29099 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
29100 &rad_gain);
29101
29102 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
29103 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
29104 m1m2 |=
29105 ((core ==
29106 PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
29107
29108 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
29109
29110 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29111 (iq_ind0 + txpwrindex), 32,
29112 &iqcomp);
29113 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
29114 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
29115
29116 if (restore_cals) {
29117 regval[0] = (u16) iqcomp_a;
29118 regval[1] = (u16) iqcomp_b;
29119 wlc_phy_table_write_nphy(pi, 15, 2,
29120 (80 + 2 * core), 16,
29121 regval);
29122 }
29123
29124 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29125 (lo_ind0 + txpwrindex), 32,
29126 &locomp);
29127 if (restore_cals) {
29128 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29129 16, &locomp);
29130 }
29131
29132 if (NREV_IS(pi->pubpi.phy_rev, 1))
29133 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
29134
29135 if (PHY_IPA(pi)) {
29136 wlc_phy_table_read_nphy(pi,
29137 (core ==
29138 PHY_CORE_0 ?
29139 NPHY_TBL_ID_CORE1TXPWRCTL
29140 :
29141 NPHY_TBL_ID_CORE2TXPWRCTL),
29142 1, 576 + txpwrindex, 32,
29143 &rfpwr_offset);
29144
29145 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29146 0x29b, (0x1ff << 4),
29147 ((s16) rfpwr_offset) << 4);
29148
29149 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29150 0x29b, (0x1 << 2), (1) << 2);
29151
29152 }
29153
29154 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
29155 }
29156
29157 pi->nphy_txpwrindex[core].index = txpwrindex;
29158 }
29159
29160 if (pi->phyhang_avoid)
29161 wlc_phy_stay_in_carriersearch_nphy(pi, false);
29162 }
29163
29164 void
29165 wlc_phy_txpower_sromlimit_get_nphy(phy_info_t *pi, uint chan, u8 *max_pwr,
29166 u8 txp_rate_idx)
29167 {
29168 u8 chan_freq_range;
29169
29170 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
29171 switch (chan_freq_range) {
29172 case WL_CHAN_FREQ_RANGE_2G:
29173 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29174 break;
29175 case WL_CHAN_FREQ_RANGE_5GM:
29176 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29177 break;
29178 case WL_CHAN_FREQ_RANGE_5GL:
29179 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29180 break;
29181 case WL_CHAN_FREQ_RANGE_5GH:
29182 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29183 break;
29184 default:
29185 ASSERT(0);
29186 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29187 break;
29188 }
29189
29190 return;
29191 }
29192
29193 void wlc_phy_stay_in_carriersearch_nphy(phy_info_t *pi, bool enable)
29194 {
29195 u16 clip_off[] = { 0xffff, 0xffff };
29196
29197 ASSERT(0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
29198
29199 if (enable) {
29200 if (pi->nphy_deaf_count == 0) {
29201 pi->classifier_state =
29202 wlc_phy_classifier_nphy(pi, 0, 0);
29203 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
29204 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
29205 wlc_phy_clip_det_nphy(pi, 1, clip_off);
29206 }
29207
29208 pi->nphy_deaf_count++;
29209
29210 wlc_phy_resetcca_nphy(pi);
29211
29212 } else {
29213 ASSERT(pi->nphy_deaf_count > 0);
29214
29215 pi->nphy_deaf_count--;
29216
29217 if (pi->nphy_deaf_count == 0) {
29218 wlc_phy_classifier_nphy(pi, (0x7 << 0),
29219 pi->classifier_state);
29220 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
29221 }
29222 }
29223 }
29224
29225 void wlc_nphy_deaf_mode(phy_info_t *pi, bool mode)
29226 {
29227 wlapi_suspend_mac_and_wait(pi->sh->physhim);
29228
29229 if (mode) {
29230 if (pi->nphy_deaf_count == 0)
29231 wlc_phy_stay_in_carriersearch_nphy(pi, true);
29232 } else {
29233 if (pi->nphy_deaf_count > 0)
29234 wlc_phy_stay_in_carriersearch_nphy(pi, false);
29235 }
29236 wlapi_enable_mac(pi->sh->physhim);
29237 }
This page took 0.910545 seconds and 5 git commands to generate.