SAMA5D4 Xplained Ultra Board BSP
guowenxue
2019-08-19 2e7235d10c6dbff81960282e1a1e2e798f9b8db8
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
/*****************************************************************************
 *    Copyright(c) 2008,  RealTEK Technology Inc. All Right Reserved.
 *
 * Module:    __INC_HAL8192SPHYREG_H
 *
 *
 * Note:    1. Define PMAC/BB register map
 *            2. Define RF register map
 *            3. PMAC/BB register bit mask.
 *            4. RF reg bit mask.
 *            5. Other BB/RF relative definition.
 *
 *
 * Export:    Constants, macro, functions(API), global variables(None).
 *
 * Abbrev:
 *
 * History:
 *        Data        Who        Remark
 *      08/07/2007  MHC    1. Porting from 9x series PHYCFG.h.
 *                            2. Reorganize code architecture.
 *    09/25/2008    MH        1. Add RL6052 register definition
 *
 *****************************************************************************/
#ifndef __INC_HAL8192EPHYREG_H
#define __INC_HAL8192EPHYREG_H
 
 
/*--------------------------Define Parameters-------------------------------*/
 
/* ************************************************************
 * 8192S Regsiter offset definition
 * ************************************************************ */
 
/*
 * BB-PHY register PMAC 0x100 PHY 0x800 - 0xEFF
 * 1. PMAC duplicate register due to connection: RF_Mode, TRxRN, NumOf L-STF
 * 2. 0x800/0x900/0xA00/0xC00/0xD00/0xE00
 * 3. RF register 0x00-2E
 * 4. Bit Mask for BB/RF register
 * 5. Other defintion for BB/RF R/W
 *   */
 
 
/*
 * 1. PMAC duplicate register due to connection: RF_Mode, TRxRN, NumOf L-STF
 * 1. Page1(0x100)
 *   */
#define        rPMAC_Reset                    0x100
#define        rPMAC_TxStart                0x104
#define        rPMAC_TxLegacySIG            0x108
#define        rPMAC_TxHTSIG1                0x10c
#define        rPMAC_TxHTSIG2                0x110
#define        rPMAC_PHYDebug                0x114
#define        rPMAC_TxPacketNum            0x118
#define        rPMAC_TxIdle                    0x11c
#define        rPMAC_TxMACHeader0            0x120
#define        rPMAC_TxMACHeader1            0x124
#define        rPMAC_TxMACHeader2            0x128
#define        rPMAC_TxMACHeader3            0x12c
#define        rPMAC_TxMACHeader4            0x130
#define        rPMAC_TxMACHeader5            0x134
#define        rPMAC_TxDataType                0x138
#define        rPMAC_TxRandomSeed            0x13c
#define        rPMAC_CCKPLCPPreamble        0x140
#define        rPMAC_CCKPLCPHeader            0x144
#define        rPMAC_CCKCRC16                0x148
#define        rPMAC_OFDMRxCRC32OK        0x170
#define        rPMAC_OFDMRxCRC32Er        0x174
#define        rPMAC_OFDMRxParityEr            0x178
#define        rPMAC_OFDMRxCRC8Er            0x17c
#define        rPMAC_CCKCRxRC16Er            0x180
#define        rPMAC_CCKCRxRC32Er            0x184
#define        rPMAC_CCKCRxRC32OK            0x188
#define        rPMAC_TxStatus                0x18c
 
 
/*
 * 3. Page8(0x800)
 *   */
#define        rFPGA0_RFMOD                0x800    /* RF mode & CCK TxSC */ /* RF BW Setting?? */
 
#define        rFPGA0_TxInfo                    0x804    /* Status report?? */
#define        rFPGA0_PSDFunction            0x808
 
#define        rFPGA0_TxGainStage            0x80c    /* Set TX PWR init gain? */
 
#define        rFPGA0_RFTiming1                0x810    /* Useless now */
#define        rFPGA0_RFTiming2                0x814
 
#define        rFPGA0_XA_HSSIParameter1        0x820    /* RF 3 wire register */
#define        rFPGA0_XA_HSSIParameter2        0x824
#define        rFPGA0_XB_HSSIParameter1        0x828
#define        rFPGA0_XB_HSSIParameter2        0x82c
 
#define        rFPGA0_XA_LSSIParameter        0x840
#define        rFPGA0_XB_LSSIParameter        0x844
 
#define        rFPGA0_RFWakeUpParameter    0x850    /* Useless now */
#define        rFPGA0_RFSleepUpParameter        0x854
 
#define        rFPGA0_XAB_SwitchControl        0x858    /* RF Channel switch */
#define        rFPGA0_XCD_SwitchControl        0x85c
 
#define        rFPGA0_XA_RFInterfaceOE        0x860    /* RF Channel switch */
#define        rFPGA0_XB_RFInterfaceOE        0x864
 
#define        rFPGA0_XAB_RFInterfaceSW        0x870    /* RF Interface Software Control */
#define        rFPGA0_XCD_RFInterfaceSW        0x874
 
#define        rFPGA0_XAB_RFParameter        0x878    /* RF Parameter */
#define        rFPGA0_XCD_RFParameter        0x87c
 
#define        rFPGA0_AnalogParameter1        0x880    /* Crystal cap setting RF-R/W protection for parameter4?? */
#define        rFPGA0_AnalogParameter2        0x884
#define        rFPGA0_AnalogParameter3        0x888
#define        rFPGA0_AdDaClockEn            0x888    /* enable ad/da clock1 for dual-phy */
#define        rFPGA0_AnalogParameter4        0x88c
 
#define        rFPGA0_XA_LSSIReadBack        0x8a0    /* Tranceiver LSSI Readback */
#define        rFPGA0_XB_LSSIReadBack        0x8a4
#define        rFPGA0_XC_LSSIReadBack        0x8a8
#define        rFPGA0_XD_LSSIReadBack        0x8ac
 
#define        rFPGA0_PSDReport                0x8b4    /* Useless now */
#define        TransceiverA_HSPI_Readback        0x8b8    /* Transceiver A HSPI Readback */
#define        TransceiverB_HSPI_Readback        0x8bc    /* Transceiver B HSPI Readback */
#define        rFPGA0_XAB_RFInterfaceRB        0x8e0    /* Useless now */ /* RF Interface Readback Value */
#define        rFPGA0_XCD_RFInterfaceRB        0x8e4    /* Useless now */
 
/*
 * 4. Page9(0x900)
 *   */
#define        rFPGA1_RFMOD                0x900    /* RF mode & OFDM TxSC */ /* RF BW Setting?? */
 
