This source file includes following definitions.
- BBuGetFrameTime
- vnt_get_phy_field
- BBbReadEmbedded
- BBbWriteEmbedded
- BBbVT3253Init
- BBvSetShortSlotTime
- BBvSetVGAGainOffset
- BBvSoftwareReset
- BBvPowerSaveModeON
- BBvPowerSaveModeOFF
- BBvSetTxAntennaMode
- BBvSetRxAntennaMode
- BBvSetDeepSleep
- BBvExitDeepSleep
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #include "tmacro.h"
37 #include "mac.h"
38 #include "baseband.h"
39 #include "srom.h"
40 #include "rf.h"
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 #define CB_VT3253_INIT_FOR_RFMD 446
57 static const unsigned char byVT3253InitTab_RFMD[CB_VT3253_INIT_FOR_RFMD][2] = {
58 {0x00, 0x30},
59 {0x01, 0x00},
60 {0x02, 0x00},
61 {0x03, 0x00},
62 {0x04, 0x00},
63 {0x05, 0x00},
64 {0x06, 0x00},
65 {0x07, 0x00},
66 {0x08, 0x70},
67 {0x09, 0x45},
68 {0x0a, 0x2a},
69 {0x0b, 0x76},
70 {0x0c, 0x00},
71 {0x0d, 0x01},
72 {0x0e, 0x80},
73 {0x0f, 0x00},
74 {0x10, 0x00},
75 {0x11, 0x00},
76 {0x12, 0x00},
77 {0x13, 0x00},
78 {0x14, 0x00},
79 {0x15, 0x00},
80 {0x16, 0x00},
81 {0x17, 0x00},
82 {0x18, 0x00},
83 {0x19, 0x00},
84 {0x1a, 0x00},
85 {0x1b, 0x9d},
86 {0x1c, 0x05},
87 {0x1d, 0x00},
88 {0x1e, 0x00},
89 {0x1f, 0x00},
90 {0x20, 0x00},
91 {0x21, 0x00},
92 {0x22, 0x00},
93 {0x23, 0x00},
94 {0x24, 0x00},
95 {0x25, 0x4a},
96 {0x26, 0x00},
97 {0x27, 0x00},
98 {0x28, 0x00},
99 {0x29, 0x00},
100 {0x2a, 0x00},
101 {0x2b, 0x00},
102 {0x2c, 0x00},
103 {0x2d, 0xa8},
104 {0x2e, 0x1a},
105 {0x2f, 0x0c},
106 {0x30, 0x26},
107 {0x31, 0x5b},
108 {0x32, 0x00},
109 {0x33, 0x00},
110 {0x34, 0x00},
111 {0x35, 0x00},
112 {0x36, 0xaa},
113 {0x37, 0xaa},
114 {0x38, 0xff},
115 {0x39, 0xff},
116 {0x3a, 0x00},
117 {0x3b, 0x00},
118 {0x3c, 0x00},
119 {0x3d, 0x0d},
120 {0x3e, 0x51},
121 {0x3f, 0x04},
122 {0x40, 0x00},
123 {0x41, 0x08},
124 {0x42, 0x00},
125 {0x43, 0x08},
126 {0x44, 0x06},
127 {0x45, 0x14},
128 {0x46, 0x05},
129 {0x47, 0x08},
130 {0x48, 0x00},
131 {0x49, 0x00},
132 {0x4a, 0x00},
133 {0x4b, 0x00},
134 {0x4c, 0x09},
135 {0x4d, 0x80},
136 {0x4e, 0x00},
137 {0x4f, 0xc5},
138 {0x50, 0x14},
139 {0x51, 0x19},
140 {0x52, 0x00},
141 {0x53, 0x00},
142 {0x54, 0x00},
143 {0x55, 0x00},
144 {0x56, 0x00},
145 {0x57, 0x00},
146 {0x58, 0x00},
147 {0x59, 0xb0},
148 {0x5a, 0x00},
149 {0x5b, 0x00},
150 {0x5c, 0x00},
151 {0x5d, 0x00},
152 {0x5e, 0x00},
153 {0x5f, 0x00},
154 {0x60, 0x44},
155 {0x61, 0x04},
156 {0x62, 0x00},
157 {0x63, 0x00},
158 {0x64, 0x00},
159 {0x65, 0x00},
160 {0x66, 0x04},
161 {0x67, 0xb7},
162 {0x68, 0x00},
163 {0x69, 0x00},
164 {0x6a, 0x00},
165 {0x6b, 0x00},
166 {0x6c, 0x00},
167 {0x6d, 0x03},
168 {0x6e, 0x01},
169 {0x6f, 0x00},
170 {0x70, 0x00},
171 {0x71, 0x00},
172 {0x72, 0x00},
173 {0x73, 0x00},
174 {0x74, 0x00},
175 {0x75, 0x00},
176 {0x76, 0x00},
177 {0x77, 0x00},
178 {0x78, 0x00},
179 {0x79, 0x00},
180 {0x7a, 0x00},
181 {0x7b, 0x00},
182 {0x7c, 0x00},
183 {0x7d, 0x00},
184 {0x7e, 0x00},
185 {0x7f, 0x00},
186 {0x80, 0x0b},
187 {0x81, 0x00},
188 {0x82, 0x3c},
189 {0x83, 0x00},
190 {0x84, 0x00},
191 {0x85, 0x00},
192 {0x86, 0x00},
193 {0x87, 0x00},
194 {0x88, 0x08},
195 {0x89, 0x00},
196 {0x8a, 0x08},
197 {0x8b, 0xa6},
198 {0x8c, 0x84},
199 {0x8d, 0x47},
200 {0x8e, 0xbb},
201 {0x8f, 0x02},
202 {0x90, 0x21},
203 {0x91, 0x0c},
204 {0x92, 0x04},
205 {0x93, 0x22},
206 {0x94, 0x00},
207 {0x95, 0x00},
208 {0x96, 0x00},
209 {0x97, 0xeb},
210 {0x98, 0x00},
211 {0x99, 0x00},
212 {0x9a, 0x00},
213 {0x9b, 0x00},
214 {0x9c, 0x00},
215 {0x9d, 0x00},
216 {0x9e, 0x00},
217 {0x9f, 0x00},
218 {0xa0, 0x00},
219 {0xa1, 0x00},
220 {0xa2, 0x00},
221 {0xa3, 0x00},
222 {0xa4, 0x00},
223 {0xa5, 0x00},
224 {0xa6, 0x10},
225 {0xa7, 0x04},
226 {0xa8, 0x10},
227 {0xa9, 0x00},
228 {0xaa, 0x8f},
229 {0xab, 0x00},
230 {0xac, 0x00},
231 {0xad, 0x00},
232 {0xae, 0x00},
233 {0xaf, 0x80},
234 {0xb0, 0x38},
235 {0xb1, 0x00},
236 {0xb2, 0x00},
237 {0xb3, 0x00},
238 {0xb4, 0xee},
239 {0xb5, 0xff},
240 {0xb6, 0x10},
241 {0xb7, 0x00},
242 {0xb8, 0x00},
243 {0xb9, 0x00},
244 {0xba, 0x00},
245 {0xbb, 0x03},
246 {0xbc, 0x00},
247 {0xbd, 0x00},
248 {0xbe, 0x00},
249 {0xbf, 0x00},
250 {0xc0, 0x10},
251 {0xc1, 0x10},
252 {0xc2, 0x18},
253 {0xc3, 0x20},
254 {0xc4, 0x10},
255 {0xc5, 0x00},
256 {0xc6, 0x22},
257 {0xc7, 0x14},
258 {0xc8, 0x0f},
259 {0xc9, 0x08},
260 {0xca, 0xa4},
261 {0xcb, 0xa7},
262 {0xcc, 0x3c},
263 {0xcd, 0x10},
264 {0xce, 0x20},
265 {0xcf, 0x00},
266 {0xd0, 0x00},
267 {0xd1, 0x10},
268 {0xd2, 0x00},
269 {0xd3, 0x00},
270 {0xd4, 0x10},
271 {0xd5, 0x33},
272 {0xd6, 0x70},
273 {0xd7, 0x01},
274 {0xd8, 0x00},
275 {0xd9, 0x00},
276 {0xda, 0x00},
277 {0xdb, 0x00},
278 {0xdc, 0x00},
279 {0xdd, 0x00},
280 {0xde, 0x00},
281 {0xdf, 0x00},
282 {0xe0, 0x00},
283 {0xe1, 0x00},
284 {0xe2, 0xcc},
285 {0xe3, 0x04},
286 {0xe4, 0x08},
287 {0xe5, 0x10},
288 {0xe6, 0x00},
289 {0xe7, 0x0e},
290 {0xe8, 0x88},
291 {0xe9, 0xd4},
292 {0xea, 0x05},
293 {0xeb, 0xf0},
294 {0xec, 0x79},
295 {0xed, 0x0f},
296 {0xee, 0x04},
297 {0xef, 0x04},
298 {0xf0, 0x00},
299 {0xf1, 0x00},
300 {0xf2, 0x00},
301 {0xf3, 0x00},
302 {0xf4, 0x00},
303 {0xf5, 0x00},
304 {0xf6, 0x00},
305 {0xf7, 0x00},
306 {0xf8, 0x00},
307 {0xf9, 0x00},
308 {0xF0, 0x00},
309 {0xF1, 0xF8},
310 {0xF0, 0x80},
311 {0xF0, 0x00},
312 {0xF1, 0xF4},
313 {0xF0, 0x81},
314 {0xF0, 0x01},
315 {0xF1, 0xF0},
316 {0xF0, 0x82},
317 {0xF0, 0x02},
318 {0xF1, 0xEC},
319 {0xF0, 0x83},
320 {0xF0, 0x03},
321 {0xF1, 0xE8},
322 {0xF0, 0x84},
323 {0xF0, 0x04},
324 {0xF1, 0xE4},
325 {0xF0, 0x85},
326 {0xF0, 0x05},
327 {0xF1, 0xE0},
328 {0xF0, 0x86},
329 {0xF0, 0x06},
330 {0xF1, 0xDC},
331 {0xF0, 0x87},
332 {0xF0, 0x07},
333 {0xF1, 0xD8},
334 {0xF0, 0x88},
335 {0xF0, 0x08},
336 {0xF1, 0xD4},
337 {0xF0, 0x89},
338 {0xF0, 0x09},
339 {0xF1, 0xD0},
340 {0xF0, 0x8A},
341 {0xF0, 0x0A},
342 {0xF1, 0xCC},
343 {0xF0, 0x8B},
344 {0xF0, 0x0B},
345 {0xF1, 0xC8},
346 {0xF0, 0x8C},
347 {0xF0, 0x0C},
348 {0xF1, 0xC4},
349 {0xF0, 0x8D},
350 {0xF0, 0x0D},
351 {0xF1, 0xC0},
352 {0xF0, 0x8E},
353 {0xF0, 0x0E},
354 {0xF1, 0xBC},
355 {0xF0, 0x8F},
356 {0xF0, 0x0F},
357 {0xF1, 0xB8},
358 {0xF0, 0x90},
359 {0xF0, 0x10},
360 {0xF1, 0xB4},
361 {0xF0, 0x91},
362 {0xF0, 0x11},
363 {0xF1, 0xB0},
364 {0xF0, 0x92},
365 {0xF0, 0x12},
366 {0xF1, 0xAC},
367 {0xF0, 0x93},
368 {0xF0, 0x13},
369 {0xF1, 0xA8},
370 {0xF0, 0x94},
371 {0xF0, 0x14},
372 {0xF1, 0xA4},
373 {0xF0, 0x95},
374 {0xF0, 0x15},
375 {0xF1, 0xA0},
376 {0xF0, 0x96},
377 {0xF0, 0x16},
378 {0xF1, 0x9C},
379 {0xF0, 0x97},
380 {0xF0, 0x17},
381 {0xF1, 0x98},
382 {0xF0, 0x98},
383 {0xF0, 0x18},
384 {0xF1, 0x94},
385 {0xF0, 0x99},
386 {0xF0, 0x19},
387 {0xF1, 0x90},
388 {0xF0, 0x9A},
389 {0xF0, 0x1A},
390 {0xF1, 0x8C},
391 {0xF0, 0x9B},
392 {0xF0, 0x1B},
393 {0xF1, 0x88},
394 {0xF0, 0x9C},
395 {0xF0, 0x1C},
396 {0xF1, 0x84},
397 {0xF0, 0x9D},
398 {0xF0, 0x1D},
399 {0xF1, 0x80},
400 {0xF0, 0x9E},
401 {0xF0, 0x1E},
402 {0xF1, 0x7C},
403 {0xF0, 0x9F},
404 {0xF0, 0x1F},
405 {0xF1, 0x78},
406 {0xF0, 0xA0},
407 {0xF0, 0x20},
408 {0xF1, 0x74},
409 {0xF0, 0xA1},
410 {0xF0, 0x21},
411 {0xF1, 0x70},
412 {0xF0, 0xA2},
413 {0xF0, 0x22},
414 {0xF1, 0x6C},
415 {0xF0, 0xA3},
416 {0xF0, 0x23},
417 {0xF1, 0x68},
418 {0xF0, 0xA4},
419 {0xF0, 0x24},
420 {0xF1, 0x64},
421 {0xF0, 0xA5},
422 {0xF0, 0x25},
423 {0xF1, 0x60},
424 {0xF0, 0xA6},
425 {0xF0, 0x26},
426 {0xF1, 0x5C},
427 {0xF0, 0xA7},
428 {0xF0, 0x27},
429 {0xF1, 0x58},
430 {0xF0, 0xA8},
431 {0xF0, 0x28},
432 {0xF1, 0x54},
433 {0xF0, 0xA9},
434 {0xF0, 0x29},
435 {0xF1, 0x50},
436 {0xF0, 0xAA},
437 {0xF0, 0x2A},
438 {0xF1, 0x4C},
439 {0xF0, 0xAB},
440 {0xF0, 0x2B},
441 {0xF1, 0x48},
442 {0xF0, 0xAC},
443 {0xF0, 0x2C},
444 {0xF1, 0x44},
445 {0xF0, 0xAD},
446 {0xF0, 0x2D},
447 {0xF1, 0x40},
448 {0xF0, 0xAE},
449 {0xF0, 0x2E},
450 {0xF1, 0x3C},
451 {0xF0, 0xAF},
452 {0xF0, 0x2F},
453 {0xF1, 0x38},
454 {0xF0, 0xB0},
455 {0xF0, 0x30},
456 {0xF1, 0x34},
457 {0xF0, 0xB1},
458 {0xF0, 0x31},
459 {0xF1, 0x30},
460 {0xF0, 0xB2},
461 {0xF0, 0x32},
462 {0xF1, 0x2C},
463 {0xF0, 0xB3},
464 {0xF0, 0x33},
465 {0xF1, 0x28},
466 {0xF0, 0xB4},
467 {0xF0, 0x34},
468 {0xF1, 0x24},
469 {0xF0, 0xB5},
470 {0xF0, 0x35},
471 {0xF1, 0x20},
472 {0xF0, 0xB6},
473 {0xF0, 0x36},
474 {0xF1, 0x1C},
475 {0xF0, 0xB7},
476 {0xF0, 0x37},
477 {0xF1, 0x18},
478 {0xF0, 0xB8},
479 {0xF0, 0x38},
480 {0xF1, 0x14},
481 {0xF0, 0xB9},
482 {0xF0, 0x39},
483 {0xF1, 0x10},
484 {0xF0, 0xBA},
485 {0xF0, 0x3A},
486 {0xF1, 0x0C},
487 {0xF0, 0xBB},
488 {0xF0, 0x3B},
489 {0xF1, 0x08},
490 {0xF0, 0x00},
491 {0xF0, 0x3C},
492 {0xF1, 0x04},
493 {0xF0, 0xBD},
494 {0xF0, 0x3D},
495 {0xF1, 0x00},
496 {0xF0, 0xBE},
497 {0xF0, 0x3E},
498 {0xF1, 0x00},
499 {0xF0, 0xBF},
500 {0xF0, 0x3F},
501 {0xF1, 0x00},
502 {0xF0, 0xC0},
503 {0xF0, 0x00},
504 };
505
506 #define CB_VT3253B0_INIT_FOR_RFMD 256
507 static const unsigned char byVT3253B0_RFMD[CB_VT3253B0_INIT_FOR_RFMD][2] = {
508 {0x00, 0x31},
509 {0x01, 0x00},
510 {0x02, 0x00},
511 {0x03, 0x00},
512 {0x04, 0x00},
513 {0x05, 0x81},
514 {0x06, 0x00},
515 {0x07, 0x00},
516 {0x08, 0x38},
517 {0x09, 0x45},
518 {0x0a, 0x2a},
519 {0x0b, 0x76},
520 {0x0c, 0x00},
521 {0x0d, 0x00},
522 {0x0e, 0x80},
523 {0x0f, 0x00},
524 {0x10, 0x00},
525 {0x11, 0x00},
526 {0x12, 0x00},
527 {0x13, 0x00},
528 {0x14, 0x00},
529 {0x15, 0x00},
530 {0x16, 0x00},
531 {0x17, 0x00},
532 {0x18, 0x00},
533 {0x19, 0x00},
534 {0x1a, 0x00},
535 {0x1b, 0x8e},
536 {0x1c, 0x06},
537 {0x1d, 0x00},
538 {0x1e, 0x00},
539 {0x1f, 0x00},
540 {0x20, 0x00},
541 {0x21, 0x00},
542 {0x22, 0x00},
543 {0x23, 0x00},
544 {0x24, 0x00},
545 {0x25, 0x4a},
546 {0x26, 0x00},
547 {0x27, 0x00},
548 {0x28, 0x00},
549 {0x29, 0x00},
550 {0x2a, 0x00},
551 {0x2b, 0x00},
552 {0x2c, 0x00},
553 {0x2d, 0x34},
554 {0x2e, 0x18},
555 {0x2f, 0x0c},
556 {0x30, 0x26},
557 {0x31, 0x5b},
558 {0x32, 0x00},
559 {0x33, 0x00},
560 {0x34, 0x00},
561 {0x35, 0x00},
562 {0x36, 0xaa},
563 {0x37, 0xaa},
564 {0x38, 0xff},
565 {0x39, 0xff},
566 {0x3a, 0xf8},
567 {0x3b, 0x00},
568 {0x3c, 0x00},
569 {0x3d, 0x09},
570 {0x3e, 0x0d},
571 {0x3f, 0x04},
572 {0x40, 0x00},
573 {0x41, 0x08},
574 {0x42, 0x00},
575 {0x43, 0x08},
576 {0x44, 0x08},
577 {0x45, 0x14},
578 {0x46, 0x05},
579 {0x47, 0x08},
580 {0x48, 0x00},
581 {0x49, 0x00},
582 {0x4a, 0x00},
583 {0x4b, 0x00},
584 {0x4c, 0x09},
585 {0x4d, 0x80},
586 {0x4e, 0x00},
587 {0x4f, 0xc5},
588 {0x50, 0x14},
589 {0x51, 0x19},
590 {0x52, 0x00},
591 {0x53, 0x00},
592 {0x54, 0x00},
593 {0x55, 0x00},
594 {0x56, 0x00},
595 {0x57, 0x00},
596 {0x58, 0x00},
597 {0x59, 0xb0},
598 {0x5a, 0x00},
599 {0x5b, 0x00},
600 {0x5c, 0x00},
601 {0x5d, 0x00},
602 {0x5e, 0x00},
603 {0x5f, 0x00},
604 {0x60, 0x39},
605 {0x61, 0x83},
606 {0x62, 0x00},
607 {0x63, 0x00},
608 {0x64, 0x00},
609 {0x65, 0x00},
610 {0x66, 0xc0},
611 {0x67, 0x49},
612 {0x68, 0x00},
613 {0x69, 0x00},
614 {0x6a, 0x00},
615 {0x6b, 0x00},
616 {0x6c, 0x00},
617 {0x6d, 0x03},
618 {0x6e, 0x01},
619 {0x6f, 0x00},
620 {0x70, 0x00},
621 {0x71, 0x00},
622 {0x72, 0x00},
623 {0x73, 0x00},
624 {0x74, 0x00},
625 {0x75, 0x00},
626 {0x76, 0x00},
627 {0x77, 0x00},
628 {0x78, 0x00},
629 {0x79, 0x00},
630 {0x7a, 0x00},
631 {0x7b, 0x00},
632 {0x7c, 0x00},
633 {0x7d, 0x00},
634 {0x7e, 0x00},
635 {0x7f, 0x00},
636 {0x80, 0x89},
637 {0x81, 0x00},
638 {0x82, 0x0e},
639 {0x83, 0x00},
640 {0x84, 0x00},
641 {0x85, 0x00},
642 {0x86, 0x00},
643 {0x87, 0x00},
644 {0x88, 0x08},
645 {0x89, 0x00},
646 {0x8a, 0x0e},
647 {0x8b, 0xa7},
648 {0x8c, 0x88},
649 {0x8d, 0x47},
650 {0x8e, 0xaa},
651 {0x8f, 0x02},
652 {0x90, 0x23},
653 {0x91, 0x0c},
654 {0x92, 0x06},
655 {0x93, 0x08},
656 {0x94, 0x00},
657 {0x95, 0x00},
658 {0x96, 0x00},
659 {0x97, 0xeb},
660 {0x98, 0x00},
661 {0x99, 0x00},
662 {0x9a, 0x00},
663 {0x9b, 0x00},
664 {0x9c, 0x00},
665 {0x9d, 0x00},
666 {0x9e, 0x00},
667 {0x9f, 0x00},
668 {0xa0, 0x00},
669 {0xa1, 0x00},
670 {0xa2, 0x00},
671 {0xa3, 0xcd},
672 {0xa4, 0x07},
673 {0xa5, 0x33},
674 {0xa6, 0x18},
675 {0xa7, 0x00},
676 {0xa8, 0x18},
677 {0xa9, 0x00},
678 {0xaa, 0x28},
679 {0xab, 0x00},
680 {0xac, 0x00},
681 {0xad, 0x00},
682 {0xae, 0x00},
683 {0xaf, 0x18},
684 {0xb0, 0x38},
685 {0xb1, 0x30},
686 {0xb2, 0x00},
687 {0xb3, 0x00},
688 {0xb4, 0x00},
689 {0xb5, 0x00},
690 {0xb6, 0x84},
691 {0xb7, 0xfd},
692 {0xb8, 0x00},
693 {0xb9, 0x00},
694 {0xba, 0x00},
695 {0xbb, 0x03},
696 {0xbc, 0x00},
697 {0xbd, 0x00},
698 {0xbe, 0x00},
699 {0xbf, 0x00},
700 {0xc0, 0x10},
701 {0xc1, 0x20},
702 {0xc2, 0x18},
703 {0xc3, 0x20},
704 {0xc4, 0x10},
705 {0xc5, 0x2c},
706 {0xc6, 0x1e},
707 {0xc7, 0x10},
708 {0xc8, 0x12},
709 {0xc9, 0x01},
710 {0xca, 0x6f},
711 {0xcb, 0xa7},
712 {0xcc, 0x3c},
713 {0xcd, 0x10},
714 {0xce, 0x00},
715 {0xcf, 0x22},
716 {0xd0, 0x00},
717 {0xd1, 0x10},
718 {0xd2, 0x00},
719 {0xd3, 0x00},
720 {0xd4, 0x10},
721 {0xd5, 0x33},
722 {0xd6, 0x80},
723 {0xd7, 0x21},
724 {0xd8, 0x00},
725 {0xd9, 0x00},
726 {0xda, 0x00},
727 {0xdb, 0x00},
728 {0xdc, 0x00},
729 {0xdd, 0x00},
730 {0xde, 0x00},
731 {0xdf, 0x00},
732 {0xe0, 0x00},
733 {0xe1, 0xB3},
734 {0xe2, 0x00},
735 {0xe3, 0x00},
736 {0xe4, 0x00},
737 {0xe5, 0x10},
738 {0xe6, 0x00},
739 {0xe7, 0x18},
740 {0xe8, 0x08},
741 {0xe9, 0xd4},
742 {0xea, 0x00},
743 {0xeb, 0xff},
744 {0xec, 0x79},
745 {0xed, 0x10},
746 {0xee, 0x30},
747 {0xef, 0x02},
748 {0xf0, 0x00},
749 {0xf1, 0x09},
750 {0xf2, 0x00},
751 {0xf3, 0x00},
752 {0xf4, 0x00},
753 {0xf5, 0x00},
754 {0xf6, 0x00},
755 {0xf7, 0x00},
756 {0xf8, 0x00},
757 {0xf9, 0x00},
758 {0xfa, 0x00},
759 {0xfb, 0x00},
760 {0xfc, 0x00},
761 {0xfd, 0x00},
762 {0xfe, 0x00},
763 {0xff, 0x00},
764 };
765
766 #define CB_VT3253B0_AGC_FOR_RFMD2959 195
767
768 static
769 unsigned char byVT3253B0_AGC4_RFMD2959[CB_VT3253B0_AGC_FOR_RFMD2959][2] = {
770 {0xF0, 0x00},
771 {0xF1, 0x3E},
772 {0xF0, 0x80},
773 {0xF0, 0x00},
774 {0xF1, 0x3E},
775 {0xF0, 0x81},
776 {0xF0, 0x01},
777 {0xF1, 0x3E},
778 {0xF0, 0x82},
779 {0xF0, 0x02},
780 {0xF1, 0x3E},
781 {0xF0, 0x83},
782 {0xF0, 0x03},
783 {0xF1, 0x3B},
784 {0xF0, 0x84},
785 {0xF0, 0x04},
786 {0xF1, 0x39},
787 {0xF0, 0x85},
788 {0xF0, 0x05},
789 {0xF1, 0x38},
790 {0xF0, 0x86},
791 {0xF0, 0x06},
792 {0xF1, 0x37},
793 {0xF0, 0x87},
794 {0xF0, 0x07},
795 {0xF1, 0x36},
796 {0xF0, 0x88},
797 {0xF0, 0x08},
798 {0xF1, 0x35},
799 {0xF0, 0x89},
800 {0xF0, 0x09},
801 {0xF1, 0x35},
802 {0xF0, 0x8A},
803 {0xF0, 0x0A},
804 {0xF1, 0x34},
805 {0xF0, 0x8B},
806 {0xF0, 0x0B},
807 {0xF1, 0x34},
808 {0xF0, 0x8C},
809 {0xF0, 0x0C},
810 {0xF1, 0x33},
811 {0xF0, 0x8D},
812 {0xF0, 0x0D},
813 {0xF1, 0x32},
814 {0xF0, 0x8E},
815 {0xF0, 0x0E},
816 {0xF1, 0x31},
817 {0xF0, 0x8F},
818 {0xF0, 0x0F},
819 {0xF1, 0x30},
820 {0xF0, 0x90},
821 {0xF0, 0x10},
822 {0xF1, 0x2F},
823 {0xF0, 0x91},
824 {0xF0, 0x11},
825 {0xF1, 0x2F},
826 {0xF0, 0x92},
827 {0xF0, 0x12},
828 {0xF1, 0x2E},
829 {0xF0, 0x93},
830 {0xF0, 0x13},
831 {0xF1, 0x2D},
832 {0xF0, 0x94},
833 {0xF0, 0x14},
834 {0xF1, 0x2C},
835 {0xF0, 0x95},
836 {0xF0, 0x15},
837 {0xF1, 0x2B},
838 {0xF0, 0x96},
839 {0xF0, 0x16},
840 {0xF1, 0x2B},
841 {0xF0, 0x97},
842 {0xF0, 0x17},
843 {0xF1, 0x2A},
844 {0xF0, 0x98},
845 {0xF0, 0x18},
846 {0xF1, 0x29},
847 {0xF0, 0x99},
848 {0xF0, 0x19},
849 {0xF1, 0x28},
850 {0xF0, 0x9A},
851 {0xF0, 0x1A},
852 {0xF1, 0x27},
853 {0xF0, 0x9B},
854 {0xF0, 0x1B},
855 {0xF1, 0x26},
856 {0xF0, 0x9C},
857 {0xF0, 0x1C},
858 {0xF1, 0x25},
859 {0xF0, 0x9D},
860 {0xF0, 0x1D},
861 {0xF1, 0x24},
862 {0xF0, 0x9E},
863 {0xF0, 0x1E},
864 {0xF1, 0x24},
865 {0xF0, 0x9F},
866 {0xF0, 0x1F},
867 {0xF1, 0x23},
868 {0xF0, 0xA0},
869 {0xF0, 0x20},
870 {0xF1, 0x22},
871 {0xF0, 0xA1},
872 {0xF0, 0x21},
873 {0xF1, 0x21},
874 {0xF0, 0xA2},
875 {0xF0, 0x22},
876 {0xF1, 0x20},
877 {0xF0, 0xA3},
878 {0xF0, 0x23},
879 {0xF1, 0x20},
880 {0xF0, 0xA4},
881 {0xF0, 0x24},
882 {0xF1, 0x1F},
883 {0xF0, 0xA5},
884 {0xF0, 0x25},
885 {0xF1, 0x1E},
886 {0xF0, 0xA6},
887 {0xF0, 0x26},
888 {0xF1, 0x1D},
889 {0xF0, 0xA7},
890 {0xF0, 0x27},
891 {0xF1, 0x1C},
892 {0xF0, 0xA8},
893 {0xF0, 0x28},
894 {0xF1, 0x1B},
895 {0xF0, 0xA9},
896 {0xF0, 0x29},
897 {0xF1, 0x1B},
898 {0xF0, 0xAA},
899 {0xF0, 0x2A},
900 {0xF1, 0x1A},
901 {0xF0, 0xAB},
902 {0xF0, 0x2B},
903 {0xF1, 0x1A},
904 {0xF0, 0xAC},
905 {0xF0, 0x2C},
906 {0xF1, 0x19},
907 {0xF0, 0xAD},
908 {0xF0, 0x2D},
909 {0xF1, 0x18},
910 {0xF0, 0xAE},
911 {0xF0, 0x2E},
912 {0xF1, 0x17},
913 {0xF0, 0xAF},
914 {0xF0, 0x2F},
915 {0xF1, 0x16},
916 {0xF0, 0xB0},
917 {0xF0, 0x30},
918 {0xF1, 0x15},
919 {0xF0, 0xB1},
920 {0xF0, 0x31},
921 {0xF1, 0x15},
922 {0xF0, 0xB2},
923 {0xF0, 0x32},
924 {0xF1, 0x15},
925 {0xF0, 0xB3},
926 {0xF0, 0x33},
927 {0xF1, 0x14},
928 {0xF0, 0xB4},
929 {0xF0, 0x34},
930 {0xF1, 0x13},
931 {0xF0, 0xB5},
932 {0xF0, 0x35},
933 {0xF1, 0x12},
934 {0xF0, 0xB6},
935 {0xF0, 0x36},
936 {0xF1, 0x11},
937 {0xF0, 0xB7},
938 {0xF0, 0x37},
939 {0xF1, 0x10},
940 {0xF0, 0xB8},
941 {0xF0, 0x38},
942 {0xF1, 0x0F},
943 {0xF0, 0xB9},
944 {0xF0, 0x39},
945 {0xF1, 0x0E},
946 {0xF0, 0xBA},
947 {0xF0, 0x3A},
948 {0xF1, 0x0D},
949 {0xF0, 0xBB},
950 {0xF0, 0x3B},
951 {0xF1, 0x0C},
952 {0xF0, 0xBC},
953 {0xF0, 0x3C},
954 {0xF1, 0x0B},
955 {0xF0, 0xBD},
956 {0xF0, 0x3D},
957 {0xF1, 0x0B},
958 {0xF0, 0xBE},
959 {0xF0, 0x3E},
960 {0xF1, 0x0A},
961 {0xF0, 0xBF},
962 {0xF0, 0x3F},
963 {0xF1, 0x09},
964 {0xF0, 0x00},
965 };
966
967 #define CB_VT3253B0_INIT_FOR_AIROHA2230 256
968
969 static
970 unsigned char byVT3253B0_AIROHA2230[CB_VT3253B0_INIT_FOR_AIROHA2230][2] = {
971 {0x00, 0x31},
972 {0x01, 0x00},
973 {0x02, 0x00},
974 {0x03, 0x00},
975 {0x04, 0x00},
976 {0x05, 0x80},
977 {0x06, 0x00},
978 {0x07, 0x00},
979 {0x08, 0x70},
980 {0x09, 0x41},
981 {0x0a, 0x2A},
982 {0x0b, 0x76},
983 {0x0c, 0x00},
984 {0x0d, 0x00},
985 {0x0e, 0x80},
986 {0x0f, 0x00},
987 {0x10, 0x00},
988 {0x11, 0x00},
989 {0x12, 0x00},
990 {0x13, 0x00},
991 {0x14, 0x00},
992 {0x15, 0x00},
993 {0x16, 0x00},
994 {0x17, 0x00},
995 {0x18, 0x00},
996 {0x19, 0x00},
997 {0x1a, 0x00},
998 {0x1b, 0x8f},
999 {0x1c, 0x09},
1000 {0x1d, 0x00},
1001 {0x1e, 0x00},
1002 {0x1f, 0x00},
1003 {0x20, 0x00},
1004 {0x21, 0x00},
1005 {0x22, 0x00},
1006 {0x23, 0x00},
1007 {0x24, 0x00},
1008 {0x25, 0x4a},
1009 {0x26, 0x00},
1010 {0x27, 0x00},
1011 {0x28, 0x00},
1012 {0x29, 0x00},
1013 {0x2a, 0x00},
1014 {0x2b, 0x00},
1015 {0x2c, 0x00},
1016 {0x2d, 0x4a},
1017 {0x2e, 0x00},
1018 {0x2f, 0x0a},
1019 {0x30, 0x26},
1020 {0x31, 0x5b},
1021 {0x32, 0x00},
1022 {0x33, 0x00},
1023 {0x34, 0x00},
1024 {0x35, 0x00},
1025 {0x36, 0xaa},
1026 {0x37, 0xaa},
1027 {0x38, 0xff},
1028 {0x39, 0xff},
1029 {0x3a, 0x79},
1030 {0x3b, 0x00},
1031 {0x3c, 0x00},
1032 {0x3d, 0x0b},
1033 {0x3e, 0x48},
1034 {0x3f, 0x04},
1035 {0x40, 0x00},
1036 {0x41, 0x08},
1037 {0x42, 0x00},
1038 {0x43, 0x08},
1039 {0x44, 0x08},
1040 {0x45, 0x14},
1041 {0x46, 0x05},
1042 {0x47, 0x09},
1043 {0x48, 0x00},
1044 {0x49, 0x00},
1045 {0x4a, 0x00},
1046 {0x4b, 0x00},
1047 {0x4c, 0x09},
1048 {0x4d, 0x73},
1049 {0x4e, 0x00},
1050 {0x4f, 0xc5},
1051 {0x50, 0x15},
1052 {0x51, 0x19},
1053 {0x52, 0x00},
1054 {0x53, 0x00},
1055 {0x54, 0x00},
1056 {0x55, 0x00},
1057 {0x56, 0x00},
1058 {0x57, 0x00},
1059 {0x58, 0x00},
1060 {0x59, 0xb0},
1061 {0x5a, 0x00},
1062 {0x5b, 0x00},
1063 {0x5c, 0x00},
1064 {0x5d, 0x00},
1065 {0x5e, 0x00},
1066 {0x5f, 0x00},
1067 {0x60, 0xe4},
1068 {0x61, 0x80},
1069 {0x62, 0x00},
1070 {0x63, 0x00},
1071 {0x64, 0x00},
1072 {0x65, 0x00},
1073 {0x66, 0x98},
1074 {0x67, 0x0a},
1075 {0x68, 0x00},
1076 {0x69, 0x00},
1077 {0x6a, 0x00},
1078 {0x6b, 0x00},
1079 {0x6c, 0x00},
1080 {0x6d, 0x03},
1081 {0x6e, 0x01},
1082 {0x6f, 0x00},
1083 {0x70, 0x00},
1084 {0x71, 0x00},
1085 {0x72, 0x00},
1086 {0x73, 0x00},
1087 {0x74, 0x00},
1088 {0x75, 0x00},
1089 {0x76, 0x00},
1090 {0x77, 0x00},
1091 {0x78, 0x00},
1092 {0x79, 0x00},
1093 {0x7a, 0x00},
1094 {0x7b, 0x00},
1095 {0x7c, 0x00},
1096 {0x7d, 0x00},
1097 {0x7e, 0x00},
1098 {0x7f, 0x00},
1099 {0x80, 0x8c},
1100 {0x81, 0x01},
1101 {0x82, 0x09},
1102 {0x83, 0x00},
1103 {0x84, 0x00},
1104 {0x85, 0x00},
1105 {0x86, 0x00},
1106 {0x87, 0x00},
1107 {0x88, 0x08},
1108 {0x89, 0x00},
1109 {0x8a, 0x0f},
1110 {0x8b, 0xb7},
1111 {0x8c, 0x88},
1112 {0x8d, 0x47},
1113 {0x8e, 0xaa},
1114 {0x8f, 0x02},
1115 {0x90, 0x22},
1116 {0x91, 0x00},
1117 {0x92, 0x00},
1118 {0x93, 0x00},
1119 {0x94, 0x00},
1120 {0x95, 0x00},
1121 {0x96, 0x00},
1122 {0x97, 0xeb},
1123 {0x98, 0x00},
1124 {0x99, 0x00},
1125 {0x9a, 0x00},
1126 {0x9b, 0x00},
1127 {0x9c, 0x00},
1128 {0x9d, 0x00},
1129 {0x9e, 0x00},
1130 {0x9f, 0x01},
1131 {0xa0, 0x00},
1132 {0xa1, 0x00},
1133 {0xa2, 0x00},
1134 {0xa3, 0x00},
1135 {0xa4, 0x00},
1136 {0xa5, 0x00},
1137 {0xa6, 0x10},
1138 {0xa7, 0x00},
1139 {0xa8, 0x18},
1140 {0xa9, 0x00},
1141 {0xaa, 0x00},
1142 {0xab, 0x00},
1143 {0xac, 0x00},
1144 {0xad, 0x00},
1145 {0xae, 0x00},
1146 {0xaf, 0x18},
1147 {0xb0, 0x38},
1148 {0xb1, 0x30},
1149 {0xb2, 0x00},
1150 {0xb3, 0x00},
1151 {0xb4, 0xff},
1152 {0xb5, 0x0f},
1153 {0xb6, 0xe4},
1154 {0xb7, 0xe2},
1155 {0xb8, 0x00},
1156 {0xb9, 0x00},
1157 {0xba, 0x00},
1158 {0xbb, 0x03},
1159 {0xbc, 0x01},
1160 {0xbd, 0x00},
1161 {0xbe, 0x00},
1162 {0xbf, 0x00},
1163 {0xc0, 0x18},
1164 {0xc1, 0x20},
1165 {0xc2, 0x07},
1166 {0xc3, 0x18},
1167 {0xc4, 0xff},
1168 {0xc5, 0x2c},
1169 {0xc6, 0x0c},
1170 {0xc7, 0x0a},
1171 {0xc8, 0x0e},
1172 {0xc9, 0x01},
1173 {0xca, 0x68},
1174 {0xcb, 0xa7},
1175 {0xcc, 0x3c},
1176 {0xcd, 0x10},
1177 {0xce, 0x00},
1178 {0xcf, 0x25},
1179 {0xd0, 0x40},
1180 {0xd1, 0x12},
1181 {0xd2, 0x00},
1182 {0xd3, 0x00},
1183 {0xd4, 0x10},
1184 {0xd5, 0x28},
1185 {0xd6, 0x80},
1186 {0xd7, 0x2A},
1187 {0xd8, 0x00},
1188 {0xd9, 0x00},
1189 {0xda, 0x00},
1190 {0xdb, 0x00},
1191 {0xdc, 0x00},
1192 {0xdd, 0x00},
1193 {0xde, 0x00},
1194 {0xdf, 0x00},
1195 {0xe0, 0x00},
1196 {0xe1, 0xB3},
1197 {0xe2, 0x00},
1198 {0xe3, 0x00},
1199 {0xe4, 0x00},
1200 {0xe5, 0x10},
1201 {0xe6, 0x00},
1202 {0xe7, 0x1C},
1203 {0xe8, 0x00},
1204 {0xe9, 0xf4},
1205 {0xea, 0x00},
1206 {0xeb, 0xff},
1207 {0xec, 0x79},
1208 {0xed, 0x20},
1209 {0xee, 0x30},
1210 {0xef, 0x01},
1211 {0xf0, 0x00},
1212 {0xf1, 0x3e},
1213 {0xf2, 0x00},
1214 {0xf3, 0x00},
1215 {0xf4, 0x00},
1216 {0xf5, 0x00},
1217 {0xf6, 0x00},
1218 {0xf7, 0x00},
1219 {0xf8, 0x00},
1220 {0xf9, 0x00},
1221 {0xfa, 0x00},
1222 {0xfb, 0x00},
1223 {0xfc, 0x00},
1224 {0xfd, 0x00},
1225 {0xfe, 0x00},
1226 {0xff, 0x00},
1227 };
1228
1229 #define CB_VT3253B0_INIT_FOR_UW2451 256
1230
1231 static unsigned char byVT3253B0_UW2451[CB_VT3253B0_INIT_FOR_UW2451][2] = {
1232 {0x00, 0x31},
1233 {0x01, 0x00},
1234 {0x02, 0x00},
1235 {0x03, 0x00},
1236 {0x04, 0x00},
1237 {0x05, 0x81},
1238 {0x06, 0x00},
1239 {0x07, 0x00},
1240 {0x08, 0x38},
1241 {0x09, 0x45},
1242 {0x0a, 0x28},
1243 {0x0b, 0x76},
1244 {0x0c, 0x00},
1245 {0x0d, 0x00},
1246 {0x0e, 0x80},
1247 {0x0f, 0x00},
1248 {0x10, 0x00},
1249 {0x11, 0x00},
1250 {0x12, 0x00},
1251 {0x13, 0x00},
1252 {0x14, 0x00},
1253 {0x15, 0x00},
1254 {0x16, 0x00},
1255 {0x17, 0x00},
1256 {0x18, 0x00},
1257 {0x19, 0x00},
1258 {0x1a, 0x00},
1259 {0x1b, 0x8f},
1260 {0x1c, 0x0f},
1261 {0x1d, 0x00},
1262 {0x1e, 0x00},
1263 {0x1f, 0x00},
1264 {0x20, 0x00},
1265 {0x21, 0x00},
1266 {0x22, 0x00},
1267 {0x23, 0x00},
1268 {0x24, 0x00},
1269 {0x25, 0x4a},
1270 {0x26, 0x00},
1271 {0x27, 0x00},
1272 {0x28, 0x00},
1273 {0x29, 0x00},
1274 {0x2a, 0x00},
1275 {0x2b, 0x00},
1276 {0x2c, 0x00},
1277 {0x2d, 0x18},
1278 {0x2e, 0x00},
1279 {0x2f, 0x0a},
1280 {0x30, 0x26},
1281 {0x31, 0x5b},
1282 {0x32, 0x00},
1283 {0x33, 0x00},
1284 {0x34, 0x00},
1285 {0x35, 0x00},
1286 {0x36, 0xaa},
1287 {0x37, 0xaa},
1288 {0x38, 0xff},
1289 {0x39, 0xff},
1290 {0x3a, 0x00},
1291 {0x3b, 0x00},
1292 {0x3c, 0x00},
1293 {0x3d, 0x03},
1294 {0x3e, 0x1d},
1295 {0x3f, 0x04},
1296 {0x40, 0x00},
1297 {0x41, 0x08},
1298 {0x42, 0x00},
1299 {0x43, 0x08},
1300 {0x44, 0x08},
1301 {0x45, 0x14},
1302 {0x46, 0x05},
1303 {0x47, 0x09},
1304 {0x48, 0x00},
1305 {0x49, 0x00},
1306 {0x4a, 0x00},
1307 {0x4b, 0x00},
1308 {0x4c, 0x09},
1309 {0x4d, 0x90},
1310 {0x4e, 0x00},
1311 {0x4f, 0xc5},
1312 {0x50, 0x15},
1313 {0x51, 0x19},
1314 {0x52, 0x00},
1315 {0x53, 0x00},
1316 {0x54, 0x00},
1317 {0x55, 0x00},
1318 {0x56, 0x00},
1319 {0x57, 0x00},
1320 {0x58, 0x00},
1321 {0x59, 0xb0},
1322 {0x5a, 0x00},
1323 {0x5b, 0x00},
1324 {0x5c, 0x00},
1325 {0x5d, 0x00},
1326 {0x5e, 0x00},
1327 {0x5f, 0x00},
1328 {0x60, 0xb3},
1329 {0x61, 0x81},
1330 {0x62, 0x00},
1331 {0x63, 0x00},
1332 {0x64, 0x00},
1333 {0x65, 0x00},
1334 {0x66, 0x57},
1335 {0x67, 0x6c},
1336 {0x68, 0x00},
1337 {0x69, 0x00},
1338 {0x6a, 0x00},
1339 {0x6b, 0x00},
1340 {0x6c, 0x00},
1341 {0x6d, 0x03},
1342 {0x6e, 0x01},
1343 {0x6f, 0x00},
1344 {0x70, 0x00},
1345 {0x71, 0x00},
1346 {0x72, 0x00},
1347 {0x73, 0x00},
1348 {0x74, 0x00},
1349 {0x75, 0x00},
1350 {0x76, 0x00},
1351 {0x77, 0x00},
1352 {0x78, 0x00},
1353 {0x79, 0x00},
1354 {0x7a, 0x00},
1355 {0x7b, 0x00},
1356 {0x7c, 0x00},
1357 {0x7d, 0x00},
1358 {0x7e, 0x00},
1359 {0x7f, 0x00},
1360 {0x80, 0x8c},
1361 {0x81, 0x00},
1362 {0x82, 0x0e},
1363 {0x83, 0x00},
1364 {0x84, 0x00},
1365 {0x85, 0x00},
1366 {0x86, 0x00},
1367 {0x87, 0x00},
1368 {0x88, 0x08},
1369 {0x89, 0x00},
1370 {0x8a, 0x0e},
1371 {0x8b, 0xa7},
1372 {0x8c, 0x88},
1373 {0x8d, 0x47},
1374 {0x8e, 0xaa},
1375 {0x8f, 0x02},
1376 {0x90, 0x00},
1377 {0x91, 0x00},
1378 {0x92, 0x00},
1379 {0x93, 0x00},
1380 {0x94, 0x00},
1381 {0x95, 0x00},
1382 {0x96, 0x00},
1383 {0x97, 0xe3},
1384 {0x98, 0x00},
1385 {0x99, 0x00},
1386 {0x9a, 0x00},
1387 {0x9b, 0x00},
1388 {0x9c, 0x00},
1389 {0x9d, 0x00},
1390 {0x9e, 0x00},
1391 {0x9f, 0x00},
1392 {0xa0, 0x00},
1393 {0xa1, 0x00},
1394 {0xa2, 0x00},
1395 {0xa3, 0x00},
1396 {0xa4, 0x00},
1397 {0xa5, 0x00},
1398 {0xa6, 0x10},
1399 {0xa7, 0x00},
1400 {0xa8, 0x18},
1401 {0xa9, 0x00},
1402 {0xaa, 0x00},
1403 {0xab, 0x00},
1404 {0xac, 0x00},
1405 {0xad, 0x00},
1406 {0xae, 0x00},
1407 {0xaf, 0x18},
1408 {0xb0, 0x18},
1409 {0xb1, 0x30},
1410 {0xb2, 0x00},
1411 {0xb3, 0x00},
1412 {0xb4, 0x00},
1413 {0xb5, 0x00},
1414 {0xb6, 0x00},
1415 {0xb7, 0x00},
1416 {0xb8, 0x00},
1417 {0xb9, 0x00},
1418 {0xba, 0x00},
1419 {0xbb, 0x03},
1420 {0xbc, 0x01},
1421 {0xbd, 0x00},
1422 {0xbe, 0x00},
1423 {0xbf, 0x00},
1424 {0xc0, 0x10},
1425 {0xc1, 0x20},
1426 {0xc2, 0x00},
1427 {0xc3, 0x20},
1428 {0xc4, 0x00},
1429 {0xc5, 0x2c},
1430 {0xc6, 0x1c},
1431 {0xc7, 0x10},
1432 {0xc8, 0x10},
1433 {0xc9, 0x01},
1434 {0xca, 0x68},
1435 {0xcb, 0xa7},
1436 {0xcc, 0x3c},
1437 {0xcd, 0x09},
1438 {0xce, 0x00},
1439 {0xcf, 0x20},
1440 {0xd0, 0x40},
1441 {0xd1, 0x10},
1442 {0xd2, 0x00},
1443 {0xd3, 0x00},
1444 {0xd4, 0x20},
1445 {0xd5, 0x28},
1446 {0xd6, 0xa0},
1447 {0xd7, 0x2a},
1448 {0xd8, 0x00},
1449 {0xd9, 0x00},
1450 {0xda, 0x00},
1451 {0xdb, 0x00},
1452 {0xdc, 0x00},
1453 {0xdd, 0x00},
1454 {0xde, 0x00},
1455 {0xdf, 0x00},
1456 {0xe0, 0x00},
1457 {0xe1, 0xd3},
1458 {0xe2, 0xc0},
1459 {0xe3, 0x00},
1460 {0xe4, 0x00},
1461 {0xe5, 0x10},
1462 {0xe6, 0x00},
1463 {0xe7, 0x12},
1464 {0xe8, 0x12},
1465 {0xe9, 0x34},
1466 {0xea, 0x00},
1467 {0xeb, 0xff},
1468 {0xec, 0x79},
1469 {0xed, 0x20},
1470 {0xee, 0x30},
1471 {0xef, 0x01},
1472 {0xf0, 0x00},
1473 {0xf1, 0x3e},
1474 {0xf2, 0x00},
1475 {0xf3, 0x00},
1476 {0xf4, 0x00},
1477 {0xf5, 0x00},
1478 {0xf6, 0x00},
1479 {0xf7, 0x00},
1480 {0xf8, 0x00},
1481 {0xf9, 0x00},
1482 {0xfa, 0x00},
1483 {0xfb, 0x00},
1484 {0xfc, 0x00},
1485 {0xfd, 0x00},
1486 {0xfe, 0x00},
1487 {0xff, 0x00},
1488 };
1489
1490 #define CB_VT3253B0_AGC 193
1491
1492 static unsigned char byVT3253B0_AGC[CB_VT3253B0_AGC][2] = {
1493 {0xF0, 0x00},
1494 {0xF1, 0x00},
1495 {0xF0, 0x80},
1496 {0xF0, 0x01},
1497 {0xF1, 0x00},
1498 {0xF0, 0x81},
1499 {0xF0, 0x02},
1500 {0xF1, 0x02},
1501 {0xF0, 0x82},
1502 {0xF0, 0x03},
1503 {0xF1, 0x04},
1504 {0xF0, 0x83},
1505 {0xF0, 0x03},
1506 {0xF1, 0x04},
1507 {0xF0, 0x84},
1508 {0xF0, 0x04},
1509 {0xF1, 0x06},
1510 {0xF0, 0x85},
1511 {0xF0, 0x05},
1512 {0xF1, 0x06},
1513 {0xF0, 0x86},
1514 {0xF0, 0x06},
1515 {0xF1, 0x06},
1516 {0xF0, 0x87},
1517 {0xF0, 0x07},
1518 {0xF1, 0x08},
1519 {0xF0, 0x88},
1520 {0xF0, 0x08},
1521 {0xF1, 0x08},
1522 {0xF0, 0x89},
1523 {0xF0, 0x09},
1524 {0xF1, 0x0A},
1525 {0xF0, 0x8A},
1526 {0xF0, 0x0A},
1527 {0xF1, 0x0A},
1528 {0xF0, 0x8B},
1529 {0xF0, 0x0B},
1530 {0xF1, 0x0C},
1531 {0xF0, 0x8C},
1532 {0xF0, 0x0C},
1533 {0xF1, 0x0C},
1534 {0xF0, 0x8D},
1535 {0xF0, 0x0D},
1536 {0xF1, 0x0E},
1537 {0xF0, 0x8E},
1538 {0xF0, 0x0E},
1539 {0xF1, 0x0E},
1540 {0xF0, 0x8F},
1541 {0xF0, 0x0F},
1542 {0xF1, 0x10},
1543 {0xF0, 0x90},
1544 {0xF0, 0x10},
1545 {0xF1, 0x10},
1546 {0xF0, 0x91},
1547 {0xF0, 0x11},
1548 {0xF1, 0x12},
1549 {0xF0, 0x92},
1550 {0xF0, 0x12},
1551 {0xF1, 0x12},
1552 {0xF0, 0x93},
1553 {0xF0, 0x13},
1554 {0xF1, 0x14},
1555 {0xF0, 0x94},
1556 {0xF0, 0x14},
1557 {0xF1, 0x14},
1558 {0xF0, 0x95},
1559 {0xF0, 0x15},
1560 {0xF1, 0x16},
1561 {0xF0, 0x96},
1562 {0xF0, 0x16},
1563 {0xF1, 0x16},
1564 {0xF0, 0x97},
1565 {0xF0, 0x17},
1566 {0xF1, 0x18},
1567 {0xF0, 0x98},
1568 {0xF0, 0x18},
1569 {0xF1, 0x18},
1570 {0xF0, 0x99},
1571 {0xF0, 0x19},
1572 {0xF1, 0x1A},
1573 {0xF0, 0x9A},
1574 {0xF0, 0x1A},
1575 {0xF1, 0x1A},
1576 {0xF0, 0x9B},
1577 {0xF0, 0x1B},
1578 {0xF1, 0x1C},
1579 {0xF0, 0x9C},
1580 {0xF0, 0x1C},
1581 {0xF1, 0x1C},
1582 {0xF0, 0x9D},
1583 {0xF0, 0x1D},
1584 {0xF1, 0x1E},
1585 {0xF0, 0x9E},
1586 {0xF0, 0x1E},
1587 {0xF1, 0x1E},
1588 {0xF0, 0x9F},
1589 {0xF0, 0x1F},
1590 {0xF1, 0x20},
1591 {0xF0, 0xA0},
1592 {0xF0, 0x20},
1593 {0xF1, 0x20},
1594 {0xF0, 0xA1},
1595 {0xF0, 0x21},
1596 {0xF1, 0x22},
1597 {0xF0, 0xA2},
1598 {0xF0, 0x22},
1599 {0xF1, 0x22},
1600 {0xF0, 0xA3},
1601 {0xF0, 0x23},
1602 {0xF1, 0x24},
1603 {0xF0, 0xA4},
1604 {0xF0, 0x24},
1605 {0xF1, 0x24},
1606 {0xF0, 0xA5},
1607 {0xF0, 0x25},
1608 {0xF1, 0x26},
1609 {0xF0, 0xA6},
1610 {0xF0, 0x26},
1611 {0xF1, 0x26},
1612 {0xF0, 0xA7},
1613 {0xF0, 0x27},
1614 {0xF1, 0x28},
1615 {0xF0, 0xA8},
1616 {0xF0, 0x28},
1617 {0xF1, 0x28},
1618 {0xF0, 0xA9},
1619 {0xF0, 0x29},
1620 {0xF1, 0x2A},
1621 {0xF0, 0xAA},
1622 {0xF0, 0x2A},
1623 {0xF1, 0x2A},
1624 {0xF0, 0xAB},
1625 {0xF0, 0x2B},
1626 {0xF1, 0x2C},
1627 {0xF0, 0xAC},
1628 {0xF0, 0x2C},
1629 {0xF1, 0x2C},
1630 {0xF0, 0xAD},
1631 {0xF0, 0x2D},
1632 {0xF1, 0x2E},
1633 {0xF0, 0xAE},
1634 {0xF0, 0x2E},
1635 {0xF1, 0x2E},
1636 {0xF0, 0xAF},
1637 {0xF0, 0x2F},
1638 {0xF1, 0x30},
1639 {0xF0, 0xB0},
1640 {0xF0, 0x30},
1641 {0xF1, 0x30},
1642 {0xF0, 0xB1},
1643 {0xF0, 0x31},
1644 {0xF1, 0x32},
1645 {0xF0, 0xB2},
1646 {0xF0, 0x32},
1647 {0xF1, 0x32},
1648 {0xF0, 0xB3},
1649 {0xF0, 0x33},
1650 {0xF1, 0x34},
1651 {0xF0, 0xB4},
1652 {0xF0, 0x34},
1653 {0xF1, 0x34},
1654 {0xF0, 0xB5},
1655 {0xF0, 0x35},
1656 {0xF1, 0x36},
1657 {0xF0, 0xB6},
1658 {0xF0, 0x36},
1659 {0xF1, 0x36},
1660 {0xF0, 0xB7},
1661 {0xF0, 0x37},
1662 {0xF1, 0x38},
1663 {0xF0, 0xB8},
1664 {0xF0, 0x38},
1665 {0xF1, 0x38},
1666 {0xF0, 0xB9},
1667 {0xF0, 0x39},
1668 {0xF1, 0x3A},
1669 {0xF0, 0xBA},
1670 {0xF0, 0x3A},
1671 {0xF1, 0x3A},
1672 {0xF0, 0xBB},
1673 {0xF0, 0x3B},
1674 {0xF1, 0x3C},
1675 {0xF0, 0xBC},
1676 {0xF0, 0x3C},
1677 {0xF1, 0x3C},
1678 {0xF0, 0xBD},
1679 {0xF0, 0x3D},
1680 {0xF1, 0x3E},
1681 {0xF0, 0xBE},
1682 {0xF0, 0x3E},
1683 {0xF1, 0x3E},
1684 {0xF0, 0xBF},
1685 {0xF0, 0x00},
1686 };
1687
1688 static const unsigned short awcFrameTime[MAX_RATE] = {
1689 10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
1690 };
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707 unsigned int BBuGetFrameTime(unsigned char byPreambleType,
1708 unsigned char byPktType,
1709 unsigned int cbFrameLength, unsigned short wRate)
1710 {
1711 unsigned int uFrameTime;
1712 unsigned int uPreamble;
1713 unsigned int uTmp;
1714 unsigned int uRateIdx = (unsigned int)wRate;
1715 unsigned int uRate = 0;
1716
1717 if (uRateIdx > RATE_54M)
1718 return 0;
1719
1720 uRate = (unsigned int)awcFrameTime[uRateIdx];
1721
1722 if (uRateIdx <= 3) {
1723 if (byPreambleType == 1)
1724 uPreamble = 96;
1725 else
1726 uPreamble = 192;
1727
1728 uFrameTime = (cbFrameLength * 80) / uRate;
1729 uTmp = (uFrameTime * uRate) / 80;
1730 if (cbFrameLength != uTmp)
1731 uFrameTime++;
1732
1733 return uPreamble + uFrameTime;
1734 }
1735 uFrameTime = (cbFrameLength * 8 + 22) / uRate;
1736 uTmp = ((uFrameTime * uRate) - 22) / 8;
1737 if (cbFrameLength != uTmp)
1738 uFrameTime++;
1739
1740 uFrameTime = uFrameTime * 4;
1741 if (byPktType != PK_TYPE_11A)
1742 uFrameTime += 6;
1743
1744 return 20 + uFrameTime;
1745 }
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764 void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
1765 u16 tx_rate, u8 pkt_type, struct vnt_phy_field *phy)
1766 {
1767 u32 bit_count;
1768 u32 count = 0;
1769 u32 tmp;
1770 int ext_bit;
1771 u8 preamble_type = priv->byPreambleType;
1772
1773 bit_count = frame_length * 8;
1774 ext_bit = false;
1775
1776 switch (tx_rate) {
1777 case RATE_1M:
1778 count = bit_count;
1779
1780 phy->signal = 0x00;
1781
1782 break;
1783 case RATE_2M:
1784 count = bit_count / 2;
1785
1786 if (preamble_type == 1)
1787 phy->signal = 0x09;
1788 else
1789 phy->signal = 0x01;
1790
1791 break;
1792 case RATE_5M:
1793 count = (bit_count * 10) / 55;
1794 tmp = (count * 55) / 10;
1795
1796 if (tmp != bit_count)
1797 count++;
1798
1799 if (preamble_type == 1)
1800 phy->signal = 0x0a;
1801 else
1802 phy->signal = 0x02;
1803
1804 break;
1805 case RATE_11M:
1806 count = bit_count / 11;
1807 tmp = count * 11;
1808
1809 if (tmp != bit_count) {
1810 count++;
1811
1812 if ((bit_count - tmp) <= 3)
1813 ext_bit = true;
1814 }
1815
1816 if (preamble_type == 1)
1817 phy->signal = 0x0b;
1818 else
1819 phy->signal = 0x03;
1820
1821 break;
1822 case RATE_6M:
1823 if (pkt_type == PK_TYPE_11A)
1824 phy->signal = 0x9b;
1825 else
1826 phy->signal = 0x8b;
1827
1828 break;
1829 case RATE_9M:
1830 if (pkt_type == PK_TYPE_11A)
1831 phy->signal = 0x9f;
1832 else
1833 phy->signal = 0x8f;
1834
1835 break;
1836 case RATE_12M:
1837 if (pkt_type == PK_TYPE_11A)
1838 phy->signal = 0x9a;
1839 else
1840 phy->signal = 0x8a;
1841
1842 break;
1843 case RATE_18M:
1844 if (pkt_type == PK_TYPE_11A)
1845 phy->signal = 0x9e;
1846 else
1847 phy->signal = 0x8e;
1848
1849 break;
1850 case RATE_24M:
1851 if (pkt_type == PK_TYPE_11A)
1852 phy->signal = 0x99;
1853 else
1854 phy->signal = 0x89;
1855
1856 break;
1857 case RATE_36M:
1858 if (pkt_type == PK_TYPE_11A)
1859 phy->signal = 0x9d;
1860 else
1861 phy->signal = 0x8d;
1862
1863 break;
1864 case RATE_48M:
1865 if (pkt_type == PK_TYPE_11A)
1866 phy->signal = 0x98;
1867 else
1868 phy->signal = 0x88;
1869
1870 break;
1871 case RATE_54M:
1872 if (pkt_type == PK_TYPE_11A)
1873 phy->signal = 0x9c;
1874 else
1875 phy->signal = 0x8c;
1876 break;
1877 default:
1878 if (pkt_type == PK_TYPE_11A)
1879 phy->signal = 0x9c;
1880 else
1881 phy->signal = 0x8c;
1882 break;
1883 }
1884
1885 if (pkt_type == PK_TYPE_11B) {
1886 phy->service = 0x00;
1887 if (ext_bit)
1888 phy->service |= 0x80;
1889 phy->len = cpu_to_le16((u16)count);
1890 } else {
1891 phy->service = 0x00;
1892 phy->len = cpu_to_le16((u16)frame_length);
1893 }
1894 }
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909 bool BBbReadEmbedded(struct vnt_private *priv,
1910 unsigned char byBBAddr, unsigned char *pbyData)
1911 {
1912 void __iomem *iobase = priv->PortOffset;
1913 unsigned short ww;
1914 unsigned char byValue;
1915
1916
1917 VNSvOutPortB(iobase + MAC_REG_BBREGADR, byBBAddr);
1918
1919
1920 MACvRegBitsOn(iobase, MAC_REG_BBREGCTL, BBREGCTL_REGR);
1921
1922 for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
1923 VNSvInPortB(iobase + MAC_REG_BBREGCTL, &byValue);
1924 if (byValue & BBREGCTL_DONE)
1925 break;
1926 }
1927
1928
1929 VNSvInPortB(iobase + MAC_REG_BBREGDATA, pbyData);
1930
1931 if (ww == W_MAX_TIMEOUT) {
1932 pr_debug(" DBG_PORT80(0x30)\n");
1933 return false;
1934 }
1935 return true;
1936 }
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952 bool BBbWriteEmbedded(struct vnt_private *priv,
1953 unsigned char byBBAddr, unsigned char byData)
1954 {
1955 void __iomem *iobase = priv->PortOffset;
1956 unsigned short ww;
1957 unsigned char byValue;
1958
1959
1960 VNSvOutPortB(iobase + MAC_REG_BBREGADR, byBBAddr);
1961
1962 VNSvOutPortB(iobase + MAC_REG_BBREGDATA, byData);
1963
1964
1965 MACvRegBitsOn(iobase, MAC_REG_BBREGCTL, BBREGCTL_REGW);
1966
1967 for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
1968 VNSvInPortB(iobase + MAC_REG_BBREGCTL, &byValue);
1969 if (byValue & BBREGCTL_DONE)
1970 break;
1971 }
1972
1973 if (ww == W_MAX_TIMEOUT) {
1974 pr_debug(" DBG_PORT80(0x31)\n");
1975 return false;
1976 }
1977 return true;
1978 }
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995 bool BBbVT3253Init(struct vnt_private *priv)
1996 {
1997 bool bResult = true;
1998 int ii;
1999 void __iomem *iobase = priv->PortOffset;
2000 unsigned char byRFType = priv->byRFType;
2001 unsigned char byLocalID = priv->byLocalID;
2002
2003 if (byRFType == RF_RFMD2959) {
2004 if (byLocalID <= REV_ID_VT3253_A1) {
2005 for (ii = 0; ii < CB_VT3253_INIT_FOR_RFMD; ii++)
2006 bResult &= BBbWriteEmbedded(priv,
2007 byVT3253InitTab_RFMD[ii][0],
2008 byVT3253InitTab_RFMD[ii][1]);
2009
2010 } else {
2011 for (ii = 0; ii < CB_VT3253B0_INIT_FOR_RFMD; ii++)
2012 bResult &= BBbWriteEmbedded(priv,
2013 byVT3253B0_RFMD[ii][0],
2014 byVT3253B0_RFMD[ii][1]);
2015
2016 for (ii = 0; ii < CB_VT3253B0_AGC_FOR_RFMD2959; ii++)
2017 bResult &= BBbWriteEmbedded(priv,
2018 byVT3253B0_AGC4_RFMD2959[ii][0],
2019 byVT3253B0_AGC4_RFMD2959[ii][1]);
2020
2021 VNSvOutPortD(iobase + MAC_REG_ITRTMSET, 0x23);
2022 MACvRegBitsOn(iobase, MAC_REG_PAPEDELAY, BIT(0));
2023 }
2024 priv->abyBBVGA[0] = 0x18;
2025 priv->abyBBVGA[1] = 0x0A;
2026 priv->abyBBVGA[2] = 0x0;
2027 priv->abyBBVGA[3] = 0x0;
2028 priv->ldBmThreshold[0] = -70;
2029 priv->ldBmThreshold[1] = -50;
2030 priv->ldBmThreshold[2] = 0;
2031 priv->ldBmThreshold[3] = 0;
2032 } else if ((byRFType == RF_AIROHA) || (byRFType == RF_AL2230S)) {
2033 for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)
2034 bResult &= BBbWriteEmbedded(priv,
2035 byVT3253B0_AIROHA2230[ii][0],
2036 byVT3253B0_AIROHA2230[ii][1]);
2037
2038 for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
2039 bResult &= BBbWriteEmbedded(priv,
2040 byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
2041
2042 priv->abyBBVGA[0] = 0x1C;
2043 priv->abyBBVGA[1] = 0x10;
2044 priv->abyBBVGA[2] = 0x0;
2045 priv->abyBBVGA[3] = 0x0;
2046 priv->ldBmThreshold[0] = -70;
2047 priv->ldBmThreshold[1] = -48;
2048 priv->ldBmThreshold[2] = 0;
2049 priv->ldBmThreshold[3] = 0;
2050 } else if (byRFType == RF_UW2451) {
2051 for (ii = 0; ii < CB_VT3253B0_INIT_FOR_UW2451; ii++)
2052 bResult &= BBbWriteEmbedded(priv,
2053 byVT3253B0_UW2451[ii][0],
2054 byVT3253B0_UW2451[ii][1]);
2055
2056 for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
2057 bResult &= BBbWriteEmbedded(priv,
2058 byVT3253B0_AGC[ii][0],
2059 byVT3253B0_AGC[ii][1]);
2060
2061 VNSvOutPortB(iobase + MAC_REG_ITRTMSET, 0x23);
2062 MACvRegBitsOn(iobase, MAC_REG_PAPEDELAY, BIT(0));
2063
2064 priv->abyBBVGA[0] = 0x14;
2065 priv->abyBBVGA[1] = 0x0A;
2066 priv->abyBBVGA[2] = 0x0;
2067 priv->abyBBVGA[3] = 0x0;
2068 priv->ldBmThreshold[0] = -60;
2069 priv->ldBmThreshold[1] = -50;
2070 priv->ldBmThreshold[2] = 0;
2071 priv->ldBmThreshold[3] = 0;
2072 } else if (byRFType == RF_UW2452) {
2073 for (ii = 0; ii < CB_VT3253B0_INIT_FOR_UW2451; ii++)
2074 bResult &= BBbWriteEmbedded(priv,
2075 byVT3253B0_UW2451[ii][0],
2076 byVT3253B0_UW2451[ii][1]);
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093 bResult &= BBbWriteEmbedded(priv, 0xd7, 0x06);
2094
2095
2096 bResult &= BBbWriteEmbedded(priv, 0x90, 0x20);
2097 bResult &= BBbWriteEmbedded(priv, 0x97, 0xeb);
2098
2099
2100
2101 bResult &= BBbWriteEmbedded(priv, 0xa6, 0x00);
2102 bResult &= BBbWriteEmbedded(priv, 0xa8, 0x30);
2103
2104 bResult &= BBbWriteEmbedded(priv, 0xb0, 0x58);
2105
2106 for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
2107 bResult &= BBbWriteEmbedded(priv,
2108 byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
2109
2110 priv->abyBBVGA[0] = 0x14;
2111 priv->abyBBVGA[1] = 0x0A;
2112 priv->abyBBVGA[2] = 0x0;
2113 priv->abyBBVGA[3] = 0x0;
2114 priv->ldBmThreshold[0] = -60;
2115 priv->ldBmThreshold[1] = -50;
2116 priv->ldBmThreshold[2] = 0;
2117 priv->ldBmThreshold[3] = 0;
2118
2119
2120 } else if (byRFType == RF_VT3226) {
2121 for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)
2122 bResult &= BBbWriteEmbedded(priv,
2123 byVT3253B0_AIROHA2230[ii][0],
2124 byVT3253B0_AIROHA2230[ii][1]);
2125
2126 for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
2127 bResult &= BBbWriteEmbedded(priv,
2128 byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
2129
2130 priv->abyBBVGA[0] = 0x1C;
2131 priv->abyBBVGA[1] = 0x10;
2132 priv->abyBBVGA[2] = 0x0;
2133 priv->abyBBVGA[3] = 0x0;
2134 priv->ldBmThreshold[0] = -70;
2135 priv->ldBmThreshold[1] = -48;
2136 priv->ldBmThreshold[2] = 0;
2137 priv->ldBmThreshold[3] = 0;
2138
2139 MACvSetRFLE_LatchBase(iobase);
2140
2141 } else if (byRFType == RF_AIROHA7230) {
2142 for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)
2143 bResult &= BBbWriteEmbedded(priv,
2144 byVT3253B0_AIROHA2230[ii][0],
2145 byVT3253B0_AIROHA2230[ii][1]);
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157 bResult &= BBbWriteEmbedded(priv, 0xd7, 0x06);
2158
2159
2160 for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
2161 bResult &= BBbWriteEmbedded(priv,
2162 byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
2163
2164 priv->abyBBVGA[0] = 0x1C;
2165 priv->abyBBVGA[1] = 0x10;
2166 priv->abyBBVGA[2] = 0x0;
2167 priv->abyBBVGA[3] = 0x0;
2168 priv->ldBmThreshold[0] = -70;
2169 priv->ldBmThreshold[1] = -48;
2170 priv->ldBmThreshold[2] = 0;
2171 priv->ldBmThreshold[3] = 0;
2172
2173 } else {
2174
2175 priv->bUpdateBBVGA = false;
2176 priv->abyBBVGA[0] = 0x1C;
2177 }
2178
2179 if (byLocalID > REV_ID_VT3253_A1) {
2180 BBbWriteEmbedded(priv, 0x04, 0x7F);
2181 BBbWriteEmbedded(priv, 0x0D, 0x01);
2182 }
2183
2184 return bResult;
2185 }
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199 void
2200 BBvSetShortSlotTime(struct vnt_private *priv)
2201 {
2202 unsigned char byBBRxConf = 0;
2203 unsigned char byBBVGA = 0;
2204
2205 BBbReadEmbedded(priv, 0x0A, &byBBRxConf);
2206
2207 if (priv->bShortSlotTime)
2208 byBBRxConf &= 0xDF;
2209 else
2210 byBBRxConf |= 0x20;
2211
2212
2213 BBbReadEmbedded(priv, 0xE7, &byBBVGA);
2214 if (byBBVGA == priv->abyBBVGA[0])
2215 byBBRxConf |= 0x20;
2216
2217 BBbWriteEmbedded(priv, 0x0A, byBBRxConf);
2218 }
2219
2220 void BBvSetVGAGainOffset(struct vnt_private *priv, unsigned char byData)
2221 {
2222 unsigned char byBBRxConf = 0;
2223
2224 BBbWriteEmbedded(priv, 0xE7, byData);
2225
2226 BBbReadEmbedded(priv, 0x0A, &byBBRxConf);
2227
2228 if (byData == priv->abyBBVGA[0])
2229 byBBRxConf |= 0x20;
2230 else if (priv->bShortSlotTime)
2231 byBBRxConf &= 0xDF;
2232 else
2233 byBBRxConf |= 0x20;
2234 priv->byBBVGACurrent = byData;
2235 BBbWriteEmbedded(priv, 0x0A, byBBRxConf);
2236 }
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250 void
2251 BBvSoftwareReset(struct vnt_private *priv)
2252 {
2253 BBbWriteEmbedded(priv, 0x50, 0x40);
2254 BBbWriteEmbedded(priv, 0x50, 0);
2255 BBbWriteEmbedded(priv, 0x9C, 0x01);
2256 BBbWriteEmbedded(priv, 0x9C, 0);
2257 }
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271 void
2272 BBvPowerSaveModeON(struct vnt_private *priv)
2273 {
2274 unsigned char byOrgData;
2275
2276 BBbReadEmbedded(priv, 0x0D, &byOrgData);
2277 byOrgData |= BIT(0);
2278 BBbWriteEmbedded(priv, 0x0D, byOrgData);
2279 }
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293 void
2294 BBvPowerSaveModeOFF(struct vnt_private *priv)
2295 {
2296 unsigned char byOrgData;
2297
2298 BBbReadEmbedded(priv, 0x0D, &byOrgData);
2299 byOrgData &= ~(BIT(0));
2300 BBbWriteEmbedded(priv, 0x0D, byOrgData);
2301 }
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317 void
2318 BBvSetTxAntennaMode(struct vnt_private *priv, unsigned char byAntennaMode)
2319 {
2320 unsigned char byBBTxConf;
2321
2322 BBbReadEmbedded(priv, 0x09, &byBBTxConf);
2323 if (byAntennaMode == ANT_DIVERSITY) {
2324
2325 byBBTxConf |= 0x02;
2326 } else if (byAntennaMode == ANT_A) {
2327
2328 byBBTxConf &= 0xF9;
2329 } else if (byAntennaMode == ANT_B) {
2330 byBBTxConf &= 0xFD;
2331 byBBTxConf |= 0x04;
2332 }
2333 BBbWriteEmbedded(priv, 0x09, byBBTxConf);
2334 }
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350 void
2351 BBvSetRxAntennaMode(struct vnt_private *priv, unsigned char byAntennaMode)
2352 {
2353 unsigned char byBBRxConf;
2354
2355 BBbReadEmbedded(priv, 0x0A, &byBBRxConf);
2356 if (byAntennaMode == ANT_DIVERSITY) {
2357 byBBRxConf |= 0x01;
2358
2359 } else if (byAntennaMode == ANT_A) {
2360 byBBRxConf &= 0xFC;
2361 } else if (byAntennaMode == ANT_B) {
2362 byBBRxConf &= 0xFE;
2363 byBBRxConf |= 0x02;
2364 }
2365 BBbWriteEmbedded(priv, 0x0A, byBBRxConf);
2366 }
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380 void
2381 BBvSetDeepSleep(struct vnt_private *priv, unsigned char byLocalID)
2382 {
2383 BBbWriteEmbedded(priv, 0x0C, 0x17);
2384 BBbWriteEmbedded(priv, 0x0D, 0xB9);
2385 }
2386
2387 void
2388 BBvExitDeepSleep(struct vnt_private *priv, unsigned char byLocalID)
2389 {
2390 BBbWriteEmbedded(priv, 0x0C, 0x00);
2391 BBbWriteEmbedded(priv, 0x0D, 0x01);
2392 }