Lines Matching +full:0 +full:x10200000

31 #define EXT_ADDITIVE (0x8000)
49 .macAddr = {0, 2, 3, 4, 5, 6},
50 .custData = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
53 .regDmn = { LE16(0), LE16(0x1f) },
54 .txrxMask = 0x77, /* 4 bits tx and 4 bits rx */
59 .rfSilent = 0,
60 .blueToothOptions = 0,
61 .deviceCap = 0,
64 .params_for_tuning_caps = {0, 0},
65 .featureEnable = 0x0c,
74 .miscConfiguration = 0, /* bit0 - turn down drivestrength */
76 .wlanDisableGpio = 0,
78 .rxBandSelectGpio = 0xff,
79 .txrxgain = 0,
80 .swreg = 0,
85 .antCtrlCommon = LE32(0x110),
87 .antCtrlCommon2 = LE32(0x22222),
93 .antCtrlChain = { LE16(0x150), LE16(0x150), LE16(0x150) },
97 * for ar9280 (0xa20c/b20c 5:0)
99 .xatten1DB = {0, 0, 0},
103 * for ar9280 (0xa20c/b20c 16:12
105 .xatten1Margin = {0, 0, 0},
107 .voltSlope = 0,
113 .spurChans = {0, 0, 0, 0, 0},
119 .noiseFloorThreshCh = {-1, 0, 0},
120 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
121 .quick_drop = 0,
122 .xpaBiasLvl = 0,
123 .txFrameToDataStart = 0x0e,
124 .txFrameToPaOn = 0x0e,
126 .antennaGain = 0,
127 .switchSettling = 0x2c,
129 .txEndToXpaOff = 0,
130 .txEndToRxOn = 0x2,
131 .txFrameToXpaOn = 0xe,
133 .papdRateMaskHt20 = LE32(0x0cf0e0e0),
134 .papdRateMaskHt40 = LE32(0x6cf0e0e0),
135 .switchcomspdt = 0,
136 .xlna_bias_strength = 0,
138 0, 0, 0, 0, 0, 0, 0,
142 .ant_div_control = 0,
143 .future = {0, 0},
144 .tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
153 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
154 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
155 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
198 0x11, 0x12, 0x15, 0x17, 0x41, 0x42,
199 0x45, 0x47, 0x31, 0x32, 0x35, 0x37,
212 0xFF,
219 0xFF,
229 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
236 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
239 0,
243 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
246 0,
250 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
257 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
263 /* Data[9].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
266 0
270 /* Data[10].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
273 0
277 /* Data[11].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
284 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
285 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
286 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
288 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
289 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
290 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
292 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
293 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
294 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
296 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
297 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
298 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
302 .antCtrlCommon = LE32(0x110),
304 .antCtrlCommon2 = LE32(0x22222),
307 LE16(0x000), LE16(0x000), LE16(0x000),
309 /* xatten1DB 3 xatten1_db for AR9280 (0xa20c/b20c 5:0) */
310 .xatten1DB = {0, 0, 0},
314 * for merlin (0xa20c/b20c 16:12
316 .xatten1Margin = {0, 0, 0},
318 .voltSlope = 0,
320 .spurChans = {0, 0, 0, 0, 0},
322 .noiseFloorThreshCh = {-1, 0, 0},
323 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
324 .quick_drop = 0,
325 .xpaBiasLvl = 0,
326 .txFrameToDataStart = 0x0e,
327 .txFrameToPaOn = 0x0e,
329 .antennaGain = 0,
330 .switchSettling = 0x2d,
332 .txEndToXpaOff = 0,
333 .txEndToRxOn = 0x2,
334 .txFrameToXpaOn = 0xe,
336 .papdRateMaskHt20 = LE32(0x0c80c080),
337 .papdRateMaskHt40 = LE32(0x0080c080),
338 .switchcomspdt = 0,
339 .xlna_bias_strength = 0,
341 0, 0, 0, 0, 0, 0, 0,
345 .tempSlopeLow = 0,
346 .tempSlopeHigh = 0,
347 .xatten1DBLow = {0, 0, 0},
348 .xatten1MarginLow = {0, 0, 0},
349 .xatten1DBHigh = {0, 0, 0},
350 .xatten1MarginHigh = {0, 0, 0}
353 FREQ2FBIN(5180, 0),
354 FREQ2FBIN(5220, 0),
355 FREQ2FBIN(5320, 0),
356 FREQ2FBIN(5400, 0),
357 FREQ2FBIN(5500, 0),
358 FREQ2FBIN(5600, 0),
359 FREQ2FBIN(5725, 0),
360 FREQ2FBIN(5825, 0)
364 {0, 0, 0, 0, 0},
365 {0, 0, 0, 0, 0},
366 {0, 0, 0, 0, 0},
367 {0, 0, 0, 0, 0},
368 {0, 0, 0, 0, 0},
369 {0, 0, 0, 0, 0},
370 {0, 0, 0, 0, 0},
371 {0, 0, 0, 0, 0},
374 {0, 0, 0, 0, 0},
375 {0, 0, 0, 0, 0},
376 {0, 0, 0, 0, 0},
377 {0, 0, 0, 0, 0},
378 {0, 0, 0, 0, 0},
379 {0, 0, 0, 0, 0},
380 {0, 0, 0, 0, 0},
381 {0, 0, 0, 0, 0},
384 {0, 0, 0, 0, 0},
385 {0, 0, 0, 0, 0},
386 {0, 0, 0, 0, 0},
387 {0, 0, 0, 0, 0},
388 {0, 0, 0, 0, 0},
389 {0, 0, 0, 0, 0},
390 {0, 0, 0, 0, 0},
391 {0, 0, 0, 0, 0},
396 FREQ2FBIN(5180, 0),
397 FREQ2FBIN(5220, 0),
398 FREQ2FBIN(5320, 0),
399 FREQ2FBIN(5400, 0),
400 FREQ2FBIN(5500, 0),
401 FREQ2FBIN(5600, 0),
402 FREQ2FBIN(5725, 0),
403 FREQ2FBIN(5825, 0)
406 FREQ2FBIN(5180, 0),
407 FREQ2FBIN(5240, 0),
408 FREQ2FBIN(5320, 0),
409 FREQ2FBIN(5500, 0),
410 FREQ2FBIN(5700, 0),
411 FREQ2FBIN(5745, 0),
412 FREQ2FBIN(5725, 0),
413 FREQ2FBIN(5825, 0)
416 FREQ2FBIN(5180, 0),
417 FREQ2FBIN(5240, 0),
418 FREQ2FBIN(5320, 0),
419 FREQ2FBIN(5500, 0),
420 FREQ2FBIN(5700, 0),
421 FREQ2FBIN(5745, 0),
422 FREQ2FBIN(5725, 0),
423 FREQ2FBIN(5825, 0)
438 * 0_8_16,1-3_9-11_17-19,
441 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
442 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
443 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
444 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
445 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
446 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
447 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
448 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
452 * 0_8_16,1-3_9-11_17-19,
455 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
456 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
457 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
458 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
459 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
460 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
461 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
462 { {20, 20, 10, 10, 0, 0, 10, 10, 0, 0, 10, 10, 0, 0} },
465 0x10, 0x16, 0x18, 0x40, 0x46,
466 0x48, 0x30, 0x36, 0x38
470 /* Data[0].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
471 /* Data[0].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
472 /* Data[0].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
473 /* Data[0].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
474 /* Data[0].ctlEdges[4].bChannel */ FREQ2FBIN(5600, 0),
475 /* Data[0].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
476 /* Data[0].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
477 /* Data[0].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
480 /* Data[1].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
481 /* Data[1].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
482 /* Data[1].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
483 /* Data[1].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
484 /* Data[1].ctlEdges[4].bChannel */ FREQ2FBIN(5520, 0),
485 /* Data[1].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
486 /* Data[1].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
487 /* Data[1].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
491 /* Data[2].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
492 /* Data[2].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
493 /* Data[2].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
494 /* Data[2].ctlEdges[3].bChannel */ FREQ2FBIN(5310, 0),
495 /* Data[2].ctlEdges[4].bChannel */ FREQ2FBIN(5510, 0),
496 /* Data[2].ctlEdges[5].bChannel */ FREQ2FBIN(5550, 0),
497 /* Data[2].ctlEdges[6].bChannel */ FREQ2FBIN(5670, 0),
498 /* Data[2].ctlEdges[7].bChannel */ FREQ2FBIN(5755, 0)
502 /* Data[3].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
503 /* Data[3].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
504 /* Data[3].ctlEdges[2].bChannel */ FREQ2FBIN(5260, 0),
505 /* Data[3].ctlEdges[3].bChannel */ FREQ2FBIN(5320, 0),
506 /* Data[3].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
507 /* Data[3].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
508 /* Data[3].ctlEdges[6].bChannel */ 0xFF,
509 /* Data[3].ctlEdges[7].bChannel */ 0xFF,
513 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
514 /* Data[4].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
515 /* Data[4].ctlEdges[2].bChannel */ FREQ2FBIN(5500, 0),
516 /* Data[4].ctlEdges[3].bChannel */ FREQ2FBIN(5700, 0),
517 /* Data[4].ctlEdges[4].bChannel */ 0xFF,
518 /* Data[4].ctlEdges[5].bChannel */ 0xFF,
519 /* Data[4].ctlEdges[6].bChannel */ 0xFF,
520 /* Data[4].ctlEdges[7].bChannel */ 0xFF,
524 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
525 /* Data[5].ctlEdges[1].bChannel */ FREQ2FBIN(5270, 0),
526 /* Data[5].ctlEdges[2].bChannel */ FREQ2FBIN(5310, 0),
527 /* Data[5].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
528 /* Data[5].ctlEdges[4].bChannel */ FREQ2FBIN(5590, 0),
529 /* Data[5].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
530 /* Data[5].ctlEdges[6].bChannel */ 0xFF,
531 /* Data[5].ctlEdges[7].bChannel */ 0xFF
535 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
536 /* Data[6].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
537 /* Data[6].ctlEdges[2].bChannel */ FREQ2FBIN(5220, 0),
538 /* Data[6].ctlEdges[3].bChannel */ FREQ2FBIN(5260, 0),
539 /* Data[6].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
540 /* Data[6].ctlEdges[5].bChannel */ FREQ2FBIN(5600, 0),
541 /* Data[6].ctlEdges[6].bChannel */ FREQ2FBIN(5700, 0),
542 /* Data[6].ctlEdges[7].bChannel */ FREQ2FBIN(5745, 0)
546 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
547 /* Data[7].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
548 /* Data[7].ctlEdges[2].bChannel */ FREQ2FBIN(5320, 0),
549 /* Data[7].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
550 /* Data[7].ctlEdges[4].bChannel */ FREQ2FBIN(5560, 0),
551 /* Data[7].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
552 /* Data[7].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
553 /* Data[7].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
557 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
558 /* Data[8].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
559 /* Data[8].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
560 /* Data[8].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
561 /* Data[8].ctlEdges[4].bChannel */ FREQ2FBIN(5550, 0),
562 /* Data[8].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
563 /* Data[8].ctlEdges[6].bChannel */ FREQ2FBIN(5755, 0),
564 /* Data[8].ctlEdges[7].bChannel */ FREQ2FBIN(5795, 0)
571 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
577 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
582 CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
588 CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
589 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
594 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
595 CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
601 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
612 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
613 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
618 CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
619 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
628 .macAddr = {0x00, 0x03, 0x7f, 0x0, 0x0, 0x0},
631 .regDmn = { LE16(0), LE16(0x1f) },
632 .txrxMask = 0x77, /* 4 bits tx and 4 bits rx */
637 .rfSilent = 0,
638 .blueToothOptions = 0,
639 .deviceCap = 0,
642 .params_for_tuning_caps = {0, 0},
643 .featureEnable = 0x0d,
652 .miscConfiguration = 0, /* bit0 - turn down drivestrength */
654 .wlanDisableGpio = 0,
656 .rxBandSelectGpio = 0xff,
657 .txrxgain = 0x21,
658 .swreg = 0,
663 .antCtrlCommon = LE32(0x110),
665 .antCtrlCommon2 = LE32(0x44444),
671 .antCtrlChain = { LE16(0x150), LE16(0x150), LE16(0x150) },
675 * for ar9280 (0xa20c/b20c 5:0)
677 .xatten1DB = {0, 0, 0},
681 * for ar9280 (0xa20c/b20c 16:12
683 .xatten1Margin = {0, 0, 0},
685 .voltSlope = 0,
691 .spurChans = {FREQ2FBIN(2464, 1), 0, 0, 0, 0},
697 .noiseFloorThreshCh = {-1, 0, 0},
698 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
699 .quick_drop = 0,
700 .xpaBiasLvl = 0,
701 .txFrameToDataStart = 0x0e,
702 .txFrameToPaOn = 0x0e,
704 .antennaGain = 0,
705 .switchSettling = 0x2c,
707 .txEndToXpaOff = 0,
708 .txEndToRxOn = 0x2,
709 .txFrameToXpaOn = 0xe,
711 .papdRateMaskHt20 = LE32(0x0c80c080),
712 .papdRateMaskHt40 = LE32(0x0080c080),
713 .switchcomspdt = 0,
714 .xlna_bias_strength = 0,
716 0, 0, 0, 0, 0, 0, 0,
720 .ant_div_control = 0,
721 .future = {0, 0},
722 .tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
731 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
732 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
733 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
766 { {32, 32, 32, 32, 32, 28, 32, 32, 30, 28, 0, 0, 0, 0} },
767 { {32, 32, 32, 32, 32, 28, 32, 32, 30, 28, 0, 0, 0, 0} },
768 { {32, 32, 32, 32, 32, 28, 32, 32, 30, 28, 0, 0, 0, 0} },
771 { {30, 30, 30, 30, 30, 28, 30, 30, 28, 26, 0, 0, 0, 0} },
772 { {30, 30, 30, 30, 30, 28, 30, 30, 28, 26, 0, 0, 0, 0} },
773 { {30, 30, 30, 30, 30, 28, 30, 30, 28, 26, 0, 0, 0, 0} },
776 0x11, 0x12, 0x15, 0x17, 0x41, 0x42,
777 0x45, 0x47, 0x31, 0x32, 0x35, 0x37,
790 0xFF,
797 0xFF,
807 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
814 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
817 0,
821 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
824 0,
828 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
835 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
841 /* Data[9].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
844 0
848 /* Data[10].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
851 0
855 /* Data[11].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
862 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
863 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
864 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
866 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
867 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
868 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
870 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
871 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
872 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
874 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
875 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
876 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
880 .antCtrlCommon = LE32(0x220),
882 .antCtrlCommon2 = LE32(0x11111),
885 LE16(0x150), LE16(0x150), LE16(0x150),
887 /* xatten1DB 3 xatten1_db for AR9280 (0xa20c/b20c 5:0) */
888 .xatten1DB = {0, 0, 0},
892 * for merlin (0xa20c/b20c 16:12
894 .xatten1Margin = {0, 0, 0},
896 .voltSlope = 0,
898 .spurChans = {FREQ2FBIN(5500, 0), 0, 0, 0, 0},
900 .noiseFloorThreshCh = {-1, 0, 0},
901 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
902 .quick_drop = 0,
903 .xpaBiasLvl = 0xf,
904 .txFrameToDataStart = 0x0e,
905 .txFrameToPaOn = 0x0e,
907 .antennaGain = 0,
908 .switchSettling = 0x2d,
910 .txEndToXpaOff = 0,
911 .txEndToRxOn = 0x2,
912 .txFrameToXpaOn = 0xe,
914 .papdRateMaskHt20 = LE32(0x0cf0e0e0),
915 .papdRateMaskHt40 = LE32(0x6cf0e0e0),
916 .switchcomspdt = 0,
917 .xlna_bias_strength = 0,
919 0, 0, 0, 0, 0, 0, 0,
925 .xatten1DBLow = {0, 0, 0},
926 .xatten1MarginLow = {0, 0, 0},
927 .xatten1DBHigh = {0, 0, 0},
928 .xatten1MarginHigh = {0, 0, 0}
931 FREQ2FBIN(5180, 0),
932 FREQ2FBIN(5240, 0),
933 FREQ2FBIN(5320, 0),
934 FREQ2FBIN(5400, 0),
935 FREQ2FBIN(5500, 0),
936 FREQ2FBIN(5600, 0),
937 FREQ2FBIN(5745, 0),
938 FREQ2FBIN(5785, 0)
942 {0, 0, 0, 0, 0},
943 {0, 0, 0, 0, 0},
944 {0, 0, 0, 0, 0},
945 {0, 0, 0, 0, 0},
946 {0, 0, 0, 0, 0},
947 {0, 0, 0, 0, 0},
948 {0, 0, 0, 0, 0},
949 {0, 0, 0, 0, 0},
952 {0, 0, 0, 0, 0},
953 {0, 0, 0, 0, 0},
954 {0, 0, 0, 0, 0},
955 {0, 0, 0, 0, 0},
956 {0, 0, 0, 0, 0},
957 {0, 0, 0, 0, 0},
958 {0, 0, 0, 0, 0},
959 {0, 0, 0, 0, 0},
962 {0, 0, 0, 0, 0},
963 {0, 0, 0, 0, 0},
964 {0, 0, 0, 0, 0},
965 {0, 0, 0, 0, 0},
966 {0, 0, 0, 0, 0},
967 {0, 0, 0, 0, 0},
968 {0, 0, 0, 0, 0},
969 {0, 0, 0, 0, 0},
974 FREQ2FBIN(5180, 0),
975 FREQ2FBIN(5220, 0),
976 FREQ2FBIN(5320, 0),
977 FREQ2FBIN(5400, 0),
978 FREQ2FBIN(5500, 0),
979 FREQ2FBIN(5600, 0),
980 FREQ2FBIN(5745, 0),
981 FREQ2FBIN(5785, 0)
984 FREQ2FBIN(5180, 0),
985 FREQ2FBIN(5240, 0),
986 FREQ2FBIN(5320, 0),
987 FREQ2FBIN(5400, 0),
988 FREQ2FBIN(5500, 0),
989 FREQ2FBIN(5700, 0),
990 FREQ2FBIN(5745, 0),
991 FREQ2FBIN(5825, 0)
994 FREQ2FBIN(5190, 0),
995 FREQ2FBIN(5230, 0),
996 FREQ2FBIN(5320, 0),
997 FREQ2FBIN(5410, 0),
998 FREQ2FBIN(5510, 0),
999 FREQ2FBIN(5670, 0),
1000 FREQ2FBIN(5755, 0),
1001 FREQ2FBIN(5825, 0)
1016 * 0_8_16,1-3_9-11_17-19,
1030 * 0_8_16,1-3_9-11_17-19,
1043 0x10, 0x16, 0x18, 0x40, 0x46,
1044 0x48, 0x30, 0x36, 0x38
1048 /* Data[0].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1049 /* Data[0].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1050 /* Data[0].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
1051 /* Data[0].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
1052 /* Data[0].ctlEdges[4].bChannel */ FREQ2FBIN(5600, 0),
1053 /* Data[0].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1054 /* Data[0].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
1055 /* Data[0].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
1058 /* Data[1].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1059 /* Data[1].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1060 /* Data[1].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
1061 /* Data[1].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
1062 /* Data[1].ctlEdges[4].bChannel */ FREQ2FBIN(5520, 0),
1063 /* Data[1].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1064 /* Data[1].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
1065 /* Data[1].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
1069 /* Data[2].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
1070 /* Data[2].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
1071 /* Data[2].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
1072 /* Data[2].ctlEdges[3].bChannel */ FREQ2FBIN(5310, 0),
1073 /* Data[2].ctlEdges[4].bChannel */ FREQ2FBIN(5510, 0),
1074 /* Data[2].ctlEdges[5].bChannel */ FREQ2FBIN(5550, 0),
1075 /* Data[2].ctlEdges[6].bChannel */ FREQ2FBIN(5670, 0),
1076 /* Data[2].ctlEdges[7].bChannel */ FREQ2FBIN(5755, 0)
1080 /* Data[3].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1081 /* Data[3].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
1082 /* Data[3].ctlEdges[2].bChannel */ FREQ2FBIN(5260, 0),
1083 /* Data[3].ctlEdges[3].bChannel */ FREQ2FBIN(5320, 0),
1084 /* Data[3].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
1085 /* Data[3].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1086 /* Data[3].ctlEdges[6].bChannel */ 0xFF,
1087 /* Data[3].ctlEdges[7].bChannel */ 0xFF,
1091 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1092 /* Data[4].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1093 /* Data[4].ctlEdges[2].bChannel */ FREQ2FBIN(5500, 0),
1094 /* Data[4].ctlEdges[3].bChannel */ FREQ2FBIN(5700, 0),
1095 /* Data[4].ctlEdges[4].bChannel */ 0xFF,
1096 /* Data[4].ctlEdges[5].bChannel */ 0xFF,
1097 /* Data[4].ctlEdges[6].bChannel */ 0xFF,
1098 /* Data[4].ctlEdges[7].bChannel */ 0xFF,
1102 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
1103 /* Data[5].ctlEdges[1].bChannel */ FREQ2FBIN(5270, 0),
1104 /* Data[5].ctlEdges[2].bChannel */ FREQ2FBIN(5310, 0),
1105 /* Data[5].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
1106 /* Data[5].ctlEdges[4].bChannel */ FREQ2FBIN(5590, 0),
1107 /* Data[5].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
1108 /* Data[5].ctlEdges[6].bChannel */ 0xFF,
1109 /* Data[5].ctlEdges[7].bChannel */ 0xFF
1113 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1114 /* Data[6].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
1115 /* Data[6].ctlEdges[2].bChannel */ FREQ2FBIN(5220, 0),
1116 /* Data[6].ctlEdges[3].bChannel */ FREQ2FBIN(5260, 0),
1117 /* Data[6].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
1118 /* Data[6].ctlEdges[5].bChannel */ FREQ2FBIN(5600, 0),
1119 /* Data[6].ctlEdges[6].bChannel */ FREQ2FBIN(5700, 0),
1120 /* Data[6].ctlEdges[7].bChannel */ FREQ2FBIN(5745, 0)
1124 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1125 /* Data[7].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1126 /* Data[7].ctlEdges[2].bChannel */ FREQ2FBIN(5320, 0),
1127 /* Data[7].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
1128 /* Data[7].ctlEdges[4].bChannel */ FREQ2FBIN(5560, 0),
1129 /* Data[7].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1130 /* Data[7].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
1131 /* Data[7].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
1135 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
1136 /* Data[8].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
1137 /* Data[8].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
1138 /* Data[8].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
1139 /* Data[8].ctlEdges[4].bChannel */ FREQ2FBIN(5550, 0),
1140 /* Data[8].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
1141 /* Data[8].ctlEdges[6].bChannel */ FREQ2FBIN(5755, 0),
1142 /* Data[8].ctlEdges[7].bChannel */ FREQ2FBIN(5795, 0)
1149 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1155 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1160 CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
1166 CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1167 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
1172 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1173 CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
1179 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
1190 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
1191 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1196 CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
1197 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
1207 .macAddr = {0x00, 0x03, 0x7f, 0x0, 0x0, 0x0},
1210 .regDmn = { LE16(0), LE16(0x1f) },
1211 .txrxMask = 0x77, /* 4 bits tx and 4 bits rx */
1216 .rfSilent = 0,
1217 .blueToothOptions = 0,
1218 .deviceCap = 0,
1221 .params_for_tuning_caps = {0, 0},
1222 .featureEnable = 0x0d,
1231 .miscConfiguration = 0, /* bit0 - turn down drivestrength */
1233 .wlanDisableGpio = 0,
1235 .rxBandSelectGpio = 0xff,
1236 .txrxgain = 0x10,
1237 .swreg = 0,
1242 .antCtrlCommon = LE32(0x110),
1244 .antCtrlCommon2 = LE32(0x44444),
1250 .antCtrlChain = { LE16(0x150), LE16(0x150), LE16(0x150) },
1254 * for ar9280 (0xa20c/b20c 5:0)
1256 .xatten1DB = {0, 0, 0},
1260 * for ar9280 (0xa20c/b20c 16:12
1262 .xatten1Margin = {0, 0, 0},
1264 .voltSlope = 0,
1270 .spurChans = {FREQ2FBIN(2464, 1), 0, 0, 0, 0},
1276 .noiseFloorThreshCh = {-1, 0, 0},
1277 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1278 .quick_drop = 0,
1279 .xpaBiasLvl = 0,
1280 .txFrameToDataStart = 0x0e,
1281 .txFrameToPaOn = 0x0e,
1283 .antennaGain = 0,
1284 .switchSettling = 0x2c,
1286 .txEndToXpaOff = 0,
1287 .txEndToRxOn = 0x2,
1288 .txFrameToXpaOn = 0xe,
1290 .papdRateMaskHt20 = LE32(0x0c80c080),
1291 .papdRateMaskHt40 = LE32(0x0080c080),
1292 .switchcomspdt = 0,
1293 .xlna_bias_strength = 0,
1295 0, 0, 0, 0, 0, 0, 0,
1299 .ant_div_control = 0,
1300 .future = {0, 0},
1301 .tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
1310 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
1311 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
1312 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
1355 0x11, 0x12, 0x15, 0x17, 0x41, 0x42,
1356 0x45, 0x47, 0x31, 0x32, 0x35, 0x37,
1369 0xFF,
1376 0xFF,
1386 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
1393 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
1396 0,
1400 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
1403 0,
1407 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
1414 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
1420 /* Data[9].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
1423 0
1427 /* Data[10].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
1430 0
1434 /* Data[11].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
1441 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1442 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1443 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
1445 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
1446 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1447 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1449 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
1450 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1451 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1453 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
1454 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
1455 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
1459 .antCtrlCommon = LE32(0x220),
1461 .antCtrlCommon2 = LE32(0x44444),
1464 LE16(0x150), LE16(0x150), LE16(0x150),
1466 /* xatten1DB 3 xatten1_db for AR9280 (0xa20c/b20c 5:0) */
1467 .xatten1DB = {0, 0, 0},
1471 * for merlin (0xa20c/b20c 16:12
1473 .xatten1Margin = {0, 0, 0},
1475 .voltSlope = 0,
1477 .spurChans = {0, 0, 0, 0, 0},
1479 .noiseFloorThreshCh = {-1, 0, 0},
1480 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1481 .quick_drop = 0,
1482 .xpaBiasLvl = 0,
1483 .txFrameToDataStart = 0x0e,
1484 .txFrameToPaOn = 0x0e,
1486 .antennaGain = 0,
1487 .switchSettling = 0x2d,
1489 .txEndToXpaOff = 0,
1490 .txEndToRxOn = 0x2,
1491 .txFrameToXpaOn = 0xe,
1493 .papdRateMaskHt20 = LE32(0x0cf0e0e0),
1494 .papdRateMaskHt40 = LE32(0x6cf0e0e0),
1495 .switchcomspdt = 0,
1496 .xlna_bias_strength = 0,
1498 0, 0, 0, 0, 0, 0, 0,
1504 .xatten1DBLow = {0, 0, 0},
1505 .xatten1MarginLow = {0, 0, 0},
1506 .xatten1DBHigh = {0, 0, 0},
1507 .xatten1MarginHigh = {0, 0, 0}
1510 FREQ2FBIN(5180, 0),
1511 FREQ2FBIN(5220, 0),
1512 FREQ2FBIN(5320, 0),
1513 FREQ2FBIN(5400, 0),
1514 FREQ2FBIN(5500, 0),
1515 FREQ2FBIN(5600, 0),
1516 FREQ2FBIN(5700, 0),
1517 FREQ2FBIN(5785, 0)
1521 {0, 0, 0, 0, 0},
1522 {0, 0, 0, 0, 0},
1523 {0, 0, 0, 0, 0},
1524 {0, 0, 0, 0, 0},
1525 {0, 0, 0, 0, 0},
1526 {0, 0, 0, 0, 0},
1527 {0, 0, 0, 0, 0},
1528 {0, 0, 0, 0, 0},
1531 {0, 0, 0, 0, 0},
1532 {0, 0, 0, 0, 0},
1533 {0, 0, 0, 0, 0},
1534 {0, 0, 0, 0, 0},
1535 {0, 0, 0, 0, 0},
1536 {0, 0, 0, 0, 0},
1537 {0, 0, 0, 0, 0},
1538 {0, 0, 0, 0, 0},
1541 {0, 0, 0, 0, 0},
1542 {0, 0, 0, 0, 0},
1543 {0, 0, 0, 0, 0},
1544 {0, 0, 0, 0, 0},
1545 {0, 0, 0, 0, 0},
1546 {0, 0, 0, 0, 0},
1547 {0, 0, 0, 0, 0},
1548 {0, 0, 0, 0, 0},
1553 FREQ2FBIN(5180, 0),
1554 FREQ2FBIN(5240, 0),
1555 FREQ2FBIN(5320, 0),
1556 FREQ2FBIN(5400, 0),
1557 FREQ2FBIN(5500, 0),
1558 FREQ2FBIN(5600, 0),
1559 FREQ2FBIN(5700, 0),
1560 FREQ2FBIN(5825, 0)
1563 FREQ2FBIN(5180, 0),
1564 FREQ2FBIN(5240, 0),
1565 FREQ2FBIN(5320, 0),
1566 FREQ2FBIN(5400, 0),
1567 FREQ2FBIN(5500, 0),
1568 FREQ2FBIN(5700, 0),
1569 FREQ2FBIN(5745, 0),
1570 FREQ2FBIN(5825, 0)
1573 FREQ2FBIN(5180, 0),
1574 FREQ2FBIN(5240, 0),
1575 FREQ2FBIN(5320, 0),
1576 FREQ2FBIN(5400, 0),
1577 FREQ2FBIN(5500, 0),
1578 FREQ2FBIN(5700, 0),
1579 FREQ2FBIN(5745, 0),
1580 FREQ2FBIN(5825, 0)
1595 * 0_8_16,1-3_9-11_17-19,
1609 * 0_8_16,1-3_9-11_17-19,
1622 0x10, 0x16, 0x18, 0x40, 0x46,
1623 0x48, 0x30, 0x36, 0x38
1627 /* Data[0].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1628 /* Data[0].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1629 /* Data[0].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
1630 /* Data[0].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
1631 /* Data[0].ctlEdges[4].bChannel */ FREQ2FBIN(5600, 0),
1632 /* Data[0].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1633 /* Data[0].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
1634 /* Data[0].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
1637 /* Data[1].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1638 /* Data[1].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1639 /* Data[1].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
1640 /* Data[1].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
1641 /* Data[1].ctlEdges[4].bChannel */ FREQ2FBIN(5520, 0),
1642 /* Data[1].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1643 /* Data[1].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
1644 /* Data[1].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
1648 /* Data[2].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
1649 /* Data[2].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
1650 /* Data[2].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
1651 /* Data[2].ctlEdges[3].bChannel */ FREQ2FBIN(5310, 0),
1652 /* Data[2].ctlEdges[4].bChannel */ FREQ2FBIN(5510, 0),
1653 /* Data[2].ctlEdges[5].bChannel */ FREQ2FBIN(5550, 0),
1654 /* Data[2].ctlEdges[6].bChannel */ FREQ2FBIN(5670, 0),
1655 /* Data[2].ctlEdges[7].bChannel */ FREQ2FBIN(5755, 0)
1659 /* Data[3].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1660 /* Data[3].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
1661 /* Data[3].ctlEdges[2].bChannel */ FREQ2FBIN(5260, 0),
1662 /* Data[3].ctlEdges[3].bChannel */ FREQ2FBIN(5320, 0),
1663 /* Data[3].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
1664 /* Data[3].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1665 /* Data[3].ctlEdges[6].bChannel */ 0xFF,
1666 /* Data[3].ctlEdges[7].bChannel */ 0xFF,
1670 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1671 /* Data[4].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1672 /* Data[4].ctlEdges[2].bChannel */ FREQ2FBIN(5500, 0),
1673 /* Data[4].ctlEdges[3].bChannel */ FREQ2FBIN(5700, 0),
1674 /* Data[4].ctlEdges[4].bChannel */ 0xFF,
1675 /* Data[4].ctlEdges[5].bChannel */ 0xFF,
1676 /* Data[4].ctlEdges[6].bChannel */ 0xFF,
1677 /* Data[4].ctlEdges[7].bChannel */ 0xFF,
1681 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
1682 /* Data[5].ctlEdges[1].bChannel */ FREQ2FBIN(5270, 0),
1683 /* Data[5].ctlEdges[2].bChannel */ FREQ2FBIN(5310, 0),
1684 /* Data[5].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
1685 /* Data[5].ctlEdges[4].bChannel */ FREQ2FBIN(5590, 0),
1686 /* Data[5].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
1687 /* Data[5].ctlEdges[6].bChannel */ 0xFF,
1688 /* Data[5].ctlEdges[7].bChannel */ 0xFF
1692 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1693 /* Data[6].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
1694 /* Data[6].ctlEdges[2].bChannel */ FREQ2FBIN(5220, 0),
1695 /* Data[6].ctlEdges[3].bChannel */ FREQ2FBIN(5260, 0),
1696 /* Data[6].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
1697 /* Data[6].ctlEdges[5].bChannel */ FREQ2FBIN(5600, 0),
1698 /* Data[6].ctlEdges[6].bChannel */ FREQ2FBIN(5700, 0),
1699 /* Data[6].ctlEdges[7].bChannel */ FREQ2FBIN(5745, 0)
1703 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
1704 /* Data[7].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
1705 /* Data[7].ctlEdges[2].bChannel */ FREQ2FBIN(5320, 0),
1706 /* Data[7].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
1707 /* Data[7].ctlEdges[4].bChannel */ FREQ2FBIN(5560, 0),
1708 /* Data[7].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
1709 /* Data[7].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
1710 /* Data[7].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
1714 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
1715 /* Data[8].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
1716 /* Data[8].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
1717 /* Data[8].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
1718 /* Data[8].ctlEdges[4].bChannel */ FREQ2FBIN(5550, 0),
1719 /* Data[8].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
1720 /* Data[8].ctlEdges[6].bChannel */ FREQ2FBIN(5755, 0),
1721 /* Data[8].ctlEdges[7].bChannel */ FREQ2FBIN(5795, 0)
1728 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1734 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1739 CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
1745 CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1746 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
1751 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1752 CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
1758 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
1769 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
1770 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
1775 CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
1776 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
1786 .macAddr = {0x00, 0x03, 0x7f, 0x0, 0x0, 0x0},
1789 .regDmn = { LE16(0), LE16(0x1f) },
1790 .txrxMask = 0x77, /* 4 bits tx and 4 bits rx */
1795 .rfSilent = 0,
1796 .blueToothOptions = 0,
1797 .deviceCap = 0,
1800 .params_for_tuning_caps = {0, 0},
1801 .featureEnable = 0x0d,
1810 .miscConfiguration = 0, /* bit0 - turn down drivestrength */
1812 .wlanDisableGpio = 0,
1814 .rxBandSelectGpio = 0xff,
1815 .txrxgain = 0x0,
1816 .swreg = 0,
1821 .antCtrlCommon = LE32(0x110),
1823 .antCtrlCommon2 = LE32(0x22222),
1829 .antCtrlChain = { LE16(0x10), LE16(0x10), LE16(0x10) },
1833 * for ar9280 (0xa20c/b20c 5:0)
1835 .xatten1DB = {0x1b, 0x1b, 0x1b},
1839 * for ar9280 (0xa20c/b20c 16:12
1841 .xatten1Margin = {0x15, 0x15, 0x15},
1843 .voltSlope = 0,
1849 .spurChans = {FREQ2FBIN(2464, 1), 0, 0, 0, 0},
1855 .noiseFloorThreshCh = {-1, 0, 0},
1856 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1857 .quick_drop = 0,
1858 .xpaBiasLvl = 0,
1859 .txFrameToDataStart = 0x0e,
1860 .txFrameToPaOn = 0x0e,
1862 .antennaGain = 0,
1863 .switchSettling = 0x2c,
1865 .txEndToXpaOff = 0,
1866 .txEndToRxOn = 0x2,
1867 .txFrameToXpaOn = 0xe,
1869 .papdRateMaskHt20 = LE32(0x0c80c080),
1870 .papdRateMaskHt40 = LE32(0x0080c080),
1871 .switchcomspdt = 0,
1872 .xlna_bias_strength = 0,
1874 0, 0, 0, 0, 0, 0, 0,
1878 .ant_div_control = 0,
1879 .future = {0, 0},
1880 .tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
1889 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
1890 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
1891 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
1934 0x11, 0x12, 0x15, 0x17, 0x41, 0x42,
1935 0x45, 0x47, 0x31, 0x32, 0x35, 0x37,
1948 0xFF,
1955 0xFF,
1965 /* Data[4].ctledges[0].bchannel */ FREQ2FBIN(2412, 1),
1972 /* Data[5].ctledges[0].bchannel */ FREQ2FBIN(2412, 1),
1975 0,
1979 /* Data[6].ctledges[0].bchannel */ FREQ2FBIN(2412, 1),
1982 0,
1986 /* Data[7].ctledges[0].bchannel */ FREQ2FBIN(2422, 1),
1993 /* Data[8].ctledges[0].bchannel */ FREQ2FBIN(2412, 1),
1999 /* Data[9].ctledges[0].bchannel */ FREQ2FBIN(2412, 1),
2002 0
2006 /* Data[10].ctledges[0].bchannel */ FREQ2FBIN(2412, 1),
2009 0
2013 /* Data[11].ctledges[0].bchannel */ FREQ2FBIN(2422, 1),
2020 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2021 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2022 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
2024 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
2025 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2026 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2028 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
2029 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2030 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2032 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2033 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
2034 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
2038 .antCtrlCommon = LE32(0x110),
2040 .antCtrlCommon2 = LE32(0x22222),
2043 LE16(0x0), LE16(0x0), LE16(0x0),
2045 /* xatten1DB 3 xatten1_db for ar9280 (0xa20c/b20c 5:0) */
2046 .xatten1DB = {0x13, 0x19, 0x17},
2050 * for merlin (0xa20c/b20c 16:12
2052 .xatten1Margin = {0x19, 0x19, 0x19},
2056 .spurChans = {0, 0, 0, 0, 0},
2058 .noiseFloorThreshCh = {-1, 0, 0},
2059 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2060 .quick_drop = 0,
2061 .xpaBiasLvl = 0,
2062 .txFrameToDataStart = 0x0e,
2063 .txFrameToPaOn = 0x0e,
2065 .antennaGain = 0,
2066 .switchSettling = 0x2d,
2068 .txEndToXpaOff = 0,
2069 .txEndToRxOn = 0x2,
2070 .txFrameToXpaOn = 0xe,
2072 .papdRateMaskHt20 = LE32(0x0cf0e0e0),
2073 .papdRateMaskHt40 = LE32(0x6cf0e0e0),
2074 .switchcomspdt = 0,
2075 .xlna_bias_strength = 0,
2077 0, 0, 0, 0, 0, 0, 0,
2083 .xatten1DBLow = {0x10, 0x14, 0x10},
2084 .xatten1MarginLow = {0x19, 0x19 , 0x19},
2085 .xatten1DBHigh = {0x1d, 0x20, 0x24},
2086 .xatten1MarginHigh = {0x10, 0x10, 0x10}
2089 FREQ2FBIN(5180, 0),
2090 FREQ2FBIN(5220, 0),
2091 FREQ2FBIN(5320, 0),
2092 FREQ2FBIN(5400, 0),
2093 FREQ2FBIN(5500, 0),
2094 FREQ2FBIN(5600, 0),
2095 FREQ2FBIN(5700, 0),
2096 FREQ2FBIN(5785, 0)
2100 {0, 0, 0, 0, 0},
2101 {0, 0, 0, 0, 0},
2102 {0, 0, 0, 0, 0},
2103 {0, 0, 0, 0, 0},
2104 {0, 0, 0, 0, 0},
2105 {0, 0, 0, 0, 0},
2106 {0, 0, 0, 0, 0},
2107 {0, 0, 0, 0, 0},
2110 {0, 0, 0, 0, 0},
2111 {0, 0, 0, 0, 0},
2112 {0, 0, 0, 0, 0},
2113 {0, 0, 0, 0, 0},
2114 {0, 0, 0, 0, 0},
2115 {0, 0, 0, 0, 0},
2116 {0, 0, 0, 0, 0},
2117 {0, 0, 0, 0, 0},
2120 {0, 0, 0, 0, 0},
2121 {0, 0, 0, 0, 0},
2122 {0, 0, 0, 0, 0},
2123 {0, 0, 0, 0, 0},
2124 {0, 0, 0, 0, 0},
2125 {0, 0, 0, 0, 0},
2126 {0, 0, 0, 0, 0},
2127 {0, 0, 0, 0, 0},
2132 FREQ2FBIN(5180, 0),
2133 FREQ2FBIN(5220, 0),
2134 FREQ2FBIN(5320, 0),
2135 FREQ2FBIN(5400, 0),
2136 FREQ2FBIN(5500, 0),
2137 FREQ2FBIN(5600, 0),
2138 FREQ2FBIN(5725, 0),
2139 FREQ2FBIN(5825, 0)
2142 FREQ2FBIN(5180, 0),
2143 FREQ2FBIN(5220, 0),
2144 FREQ2FBIN(5320, 0),
2145 FREQ2FBIN(5400, 0),
2146 FREQ2FBIN(5500, 0),
2147 FREQ2FBIN(5600, 0),
2148 FREQ2FBIN(5725, 0),
2149 FREQ2FBIN(5825, 0)
2152 FREQ2FBIN(5180, 0),
2153 FREQ2FBIN(5220, 0),
2154 FREQ2FBIN(5320, 0),
2155 FREQ2FBIN(5400, 0),
2156 FREQ2FBIN(5500, 0),
2157 FREQ2FBIN(5600, 0),
2158 FREQ2FBIN(5725, 0),
2159 FREQ2FBIN(5825, 0)
2174 * 0_8_16,1-3_9-11_17-19,
2188 * 0_8_16,1-3_9-11_17-19,
2201 0x10, 0x16, 0x18, 0x40, 0x46,
2202 0x48, 0x30, 0x36, 0x38
2206 /* Data[0].ctledges[0].bchannel */ FREQ2FBIN(5180, 0),
2207 /* Data[0].ctledges[1].bchannel */ FREQ2FBIN(5260, 0),
2208 /* Data[0].ctledges[2].bchannel */ FREQ2FBIN(5280, 0),
2209 /* Data[0].ctledges[3].bchannel */ FREQ2FBIN(5500, 0),
2210 /* Data[0].ctledges[4].bchannel */ FREQ2FBIN(5600, 0),
2211 /* Data[0].ctledges[5].bchannel */ FREQ2FBIN(5700, 0),
2212 /* Data[0].ctledges[6].bchannel */ FREQ2FBIN(5745, 0),
2213 /* Data[0].ctledges[7].bchannel */ FREQ2FBIN(5825, 0)
2216 /* Data[1].ctledges[0].bchannel */ FREQ2FBIN(5180, 0),
2217 /* Data[1].ctledges[1].bchannel */ FREQ2FBIN(5260, 0),
2218 /* Data[1].ctledges[2].bchannel */ FREQ2FBIN(5280, 0),
2219 /* Data[1].ctledges[3].bchannel */ FREQ2FBIN(5500, 0),
2220 /* Data[1].ctledges[4].bchannel */ FREQ2FBIN(5520, 0),
2221 /* Data[1].ctledges[5].bchannel */ FREQ2FBIN(5700, 0),
2222 /* Data[1].ctledges[6].bchannel */ FREQ2FBIN(5745, 0),
2223 /* Data[1].ctledges[7].bchannel */ FREQ2FBIN(5825, 0)
2227 /* Data[2].ctledges[0].bchannel */ FREQ2FBIN(5190, 0),
2228 /* Data[2].ctledges[1].bchannel */ FREQ2FBIN(5230, 0),
2229 /* Data[2].ctledges[2].bchannel */ FREQ2FBIN(5270, 0),
2230 /* Data[2].ctledges[3].bchannel */ FREQ2FBIN(5310, 0),
2231 /* Data[2].ctledges[4].bchannel */ FREQ2FBIN(5510, 0),
2232 /* Data[2].ctledges[5].bchannel */ FREQ2FBIN(5550, 0),
2233 /* Data[2].ctledges[6].bchannel */ FREQ2FBIN(5670, 0),
2234 /* Data[2].ctledges[7].bchannel */ FREQ2FBIN(5755, 0)
2238 /* Data[3].ctledges[0].bchannel */ FREQ2FBIN(5180, 0),
2239 /* Data[3].ctledges[1].bchannel */ FREQ2FBIN(5200, 0),
2240 /* Data[3].ctledges[2].bchannel */ FREQ2FBIN(5260, 0),
2241 /* Data[3].ctledges[3].bchannel */ FREQ2FBIN(5320, 0),
2242 /* Data[3].ctledges[4].bchannel */ FREQ2FBIN(5500, 0),
2243 /* Data[3].ctledges[5].bchannel */ FREQ2FBIN(5700, 0),
2244 /* Data[3].ctledges[6].bchannel */ 0xFF,
2245 /* Data[3].ctledges[7].bchannel */ 0xFF,
2249 /* Data[4].ctledges[0].bchannel */ FREQ2FBIN(5180, 0),
2250 /* Data[4].ctledges[1].bchannel */ FREQ2FBIN(5260, 0),
2251 /* Data[4].ctledges[2].bchannel */ FREQ2FBIN(5500, 0),
2252 /* Data[4].ctledges[3].bchannel */ FREQ2FBIN(5700, 0),
2253 /* Data[4].ctledges[4].bchannel */ 0xFF,
2254 /* Data[4].ctledges[5].bchannel */ 0xFF,
2255 /* Data[4].ctledges[6].bchannel */ 0xFF,
2256 /* Data[4].ctledges[7].bchannel */ 0xFF,
2260 /* Data[5].ctledges[0].bchannel */ FREQ2FBIN(5190, 0),
2261 /* Data[5].ctledges[1].bchannel */ FREQ2FBIN(5270, 0),
2262 /* Data[5].ctledges[2].bchannel */ FREQ2FBIN(5310, 0),
2263 /* Data[5].ctledges[3].bchannel */ FREQ2FBIN(5510, 0),
2264 /* Data[5].ctledges[4].bchannel */ FREQ2FBIN(5590, 0),
2265 /* Data[5].ctledges[5].bchannel */ FREQ2FBIN(5670, 0),
2266 /* Data[5].ctledges[6].bchannel */ 0xFF,
2267 /* Data[5].ctledges[7].bchannel */ 0xFF
2271 /* Data[6].ctledges[0].bchannel */ FREQ2FBIN(5180, 0),
2272 /* Data[6].ctledges[1].bchannel */ FREQ2FBIN(5200, 0),
2273 /* Data[6].ctledges[2].bchannel */ FREQ2FBIN(5220, 0),
2274 /* Data[6].ctledges[3].bchannel */ FREQ2FBIN(5260, 0),
2275 /* Data[6].ctledges[4].bchannel */ FREQ2FBIN(5500, 0),
2276 /* Data[6].ctledges[5].bchannel */ FREQ2FBIN(5600, 0),
2277 /* Data[6].ctledges[6].bchannel */ FREQ2FBIN(5700, 0),
2278 /* Data[6].ctledges[7].bchannel */ FREQ2FBIN(5745, 0)
2282 /* Data[7].ctledges[0].bchannel */ FREQ2FBIN(5180, 0),
2283 /* Data[7].ctledges[1].bchannel */ FREQ2FBIN(5260, 0),
2284 /* Data[7].ctledges[2].bchannel */ FREQ2FBIN(5320, 0),
2285 /* Data[7].ctledges[3].bchannel */ FREQ2FBIN(5500, 0),
2286 /* Data[7].ctledges[4].bchannel */ FREQ2FBIN(5560, 0),
2287 /* Data[7].ctledges[5].bchannel */ FREQ2FBIN(5700, 0),
2288 /* Data[7].ctledges[6].bchannel */ FREQ2FBIN(5745, 0),
2289 /* Data[7].ctledges[7].bchannel */ FREQ2FBIN(5825, 0)
2293 /* Data[8].ctledges[0].bchannel */ FREQ2FBIN(5190, 0),
2294 /* Data[8].ctledges[1].bchannel */ FREQ2FBIN(5230, 0),
2295 /* Data[8].ctledges[2].bchannel */ FREQ2FBIN(5270, 0),
2296 /* Data[8].ctledges[3].bchannel */ FREQ2FBIN(5510, 0),
2297 /* Data[8].ctledges[4].bchannel */ FREQ2FBIN(5550, 0),
2298 /* Data[8].ctledges[5].bchannel */ FREQ2FBIN(5670, 0),
2299 /* Data[8].ctledges[6].bchannel */ FREQ2FBIN(5755, 0),
2300 /* Data[8].ctledges[7].bchannel */ FREQ2FBIN(5795, 0)
2307 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2313 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2318 CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
2324 CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2325 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
2330 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2331 CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
2337 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
2348 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
2349 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2354 CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
2355 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
2364 .macAddr = {0x00, 0x03, 0x7f, 0x0, 0x0, 0x0},
2367 .regDmn = { LE16(0), LE16(0x1f) },
2368 .txrxMask = 0x33, /* 4 bits tx and 4 bits rx */
2373 .rfSilent = 0,
2374 .blueToothOptions = 0,
2375 .deviceCap = 0,
2378 .params_for_tuning_caps = {0, 0},
2379 .featureEnable = 0x0d,
2388 .miscConfiguration = 0, /* bit0 - turn down drivestrength */
2390 .wlanDisableGpio = 0,
2392 .rxBandSelectGpio = 0xff,
2393 .txrxgain = 0x10,
2394 .swreg = 0,
2399 .antCtrlCommon = LE32(0x110),
2401 .antCtrlCommon2 = LE32(0x44444),
2407 .antCtrlChain = { LE16(0x10), LE16(0x10), LE16(0x10) },
2411 * for ar9280 (0xa20c/b20c 5:0)
2413 .xatten1DB = {0x1f, 0x1f, 0x1f},
2417 * for ar9280 (0xa20c/b20c 16:12
2419 .xatten1Margin = {0x12, 0x12, 0x12},
2421 .voltSlope = 0,
2427 .spurChans = {FREQ2FBIN(2464, 1), 0, 0, 0, 0},
2433 .noiseFloorThreshCh = {-1, 0, 0},
2434 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2435 .quick_drop = 0,
2436 .xpaBiasLvl = 0,
2437 .txFrameToDataStart = 0x0e,
2438 .txFrameToPaOn = 0x0e,
2440 .antennaGain = 0,
2441 .switchSettling = 0x2c,
2443 .txEndToXpaOff = 0,
2444 .txEndToRxOn = 0x2,
2445 .txFrameToXpaOn = 0xe,
2447 .papdRateMaskHt20 = LE32(0x0c80C080),
2448 .papdRateMaskHt40 = LE32(0x0080C080),
2449 .switchcomspdt = 0,
2450 .xlna_bias_strength = 0,
2452 0, 0, 0, 0, 0, 0, 0,
2456 .ant_div_control = 0,
2457 .future = {0, 0},
2458 .tempslopextension = {0, 0, 0, 0, 0, 0, 0, 0}
2467 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
2468 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
2469 { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0} },
2502 { {32, 32, 32, 32, 32, 30, 32, 32, 30, 28, 0, 0, 0, 0} },
2503 { {32, 32, 32, 32, 32, 30, 32, 32, 30, 28, 0, 0, 0, 0} },
2504 { {32, 32, 32, 32, 32, 30, 32, 32, 30, 28, 0, 0, 0, 0} },
2507 { {30, 30, 30, 30, 30, 28, 30, 30, 28, 26, 0, 0, 0, 0} },
2508 { {30, 30, 30, 30, 30, 28, 30, 30, 28, 26, 0, 0, 0, 0} },
2509 { {30, 30, 30, 30, 30, 28, 30, 30, 28, 26, 0, 0, 0, 0} },
2512 0x11, 0x12, 0x15, 0x17, 0x41, 0x42,
2513 0x45, 0x47, 0x31, 0x32, 0x35, 0x37,
2526 0xFF,
2533 0xFF,
2543 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
2550 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
2553 0,
2557 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
2560 0,
2564 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
2571 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
2577 /* Data[9].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
2580 0
2584 /* Data[10].ctlEdges[0].bChannel */ FREQ2FBIN(2412, 1),
2587 0
2591 /* Data[11].ctlEdges[0].bChannel */ FREQ2FBIN(2422, 1),
2598 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2599 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2600 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
2602 { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
2603 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2604 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2606 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
2607 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2608 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2610 { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
2611 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
2612 { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
2616 .antCtrlCommon = LE32(0x220),
2618 .antCtrlCommon2 = LE32(0x44444),
2621 LE16(0x150), LE16(0x150), LE16(0x150),
2623 /* xatten1DB 3 xatten1_db for AR9280 (0xa20c/b20c 5:0) */
2624 .xatten1DB = {0x19, 0x19, 0x19},
2628 * for merlin (0xa20c/b20c 16:12
2630 .xatten1Margin = {0x14, 0x14, 0x14},
2632 .voltSlope = 0,
2634 .spurChans = {0, 0, 0, 0, 0},
2636 .noiseFloorThreshCh = {-1, 0, 0},
2637 .reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2638 .quick_drop = 0,
2639 .xpaBiasLvl = 0,
2640 .txFrameToDataStart = 0x0e,
2641 .txFrameToPaOn = 0x0e,
2643 .antennaGain = 0,
2644 .switchSettling = 0x2d,
2646 .txEndToXpaOff = 0,
2647 .txEndToRxOn = 0x2,
2648 .txFrameToXpaOn = 0xe,
2650 .papdRateMaskHt20 = LE32(0x0cf0e0e0),
2651 .papdRateMaskHt40 = LE32(0x6cf0e0e0),
2652 .switchcomspdt = 0,
2653 .xlna_bias_strength = 0,
2655 0, 0, 0, 0, 0, 0, 0,
2661 .xatten1DBLow = {0, 0, 0},
2662 .xatten1MarginLow = {0, 0, 0},
2663 .xatten1DBHigh = {0, 0, 0},
2664 .xatten1MarginHigh = {0, 0, 0}
2667 FREQ2FBIN(5160, 0),
2668 FREQ2FBIN(5220, 0),
2669 FREQ2FBIN(5320, 0),
2670 FREQ2FBIN(5400, 0),
2671 FREQ2FBIN(5500, 0),
2672 FREQ2FBIN(5600, 0),
2673 FREQ2FBIN(5700, 0),
2674 FREQ2FBIN(5785, 0)
2678 {0, 0, 0, 0, 0},
2679 {0, 0, 0, 0, 0},
2680 {0, 0, 0, 0, 0},
2681 {0, 0, 0, 0, 0},
2682 {0, 0, 0, 0, 0},
2683 {0, 0, 0, 0, 0},
2684 {0, 0, 0, 0, 0},
2685 {0, 0, 0, 0, 0},
2688 {0, 0, 0, 0, 0},
2689 {0, 0, 0, 0, 0},
2690 {0, 0, 0, 0, 0},
2691 {0, 0, 0, 0, 0},
2692 {0, 0, 0, 0, 0},
2693 {0, 0, 0, 0, 0},
2694 {0, 0, 0, 0, 0},
2695 {0, 0, 0, 0, 0},
2698 {0, 0, 0, 0, 0},
2699 {0, 0, 0, 0, 0},
2700 {0, 0, 0, 0, 0},
2701 {0, 0, 0, 0, 0},
2702 {0, 0, 0, 0, 0},
2703 {0, 0, 0, 0, 0},
2704 {0, 0, 0, 0, 0},
2705 {0, 0, 0, 0, 0},
2710 FREQ2FBIN(5180, 0),
2711 FREQ2FBIN(5240, 0),
2712 FREQ2FBIN(5320, 0),
2713 FREQ2FBIN(5400, 0),
2714 FREQ2FBIN(5500, 0),
2715 FREQ2FBIN(5600, 0),
2716 FREQ2FBIN(5700, 0),
2717 FREQ2FBIN(5825, 0)
2720 FREQ2FBIN(5180, 0),
2721 FREQ2FBIN(5240, 0),
2722 FREQ2FBIN(5320, 0),
2723 FREQ2FBIN(5400, 0),
2724 FREQ2FBIN(5500, 0),
2725 FREQ2FBIN(5700, 0),
2726 FREQ2FBIN(5745, 0),
2727 FREQ2FBIN(5825, 0)
2730 FREQ2FBIN(5180, 0),
2731 FREQ2FBIN(5240, 0),
2732 FREQ2FBIN(5320, 0),
2733 FREQ2FBIN(5400, 0),
2734 FREQ2FBIN(5500, 0),
2735 FREQ2FBIN(5700, 0),
2736 FREQ2FBIN(5745, 0),
2737 FREQ2FBIN(5825, 0)
2752 * 0_8_16,1-3_9-11_17-19,
2755 { {30, 30, 30, 28, 24, 20, 30, 28, 24, 20, 0, 0, 0, 0} },
2756 { {30, 30, 30, 28, 24, 20, 30, 28, 24, 20, 0, 0, 0, 0} },
2757 { {30, 30, 30, 26, 22, 18, 30, 26, 22, 18, 0, 0, 0, 0} },
2758 { {30, 30, 30, 26, 22, 18, 30, 26, 22, 18, 0, 0, 0, 0} },
2759 { {30, 30, 30, 24, 20, 16, 30, 24, 20, 16, 0, 0, 0, 0} },
2760 { {30, 30, 30, 24, 20, 16, 30, 24, 20, 16, 0, 0, 0, 0} },
2761 { {30, 30, 30, 22, 18, 14, 30, 22, 18, 14, 0, 0, 0, 0} },
2762 { {30, 30, 30, 22, 18, 14, 30, 22, 18, 14, 0, 0, 0, 0} },
2766 * 0_8_16,1-3_9-11_17-19,
2769 { {28, 28, 28, 26, 22, 18, 28, 26, 22, 18, 0, 0, 0, 0} },
2770 { {28, 28, 28, 26, 22, 18, 28, 26, 22, 18, 0, 0, 0, 0} },
2771 { {28, 28, 28, 24, 20, 16, 28, 24, 20, 16, 0, 0, 0, 0} },
2772 { {28, 28, 28, 24, 20, 16, 28, 24, 20, 16, 0, 0, 0, 0} },
2773 { {28, 28, 28, 22, 18, 14, 28, 22, 18, 14, 0, 0, 0, 0} },
2774 { {28, 28, 28, 22, 18, 14, 28, 22, 18, 14, 0, 0, 0, 0} },
2775 { {28, 28, 28, 20, 16, 12, 28, 20, 16, 12, 0, 0, 0, 0} },
2776 { {28, 28, 28, 20, 16, 12, 28, 20, 16, 12, 0, 0, 0, 0} },
2779 0x10, 0x16, 0x18, 0x40, 0x46,
2780 0x48, 0x30, 0x36, 0x38
2784 /* Data[0].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
2785 /* Data[0].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
2786 /* Data[0].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
2787 /* Data[0].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
2788 /* Data[0].ctlEdges[4].bChannel */ FREQ2FBIN(5600, 0),
2789 /* Data[0].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
2790 /* Data[0].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
2791 /* Data[0].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
2794 /* Data[1].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
2795 /* Data[1].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
2796 /* Data[1].ctlEdges[2].bChannel */ FREQ2FBIN(5280, 0),
2797 /* Data[1].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
2798 /* Data[1].ctlEdges[4].bChannel */ FREQ2FBIN(5520, 0),
2799 /* Data[1].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
2800 /* Data[1].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
2801 /* Data[1].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
2805 /* Data[2].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
2806 /* Data[2].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
2807 /* Data[2].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
2808 /* Data[2].ctlEdges[3].bChannel */ FREQ2FBIN(5310, 0),
2809 /* Data[2].ctlEdges[4].bChannel */ FREQ2FBIN(5510, 0),
2810 /* Data[2].ctlEdges[5].bChannel */ FREQ2FBIN(5550, 0),
2811 /* Data[2].ctlEdges[6].bChannel */ FREQ2FBIN(5670, 0),
2812 /* Data[2].ctlEdges[7].bChannel */ FREQ2FBIN(5755, 0)
2816 /* Data[3].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
2817 /* Data[3].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
2818 /* Data[3].ctlEdges[2].bChannel */ FREQ2FBIN(5260, 0),
2819 /* Data[3].ctlEdges[3].bChannel */ FREQ2FBIN(5320, 0),
2820 /* Data[3].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
2821 /* Data[3].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
2822 /* Data[3].ctlEdges[6].bChannel */ 0xFF,
2823 /* Data[3].ctlEdges[7].bChannel */ 0xFF,
2827 /* Data[4].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
2828 /* Data[4].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
2829 /* Data[4].ctlEdges[2].bChannel */ FREQ2FBIN(5500, 0),
2830 /* Data[4].ctlEdges[3].bChannel */ FREQ2FBIN(5700, 0),
2831 /* Data[4].ctlEdges[4].bChannel */ 0xFF,
2832 /* Data[4].ctlEdges[5].bChannel */ 0xFF,
2833 /* Data[4].ctlEdges[6].bChannel */ 0xFF,
2834 /* Data[4].ctlEdges[7].bChannel */ 0xFF,
2838 /* Data[5].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
2839 /* Data[5].ctlEdges[1].bChannel */ FREQ2FBIN(5270, 0),
2840 /* Data[5].ctlEdges[2].bChannel */ FREQ2FBIN(5310, 0),
2841 /* Data[5].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
2842 /* Data[5].ctlEdges[4].bChannel */ FREQ2FBIN(5590, 0),
2843 /* Data[5].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
2844 /* Data[5].ctlEdges[6].bChannel */ 0xFF,
2845 /* Data[5].ctlEdges[7].bChannel */ 0xFF
2849 /* Data[6].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
2850 /* Data[6].ctlEdges[1].bChannel */ FREQ2FBIN(5200, 0),
2851 /* Data[6].ctlEdges[2].bChannel */ FREQ2FBIN(5220, 0),
2852 /* Data[6].ctlEdges[3].bChannel */ FREQ2FBIN(5260, 0),
2853 /* Data[6].ctlEdges[4].bChannel */ FREQ2FBIN(5500, 0),
2854 /* Data[6].ctlEdges[5].bChannel */ FREQ2FBIN(5600, 0),
2855 /* Data[6].ctlEdges[6].bChannel */ FREQ2FBIN(5700, 0),
2856 /* Data[6].ctlEdges[7].bChannel */ FREQ2FBIN(5745, 0)
2860 /* Data[7].ctlEdges[0].bChannel */ FREQ2FBIN(5180, 0),
2861 /* Data[7].ctlEdges[1].bChannel */ FREQ2FBIN(5260, 0),
2862 /* Data[7].ctlEdges[2].bChannel */ FREQ2FBIN(5320, 0),
2863 /* Data[7].ctlEdges[3].bChannel */ FREQ2FBIN(5500, 0),
2864 /* Data[7].ctlEdges[4].bChannel */ FREQ2FBIN(5560, 0),
2865 /* Data[7].ctlEdges[5].bChannel */ FREQ2FBIN(5700, 0),
2866 /* Data[7].ctlEdges[6].bChannel */ FREQ2FBIN(5745, 0),
2867 /* Data[7].ctlEdges[7].bChannel */ FREQ2FBIN(5825, 0)
2871 /* Data[8].ctlEdges[0].bChannel */ FREQ2FBIN(5190, 0),
2872 /* Data[8].ctlEdges[1].bChannel */ FREQ2FBIN(5230, 0),
2873 /* Data[8].ctlEdges[2].bChannel */ FREQ2FBIN(5270, 0),
2874 /* Data[8].ctlEdges[3].bChannel */ FREQ2FBIN(5510, 0),
2875 /* Data[8].ctlEdges[4].bChannel */ FREQ2FBIN(5550, 0),
2876 /* Data[8].ctlEdges[5].bChannel */ FREQ2FBIN(5670, 0),
2877 /* Data[8].ctlEdges[6].bChannel */ FREQ2FBIN(5755, 0),
2878 /* Data[8].ctlEdges[7].bChannel */ FREQ2FBIN(5795, 0)
2885 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2891 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2896 CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
2902 CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2903 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
2908 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2909 CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
2915 CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
2926 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
2927 CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
2932 CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
2933 CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
2952 for (it = 0; it < ARRAY_SIZE(ar9300_eep_templates); it++) in ar9003_eeprom_struct_find_by_id()
2960 return 0; in ath9k_hw_ar9300_check_eeprom()
2987 return le16_to_cpu(pBase->regDmn[0]); in ath9k_hw_ar9300_get_eeprom()
2995 return (pBase->txrxMask >> 4) & 0xf; in ath9k_hw_ar9300_get_eeprom()
2997 return pBase->txrxMask & 0xf; in ath9k_hw_ar9300_get_eeprom()
3001 return (pBase->miscConfiguration >> 0x3) & 0x1; in ath9k_hw_ar9300_get_eeprom()
3012 return 0; in ath9k_hw_ar9300_get_eeprom()
3024 *buffer = (val >> (8 * (address % 2))) & 0xff; in ar9300_eeprom_read_byte()
3036 buffer[0] = val >> 8; in ar9300_eeprom_read_word()
3037 buffer[1] = val & 0xff; in ar9300_eeprom_read_word()
3048 if ((address < 0) || ((address + count) / 2 > AR9300_EEPROM_SIZE - 1)) { in ar9300_read_eeprom()
3058 if (address % 2 == 0) { in ar9300_read_eeprom()
3065 for (i = 0; i < count / 2; i++) { in ar9300_read_eeprom()
3103 for (i = 0; i < count; i++) { in ar9300_read_otp()
3108 buffer[i] = (data >> offset) & 0xff; in ar9300_read_otp()
3120 value[0] = best[0]; in ar9300_comp_hdr_unpack()
3124 *code = ((value[0] >> 5) & 0x0007); in ar9300_comp_hdr_unpack()
3125 *reference = (value[0] & 0x001f) | ((value[1] >> 2) & 0x0020); in ar9300_comp_hdr_unpack()
3126 *length = ((value[1] << 4) & 0x07f0) | ((value[2] >> 4) & 0x000f); in ar9300_comp_hdr_unpack()
3127 *major = (value[2] & 0x000f); in ar9300_comp_hdr_unpack()
3128 *minor = (value[3] & 0x00ff); in ar9300_comp_hdr_unpack()
3133 int it, checksum = 0; in ar9300_comp_cksum()
3135 for (it = 0; it < dsize; it++) { in ar9300_comp_cksum()
3137 checksum &= 0xffff; in ar9300_comp_cksum()
3155 spot = 0; in ar9300_uncompress_block()
3157 for (it = 0; it < size; it += (length+2)) { in ar9300_uncompress_block()
3159 offset &= 0xff; in ar9300_uncompress_block()
3162 length &= 0xff; in ar9300_uncompress_block()
3164 if (length > 0 && spot >= 0 && spot+length <= mdataSize) { in ar9300_uncompress_block()
3170 } else if (length > 0) { in ar9300_uncompress_block()
3204 if (reference != 0) { in ar9300_compress_decision()
3224 return 0; in ar9300_compress_decision()
3233 return !(*word == 0 || *word == ~0); in ar9300_check_header()
3253 for (i = 0; i < mdata_size / 2; i++, data++) in ar9300_eeprom_restore_flash()
3257 return 0; in ar9300_eeprom_restore_flash()
3291 if (txrx != 0 && txrx != 0xff) in ar9300_eeprom_restore_internal()
3292 return 0; in ar9300_eeprom_restore_internal()
3308 ath_dbg(common, EEPROM, "Trying EEPROM access at Address 0x%04x\n", in ar9300_eeprom_restore_internal()
3314 ath_dbg(common, EEPROM, "Trying EEPROM access at Address 0x%04x\n", in ar9300_eeprom_restore_internal()
3320 ath_dbg(common, EEPROM, "Trying EEPROM access at Address 0x%04x\n", in ar9300_eeprom_restore_internal()
3327 ath_dbg(common, EEPROM, "Trying OTP access at Address 0x%04x\n", cptr); in ar9300_eeprom_restore_internal()
3332 ath_dbg(common, EEPROM, "Trying OTP access at Address 0x%04x\n", cptr); in ar9300_eeprom_restore_internal()
3341 for (it = 0; it < MSTATE; it++) { in ar9300_eeprom_restore_internal()
3395 sizeof(struct ar9300_eeprom)) < 0) in ath9k_hw_ar9300_fill_eeprom()
3405 PR_EEP("Chain0 Ant. Control", le16_to_cpu(modal_hdr->antCtrlChain[0])); in ar9003_dump_modal_eeprom()
3412 PR_EEP("Chain0 xatten1DB", modal_hdr->xatten1DB[0]); in ar9003_dump_modal_eeprom()
3415 PR_EEP("Chain0 xatten1Margin", modal_hdr->xatten1Margin[0]); in ar9003_dump_modal_eeprom()
3420 PR_EEP("spur Channels0", modal_hdr->spurChans[0]); in ar9003_dump_modal_eeprom()
3425 PR_EEP("Chain0 NF Threshold", modal_hdr->noiseFloorThreshCh[0]); in ar9003_dump_modal_eeprom()
3457 for (i = 0; i < AR9300_MAX_CHAINS; i++) { in ar9003_dump_cal_data()
3466 for (j = 0; j < cal_pier_nr; j++) { in ar9003_dump_cal_data()
3484 N2DBM(cal_pier->rxNoisefloorCal) : 0, in ar9003_dump_cal_data()
3486 N2DBM(cal_pier->rxNoisefloorPower) : 0, in ar9003_dump_cal_data()
3523 PR_EEP("RegDomain1", le16_to_cpu(pBase->regDmn[0])); in ath9k_hw_ar9003_dump_eeprom()
3526 PR_EEP("RX Mask", (pBase->txrxMask & 0x0f)); in ath9k_hw_ar9003_dump_eeprom()
3546 PR_EEP("Tuning Caps1", pBase->params_for_tuning_caps[0]); in ath9k_hw_ar9003_dump_eeprom()
3548 PR_EEP("Enable Tx Temp Comp", !!(pBase->featureEnable & BIT(0))); in ath9k_hw_ar9003_dump_eeprom()
3554 PR_EEP("Driver Strength", !!(pBase->miscConfiguration & BIT(0))); in ath9k_hw_ar9003_dump_eeprom()
3556 PR_EEP("Chain mask Reduce", (pBase->miscConfiguration >> 0x3) & 0x1); in ath9k_hw_ar9003_dump_eeprom()
3562 PR_EEP("Rx Gain", pBase->txrxgain & 0xf); in ath9k_hw_ar9003_dump_eeprom()
3577 return 0; in ath9k_hw_ar9003_dump_eeprom()
3590 return 0; in ath9k_hw_ar9300_get_eeprom_rev()
3657 if (AR_SREV_9485(ah) && (ar9003_hw_get_rx_gain_idx(ah) == 0)) { in ar9003_hw_ant_ctrl_apply()
3683 * Register: [GLB_CONTROL] GLB_CONTROL (@0x20044) in ar9003_hw_ant_ctrl_apply()
3708 if ((AR_SREV_9462(ah)) && (ah->rxchainmask == 0x2)) { in ar9003_hw_ant_ctrl_apply()
3710 REG_RMW_FIELD(ah, switch_chain_reg[0], in ar9003_hw_ant_ctrl_apply()
3714 for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { in ar9003_hw_ant_ctrl_apply()
3732 regval |= (value & 0x3f) << AR_ANT_DIV_CTRL_ALL_S; in ar9003_hw_ant_ctrl_apply()
3735 regval |= ((value >> 6) & 0x1) << AR_PHY_ANT_DIV_LNADIV_S; in ar9003_hw_ant_ctrl_apply()
3768 regval |= ((value >> 7) & 0x1) << AR_FAST_DIV_ENABLE_S; in ar9003_hw_ant_ctrl_apply()
3803 drive_strength = pBase->miscConfiguration & BIT(0); in ar9003_hw_drive_strength_apply()
3808 reg &= ~0x00ffffc0; in ar9003_hw_drive_strength_apply()
3809 reg |= 0x5 << 21; in ar9003_hw_drive_strength_apply()
3810 reg |= 0x5 << 18; in ar9003_hw_drive_strength_apply()
3811 reg |= 0x5 << 15; in ar9003_hw_drive_strength_apply()
3812 reg |= 0x5 << 12; in ar9003_hw_drive_strength_apply()
3813 reg |= 0x5 << 9; in ar9003_hw_drive_strength_apply()
3814 reg |= 0x5 << 6; in ar9003_hw_drive_strength_apply()
3818 reg &= ~0xffffffe0; in ar9003_hw_drive_strength_apply()
3819 reg |= 0x5 << 29; in ar9003_hw_drive_strength_apply()
3820 reg |= 0x5 << 26; in ar9003_hw_drive_strength_apply()
3821 reg |= 0x5 << 23; in ar9003_hw_drive_strength_apply()
3822 reg |= 0x5 << 20; in ar9003_hw_drive_strength_apply()
3823 reg |= 0x5 << 17; in ar9003_hw_drive_strength_apply()
3824 reg |= 0x5 << 14; in ar9003_hw_drive_strength_apply()
3825 reg |= 0x5 << 11; in ar9003_hw_drive_strength_apply()
3826 reg |= 0x5 << 8; in ar9003_hw_drive_strength_apply()
3827 reg |= 0x5 << 5; in ar9003_hw_drive_strength_apply()
3831 reg &= ~0xff800000; in ar9003_hw_drive_strength_apply()
3832 reg |= 0x5 << 29; in ar9003_hw_drive_strength_apply()
3833 reg |= 0x5 << 26; in ar9003_hw_drive_strength_apply()
3834 reg |= 0x5 << 23; in ar9003_hw_drive_strength_apply()
3845 if (chain >= 0 && chain < 3) { in ar9003_hw_atten_chain_get()
3848 else if (eep->base_ext2.xatten1DBLow[chain] != 0) { in ar9003_hw_atten_chain_get()
3849 t[0] = eep->base_ext2.xatten1DBLow[chain]; in ar9003_hw_atten_chain_get()
3850 f[0] = 5180; in ar9003_hw_atten_chain_get()
3862 return 0; in ar9003_hw_atten_chain_get()
3873 if (chain >= 0 && chain < 3) { in ar9003_hw_atten_chain_get_margin()
3876 else if (eep->base_ext2.xatten1MarginLow[chain] != 0) { in ar9003_hw_atten_chain_get_margin()
3877 t[0] = eep->base_ext2.xatten1MarginLow[chain]; in ar9003_hw_atten_chain_get_margin()
3878 f[0] = 5180; in ar9003_hw_atten_chain_get_margin()
3890 return 0; in ar9003_hw_atten_chain_get_margin()
3902 if ((AR_SREV_9462(ah)) && (ah->rxchainmask == 0x2)) { in ar9003_hw_atten_apply()
3904 REG_RMW_FIELD(ah, ext_atten_reg[0], in ar9003_hw_atten_apply()
3908 REG_RMW_FIELD(ah, ext_atten_reg[0], in ar9003_hw_atten_apply()
3913 /* Test value. if 0 then attenuation is unused. Don't load anything. */ in ar9003_hw_atten_apply()
3914 for (i = 0; i < AR9300_MAX_CHAINS; i++) { in ar9003_hw_atten_apply()
3921 (ar9003_hw_get_rx_gain_idx(ah) == 0) && in ar9003_hw_atten_apply()
3944 if (timeout-- == 0) in is_pmu_set()
3991 reg_pmu_set = (REG_READ(ah, AR_PHY_PMU2(ah)) & ~0xFFC00000) in ar9003_hw_internal_regulator_apply()
3997 reg_pmu_set = (REG_READ(ah, AR_PHY_PMU2(ah)) & ~0x00200000) in ar9003_hw_internal_regulator_apply()
4008 REG_WRITE(ah, AR_PHY_PMU2(ah), 0x10200000); in ar9003_hw_internal_regulator_apply()
4024 REG_RMW_FIELD(ah, AR_PHY_PMU2(ah), AR_PHY_PMU2_PGM, 0); in ar9003_hw_internal_regulator_apply()
4029 REG_RMW_FIELD(ah, AR_PHY_PMU1(ah), AR_PHY_PMU1_PWD, 0x1); in ar9003_hw_internal_regulator_apply()
4033 REG_RMW_FIELD(ah, AR_PHY_PMU2(ah), AR_PHY_PMU2_PGM, 0x1); in ar9003_hw_internal_regulator_apply()
4038 REG_RMW_FIELD(ah, AR_PHY_PMU1(ah), AR_PHY_PMU1_PWD, 0x1); in ar9003_hw_internal_regulator_apply()
4051 u8 tuning_caps_param = eep->baseEepHeader.params_for_tuning_caps[0]; in ar9003_hw_apply_tuning_caps()
4056 if (eep->baseEepHeader.featureEnable & 0x40) { in ar9003_hw_apply_tuning_caps()
4057 tuning_caps_param &= 0x7f; in ar9003_hw_apply_tuning_caps()
4079 t[0] = eep->base_ext1.quick_drop_low; in ar9003_hw_quick_drop_apply()
4105 if (!(eep->baseEepHeader.featureEnable & 0x80)) in ar9003_hw_xpa_timing_control_apply()
4129 if (!(eep->baseEepHeader.miscConfiguration & 0x40)) in ar9003_hw_xlna_bias_strength_apply()
4137 bias & 0x3); in ar9003_hw_xlna_bias_strength_apply()
4140 bias & 0x3); in ar9003_hw_xlna_bias_strength_apply()
4143 bias & 0x3); in ar9003_hw_xlna_bias_strength_apply()
4150 int thermometer = (pBase->miscConfiguration >> 1) & 0x3; in ar9003_hw_get_thermometer()
4159 u8 therm_on = (thermometer < 0) ? 0 : 1; in ar9003_hw_thermometer_apply()
4170 therm_on = thermometer == 0; in ar9003_hw_thermometer_apply()
4187 u32 data = 0, ko, kg; in ar9003_hw_thermo_cal_apply()
4193 ko = data & 0xff; in ar9003_hw_thermo_cal_apply()
4194 kg = (data >> 8) & 0xff; in ar9003_hw_thermo_cal_apply()
4224 for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { in ar9003_hw_apply_minccapwr_thresh()
4272 int ip = 0; in ar9003_hw_power_interpolate()
4273 int lx = 0, ly = 0, lhave = 0; in ar9003_hw_power_interpolate()
4274 int hx = 0, hy = 0, hhave = 0; in ar9003_hw_power_interpolate()
4275 int dx = 0; in ar9003_hw_power_interpolate()
4276 int y = 0; in ar9003_hw_power_interpolate()
4278 lhave = 0; in ar9003_hw_power_interpolate()
4279 hhave = 0; in ar9003_hw_power_interpolate()
4282 for (ip = 0; ip < np; ip++) { in ar9003_hw_power_interpolate()
4286 if (dx <= 0) { in ar9003_hw_power_interpolate()
4295 if (dx >= 0) { in ar9003_hw_power_interpolate()
4318 else /* nothing is good,this should never happen unless np=0, ???? */ in ar9003_hw_power_interpolate()
4347 for (i = 0; i < numPiers; i++) { in ar9003_hw_eeprom_get_tgt_pwr()
4383 for (i = 0; i < numPiers; i++) { in ar9003_hw_eeprom_get_ht20_tgt_pwr()
4419 for (i = 0; i < numPiers; i++) { in ar9003_hw_eeprom_get_ht40_tgt_pwr()
4444 for (i = 0; i < numPiers; i++) { in ar9003_hw_eeprom_get_cck_tgt_pwr()
4465 SM(0x3f, AR_TPC_CHIRP) | SM(0x3f, AR_TPC_RPT); in ar9003_hw_selfgen_tpc_txpower()
4469 SM(0x3f, AR_TPC_CHIRP) | SM(0x3f, AR_TPC_RPT); in ar9003_hw_selfgen_tpc_txpower()
4477 #define POW_SM(_r, _s) (((_r) & 0x3f) << (_s)) in ar9003_hw_tx_power_regwrite()
4479 REG_WRITE(ah, AR_PHY_TX_FORCED_GAIN, 0); in ar9003_hw_tx_power_regwrite()
4484 REG_WRITE(ah, AR_PHY_POWER_TX_RATE(0), in ar9003_hw_tx_power_regwrite()
4488 POW_SM(pPwrArray[ALL_TARGET_LEGACY_6_24], 0)); in ar9003_hw_tx_power_regwrite()
4495 POW_SM(pPwrArray[ALL_TARGET_LEGACY_6_24], 0)); in ar9003_hw_tx_power_regwrite()
4504 POW_SM(pPwrArray[ALL_TARGET_LEGACY_1L_5L], 0)); in ar9003_hw_tx_power_regwrite()
4511 POW_SM(pPwrArray[ALL_TARGET_LEGACY_1L_5L], 0) in ar9003_hw_tx_power_regwrite()
4521 POW_SM(pPwrArray[ALL_TARGET_LEGACY_1L_5L], 0) in ar9003_hw_tx_power_regwrite()
4526 /* 0/8/16 (LSB), 1-3/9-11/17-19, 4, 5 (MSB) */ in ar9003_hw_tx_power_regwrite()
4531 POW_SM(pPwrArray[ALL_TARGET_HT20_0_8_16], 0) in ar9003_hw_tx_power_regwrite()
4539 POW_SM(pPwrArray[ALL_TARGET_HT20_6], 0) in ar9003_hw_tx_power_regwrite()
4547 POW_SM(pPwrArray[ALL_TARGET_HT20_14], 0) in ar9003_hw_tx_power_regwrite()
4557 POW_SM(pPwrArray[ALL_TARGET_HT20_22], 0) in ar9003_hw_tx_power_regwrite()
4563 * 0/8/16 (LSB), 1-3/9-11/17-19, 4, 5 (MSB) in ar9003_hw_tx_power_regwrite()
4569 POW_SM(pPwrArray[ALL_TARGET_HT40_0_8_16], 0) in ar9003_hw_tx_power_regwrite()
4577 POW_SM(pPwrArray[ALL_TARGET_HT40_6], 0) in ar9003_hw_tx_power_regwrite()
4585 POW_SM(pPwrArray[ALL_TARGET_HT40_14], 0) in ar9003_hw_tx_power_regwrite()
4588 return 0; in ar9003_hw_tx_power_regwrite()
4677 u8 ht40PowerIncForPdadc = 0; in ar9003_hw_get_ht40_target_powers()
4729 unsigned int i = 0; in ar9003_hw_get_target_power_eeprom()
4743 for (i = 0; i < ar9300RateSize; i++) { in ar9003_hw_get_target_power_eeprom()
4744 ath_dbg(common, REGULATORY, "TPC[%02d] 0x%08x\n", in ar9003_hw_get_target_power_eeprom()
4796 N2DBM(pCalPierStruct->rxNoisefloorCal) : 0; in ar9003_hw_cal_pier_get()
4798 N2DBM(pCalPierStruct->rxNoisefloorPower) : 0; in ar9003_hw_cal_pier_get()
4800 return 0; in ar9003_hw_cal_pier_get()
4808 int temp_slope = 0, temp_slope1 = 0, temp_slope2 = 0; in ar9003_hw_power_control_override()
4813 (correction[0] << AR_PHY_TPC_OLPC_GAIN_DELTA_S), in ar9003_hw_power_control_override()
4845 t[0] = eep->base_ext1.tempslopextension[2]; in ar9003_hw_power_control_override()
4846 t1[0] = eep->base_ext1.tempslopextension[3]; in ar9003_hw_power_control_override()
4847 t2[0] = eep->base_ext1.tempslopextension[4]; in ar9003_hw_power_control_override()
4848 f[0] = 5180; in ar9003_hw_power_control_override()
4851 t1[1] = eep->base_ext1.tempslopextension[0]; in ar9003_hw_power_control_override()
4870 if ((eep->baseEepHeader.miscConfiguration & 0x20) != 0) { in ar9003_hw_power_control_override()
4871 for (i = 0; i < 8; i++) { in ar9003_hw_power_control_override()
4873 f[i] = FBIN2FREQ(eep->calFreqPier5G[i], 0); in ar9003_hw_power_control_override()
4877 } else if (eep->base_ext2.tempSlopeLow != 0) { in ar9003_hw_power_control_override()
4878 t[0] = eep->base_ext2.tempSlopeLow; in ar9003_hw_power_control_override()
4879 f[0] = 5180; in ar9003_hw_power_control_override()
4893 u8 txmask = (eep->baseEepHeader.txrxMask & 0xf0) >> 4; in ar9003_hw_power_control_override()
4899 if (eep->baseEepHeader.featureEnable & 0x1) { in ar9003_hw_power_control_override()
4901 if (txmask & BIT(0)) in ar9003_hw_power_control_override()
4914 if (txmask & BIT(0)) in ar9003_hw_power_control_override()
4930 * set all registers to 0. in ar9003_hw_power_control_override()
4932 if (txmask & BIT(0)) in ar9003_hw_power_control_override()
4934 AR_PHY_TPC_19_ALPHA_THERM, 0); in ar9003_hw_power_control_override()
4937 AR_PHY_TPC_19_ALPHA_THERM, 0); in ar9003_hw_power_control_override()
4940 AR_PHY_TPC_19_ALPHA_THERM, 0); in ar9003_hw_power_control_override()
4953 temperature[0]); in ar9003_hw_power_control_override()
4982 for (ichain = 0; ichain < AR9300_MAX_CHAINS; ichain++) { in ar9003_hw_calibration_apply()
4983 lfrequency[ichain] = 0; in ar9003_hw_calibration_apply()
4987 for (ichain = 0; ichain < AR9300_MAX_CHAINS; ichain++) { in ar9003_hw_calibration_apply()
4988 for (ipier = 0; ipier < npier; ipier++) { in ar9003_hw_calibration_apply()
4999 if (fdiff <= 0) { in ar9003_hw_calibration_apply()
5000 if (hfrequency[ichain] <= 0 || in ar9003_hw_calibration_apply()
5018 if (fdiff >= 0) { in ar9003_hw_calibration_apply()
5019 if (lfrequency[ichain] <= 0 in ar9003_hw_calibration_apply()
5041 for (ichain = 0; ichain < AR9300_MAX_CHAINS; ichain++) { in ar9003_hw_calibration_apply()
5108 } else { /* nothing is good, presume 0???? */ in ar9003_hw_calibration_apply()
5109 correction[ichain] = 0; in ar9003_hw_calibration_apply()
5110 temperature[ichain] = 0; in ar9003_hw_calibration_apply()
5111 voltage[ichain] = 0; in ar9003_hw_calibration_apply()
5112 nf_cal[ichain] = 0; in ar9003_hw_calibration_apply()
5113 nf_pwr[ichain] = 0; in ar9003_hw_calibration_apply()
5122 frequency, correction[0], correction[1], correction[2]); in ar9003_hw_calibration_apply()
5125 for (ichain = 0; ichain < AR9300_MAX_CHAINS; ichain++) in ar9003_hw_calibration_apply()
5134 return 0; in ar9003_hw_calibration_apply()
5161 &eep->ctl_freqbin_2G[idx][0] : in ar9003_hw_get_indirect_edge_power()
5162 &eep->ctl_freqbin_5G[idx][0]; in ar9003_hw_get_indirect_edge_power()
5169 if (ath9k_hw_fbin2freq(ctl_freqbin[edge - 1], 0) < freq && in ar9003_hw_get_indirect_edge_power()
5185 &eep->ctl_freqbin_2G[idx][0] : in ar9003_hw_get_max_edge_power()
5186 &eep->ctl_freqbin_5G[idx][0]; in ar9003_hw_get_max_edge_power()
5192 for (edge = 0; in ar9003_hw_get_max_edge_power()
5204 } else if ((edge > 0) && in ar9003_hw_get_max_edge_power()
5235 u16 scaledPower = 0, minCtlPower; in ar9003_hw_set_power_per_rate_table()
5283 * The ctl value is encoded as [7:4] == test group, [3:0] == test mode. in ar9003_hw_set_power_per_rate_table()
5285 for (ctlMode = 0; ctlMode < numCtlModes; ctlMode++) { in ar9003_hw_set_power_per_rate_table()
5310 for (i = 0; (i < ctlNum) && ctlIndex[i]; i++) { in ar9003_hw_set_power_per_rate_table()
5312 "LOOP-Ctlidx %d: cfgCtl 0x%2.2x pCtlMode 0x%2.2x ctlIndex 0x%2.2x chan %d\n", in ar9003_hw_set_power_per_rate_table()
5451 unsigned int i = 0, paprd_scale_factor = 0; in ath9k_hw_ar9300_set_txpower()
5452 u8 pwr_idx, min_pwridx = 0; in ath9k_hw_ar9300_set_txpower()
5454 memset(targetPowerValT2, 0 , sizeof(targetPowerValT2)); in ath9k_hw_ar9300_set_txpower()
5477 for (i = 0; i < 24; i++) { in ath9k_hw_ar9300_set_txpower()
5501 for (i = 0; i < ar9300RateSize; i++) { in ath9k_hw_ar9300_set_txpower()
5513 regulatory->max_power_level = 0; in ath9k_hw_ar9300_set_txpower()
5514 for (i = 0; i < ar9300RateSize; i++) { in ath9k_hw_ar9300_set_txpower()
5524 for (i = 0; i < ar9300RateSize; i++) { in ath9k_hw_ar9300_set_txpower()
5525 ath_dbg(common, REGULATORY, "TPC[%02d] 0x%08x\n", in ath9k_hw_ar9300_set_txpower()
5549 val & 0xFFFFFFC0); in ath9k_hw_ar9300_set_txpower()
5552 val & 0xFFFFF000); in ath9k_hw_ar9300_set_txpower()
5555 REG_WRITE(ah, AR_PHY_PWRTX_MAX, 0); in ath9k_hw_ar9300_set_txpower()
5569 return (eep->baseEepHeader.txrxgain >> 4) & 0xf; /* bits 7:4 */ in ar9003_hw_get_tx_gain_idx()
5576 return (eep->baseEepHeader.txrxgain) & 0xf; /* bits 3:0 */ in ar9003_hw_get_rx_gain_idx()