#define        rFPGA1_TxBlock                0x904    /* Useless now */
#define        rFPGA1_DebugSelect            0x908    /* Useless now */
#define        rFPGA1_TxInfo                    0x90c    /* Useless now */ /* Status report?? */
 
/*
 * 5. PageA(0xA00)
 *
 * Set Control channel to upper or lower. These settings are required only for 40MHz */
#define        rCCK0_System                    0xa00
 
#define        rCCK0_AFESetting                0xa04    /* Disable init gain now */ /* Select RX path by RSSI */
#define        rCCK0_CCA                    0xa08    /* Disable init gain now */ /* Init gain */
 
#define        rCCK0_RxAGC1                0xa0c    /* AGC default value, saturation level  */ /* Antenna Diversity, RX AGC, LNA Threshold, RX LNA Threshold useless now. Not the same as 90 series */
#define        rCCK0_RxAGC2                0xa10    /* AGC & DAGC */
 
#define        rCCK0_RxHP                    0xa14
 
#define        rCCK0_DSPParameter1            0xa18    /* Timing recovery & Channel estimation threshold */
#define        rCCK0_DSPParameter2            0xa1c    /* SQ threshold */
 
#define        rCCK0_TxFilter1                0xa20
#define        rCCK0_TxFilter2                0xa24
#define        rCCK0_DebugPort                0xa28    /* debug port and Tx filter3 */
#define        rCCK0_FalseAlarmReport        0xa2c    /* 0xa2d    useless now 0xa30-a4f channel report */
#define        rCCK0_TRSSIReport            0xa50
#define        rCCK0_RxReport                        0xa54  /* 0xa57 */
#define        rCCK0_FACounterLower              0xa5c  /* 0xa5b */
#define        rCCK0_FACounterUpper              0xa58  /* 0xa5c */
 
/*
 * PageB(0xB00)
 *   */
#define        rPdp_AntA                    0xb00
#define        rPdp_AntA_4                0xb04
#define        rConfig_Pmpd_AntA            0xb28
#define        rConfig_ram64x16                0xb2c
 
#define        rConfig_AntA                    0xb68
#define        rConfig_AntB                    0xb6c
#define        rPdp_AntB                    0xb70
#define        rPdp_AntB_4                    0xb74
#define        rConfig_Pmpd_AntB            0xb98
#define        rAPK                            0xbd8
 
 
 
/*
 * 6. PageC(0xC00)
 *   */
#define        rOFDM0_LSTF                    0xc00
 
#define        rOFDM0_TRxPathEnable            0xc04
#define        rOFDM0_TRMuxPar                0xc08
#define        rOFDM0_TRSWIsolation            0xc0c
 
#define        rOFDM0_XARxAFE                0xc10  /* RxIQ DC offset, Rx digital filter, DC notch filter */
#define        rOFDM0_XARxIQImbalance            0xc14  /* RxIQ imblance matrix */
#define        rOFDM0_XBRxAFE            0xc18
#define        rOFDM0_XBRxIQImbalance        0xc1c
#define        rOFDM0_XCRxAFE            0xc20
#define        rOFDM0_XCRxIQImbalance        0xc24
#define        rOFDM0_XDRxAFE            0xc28
#define        rOFDM0_XDRxIQImbalance        0xc2c
 
#define        rOFDM0_RxDetector1            0xc30  /* PD, BW & SBD     */ /* DM tune init gain */
#define        rOFDM0_RxDetector2            0xc34  /* SBD & Fame Sync. */
#define        rOFDM0_RxDetector3            0xc38  /* Frame Sync. */
#define        rOFDM0_RxDetector4            0xc3c  /* PD, SBD, Frame Sync & Short-GI */
 
#define        rOFDM0_RxDSP                0xc40  /* Rx Sync Path */
#define        rOFDM0_CFOandDAGC            0xc44  /* CFO & DAGC */
#define        rOFDM0_CCADropThreshold        0xc48 /* CCA Drop threshold */
#define        rOFDM0_ECCAThreshold            0xc4c /* energy CCA */
 
#define        rOFDM0_XAAGCCore1            0xc50    /* DIG */
#define        rOFDM0_XAAGCCore2            0xc54
#define        rOFDM0_XBAGCCore1            0xc58
#define        rOFDM0_XBAGCCore2            0xc5c
#define        rOFDM0_XCAGCCore1            0xc60
#define        rOFDM0_XCAGCCore2            0xc64
#define        rOFDM0_XDAGCCore1            0xc68
#define        rOFDM0_XDAGCCore2            0xc6c
 
#define        rOFDM0_AGCParameter1        0xc70
#define        rOFDM0_AGCParameter2        0xc74
#define        rOFDM0_AGCRSSITable            0xc78
#define        rOFDM0_HTSTFAGC                0xc7c
 
#define        rOFDM0_XATxIQImbalance        0xc80    /* TX PWR TRACK and DIG */
#define        rOFDM0_XATxAFE                0xc84
#define        rOFDM0_XBTxIQImbalance        0xc88
#define        rOFDM0_XBTxAFE                0xc8c
#define        rOFDM0_XCTxIQImbalance        0xc90
#define        rOFDM0_XCTxAFE            0xc94
#define        rOFDM0_XDTxIQImbalance        0xc98
#define        rOFDM0_XDTxAFE                0xc9c
 
#define        rOFDM0_RxIQExtAnta            0xca0
#define        rOFDM0_TxCoeff1                0xca4
#define        rOFDM0_TxCoeff2                0xca8
#define        rOFDM0_TxCoeff3                0xcac
#define        rOFDM0_TxCoeff4                0xcb0
#define        rOFDM0_TxCoeff5                0xcb4
#define        rOFDM0_RxHPParameter        0xce0
#define        rOFDM0_TxPseudoNoiseWgt        0xce4
#define        rOFDM0_FrameSync            0xcf0
#define        rOFDM0_DFSReport            0xcf4
 
 
/*
 * 7. PageD(0xD00)
 *   */
#define        rOFDM1_LSTF                    0xd00
#define        rOFDM1_TRxPathEnable            0xd04
 
#define        rOFDM1_CFO                    0xd08    /* No setting now */
#define        rOFDM1_CSI1                    0xd10
#define        rOFDM1_SBD                    0xd14
#define        rOFDM1_CSI2                    0xd18
#define        rOFDM1_CFOTracking            0xd2c
#define        rOFDM1_TRxMesaure1            0xd34
#define        rOFDM1_IntfDet                0xd3c
#define        rOFDM1_PseudoNoiseStateAB    0xd50
#define        rOFDM1_PseudoNoiseStateCD    0xd54
#define        rOFDM1_RxPseudoNoiseWgt        0xd58
 
#define        rOFDM_PHYCounter1            0xda0  /* cca, parity fail */
#define        rOFDM_PHYCounter2            0xda4  /* rate illegal, crc8 fail */
#define        rOFDM_PHYCounter3            0xda8  /* MCS not support */
 
#define        rOFDM_ShortCFOAB            0xdac    /* No setting now */
#define        rOFDM_ShortCFOCD            0xdb0
#define        rOFDM_LongCFOAB                0xdb4
#define        rOFDM_LongCFOCD                0xdb8
#define        rOFDM_TailCFOAB                0xdbc
#define        rOFDM_TailCFOCD                0xdc0
#define        rOFDM_PWMeasure1        0xdc4
#define        rOFDM_PWMeasure2        0xdc8
#define        rOFDM_BWReport                0xdcc
#define        rOFDM_AGCReport                0xdd0
#define        rOFDM_RxSNR                0xdd4
#define        rOFDM_RxEVMCSI                0xdd8
#define        rOFDM_SIGReport                0xddc
 
 
/*
 * 8. PageE(0xE00)
 *   */
#define        rTxAGC_A_Rate18_06            0xe00
#define        rTxAGC_A_Rate54_24            0xe04
#define        rTxAGC_A_CCK1_Mcs32            0xe08
#define        rTxAGC_A_Mcs03_Mcs00        0xe10
#define        rTxAGC_A_Mcs07_Mcs04        0xe14
#define        rTxAGC_A_Mcs11_Mcs08        0xe18
#define        rTxAGC_A_Mcs15_Mcs12        0xe1c
 
#define        rTxAGC_B_Rate18_06            0x830
#define        rTxAGC_B_Rate54_24            0x834
#define        rTxAGC_B_CCK1_55_Mcs32        0x838
#define        rTxAGC_B_Mcs03_Mcs00        0x83c
#define        rTxAGC_B_Mcs07_Mcs04        0x848
#define        rTxAGC_B_Mcs11_Mcs08        0x84c
#define        rTxAGC_B_Mcs15_Mcs12        0x868
#define        rTxAGC_B_CCK11_A_CCK2_11        0x86c
 
#define        rFPGA0_IQK                    0xe28
#define        rTx_IQK_Tone_A                0xe30
#define        rRx_IQK_Tone_A                0xe34
#define        rTx_IQK_PI_A                    0xe38
#define        rRx_IQK_PI_A                    0xe3c
 
#define        rTx_IQK                        0xe40
#define        rRx_IQK                        0xe44
#define        rIQK_AGC_Pts                    0xe48
#define        rIQK_AGC_Rsp                    0xe4c
#define        rTx_IQK_Tone_B                0xe50
#define        rRx_IQK_Tone_B                0xe54
#define        rTx_IQK_PI_B                    0xe58
#define        rRx_IQK_PI_B                    0xe5c
#define        rIQK_AGC_Cont                0xe60
 
#define        rBlue_Tooth                    0xe6c
#define        rRx_Wait_CCA                    0xe70
#define        rTx_CCK_RFON                    0xe74
#define        rTx_CCK_BBON                0xe78
#define        rTx_OFDM_RFON                0xe7c
#define        rTx_OFDM_BBON                0xe80
#define        rTx_To_Rx                    0xe84
#define        rTx_To_Tx                    0xe88
#define        rRx_CCK                        0xe8c
 
#define        rTx_Power_Before_IQK_A        0xe94
#define        rTx_Power_After_IQK_A            0xe9c
 
#define        rRx_Power_Before_IQK_A        0xea0
#define        rRx_Power_Before_IQK_A_2        0xea4
#define        rRx_Power_After_IQK_A            0xea8
#define        rRx_Power_After_IQK_A_2        0xeac
 
#define        rTx_Power_Before_IQK_B        0xeb4
#define        rTx_Power_After_IQK_B            0xebc
 
#define        rRx_Power_Before_IQK_B        0xec0
#define        rRx_Power_Before_IQK_B_2        0xec4
#define        rRx_Power_After_IQK_B            0xec8
#define        rRx_Power_After_IQK_B_2        0xecc
 
#define        rRx_OFDM                    0xed0
#define        rRx_Wait_RIFS                0xed4
#define        rRx_TO_Rx                    0xed8
#define        rStandby                        0xedc
#define        rSleep                        0xee0
#define        rPMPD_ANAEN                0xeec
 
/*
 * 7. RF Register 0x00-0x2E (RF 8256)
 * RF-0222D 0x00-3F
 *
 * Zebra1 */
#define        rZebra1_HSSIEnable                0x0    /* Useless now */
#define        rZebra1_TRxEnable1            0x1
#define        rZebra1_TRxEnable2            0x2
#define        rZebra1_AGC                    0x4
#define        rZebra1_ChargePump            0x5
#define        rZebra1_Channel                0x7    /* RF channel switch */
 
/* #endif */
#define        rZebra1_TxGain                0x8    /* Useless now */
#define        rZebra1_TxLPF                    0x9
#define        rZebra1_RxLPF                    0xb
#define        rZebra1_RxHPFCorner            0xc
 
/* Zebra4 */
#define        rGlobalCtrl                    0    /* Useless now */
#define        rRTL8256_TxLPF                19
#define        rRTL8256_RxLPF                11
 
/* RTL8258 */
#define        rRTL8258_TxLPF                0x11    /* Useless now */
#define        rRTL8258_RxLPF                0x13
#define        rRTL8258_RSSILPF                0xa
 
/*
 * RL6052 Register definition
 *   */
#define        RF_AC                        0x00    /*  */
 
#define        RF_IQADJ_G1                    0x01    /*  */
#define        RF_IQADJ_G2                    0x02    /*  */
 
#define        RF_POW_TRSW                0x05    /*  */
 
#define        RF_GAIN_RX                    0x06    /*  */
#define        RF_GAIN_TX                    0x07    /*  */
 
#define        RF_TXM_IDAC                    0x08    /*  */
#define        RF_IPA_G                        0x09    /*  */
#define        RF_TXBIAS_G                    0x0A
#define        RF_TXPA_AG                    0x0B
#define        RF_IPA_A                        0x0C    /*  */
#define        RF_TXBIAS_A                    0x0D
#define        RF_BS_PA_APSET_G9_G11        0x0E
#define        RF_BS_IQGEN                    0x0F    /*  */
 
#define        RF_MODE1                    0x10    /*  */
#define        RF_MODE2                    0x11    /*  */
 
#define        RF_RX_AGC_HP                0x12    /*  */
#define        RF_TX_AGC                    0x13    /*  */
#define        RF_BIAS                        0x14    /*  */
#define        RF_IPA                        0x15    /*  */
#define        RF_TXBIAS                    0x16
#define        RF_POW_ABILITY                0x17    /*  */
#define        RF_CHNLBW                    0x18    /* RF channel and BW switch */
#define        RF_TOP                        0x19    /*  */
 
#define        RF_RX_G1                    0x1A    /*  */
#define        RF_RX_G2                    0x1B    /*  */
 
#define        RF_RX_BB2                    0x1C    /*  */
#define        RF_RX_BB1                    0x1D    /*  */
 
#define        RF_RCK1                        0x1E    /*  */
#define        RF_RCK2                        0x1F    /*  */
 
#define        RF_TX_G1                        0x20    /*  */
#define        RF_TX_G2                        0x21    /*  */
#define        RF_TX_G3                        0x22    /*  */
 
#define        RF_TX_BB1                    0x23    /*  */
 
#define        RF_T_METER_8192E            0x42    /*  */
#define        RF_T_METER_88E                0x42
#define        RF_T_METER                    0x24    /*  */
 
/* #endif */
 
#define        RF_SYN_G1                    0x25    /* RF TX Power control */
#define        RF_SYN_G2                    0x26    /* RF TX Power control */
#define        RF_SYN_G3                    0x27    /* RF TX Power control */
#define        RF_SYN_G4                    0x28    /* RF TX Power control */
#define        RF_SYN_G5                    0x29    /* RF TX Power control */
#define        RF_SYN_G6                    0x2A    /* RF TX Power control */
#define        RF_SYN_G7                    0x2B    /* RF TX Power control */
#define        RF_SYN_G8                    0x2C    /* RF TX Power control */
 
#define        RF_RCK_OS                    0x30    /* RF TX PA control */
#define        RF_TXPA_G1                    0x31    /* RF TX PA control */
#define        RF_TXPA_G2                    0x32    /* RF TX PA control */
#define        RF_TXPA_G3                    0x33    /* RF TX PA control */
#define        RF_TX_BIAS_A                    0x35
#define        RF_TX_BIAS_D                    0x36
#define        RF_LOBF_9                    0x38
#define        RF_RXRF_A3                    0x3C    /*     */
#define        RF_TRSW                        0x3F
 
#define        RF_TXRF_A2                    0x41
#define        RF_TXPA_G4                    0x46
#define        RF_TXPA_A4                    0x4B
#define        RF_0x52                        0x52
#define        RF_LDO                        0xB1
#define        RF_WE_LUT                    0xEF
 
 
/*
 * Bit Mask
 *
 * 1. Page1(0x100) */
#define        bBBResetB                    0x100    /* Useless now? */
#define        bGlobalResetB                    0x200
#define        bOFDMTxStart                    0x4
#define        bCCKTxStart                    0x8
#define        bCRC32Debug                    0x100
#define        bPMACLoopback                0x10
#define        bTxLSIG                        0xffffff
#define        bOFDMTxRate                    0xf
#define        bOFDMTxReserved                0x10
#define        bOFDMTxLength                0x1ffe0
#define        bOFDMTxParity                0x20000
#define        bTxHTSIG1                    0xffffff
#define        bTxHTMCSRate                0x7f
#define        bTxHTBW                        0x80
#define        bTxHTLength                    0xffff00
#define        bTxHTSIG2                    0xffffff
#define        bTxHTSmoothing                0x1
#define        bTxHTSounding                0x2
#define        bTxHTReserved                0x4
#define        bTxHTAggreation                0x8
#define        bTxHTSTBC                    0x30
#define        bTxHTAdvanceCoding            0x40
#define        bTxHTShortGI                    0x80
#define        bTxHTNumberHT_LTF            0x300
#define        bTxHTCRC8                    0x3fc00
#define        bCounterReset                0x10000
#define        bNumOfOFDMTx                0xffff
#define        bNumOfCCKTx                    0xffff0000
#define        bTxIdleInterval                0xffff
#define        bOFDMService                    0xffff0000
#define        bTxMACHeader                0xffffffff
#define        bTxDataInit                    0xff
#define        bTxHTMode                    0x100
#define        bTxDataType                    0x30000
#define        bTxRandomSeed                0xffffffff
#define        bCCKTxPreamble                0x1
#define        bCCKTxSFD                    0xffff0000
#define        bCCKTxSIG                    0xff
#define        bCCKTxService                    0xff00
#define        bCCKLengthExt                    0x8000
#define        bCCKTxLength                    0xffff0000
#define        bCCKTxCRC16                    0xffff
#define        bCCKTxStatus                    0x1
#define        bOFDMTxStatus                0x2
 
#define        IS_BB_REG_OFFSET_92S(_Offset)        ((_Offset >= 0x800) && (_Offset <= 0xfff))
#define        RF_TX_GAIN_OFFSET_8192E(_val)        ((abs((_val)) << 1) | (((_val) > 0) ? BIT0 : 0))
 
 
/* 2. Page8(0x800) */
#define        bRFMOD                        0x1    /* Reg 0x800 rFPGA0_RFMOD */
#define        bJapanMode                    0x2
#define        bCCKTxSC                        0x30
#define        bCCKEn                        0x1000000
#define        bOFDMEn                    0x2000000
 
#define        bOFDMRxADCPhase                   0x10000    /* Useless now */
#define        bOFDMTxDACPhase        0x40000
#define        bXATxAGC                0x3f
 
#define        bAntennaSelect            0x0300
 
#define        bXBTxAGC                                  0xf00    /* Reg 80c rFPGA0_TxGainStage */
#define        bXCTxAGC                0xf000
#define        bXDTxAGC                0xf0000
 
#define        bPAStart                                  0xf0000000    /* Useless now */
#define        bTRStart                0x00f00000
#define        bRFStart                0x0000f000
#define        bBBStart                0x000000f0
#define        bBBCCKStart            0x0000000f
#define        bPAEnd                                    0xf          /* Reg0x814 */
#define        bTREnd                0x0f000000
#define        bRFEnd                0x000f0000
#define        bCCAMask                                  0x000000f0   /* T2R */
#define        bR2RCCAMask            0x00000f00
#define        bHSSI_R2TDelay            0xf8000000
#define        bHSSI_T2RDelay            0xf80000
#define        bContTxHSSI                           0x400     /* chane gain at continue Tx */
#define        bIGFromCCK            0x200
#define        bAGCAddress            0x3f
#define        bRxHPTx                0x7000
#define        bRxHPT2R                0x38000
#define        bRxHPCCKIni            0xc0000
#define        bAGCTxCode            0xc00000
#define        bAGCRxCode            0x300000
 
#define        b3WireDataLength                      0x800    /* Reg 0x820~84f rFPGA0_XA_HSSIParameter1 */
#define        b3WireAddressLength        0x400
 
#define        b3WireRFPowerDown                 0x1    /* Useless now
 * #define bHWSISelect        0x8 */
#define        b5GPAPEPolarity            0x40000000
#define        b2GPAPEPolarity            0x80000000
#define        bRFSW_TxDefaultAnt        0x3
#define        bRFSW_TxOptionAnt        0x30
#define        bRFSW_RxDefaultAnt        0x300
#define        bRFSW_RxOptionAnt        0x3000
#define        bRFSI_3WireData            0x1
#define        bRFSI_3WireClock            0x2
#define        bRFSI_3WireLoad            0x4
#define        bRFSI_3WireRW            0x8
#define        bRFSI_3Wire            0xf
 
#define        bRFSI_RFENV                       0x10    /* Reg 0x870 rFPGA0_XAB_RFInterfaceSW */
 
#define        bRFSI_TRSW                        0x20    /* Useless now */
#define        bRFSI_TRSWB        0x40
#define        bRFSI_ANTSW        0x100
#define        bRFSI_ANTSWB        0x200
#define        bRFSI_PAPE            0x400
#define        bRFSI_PAPE5G        0x800
#define        bBandSelect            0x1
#define        bHTSIG2_GI            0x80
#define        bHTSIG2_Smoothing        0x01
#define        bHTSIG2_Sounding        0x02
#define        bHTSIG2_Aggreaton        0x08
#define        bHTSIG2_STBC        0x30
#define        bHTSIG2_AdvCoding        0x40
#define        bHTSIG2_NumOfHTLTF    0x300
#define        bHTSIG2_CRC8        0x3fc
#define        bHTSIG1_MCS        0x7f
#define        bHTSIG1_BandWidth        0x80
#define        bHTSIG1_HTLength        0xffff
#define        bLSIG_Rate            0xf
#define        bLSIG_Reserved        0x10
#define        bLSIG_Length        0x1fffe
#define        bLSIG_Parity            0x20
#define        bCCKRxPhase        0x4
 
#define        bLSSIReadAddress                  0x7f800000   /* T65 RF */
 
#define        bLSSIReadEdge                     0x80000000   /* LSSI "Read" edge signal */
 
#define        bLSSIReadBackData                 0xfffff        /* T65 RF */
 
#define        bLSSIReadOKFlag                   0x1000    /* Useless now */
#define        bCCKSampleRate                    0x8       /* 0: 44MHz, 1:88MHz               */
#define        bRegulator0Standby        0x1
#define        bRegulatorPLLStandby    0x2
#define        bRegulator1Standby        0x4
#define        bPLLPowerUp        0x8
#define        bDPLLPowerUp        0x10
#define        bDA10PowerUp        0x20
#define        bAD7PowerUp        0x200
#define        bDA6PowerUp        0x2000
#define        bXtalPowerUp        0x4000
#define        b40MDClkPowerUP    0x8000
#define        bDA6DebugMode        0x20000
#define        bDA6Swing            0x380000
 
#define        bADClkPhase                       0x4000000    /* Reg 0x880 rFPGA0_AnalogParameter1 20/40 CCK support switch 40/80 BB MHZ */
 
#define        b80MClkDelay                      0x18000000    /* Useless */
#define        bAFEWatchDogEnable    0x20000000
 
#define        bXtalCap01                            0xc0000000    /* Reg 0x884 rFPGA0_AnalogParameter2 Crystal cap */
#define        bXtalCap23            0x3
#define        bXtalCap92x                0x0f000000
#define        bXtalCap            0x0f000000
 
#define        bIntDifClkEnable                  0x400    /* Useless */
#define        bExtSigClkEnable        0x800
#define        bBandgapMbiasPowerUp    0x10000
#define        bAD11SHGain        0xc0000
#define        bAD11InputRange        0x700000
#define        bAD11OPCurrent        0x3800000
#define        bIPathLoopback        0x4000000
#define        bQPathLoopback        0x8000000
#define        bAFELoopback        0x10000000
#define        bDA10Swing        0x7e0
#define        bDA10Reverse        0x800
#define        bDAClkSource        0x1000
#define        bAD7InputRange        0x6000
#define        bAD7Gain            0x38000
#define        bAD7OutputCMMode    0x40000
#define        bAD7InputCMMode    0x380000
#define        bAD7Current        0xc00000
#define        bRegulatorAdjust        0x7000000
#define        bAD11PowerUpAtTx    0x1
#define        bDA10PSAtTx        0x10
#define        bAD11PowerUpAtRx    0x100
#define        bDA10PSAtRx        0x1000
#define        bCCKRxAGCFormat        0x200
#define        bPSDFFTSamplepPoint    0xc000
#define        bPSDAverageNum        0x3000
#define        bIQPathControl        0xc00
#define        bPSDFreq            0x3ff
#define        bPSDAntennaPath        0x30
#define        bPSDIQSwitch        0x40
#define        bPSDRxTrigger        0x400000
#define        bPSDTxTrigger        0x80000000
#define        bPSDSineToneScale        0x7f000000
#define        bPSDReport        0xffff
 
/* 3. Page9(0x900) */
#define        bOFDMTxSC                         0x30000000    /* Useless */
#define        bCCKTxOn            0x1
#define        bOFDMTxOn        0x2
#define        bDebugPage                        0xfff  /* reset debug page and also HWord, LWord */
#define        bDebugItem                        0xff   /* reset debug page and LWord */
#define        bAntL                0x10
#define        bAntNonHT            0x100
#define        bAntHT1            0x1000
#define        bAntHT2            0x10000
#define        bAntHT1S1            0x100000
#define        bAntNonHTS1        0x1000000
 
/* 4. PageA(0xA00) */
#define        bCCKBBMode                        0x3    /* Useless */
#define        bCCKTxPowerSaving        0x80
#define        bCCKRxPowerSaving        0x40
 
#define        bCCKSideBand                      0x10    /* Reg 0xa00 rCCK0_System 20/40 switch */
 
#define        bCCKScramble                      0x8    /* Useless */
#define        bCCKAntDiversity            0x8000
#define        bCCKCarrierRecovery        0x4000
#define        bCCKTxRate            0x3000
#define        bCCKDCCancel        0x0800
#define        bCCKISICancel        0x0400
#define        bCCKMatchFilter        0x0200
#define        bCCKEqualizer        0x0100
#define        bCCKPreambleDetect        0x800000
#define        bCCKFastFalseCCA        0x400000
#define        bCCKChEstStart        0x300000
#define        bCCKCCACount        0x080000
#define        bCCKcs_lim            0x070000
#define        bCCKBistMode        0x80000000
#define        bCCKCCAMask        0x40000000
#define        bCCKTxDACPhase        0x4
#define        bCCKRxADCPhase                    0x20000000   /* r_rx_clk */
#define        bCCKr_cp_mode0        0x0100
#define        bCCKTxDCOffset        0xf0
#define        bCCKRxDCOffset        0xf
#define        bCCKCCAMode        0xc000
#define        bCCKFalseCS_lim        0x3f00
#define        bCCKCS_ratio        0xc00000
#define        bCCKCorgBit_sel        0x300000
#define        bCCKPD_lim        0x0f0000
#define        bCCKNewCCA        0x80000000
#define        bCCKRxHPofIG        0x8000
#define        bCCKRxIG            0x7f00
#define        bCCKLNAPolarity        0x800000
#define        bCCKRx1stGain        0x7f0000
#define        bCCKRFExtend                      0x20000000 /* CCK Rx Iinital gain polarity */
#define        bCCKRxAGCSatLevel        0x1f000000
#define        bCCKRxAGCSatCount        0xe0
#define        bCCKRxRFSettle                    0x1f       /* AGCsamp_dly */
#define        bCCKFixedRxAGC        0x8000
/* #define bCCKRxAGCFormat        0x4000 */   /* remove to HSSI register 0x824 */
#define        bCCKAntennaPolarity        0x2000
#define        bCCKTxFilterType        0x0c00
#define        bCCKRxAGCReportType        0x0300
#define        bCCKRxDAGCEn        0x80000000
#define        bCCKRxDAGCPeriod        0x20000000
#define        bCCKRxDAGCSatLevel        0x1f000000
#define        bCCKTimingRecovery        0x800000
#define        bCCKTxC0            0x3f0000
#define        bCCKTxC1            0x3f000000
#define        bCCKTxC2            0x3f
#define        bCCKTxC3            0x3f00
#define        bCCKTxC4            0x3f0000
#define        bCCKTxC5            0x3f000000
#define        bCCKTxC6            0x3f
#define        bCCKTxC7            0x3f00
#define        bCCKDebugPort        0xff0000
#define        bCCKDACDebug        0x0f000000
#define        bCCKFalseAlarmEnable    0x8000
#define        bCCKFalseAlarmRead    0x4000
#define        bCCKTRSSI            0x7f
#define        bCCKRxAGCReport        0xfe
#define        bCCKRxReport_AntSel    0x80000000
#define        bCCKRxReport_MFOff    0x40000000
#define        bCCKRxRxReport_SQLoss    0x20000000
#define        bCCKRxReport_Pktloss    0x10000000
#define        bCCKRxReport_Lockedbit    0x08000000
#define        bCCKRxReport_RateError    0x04000000
#define        bCCKRxReport_RxRate    0x03000000
#define        bCCKRxFACounterLower    0xff
#define        bCCKRxFACounterUpper    0xff000000
#define        bCCKRxHPAGCStart        0xe000
#define        bCCKRxHPAGCFinal        0x1c00
#define        bCCKRxFalseAlarmEnable    0x8000
#define        bCCKFACounterFreeze    0x4000
#define        bCCKTxPathSel        0x10000000
#define        bCCKDefaultRxPath        0xc000000
#define        bCCKOptionRxPath        0x3000000
 
/* 5. PageC(0xC00) */
#define        bNumOfSTF                            0x3    /* Useless */
#define        bShift_L            0xc0
#define        bGI_TH            0xc
#define        bRxPathA            0x1
#define        bRxPathB            0x2
#define        bRxPathC            0x4
#define        bRxPathD            0x8
#define        bTxPathA            0x1
#define        bTxPathB            0x2
#define        bTxPathC            0x4
#define        bTxPathD            0x8
#define        bTRSSIFreq            0x200
#define        bADCBackoff            0x3000
#define        bDFIRBackoff            0xc000
#define        bTRSSILatchPhase        0x10000
#define        bRxIDCOffset            0xff
#define        bRxQDCOffset        0xff00
#define        bRxDFIRMode        0x1800000
#define        bRxDCNFType        0xe000000
#define        bRXIQImb_A        0x3ff
#define        bRXIQImb_B            0xfc00
#define        bRXIQImb_C            0x3f0000
#define        bRXIQImb_D        0xffc00000
#define        bDC_dc_Notch        0x60000
#define        bRxNBINotch        0x1f000000
#define        bPD_TH            0xf
#define        bPD_TH_Opt2        0xc000
#define        bPWED_TH            0x700
#define        bIfMF_Win_L        0x800
#define        bPD_Option            0x1000
#define        bMF_Win_L            0xe000
#define        bBW_Search_L        0x30000
#define        bwin_enh_L            0xc0000
#define        bBW_TH            0x700000
#define        bED_TH2            0x3800000
#define        bBW_option            0x4000000
#define        bRatio_TH            0x18000000
#define        bWindow_L            0xe0000000
#define        bSBD_Option        0x1
#define        bFrame_TH            0x1c
#define        bFS_Option            0x60
#define        bDC_Slope_check        0x80
#define        bFGuard_Counter_DC_L    0xe00
#define        bFrame_Weight_Short    0x7000
#define        bSub_Tune            0xe00000
#define        bFrame_DC_Length        0xe000000
#define        bSBD_start_offset        0x30000000
#define        bFrame_TH_2        0x7
#define        bFrame_GI2_TH        0x38
#define        bGI2_Sync_en        0x40
#define        bSarch_Short_Early        0x300
#define        bSarch_Short_Late        0xc00
#define        bSarch_GI2_Late        0x70000
#define        bCFOAntSum        0x1
#define        bCFOAcc            0x2
#define        bCFOStartOffset        0xc
#define        bCFOLookBack        0x70
#define        bCFOSumWeight        0x80
#define        bDAGCEnable        0x10000
#define        bTXIQImb_A            0x3ff
#define        bTXIQImb_B            0xfc00
#define        bTXIQImb_C            0x3f0000
#define        bTXIQImb_D            0xffc00000
#define        bTxIDCOffset            0xff
#define        bTxQDCOffset        0xff00
#define        bTxDFIRMode        0x10000
#define        bTxPesudoNoiseOn        0x4000000
#define        bTxPesudoNoise_A        0xff
#define        bTxPesudoNoise_B        0xff00
#define        bTxPesudoNoise_C        0xff0000
#define        bTxPesudoNoise_D        0xff000000
#define        bCCADropOption        0x20000
#define        bCCADropThres        0xfff00000
#define        bEDCCA_H            0xf
#define        bEDCCA_L            0xf0
#define        bLambda_ED        0x300
#define        bRxInitialGain            0x7f
#define        bRxAntDivEn        0x80
#define        bRxAGCAddressForLNA    0x7f00
#define        bRxHighPowerFlow        0x8000
#define        bRxAGCFreezeThres        0xc0000
#define        bRxFreezeStep_AGC1    0x300000
#define        bRxFreezeStep_AGC2    0xc00000
#define        bRxFreezeStep_AGC3    0x3000000
#define        bRxFreezeStep_AGC0    0xc000000
#define        bRxRssi_Cmp_En        0x10000000
#define        bRxQuickAGCEn        0x20000000
#define        bRxAGCFreezeThresMode    0x40000000
#define        bRxOverFlowCheckType    0x80000000
#define        bRxAGCShift            0x7f
#define        bTRSW_Tri_Only        0x80
#define        bPowerThres        0x300
#define        bRxAGCEn            0x1
#define        bRxAGCTogetherEn        0x2
#define        bRxAGCMin        0x4
#define        bRxHP_Ini            0x7
#define        bRxHP_TRLNA        0x70
#define        bRxHP_RSSI            0x700
#define        bRxHP_BBP1        0x7000
#define        bRxHP_BBP2        0x70000
#define        bRxHP_BBP3        0x700000
#define        bRSSI_H                              0x7f0000     /* the threshold for high power */
#define        bRSSI_Gen                            0x7f000000   /* the threshold for ant diversity */
#define        bRxSettle_TRSW        0x7
#define        bRxSettle_LNA        0x38
#define        bRxSettle_RSSI        0x1c0
#define        bRxSettle_BBP        0xe00
#define        bRxSettle_RxHP        0x7000
#define        bRxSettle_AntSW_RSSI    0x38000
#define        bRxSettle_AntSW        0xc0000
#define        bRxProcessTime_DAGC    0x300000
#define        bRxSettle_HSSI        0x400000
#define        bRxProcessTime_BBPPW    0x800000
#define        bRxAntennaPowerShift    0x3000000
#define        bRSSITableSelect        0xc000000
#define        bRxHP_Final            0x7000000
#define        bRxHTSettle_BBP        0x7
#define        bRxHTSettle_HSSI        0x8
#define        bRxHTSettle_RxHP        0x70
#define        bRxHTSettle_BBPPW        0x80
#define        bRxHTSettle_Idle        0x300
#define        bRxHTSettle_Reserved    0x1c00
#define        bRxHTRxHPEn        0x8000
#define        bRxHTAGCFreezeThres    0x30000
#define        bRxHTAGCTogetherEn    0x40000
#define        bRxHTAGCMin        0x80000
#define        bRxHTAGCEn        0x100000
#define        bRxHTDAGCEn        0x200000
#define        bRxHTRxHP_BBP        0x1c00000
#define        bRxHTRxHP_Final        0xe0000000
#define        bRxPWRatioTH        0x3
#define        bRxPWRatioEn        0x4
#define        bRxMFHold            0x3800
#define        bRxPD_Delay_TH1        0x38
#define        bRxPD_Delay_TH2        0x1c0
#define        bRxPD_DC_COUNT_MAX    0x600
/* #define bRxMF_Hold               0x3800 */
#define        bRxPD_Delay_TH        0x8000
#define        bRxProcess_Delay        0xf0000
#define        bRxSearchrange_GI2_Early    0x700000
#define        bRxFrame_Guard_Counter_L    0x3800000
#define        bRxSGI_Guard_L        0xc000000
#define        bRxSGI_Search_L        0x30000000
#define        bRxSGI_TH            0xc0000000
#define        bDFSCnt0            0xff
#define        bDFSCnt1            0xff00
#define        bDFSFlag            0xf0000
#define        bMFWeightSum        0x300000
#define        bMinIdxTH            0x7f000000
#define        bDAFormat            0x40000
#define        bTxChEmuEnable        0x01000000
#define        bTRSWIsolation_A        0x7f
#define        bTRSWIsolation_B        0x7f00
#define        bTRSWIsolation_C        0x7f0000
#define        bTRSWIsolation_D        0x7f000000
#define        bExtLNAGain        0x7c00
 
/* 6. PageE(0xE00) */
#define        bSTBCEn                              0x4    /* Useless */
#define        bAntennaMapping        0x10
#define        bNss            0x20
#define        bCFOAntSumD        0x200
#define        bPHYCounterReset        0x8000000
#define        bCFOReportGet        0x4000000
#define        bOFDMContinueTx        0x10000000
#define        bOFDMSingleCarrier        0x20000000
#define        bOFDMSingleTone        0x40000000
/* #define bRxPath1                 0x01 */
/* #define bRxPath2                 0x02 */
/* #define bRxPath3                 0x04 */
/* #define bRxPath4                 0x08 */
/* #define bTxPath1                 0x10 */
/* #define bTxPath2                 0x20 */
#define        bHTDetect            0x100
#define        bCFOEn            0x10000
#define        bCFOValue            0xfff00000
#define        bSigTone_Re            0x3f
#define        bSigTone_Im            0x7f00
#define        bCounter_CCA        0xffff
#define        bCounter_ParityFail        0xffff0000
#define        bCounter_RateIllegal        0xffff
#define        bCounter_CRC8Fail        0xffff0000
#define        bCounter_MCSNoSupport    0xffff
#define        bCounter_FastSync        0xffff
#define        bShortCFO            0xfff
#define        bShortCFOTLength                 12   /* total */
#define        bShortCFOFLength                 11   /* fraction */
#define        bLongCFO            0x7ff
#define        bLongCFOTLength        11
#define        bLongCFOFLength        11
#define        bTailCFO            0x1fff
#define        bTailCFOTLength        13
#define        bTailCFOFLength        12
#define        bmax_en_pwdB        0xffff
#define        bCC_power_dB        0xffff0000
#define        bnoise_pwdB        0xffff
#define        bPowerMeasTLength    10
#define        bPowerMeasFLength    3
#define        bRx_HT_BW        0x1
#define        bRxSC            0x6
#define        bRx_HT            0x8
#define        bNB_intf_det_on        0x1
#define        bIntf_win_len_cfg        0x30
#define        bNB_Intf_TH_cfg        0x1c0
#define        bRFGain            0x3f
#define        bTableSel            0x40
#define        bTRSW            0x80
#define        bRxSNR_A            0xff
#define        bRxSNR_B            0xff00
#define        bRxSNR_C            0xff0000
#define        bRxSNR_D            0xff000000
#define        bSNREVMTLength        8
#define        bSNREVMFLength        1
#define        bCSI1st            0xff
#define        bCSI2nd            0xff00
#define        bRxEVM1st            0xff0000
#define        bRxEVM2nd        0xff000000
#define        bSIGEVM            0xff
#define        bPWDB            0xff00
#define        bSGIEN            0x10000
 
#define        bSFactorQAM1                     0xf    /* Useless */
#define        bSFactorQAM2        0xf0
#define        bSFactorQAM3        0xf00
#define        bSFactorQAM4        0xf000
#define        bSFactorQAM5        0xf0000
#define        bSFactorQAM6        0xf0000
#define        bSFactorQAM7        0xf00000
#define        bSFactorQAM8        0xf000000
#define        bSFactorQAM9        0xf0000000
#define        bCSIScheme            0x100000
 
#define        bNoiseLvlTopSet                  0x3    /* Useless */
#define        bChSmooth            0x4
#define        bChSmoothCfg1        0x38
#define        bChSmoothCfg2        0x1c0
#define        bChSmoothCfg3        0xe00
#define        bChSmoothCfg4        0x7000
#define        bMRCMode        0x800000
#define        bTHEVMCfg            0x7000000
 
#define        bLoopFitType                         0x1    /* Useless */
#define        bUpdCFO            0x40
#define        bUpdCFOOffData        0x80
#define        bAdvUpdCFO        0x100
#define        bAdvTimeCtrl        0x800
#define        bUpdClko            0x1000
#define        bFC                0x6000
#define        bTrackingMode        0x8000
#define        bPhCmpEnable        0x10000
#define        bUpdClkoLTF            0x20000
#define        bComChCFO        0x40000
#define        bCSIEstiMode        0x80000
#define        bAdvUpdEqz        0x100000
#define        bUChCfg            0x7000000
#define        bUpdEqz            0x8000000
 
/* Rx Pseduo noise */
#define        bRxPesudoNoiseOn                 0x20000000    /* Useless */
#define        bRxPesudoNoise_A        0xff
#define        bRxPesudoNoise_B        0xff00
#define        bRxPesudoNoise_C        0xff0000
#define        bRxPesudoNoise_D        0xff000000
#define        bPesudoNoiseState_A    0xffff
#define        bPesudoNoiseState_B    0xffff0000
#define        bPesudoNoiseState_C        0xffff
#define        bPesudoNoiseState_D    0xffff0000
 
/* 7. RF Register
 * Zebra1 */
#define        bZebra1_HSSIEnable                0x8        /* Useless */
#define        bZebra1_TRxControl        0xc00
#define        bZebra1_TRxGainSetting    0x07f
#define        bZebra1_RxCorner        0xc00
#define        bZebra1_TxChargePump    0x38
#define        bZebra1_RxChargePump    0x7
#define        bZebra1_ChannelNum    0xf80
#define        bZebra1_TxLPFBW        0x400
#define        bZebra1_RxLPFBW        0x600
 
/* Zebra4 */
#define        bRTL8256RegModeCtrl1          0x100    /* Useless */
#define        bRTL8256RegModeCtrl0    0x40
#define        bRTL8256_TxLPFBW    0x18
#define        bRTL8256_RxLPFBW    0x600
 
/* RTL8258 */
#define        bRTL8258_TxLPFBW              0xc    /* Useless */
#define        bRTL8258_RxLPFBW    0xc00
#define        bRTL8258_RSSILPFBW    0xc0
 
 
/*
 * Other Definition
 *   */
 
/* byte endable for sb_write */
#define        bByte0                                0x1    /* Useless */
#define        bByte1            0x2
#define        bByte2            0x4
#define        bByte3            0x8
#define        bWord0            0x3
#define        bWord1            0xc
#define        bDWord            0xf
 
/* for PutRegsetting & GetRegSetting BitMask */
#define        bMaskByte0                        0xff    /* Reg 0xc50 rOFDM0_XAAGCCore~0xC6f */
#define        bMaskByte1        0xff00
#define        bMaskByte2        0xff0000
#define        bMaskByte3        0xff000000
#define        bMaskHWord        0xffff0000
#define        bMaskLWord        0x0000ffff
#define        bMaskDWord        0xffffffff
#define        bMaskH3Bytes                0xffffff00
#define        bMask12Bits                0xfff
#define        bMaskH4Bits                0xf0000000
#define        bMaskOFDM_D            0xffc00000
#define        bMaskCCK                0x3f3f3f3f
 
/* for PutRFRegsetting & GetRFRegSetting BitMask
 * #define        bMask12Bits               0xfffff */    /* RF Reg mask bits
 * #define        bMask20Bits               0xfffff */    /* RF Reg mask bits T65 RF */
#define        bRFRegOffsetMask            0xfffff
 
#define        bEnable                   0x1    /* Useless */
#define        bDisable                  0x0
 
#define        LeftAntenna                           0x0    /* Useless */
#define        RightAntenna        0x1
 
#define        tCheckTxStatus                    500   /* 500ms */ /* Useless */
#define        tUpdateRxCounter                  100   /* 100ms */
 
#define        rateCCK                     0    /* Useless */
#define        rateOFDM                1
#define        rateHT                    2
 
/* define Register-End */
#define        bPMAC_End                         0x1ff    /* Useless */
#define        bFPGAPHY0_End        0x8ff
#define        bFPGAPHY1_End        0x9ff
#define        bCCKPHY0_End        0xaff
#define        bOFDMPHY0_End        0xcff
#define        bOFDMPHY1_End        0xdff
 
/* define max debug item in each debug page
 * #define bMaxItem_FPGA_PHY0        0x9
 * #define bMaxItem_FPGA_PHY1        0x3
 * #define bMaxItem_PHY_11B          0x16
 * #define bMaxItem_OFDM_PHY0        0x29
 * #define bMaxItem_OFDM_PHY1        0x0 */
 
#define        bPMACControl                      0x0        /* Useless */
#define        bWMACControl        0x1
#define        bWNICControl        0x2
 
#define        PathA                                 0x0    /* Useless */
#define        PathB            0x1
#define        PathC            0x2
#define        PathD            0x3
 
 
/* RSSI Dump Message */
#define        rA_RSSIDump_92E            0xcb0
#define        rB_RSSIDump_92E            0xcb1
#define        rS1_RXevmDump_92E            0xcb2
#define        rS2_RXevmDump_92E            0xcb3
#define        rA_RXsnrDump_92E            0xcb4
#define        rB_RXsnrDump_92E            0xcb5
#define        rA_CfoShortDump_92E        0xcb6
#define        rB_CfoShortDump_92E        0xcb8
#define    rA_CfoLongDump_92E            0xcba
#define        rB_CfoLongDump_92E            0xcbc
 
/*--------------------------Define Parameters-------------------------------*/
 
 
#endif /* __INC_HAL8188EPHYREG_H */