Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: r8188eu: Add files for new driver - part 22

This commit adds files include/Hal8188EFWImg_CE.h, include/Hal8188EPhyCfg.h,
include/Hal8188EPhyReg.h, include/Hal8188EPwrSeq.h, include/Hal8188ERateAdaptive.h,
include/Hal8188EReg.h, include/HalHWImg8188E_BB.h, include/HalHWImg8188E_FW.h,
include/HalHWImg8188E_MAC.h, include/HalHWImg8188E_RF.h, include/HalPhyRf.h,
include/HalPhyRf_8188e.h, include/HalPwrSeqCmd.h, and include/HalVerDef.h.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Larry Finger and committed by
Greg Kroah-Hartman
b1da99bb a7c947b7

+2221
+28
drivers/staging/rtl8188eu/include/Hal8188EFWImg_CE.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + #ifndef __INC_HAL8188E_FW_IMG_H 21 + #define __INC_HAL8188E_FW_IMG_H 22 + 23 + /* V10(1641) */ 24 + #define Rtl8188EFWImgArrayLength 13904 25 + 26 + extern const u8 Rtl8188EFwImgArray[Rtl8188EFWImgArrayLength]; 27 + 28 + #endif /* __INC_HAL8188E_FW_IMG_H */
+276
drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + #ifndef __INC_HAL8188EPHYCFG_H__ 21 + #define __INC_HAL8188EPHYCFG_H__ 22 + 23 + 24 + /*--------------------------Define Parameters-------------------------------*/ 25 + #define LOOP_LIMIT 5 26 + #define MAX_STALL_TIME 50 /* us */ 27 + #define AntennaDiversityValue 0x80 28 + #define MAX_TXPWR_IDX_NMODE_92S 63 29 + #define Reset_Cnt_Limit 3 30 + 31 + #define IQK_MAC_REG_NUM 4 32 + #define IQK_ADDA_REG_NUM 16 33 + #define IQK_BB_REG_NUM 9 34 + #define HP_THERMAL_NUM 8 35 + 36 + #define MAX_AGGR_NUM 0x07 37 + 38 + 39 + /*--------------------------Define Parameters-------------------------------*/ 40 + 41 + 42 + /*------------------------------Define structure----------------------------*/ 43 + enum sw_chnl_cmd_id { 44 + CmdID_End, 45 + CmdID_SetTxPowerLevel, 46 + CmdID_BBRegWrite10, 47 + CmdID_WritePortUlong, 48 + CmdID_WritePortUshort, 49 + CmdID_WritePortUchar, 50 + CmdID_RF_WriteReg, 51 + }; 52 + 53 + /* 1. Switch channel related */ 54 + struct sw_chnl_cmd { 55 + enum sw_chnl_cmd_id CmdID; 56 + u32 Para1; 57 + u32 Para2; 58 + u32 msDelay; 59 + }; 60 + 61 + enum hw90_block { 62 + HW90_BLOCK_MAC = 0, 63 + HW90_BLOCK_PHY0 = 1, 64 + HW90_BLOCK_PHY1 = 2, 65 + HW90_BLOCK_RF = 3, 66 + HW90_BLOCK_MAXIMUM = 4, /* Never use this */ 67 + }; 68 + 69 + enum rf_radio_path { 70 + RF_PATH_A = 0, /* Radio Path A */ 71 + RF_PATH_B = 1, /* Radio Path B */ 72 + RF_PATH_C = 2, /* Radio Path C */ 73 + RF_PATH_D = 3, /* Radio Path D */ 74 + }; 75 + 76 + #define MAX_PG_GROUP 13 77 + 78 + #define RF_PATH_MAX 2 79 + #define MAX_RF_PATH RF_PATH_MAX 80 + #define MAX_TX_COUNT 4 /* path numbers */ 81 + 82 + #define CHANNEL_MAX_NUMBER 14 /* 14 is the max chnl number */ 83 + #define MAX_CHNL_GROUP_24G 6 /* ch1~2, ch3~5, ch6~8, 84 + *ch9~11, ch12~13, CH 14 85 + * total three groups */ 86 + #define CHANNEL_GROUP_MAX_88E 6 87 + 88 + enum wireless_mode { 89 + WIRELESS_MODE_UNKNOWN = 0x00, 90 + WIRELESS_MODE_A = BIT2, 91 + WIRELESS_MODE_B = BIT0, 92 + WIRELESS_MODE_G = BIT1, 93 + WIRELESS_MODE_AUTO = BIT5, 94 + WIRELESS_MODE_N_24G = BIT3, 95 + WIRELESS_MODE_N_5G = BIT4, 96 + WIRELESS_MODE_AC = BIT6 97 + }; 98 + 99 + enum phy_rate_tx_offset_area { 100 + RA_OFFSET_LEGACY_OFDM1, 101 + RA_OFFSET_LEGACY_OFDM2, 102 + RA_OFFSET_HT_OFDM1, 103 + RA_OFFSET_HT_OFDM2, 104 + RA_OFFSET_HT_OFDM3, 105 + RA_OFFSET_HT_OFDM4, 106 + RA_OFFSET_HT_CCK, 107 + }; 108 + 109 + /* BB/RF related */ 110 + enum RF_TYPE_8190P { 111 + RF_TYPE_MIN, /* 0 */ 112 + RF_8225 = 1, /* 1 11b/g RF for verification only */ 113 + RF_8256 = 2, /* 2 11b/g/n */ 114 + RF_8258 = 3, /* 3 11a/b/g/n RF */ 115 + RF_6052 = 4, /* 4 11b/g/n RF */ 116 + /* TODO: We should remove this psudo PHY RF after we get new RF. */ 117 + RF_PSEUDO_11N = 5, /* 5, It is a temporality RF. */ 118 + }; 119 + 120 + struct bb_reg_def { 121 + u32 rfintfs; /* set software control: */ 122 + /* 0x870~0x877[8 bytes] */ 123 + u32 rfintfi; /* readback data: */ 124 + /* 0x8e0~0x8e7[8 bytes] */ 125 + u32 rfintfo; /* output data: */ 126 + /* 0x860~0x86f [16 bytes] */ 127 + u32 rfintfe; /* output enable: */ 128 + /* 0x860~0x86f [16 bytes] */ 129 + u32 rf3wireOffset; /* LSSI data: */ 130 + /* 0x840~0x84f [16 bytes] */ 131 + u32 rfLSSI_Select; /* BB Band Select: */ 132 + /* 0x878~0x87f [8 bytes] */ 133 + u32 rfTxGainStage; /* Tx gain stage: */ 134 + /* 0x80c~0x80f [4 bytes] */ 135 + u32 rfHSSIPara1; /* wire parameter control1 : */ 136 + /* 0x820~0x823,0x828~0x82b, 137 + * 0x830~0x833, 0x838~0x83b [16 bytes] */ 138 + u32 rfHSSIPara2; /* wire parameter control2 : */ 139 + /* 0x824~0x827,0x82c~0x82f, 0x834~0x837, 140 + * 0x83c~0x83f [16 bytes] */ 141 + u32 rfSwitchControl; /* Tx Rx antenna control : */ 142 + /* 0x858~0x85f [16 bytes] */ 143 + u32 rfAGCControl1; /* AGC parameter control1 : */ 144 + /* 0xc50~0xc53,0xc58~0xc5b, 0xc60~0xc63, 145 + * 0xc68~0xc6b [16 bytes] */ 146 + u32 rfAGCControl2; /* AGC parameter control2 : */ 147 + /* 0xc54~0xc57,0xc5c~0xc5f, 0xc64~0xc67, 148 + * 0xc6c~0xc6f [16 bytes] */ 149 + u32 rfRxIQImbalance; /* OFDM Rx IQ imbalance matrix : */ 150 + /* 0xc14~0xc17,0xc1c~0xc1f, 0xc24~0xc27, 151 + * 0xc2c~0xc2f [16 bytes] */ 152 + u32 rfRxAFE; /* Rx IQ DC ofset and Rx digital filter, 153 + * Rx DC notch filter : */ 154 + /* 0xc10~0xc13,0xc18~0xc1b, 0xc20~0xc23, 155 + * 0xc28~0xc2b [16 bytes] */ 156 + u32 rfTxIQImbalance; /* OFDM Tx IQ imbalance matrix */ 157 + /* 0xc80~0xc83,0xc88~0xc8b, 0xc90~0xc93, 158 + * 0xc98~0xc9b [16 bytes] */ 159 + u32 rfTxAFE; /* Tx IQ DC Offset and Tx DFIR type */ 160 + /* 0xc84~0xc87,0xc8c~0xc8f, 0xc94~0xc97, 161 + * 0xc9c~0xc9f [16 bytes] */ 162 + u32 rfLSSIReadBack; /* LSSI RF readback data SI mode */ 163 + /* 0x8a0~0x8af [16 bytes] */ 164 + u32 rfLSSIReadBackPi; /* LSSI RF readback data PI mode 0x8b8-8bc for 165 + * Path A and B */ 166 + }; 167 + 168 + struct ant_sel_ofdm { 169 + u32 r_tx_antenna:4; 170 + u32 r_ant_l:4; 171 + u32 r_ant_non_ht:4; 172 + u32 r_ant_ht1:4; 173 + u32 r_ant_ht2:4; 174 + u32 r_ant_ht_s1:4; 175 + u32 r_ant_non_ht_s1:4; 176 + u32 OFDM_TXSC:2; 177 + u32 reserved:2; 178 + }; 179 + 180 + struct ant_sel_cck { 181 + u8 r_cckrx_enable_2:2; 182 + u8 r_cckrx_enable:2; 183 + u8 r_ccktx_enable:4; 184 + }; 185 + 186 + /*------------------------------Define structure----------------------------*/ 187 + 188 + 189 + /*------------------------Export global variable----------------------------*/ 190 + /*------------------------Export global variable----------------------------*/ 191 + 192 + 193 + /*------------------------Export Marco Definition---------------------------*/ 194 + /*------------------------Export Marco Definition---------------------------*/ 195 + 196 + 197 + /*--------------------------Exported Function prototype---------------------*/ 198 + /* */ 199 + /* BB and RF register read/write */ 200 + /* */ 201 + u32 rtl8188e_PHY_QueryBBReg(struct adapter *adapter, u32 regaddr, u32 mask); 202 + void rtl8188e_PHY_SetBBReg(struct adapter *Adapter, u32 RegAddr, 203 + u32 mask, u32 data); 204 + u32 rtl8188e_PHY_QueryRFReg(struct adapter *adapter, enum rf_radio_path rfpath, 205 + u32 regaddr, u32 mask); 206 + void rtl8188e_PHY_SetRFReg(struct adapter *adapter, enum rf_radio_path rfpath, 207 + u32 regaddr, u32 mask, u32 data); 208 + 209 + /* Initialization related function */ 210 + /* MAC/BB/RF HAL config */ 211 + int PHY_MACConfig8188E(struct adapter *adapter); 212 + int PHY_BBConfig8188E(struct adapter *adapter); 213 + int PHY_RFConfig8188E(struct adapter *adapter); 214 + 215 + /* RF config */ 216 + int rtl8188e_PHY_ConfigRFWithParaFile(struct adapter *adapter, u8 *filename, 217 + enum rf_radio_path rfpath); 218 + int rtl8188e_PHY_ConfigRFWithHeaderFile(struct adapter *adapter, 219 + enum rf_radio_path rfpath); 220 + 221 + /* Read initi reg value for tx power setting. */ 222 + void rtl8192c_PHY_GetHWRegOriginalValue(struct adapter *adapter); 223 + 224 + /* BB TX Power R/W */ 225 + void PHY_GetTxPowerLevel8188E(struct adapter *adapter, u32 *powerlevel); 226 + void PHY_SetTxPowerLevel8188E(struct adapter *adapter, u8 channel); 227 + bool PHY_UpdateTxPowerDbm8188E(struct adapter *adapter, int power); 228 + 229 + void PHY_ScanOperationBackup8188E(struct adapter *Adapter, u8 Operation); 230 + 231 + /* Switch bandwidth for 8192S */ 232 + void PHY_SetBWMode8188E(struct adapter *adapter, 233 + enum ht_channel_width chnlwidth, unsigned char offset); 234 + 235 + /* channel switch related funciton */ 236 + void PHY_SwChnl8188E(struct adapter *adapter, u8 channel); 237 + /* Call after initialization */ 238 + void ChkFwCmdIoDone(struct adapter *adapter); 239 + 240 + /* BB/MAC/RF other monitor API */ 241 + void PHY_SetRFPathSwitch_8188E(struct adapter *adapter, bool main); 242 + 243 + void PHY_SwitchEphyParameter(struct adapter *adapter); 244 + 245 + void PHY_EnableHostClkReq(struct adapter *adapter); 246 + 247 + bool SetAntennaConfig92C(struct adapter *adapter, u8 defaultant); 248 + 249 + void storePwrIndexDiffRateOffset(struct adapter *adapter, u32 regaddr, 250 + u32 mask, u32 data); 251 + /*--------------------------Exported Function prototype---------------------*/ 252 + 253 + #define PHY_QueryBBReg(adapt, regaddr, mask) \ 254 + rtl8188e_PHY_QueryBBReg((adapt), (regaddr), (mask)) 255 + #define PHY_SetBBReg(adapt, regaddr, bitmask, data) \ 256 + rtl8188e_PHY_SetBBReg((adapt), (regaddr), (bitmask), (data)) 257 + #define PHY_QueryRFReg(adapt, rfpath, regaddr, bitmask) \ 258 + rtl8188e_PHY_QueryRFReg((adapt), (rfpath), (regaddr), (bitmask)) 259 + #define PHY_SetRFReg(adapt, rfpath, regaddr, bitmask, data) \ 260 + rtl8188e_PHY_SetRFReg((adapt), (rfpath), (regaddr), (bitmask), (data)) 261 + 262 + #define PHY_SetMacReg PHY_SetBBReg 263 + 264 + #define SIC_HW_SUPPORT 0 265 + 266 + #define SIC_MAX_POLL_CNT 5 267 + 268 + #define SIC_CMD_READY 0 269 + #define SIC_CMD_WRITE 1 270 + #define SIC_CMD_READ 2 271 + 272 + #define SIC_CMD_REG 0x1EB /* 1byte */ 273 + #define SIC_ADDR_REG 0x1E8 /* 1b9~1ba, 2 bytes */ 274 + #define SIC_DATA_REG 0x1EC /* 1bc~1bf */ 275 + 276 + #endif /* __INC_HAL8192CPHYCFG_H */
+1094
drivers/staging/rtl8188eu/include/Hal8188EPhyReg.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + #ifndef __INC_HAL8188EPHYREG_H__ 21 + #define __INC_HAL8188EPHYREG_H__ 22 + /*--------------------------Define Parameters-------------------------------*/ 23 + /* */ 24 + /* BB-PHY register PMAC 0x100 PHY 0x800 - 0xEFF */ 25 + /* 1. PMAC duplicate register due to connection: RF_Mode, TRxRN, NumOf L-STF */ 26 + /* 2. 0x800/0x900/0xA00/0xC00/0xD00/0xE00 */ 27 + /* 3. RF register 0x00-2E */ 28 + /* 4. Bit Mask for BB/RF register */ 29 + /* 5. Other defintion for BB/RF R/W */ 30 + /* */ 31 + 32 + 33 + /* */ 34 + /* 1. PMAC duplicate register due to connection: RF_Mode, TRxRN, NumOf L-STF */ 35 + /* 1. Page1(0x100) */ 36 + /* */ 37 + #define rPMAC_Reset 0x100 38 + #define rPMAC_TxStart 0x104 39 + #define rPMAC_TxLegacySIG 0x108 40 + #define rPMAC_TxHTSIG1 0x10c 41 + #define rPMAC_TxHTSIG2 0x110 42 + #define rPMAC_PHYDebug 0x114 43 + #define rPMAC_TxPacketNum 0x118 44 + #define rPMAC_TxIdle 0x11c 45 + #define rPMAC_TxMACHeader0 0x120 46 + #define rPMAC_TxMACHeader1 0x124 47 + #define rPMAC_TxMACHeader2 0x128 48 + #define rPMAC_TxMACHeader3 0x12c 49 + #define rPMAC_TxMACHeader4 0x130 50 + #define rPMAC_TxMACHeader5 0x134 51 + #define rPMAC_TxDataType 0x138 52 + #define rPMAC_TxRandomSeed 0x13c 53 + #define rPMAC_CCKPLCPPreamble 0x140 54 + #define rPMAC_CCKPLCPHeader 0x144 55 + #define rPMAC_CCKCRC16 0x148 56 + #define rPMAC_OFDMRxCRC32OK 0x170 57 + #define rPMAC_OFDMRxCRC32Er 0x174 58 + #define rPMAC_OFDMRxParityEr 0x178 59 + #define rPMAC_OFDMRxCRC8Er 0x17c 60 + #define rPMAC_CCKCRxRC16Er 0x180 61 + #define rPMAC_CCKCRxRC32Er 0x184 62 + #define rPMAC_CCKCRxRC32OK 0x188 63 + #define rPMAC_TxStatus 0x18c 64 + 65 + /* 2. Page2(0x200) */ 66 + /* The following two definition are only used for USB interface. */ 67 + #define RF_BB_CMD_ADDR 0x02c0 /* RF/BB r/w cmd address. */ 68 + #define RF_BB_CMD_DATA 0x02c4 /* RF/BB r/w cmd data. */ 69 + 70 + /* 3. Page8(0x800) */ 71 + #define rFPGA0_RFMOD 0x800 /* RF mode & CCK TxSC RF BW Setting */ 72 + 73 + #define rFPGA0_TxInfo 0x804 /* Status report?? */ 74 + #define rFPGA0_PSDFunction 0x808 75 + 76 + #define rFPGA0_TxGainStage 0x80c /* Set TX PWR init gain? */ 77 + 78 + #define rFPGA0_RFTiming1 0x810 /* Useless now */ 79 + #define rFPGA0_RFTiming2 0x814 80 + 81 + #define rFPGA0_XA_HSSIParameter1 0x820 /* RF 3 wire register */ 82 + #define rFPGA0_XA_HSSIParameter2 0x824 83 + #define rFPGA0_XB_HSSIParameter1 0x828 84 + #define rFPGA0_XB_HSSIParameter2 0x82c 85 + 86 + #define rFPGA0_XA_LSSIParameter 0x840 87 + #define rFPGA0_XB_LSSIParameter 0x844 88 + 89 + #define rFPGA0_RFWakeUpParameter 0x850 /* Useless now */ 90 + #define rFPGA0_RFSleepUpParameter 0x854 91 + 92 + #define rFPGA0_XAB_SwitchControl 0x858 /* RF Channel switch */ 93 + #define rFPGA0_XCD_SwitchControl 0x85c 94 + 95 + #define rFPGA0_XA_RFInterfaceOE 0x860 /* RF Channel switch */ 96 + #define rFPGA0_XB_RFInterfaceOE 0x864 97 + 98 + #define rFPGA0_XAB_RFInterfaceSW 0x870 /* RF Iface Software Control */ 99 + #define rFPGA0_XCD_RFInterfaceSW 0x874 100 + 101 + #define rFPGA0_XAB_RFParameter 0x878 /* RF Parameter */ 102 + #define rFPGA0_XCD_RFParameter 0x87c 103 + 104 + /* Crystal cap setting RF-R/W protection for parameter4?? */ 105 + #define rFPGA0_AnalogParameter1 0x880 106 + #define rFPGA0_AnalogParameter2 0x884 107 + #define rFPGA0_AnalogParameter3 0x888 108 + /* enable ad/da clock1 for dual-phy */ 109 + #define rFPGA0_AdDaClockEn 0x888 110 + #define rFPGA0_AnalogParameter4 0x88c 111 + 112 + #define rFPGA0_XA_LSSIReadBack 0x8a0 /* Tranceiver LSSI Readback */ 113 + #define rFPGA0_XB_LSSIReadBack 0x8a4 114 + #define rFPGA0_XC_LSSIReadBack 0x8a8 115 + #define rFPGA0_XD_LSSIReadBack 0x8ac 116 + 117 + #define rFPGA0_PSDReport 0x8b4 /* Useless now */ 118 + /* Transceiver A HSPI Readback */ 119 + #define TransceiverA_HSPI_Readback 0x8b8 120 + /* Transceiver B HSPI Readback */ 121 + #define TransceiverB_HSPI_Readback 0x8bc 122 + /* Useless now RF Interface Readback Value */ 123 + #define rFPGA0_XAB_RFInterfaceRB 0x8e0 124 + #define rFPGA0_XCD_RFInterfaceRB 0x8e4 /* Useless now */ 125 + 126 + /* 4. Page9(0x900) */ 127 + /* RF mode & OFDM TxSC RF BW Setting?? */ 128 + #define rFPGA1_RFMOD 0x900 129 + 130 + #define rFPGA1_TxBlock 0x904 /* Useless now */ 131 + #define rFPGA1_DebugSelect 0x908 /* Useless now */ 132 + #define rFPGA1_TxInfo 0x90c /* Useless now Status report */ 133 + 134 + /* 5. PageA(0xA00) */ 135 + /* Set Control channel to upper or lower - required only for 40MHz */ 136 + #define rCCK0_System 0xa00 137 + 138 + /* Disable init gain now Select RX path by RSSI */ 139 + #define rCCK0_AFESetting 0xa04 140 + /* Disable init gain now Init gain */ 141 + #define rCCK0_CCA 0xa08 142 + 143 + /* AGC default value, saturation level Antenna Diversity, RX AGC, LNA Threshold, 144 + * RX LNA Threshold useless now. Not the same as 90 series */ 145 + #define rCCK0_RxAGC1 0xa0c 146 + #define rCCK0_RxAGC2 0xa10 /* AGC & DAGC */ 147 + 148 + #define rCCK0_RxHP 0xa14 149 + 150 + /* Timing recovery & Channel estimation threshold */ 151 + #define rCCK0_DSPParameter1 0xa18 152 + #define rCCK0_DSPParameter2 0xa1c /* SQ threshold */ 153 + 154 + #define rCCK0_TxFilter1 0xa20 155 + #define rCCK0_TxFilter2 0xa24 156 + #define rCCK0_DebugPort 0xa28 /* debug port and Tx filter3 */ 157 + #define rCCK0_FalseAlarmReport 0xa2c /* 0xa2d useless now */ 158 + #define rCCK0_TRSSIReport 0xa50 159 + #define rCCK0_RxReport 0xa54 /* 0xa57 */ 160 + #define rCCK0_FACounterLower 0xa5c /* 0xa5b */ 161 + #define rCCK0_FACounterUpper 0xa58 /* 0xa5c */ 162 + 163 + /* */ 164 + /* PageB(0xB00) */ 165 + /* */ 166 + #define rPdp_AntA 0xb00 167 + #define rPdp_AntA_4 0xb04 168 + #define rConfig_Pmpd_AntA 0xb28 169 + #define rConfig_AntA 0xb68 170 + #define rConfig_AntB 0xb6c 171 + #define rPdp_AntB 0xb70 172 + #define rPdp_AntB_4 0xb74 173 + #define rConfig_Pmpd_AntB 0xb98 174 + #define rAPK 0xbd8 175 + 176 + /* */ 177 + /* 6. PageC(0xC00) */ 178 + /* */ 179 + #define rOFDM0_LSTF 0xc00 180 + 181 + #define rOFDM0_TRxPathEnable 0xc04 182 + #define rOFDM0_TRMuxPar 0xc08 183 + #define rOFDM0_TRSWIsolation 0xc0c 184 + 185 + /* RxIQ DC offset, Rx digital filter, DC notch filter */ 186 + #define rOFDM0_XARxAFE 0xc10 187 + #define rOFDM0_XARxIQImbalance 0xc14 /* RxIQ imblance matrix */ 188 + #define rOFDM0_XBRxAFE 0xc18 189 + #define rOFDM0_XBRxIQImbalance 0xc1c 190 + #define rOFDM0_XCRxAFE 0xc20 191 + #define rOFDM0_XCRxIQImbalance 0xc24 192 + #define rOFDM0_XDRxAFE 0xc28 193 + #define rOFDM0_XDRxIQImbalance 0xc2c 194 + 195 + #define rOFDM0_RxDetector1 0xc30 /*PD,BW & SBD DM tune init gain*/ 196 + #define rOFDM0_RxDetector2 0xc34 /* SBD & Fame Sync. */ 197 + #define rOFDM0_RxDetector3 0xc38 /* Frame Sync. */ 198 + #define rOFDM0_RxDetector4 0xc3c /* PD, SBD, Frame Sync & Short-GI */ 199 + 200 + #define rOFDM0_RxDSP 0xc40 /* Rx Sync Path */ 201 + #define rOFDM0_CFOandDAGC 0xc44 /* CFO & DAGC */ 202 + #define rOFDM0_CCADropThreshold 0xc48 /* CCA Drop threshold */ 203 + #define rOFDM0_ECCAThreshold 0xc4c /* energy CCA */ 204 + 205 + #define rOFDM0_XAAGCCore1 0xc50 /* DIG */ 206 + #define rOFDM0_XAAGCCore2 0xc54 207 + #define rOFDM0_XBAGCCore1 0xc58 208 + #define rOFDM0_XBAGCCore2 0xc5c 209 + #define rOFDM0_XCAGCCore1 0xc60 210 + #define rOFDM0_XCAGCCore2 0xc64 211 + #define rOFDM0_XDAGCCore1 0xc68 212 + #define rOFDM0_XDAGCCore2 0xc6c 213 + 214 + #define rOFDM0_AGCParameter1 0xc70 215 + #define rOFDM0_AGCParameter2 0xc74 216 + #define rOFDM0_AGCRSSITable 0xc78 217 + #define rOFDM0_HTSTFAGC 0xc7c 218 + 219 + #define rOFDM0_XATxIQImbalance 0xc80 /* TX PWR TRACK and DIG */ 220 + #define rOFDM0_XATxAFE 0xc84 221 + #define rOFDM0_XBTxIQImbalance 0xc88 222 + #define rOFDM0_XBTxAFE 0xc8c 223 + #define rOFDM0_XCTxIQImbalance 0xc90 224 + #define rOFDM0_XCTxAFE 0xc94 225 + #define rOFDM0_XDTxIQImbalance 0xc98 226 + #define rOFDM0_XDTxAFE 0xc9c 227 + 228 + #define rOFDM0_RxIQExtAnta 0xca0 229 + #define rOFDM0_TxCoeff1 0xca4 230 + #define rOFDM0_TxCoeff2 0xca8 231 + #define rOFDM0_TxCoeff3 0xcac 232 + #define rOFDM0_TxCoeff4 0xcb0 233 + #define rOFDM0_TxCoeff5 0xcb4 234 + #define rOFDM0_TxCoeff6 0xcb8 235 + #define rOFDM0_RxHPParameter 0xce0 236 + #define rOFDM0_TxPseudoNoiseWgt 0xce4 237 + #define rOFDM0_FrameSync 0xcf0 238 + #define rOFDM0_DFSReport 0xcf4 239 + 240 + 241 + /* */ 242 + /* 7. PageD(0xD00) */ 243 + /* */ 244 + #define rOFDM1_LSTF 0xd00 245 + #define rOFDM1_TRxPathEnable 0xd04 246 + 247 + #define rOFDM1_CFO 0xd08 /* No setting now */ 248 + #define rOFDM1_CSI1 0xd10 249 + #define rOFDM1_SBD 0xd14 250 + #define rOFDM1_CSI2 0xd18 251 + #define rOFDM1_CFOTracking 0xd2c 252 + #define rOFDM1_TRxMesaure1 0xd34 253 + #define rOFDM1_IntfDet 0xd3c 254 + #define rOFDM1_PseudoNoiseStateAB 0xd50 255 + #define rOFDM1_PseudoNoiseStateCD 0xd54 256 + #define rOFDM1_RxPseudoNoiseWgt 0xd58 257 + 258 + #define rOFDM_PHYCounter1 0xda0 /* cca, parity fail */ 259 + #define rOFDM_PHYCounter2 0xda4 /* rate illegal, crc8 fail */ 260 + #define rOFDM_PHYCounter3 0xda8 /* MCS not support */ 261 + 262 + #define rOFDM_ShortCFOAB 0xdac /* No setting now */ 263 + #define rOFDM_ShortCFOCD 0xdb0 264 + #define rOFDM_LongCFOAB 0xdb4 265 + #define rOFDM_LongCFOCD 0xdb8 266 + #define rOFDM_TailCFOAB 0xdbc 267 + #define rOFDM_TailCFOCD 0xdc0 268 + #define rOFDM_PWMeasure1 0xdc4 269 + #define rOFDM_PWMeasure2 0xdc8 270 + #define rOFDM_BWReport 0xdcc 271 + #define rOFDM_AGCReport 0xdd0 272 + #define rOFDM_RxSNR 0xdd4 273 + #define rOFDM_RxEVMCSI 0xdd8 274 + #define rOFDM_SIGReport 0xddc 275 + 276 + 277 + /* */ 278 + /* 8. PageE(0xE00) */ 279 + /* */ 280 + #define rTxAGC_A_Rate18_06 0xe00 281 + #define rTxAGC_A_Rate54_24 0xe04 282 + #define rTxAGC_A_CCK1_Mcs32 0xe08 283 + #define rTxAGC_A_Mcs03_Mcs00 0xe10 284 + #define rTxAGC_A_Mcs07_Mcs04 0xe14 285 + #define rTxAGC_A_Mcs11_Mcs08 0xe18 286 + #define rTxAGC_A_Mcs15_Mcs12 0xe1c 287 + 288 + #define rTxAGC_B_Rate18_06 0x830 289 + #define rTxAGC_B_Rate54_24 0x834 290 + #define rTxAGC_B_CCK1_55_Mcs32 0x838 291 + #define rTxAGC_B_Mcs03_Mcs00 0x83c 292 + #define rTxAGC_B_Mcs07_Mcs04 0x848 293 + #define rTxAGC_B_Mcs11_Mcs08 0x84c 294 + #define rTxAGC_B_Mcs15_Mcs12 0x868 295 + #define rTxAGC_B_CCK11_A_CCK2_11 0x86c 296 + 297 + #define rFPGA0_IQK 0xe28 298 + #define rTx_IQK_Tone_A 0xe30 299 + #define rRx_IQK_Tone_A 0xe34 300 + #define rTx_IQK_PI_A 0xe38 301 + #define rRx_IQK_PI_A 0xe3c 302 + 303 + #define rTx_IQK 0xe40 304 + #define rRx_IQK 0xe44 305 + #define rIQK_AGC_Pts 0xe48 306 + #define rIQK_AGC_Rsp 0xe4c 307 + #define rTx_IQK_Tone_B 0xe50 308 + #define rRx_IQK_Tone_B 0xe54 309 + #define rTx_IQK_PI_B 0xe58 310 + #define rRx_IQK_PI_B 0xe5c 311 + #define rIQK_AGC_Cont 0xe60 312 + 313 + #define rBlue_Tooth 0xe6c 314 + #define rRx_Wait_CCA 0xe70 315 + #define rTx_CCK_RFON 0xe74 316 + #define rTx_CCK_BBON 0xe78 317 + #define rTx_OFDM_RFON 0xe7c 318 + #define rTx_OFDM_BBON 0xe80 319 + #define rTx_To_Rx 0xe84 320 + #define rTx_To_Tx 0xe88 321 + #define rRx_CCK 0xe8c 322 + 323 + #define rTx_Power_Before_IQK_A 0xe94 324 + #define rTx_Power_After_IQK_A 0xe9c 325 + 326 + #define rRx_Power_Before_IQK_A 0xea0 327 + #define rRx_Power_Before_IQK_A_2 0xea4 328 + #define rRx_Power_After_IQK_A 0xea8 329 + #define rRx_Power_After_IQK_A_2 0xeac 330 + 331 + #define rTx_Power_Before_IQK_B 0xeb4 332 + #define rTx_Power_After_IQK_B 0xebc 333 + 334 + #define rRx_Power_Before_IQK_B 0xec0 335 + #define rRx_Power_Before_IQK_B_2 0xec4 336 + #define rRx_Power_After_IQK_B 0xec8 337 + #define rRx_Power_After_IQK_B_2 0xecc 338 + 339 + #define rRx_OFDM 0xed0 340 + #define rRx_Wait_RIFS 0xed4 341 + #define rRx_TO_Rx 0xed8 342 + #define rStandby 0xedc 343 + #define rSleep 0xee0 344 + #define rPMPD_ANAEN 0xeec 345 + 346 + /* */ 347 + /* 7. RF Register 0x00-0x2E (RF 8256) */ 348 + /* RF-0222D 0x00-3F */ 349 + /* */ 350 + /* Zebra1 */ 351 + #define rZebra1_HSSIEnable 0x0 /* Useless now */ 352 + #define rZebra1_TRxEnable1 0x1 353 + #define rZebra1_TRxEnable2 0x2 354 + #define rZebra1_AGC 0x4 355 + #define rZebra1_ChargePump 0x5 356 + #define rZebra1_Channel 0x7 /* RF channel switch */ 357 + 358 + /* endif */ 359 + #define rZebra1_TxGain 0x8 /* Useless now */ 360 + #define rZebra1_TxLPF 0x9 361 + #define rZebra1_RxLPF 0xb 362 + #define rZebra1_RxHPFCorner 0xc 363 + 364 + /* Zebra4 */ 365 + #define rGlobalCtrl 0 /* Useless now */ 366 + #define rRTL8256_TxLPF 19 367 + #define rRTL8256_RxLPF 11 368 + 369 + /* RTL8258 */ 370 + #define rRTL8258_TxLPF 0x11 /* Useless now */ 371 + #define rRTL8258_RxLPF 0x13 372 + #define rRTL8258_RSSILPF 0xa 373 + 374 + /* */ 375 + /* RL6052 Register definition */ 376 + /* */ 377 + #define RF_AC 0x00 /* */ 378 + 379 + #define RF_IQADJ_G1 0x01 /* */ 380 + #define RF_IQADJ_G2 0x02 /* */ 381 + 382 + #define RF_POW_TRSW 0x05 /* */ 383 + 384 + #define RF_GAIN_RX 0x06 /* */ 385 + #define RF_GAIN_TX 0x07 /* */ 386 + 387 + #define RF_TXM_IDAC 0x08 /* */ 388 + #define RF_IPA_G 0x09 /* */ 389 + #define RF_TXBIAS_G 0x0A 390 + #define RF_TXPA_AG 0x0B 391 + #define RF_IPA_A 0x0C /* */ 392 + #define RF_TXBIAS_A 0x0D 393 + #define RF_BS_PA_APSET_G9_G11 0x0E 394 + #define RF_BS_IQGEN 0x0F /* */ 395 + 396 + #define RF_MODE1 0x10 /* */ 397 + #define RF_MODE2 0x11 /* */ 398 + 399 + #define RF_RX_AGC_HP 0x12 /* */ 400 + #define RF_TX_AGC 0x13 /* */ 401 + #define RF_BIAS 0x14 /* */ 402 + #define RF_IPA 0x15 /* */ 403 + #define RF_TXBIAS 0x16 404 + #define RF_POW_ABILITY 0x17 /* */ 405 + #define RF_CHNLBW 0x18 /* RF channel and BW switch */ 406 + #define RF_TOP 0x19 /* */ 407 + 408 + #define RF_RX_G1 0x1A /* */ 409 + #define RF_RX_G2 0x1B /* */ 410 + 411 + #define RF_RX_BB2 0x1C /* */ 412 + #define RF_RX_BB1 0x1D /* */ 413 + 414 + #define RF_RCK1 0x1E /* */ 415 + #define RF_RCK2 0x1F /* */ 416 + 417 + #define RF_TX_G1 0x20 /* */ 418 + #define RF_TX_G2 0x21 /* */ 419 + #define RF_TX_G3 0x22 /* */ 420 + 421 + #define RF_TX_BB1 0x23 /* */ 422 + 423 + #define RF_T_METER_92D 0x42 /* */ 424 + #define RF_T_METER_88E 0x42 /* */ 425 + #define RF_T_METER 0x24 /* */ 426 + 427 + #define RF_SYN_G1 0x25 /* RF TX Power control */ 428 + #define RF_SYN_G2 0x26 /* RF TX Power control */ 429 + #define RF_SYN_G3 0x27 /* RF TX Power control */ 430 + #define RF_SYN_G4 0x28 /* RF TX Power control */ 431 + #define RF_SYN_G5 0x29 /* RF TX Power control */ 432 + #define RF_SYN_G6 0x2A /* RF TX Power control */ 433 + #define RF_SYN_G7 0x2B /* RF TX Power control */ 434 + #define RF_SYN_G8 0x2C /* RF TX Power control */ 435 + 436 + #define RF_RCK_OS 0x30 /* RF TX PA control */ 437 + #define RF_TXPA_G1 0x31 /* RF TX PA control */ 438 + #define RF_TXPA_G2 0x32 /* RF TX PA control */ 439 + #define RF_TXPA_G3 0x33 /* RF TX PA control */ 440 + #define RF_TX_BIAS_A 0x35 441 + #define RF_TX_BIAS_D 0x36 442 + #define RF_LOBF_9 0x38 443 + #define RF_RXRF_A3 0x3C /* */ 444 + #define RF_TRSW 0x3F 445 + 446 + #define RF_TXRF_A2 0x41 447 + #define RF_TXPA_G4 0x46 448 + #define RF_TXPA_A4 0x4B 449 + #define RF_0x52 0x52 450 + #define RF_WE_LUT 0xEF 451 + 452 + 453 + /* */ 454 + /* Bit Mask */ 455 + /* */ 456 + /* 1. Page1(0x100) */ 457 + #define bBBResetB 0x100 /* Useless now? */ 458 + #define bGlobalResetB 0x200 459 + #define bOFDMTxStart 0x4 460 + #define bCCKTxStart 0x8 461 + #define bCRC32Debug 0x100 462 + #define bPMACLoopback 0x10 463 + #define bTxLSIG 0xffffff 464 + #define bOFDMTxRate 0xf 465 + #define bOFDMTxReserved 0x10 466 + #define bOFDMTxLength 0x1ffe0 467 + #define bOFDMTxParity 0x20000 468 + #define bTxHTSIG1 0xffffff 469 + #define bTxHTMCSRate 0x7f 470 + #define bTxHTBW 0x80 471 + #define bTxHTLength 0xffff00 472 + #define bTxHTSIG2 0xffffff 473 + #define bTxHTSmoothing 0x1 474 + #define bTxHTSounding 0x2 475 + #define bTxHTReserved 0x4 476 + #define bTxHTAggreation 0x8 477 + #define bTxHTSTBC 0x30 478 + #define bTxHTAdvanceCoding 0x40 479 + #define bTxHTShortGI 0x80 480 + #define bTxHTNumberHT_LTF 0x300 481 + #define bTxHTCRC8 0x3fc00 482 + #define bCounterReset 0x10000 483 + #define bNumOfOFDMTx 0xffff 484 + #define bNumOfCCKTx 0xffff0000 485 + #define bTxIdleInterval 0xffff 486 + #define bOFDMService 0xffff0000 487 + #define bTxMACHeader 0xffffffff 488 + #define bTxDataInit 0xff 489 + #define bTxHTMode 0x100 490 + #define bTxDataType 0x30000 491 + #define bTxRandomSeed 0xffffffff 492 + #define bCCKTxPreamble 0x1 493 + #define bCCKTxSFD 0xffff0000 494 + #define bCCKTxSIG 0xff 495 + #define bCCKTxService 0xff00 496 + #define bCCKLengthExt 0x8000 497 + #define bCCKTxLength 0xffff0000 498 + #define bCCKTxCRC16 0xffff 499 + #define bCCKTxStatus 0x1 500 + #define bOFDMTxStatus 0x2 501 + 502 + #define IS_BB_REG_OFFSET_92S(_Offset) \ 503 + ((_Offset >= 0x800) && (_Offset <= 0xfff)) 504 + 505 + /* 2. Page8(0x800) */ 506 + #define bRFMOD 0x1 /* Reg 0x800 rFPGA0_RFMOD */ 507 + #define bJapanMode 0x2 508 + #define bCCKTxSC 0x30 509 + #define bCCKEn 0x1000000 510 + #define bOFDMEn 0x2000000 511 + 512 + #define bOFDMRxADCPhase 0x10000 /* Useless now */ 513 + #define bOFDMTxDACPhase 0x40000 514 + #define bXATxAGC 0x3f 515 + 516 + #define bAntennaSelect 0x0300 517 + 518 + #define bXBTxAGC 0xf00 /* Reg 80c rFPGA0_TxGainStage */ 519 + #define bXCTxAGC 0xf000 520 + #define bXDTxAGC 0xf0000 521 + 522 + #define bPAStart 0xf0000000 /* Useless now */ 523 + #define bTRStart 0x00f00000 524 + #define bRFStart 0x0000f000 525 + #define bBBStart 0x000000f0 526 + #define bBBCCKStart 0x0000000f 527 + #define bPAEnd 0xf /* Reg0x814 */ 528 + #define bTREnd 0x0f000000 529 + #define bRFEnd 0x000f0000 530 + #define bCCAMask 0x000000f0 /* T2R */ 531 + #define bR2RCCAMask 0x00000f00 532 + #define bHSSI_R2TDelay 0xf8000000 533 + #define bHSSI_T2RDelay 0xf80000 534 + #define bContTxHSSI 0x400 /* change gain at continue Tx */ 535 + #define bIGFromCCK 0x200 536 + #define bAGCAddress 0x3f 537 + #define bRxHPTx 0x7000 538 + #define bRxHPT2R 0x38000 539 + #define bRxHPCCKIni 0xc0000 540 + #define bAGCTxCode 0xc00000 541 + #define bAGCRxCode 0x300000 542 + 543 + /* Reg 0x820~84f rFPGA0_XA_HSSIParameter1 */ 544 + #define b3WireDataLength 0x800 545 + #define b3WireAddressLength 0x400 546 + 547 + #define b3WireRFPowerDown 0x1 /* Useless now */ 548 + #define b5GPAPEPolarity 0x40000000 549 + #define b2GPAPEPolarity 0x80000000 550 + #define bRFSW_TxDefaultAnt 0x3 551 + #define bRFSW_TxOptionAnt 0x30 552 + #define bRFSW_RxDefaultAnt 0x300 553 + #define bRFSW_RxOptionAnt 0x3000 554 + #define bRFSI_3WireData 0x1 555 + #define bRFSI_3WireClock 0x2 556 + #define bRFSI_3WireLoad 0x4 557 + #define bRFSI_3WireRW 0x8 558 + #define bRFSI_3Wire 0xf 559 + 560 + #define bRFSI_RFENV 0x10 /* Reg 0x870 rFPGA0_XAB_RFInterfaceSW */ 561 + 562 + #define bRFSI_TRSW 0x20 /* Useless now */ 563 + #define bRFSI_TRSWB 0x40 564 + #define bRFSI_ANTSW 0x100 565 + #define bRFSI_ANTSWB 0x200 566 + #define bRFSI_PAPE 0x400 567 + #define bRFSI_PAPE5G 0x800 568 + #define bBandSelect 0x1 569 + #define bHTSIG2_GI 0x80 570 + #define bHTSIG2_Smoothing 0x01 571 + #define bHTSIG2_Sounding 0x02 572 + #define bHTSIG2_Aggreaton 0x08 573 + #define bHTSIG2_STBC 0x30 574 + #define bHTSIG2_AdvCoding 0x40 575 + #define bHTSIG2_NumOfHTLTF 0x300 576 + #define bHTSIG2_CRC8 0x3fc 577 + #define bHTSIG1_MCS 0x7f 578 + #define bHTSIG1_BandWidth 0x80 579 + #define bHTSIG1_HTLength 0xffff 580 + #define bLSIG_Rate 0xf 581 + #define bLSIG_Reserved 0x10 582 + #define bLSIG_Length 0x1fffe 583 + #define bLSIG_Parity 0x20 584 + #define bCCKRxPhase 0x4 585 + 586 + #define bLSSIReadAddress 0x7f800000 /* T65 RF */ 587 + 588 + #define bLSSIReadEdge 0x80000000 /* LSSI "Read" edge signal */ 589 + 590 + #define bLSSIReadBackData 0xfffff /* T65 RF */ 591 + 592 + #define bLSSIReadOKFlag 0x1000 /* Useless now */ 593 + #define bCCKSampleRate 0x8 /* 0: 44MHz, 1:88MHz */ 594 + #define bRegulator0Standby 0x1 595 + #define bRegulatorPLLStandby 0x2 596 + #define bRegulator1Standby 0x4 597 + #define bPLLPowerUp 0x8 598 + #define bDPLLPowerUp 0x10 599 + #define bDA10PowerUp 0x20 600 + #define bAD7PowerUp 0x200 601 + #define bDA6PowerUp 0x2000 602 + #define bXtalPowerUp 0x4000 603 + #define b40MDClkPowerUP 0x8000 604 + #define bDA6DebugMode 0x20000 605 + #define bDA6Swing 0x380000 606 + 607 + /* Reg 0x880 rFPGA0_AnalogParameter1 20/40 CCK support switch 40/80 BB MHZ */ 608 + #define bADClkPhase 0x4000000 609 + 610 + #define b80MClkDelay 0x18000000 /* Useless */ 611 + #define bAFEWatchDogEnable 0x20000000 612 + 613 + /* Reg 0x884 rFPGA0_AnalogParameter2 Crystal cap */ 614 + #define bXtalCap01 0xc0000000 615 + #define bXtalCap23 0x3 616 + #define bXtalCap92x 0x0f000000 617 + #define bXtalCap 0x0f000000 618 + 619 + #define bIntDifClkEnable 0x400 /* Useless */ 620 + #define bExtSigClkEnable 0x800 621 + #define bBandgapMbiasPowerUp 0x10000 622 + #define bAD11SHGain 0xc0000 623 + #define bAD11InputRange 0x700000 624 + #define bAD11OPCurrent 0x3800000 625 + #define bIPathLoopback 0x4000000 626 + #define bQPathLoopback 0x8000000 627 + #define bAFELoopback 0x10000000 628 + #define bDA10Swing 0x7e0 629 + #define bDA10Reverse 0x800 630 + #define bDAClkSource 0x1000 631 + #define bAD7InputRange 0x6000 632 + #define bAD7Gain 0x38000 633 + #define bAD7OutputCMMode 0x40000 634 + #define bAD7InputCMMode 0x380000 635 + #define bAD7Current 0xc00000 636 + #define bRegulatorAdjust 0x7000000 637 + #define bAD11PowerUpAtTx 0x1 638 + #define bDA10PSAtTx 0x10 639 + #define bAD11PowerUpAtRx 0x100 640 + #define bDA10PSAtRx 0x1000 641 + #define bCCKRxAGCFormat 0x200 642 + #define bPSDFFTSamplepPoint 0xc000 643 + #define bPSDAverageNum 0x3000 644 + #define bIQPathControl 0xc00 645 + #define bPSDFreq 0x3ff 646 + #define bPSDAntennaPath 0x30 647 + #define bPSDIQSwitch 0x40 648 + #define bPSDRxTrigger 0x400000 649 + #define bPSDTxTrigger 0x80000000 650 + #define bPSDSineToneScale 0x7f000000 651 + #define bPSDReport 0xffff 652 + 653 + /* 3. Page9(0x900) */ 654 + #define bOFDMTxSC 0x30000000 /* Useless */ 655 + #define bCCKTxOn 0x1 656 + #define bOFDMTxOn 0x2 657 + #define bDebugPage 0xfff /* reset debug page and HWord, LWord */ 658 + #define bDebugItem 0xff /* reset debug page and LWord */ 659 + #define bAntL 0x10 660 + #define bAntNonHT 0x100 661 + #define bAntHT1 0x1000 662 + #define bAntHT2 0x10000 663 + #define bAntHT1S1 0x100000 664 + #define bAntNonHTS1 0x1000000 665 + 666 + /* 4. PageA(0xA00) */ 667 + #define bCCKBBMode 0x3 /* Useless */ 668 + #define bCCKTxPowerSaving 0x80 669 + #define bCCKRxPowerSaving 0x40 670 + 671 + #define bCCKSideBand 0x10 /* Reg 0xa00 rCCK0_System 20/40 */ 672 + 673 + #define bCCKScramble 0x8 /* Useless */ 674 + #define bCCKAntDiversity 0x8000 675 + #define bCCKCarrierRecovery 0x4000 676 + #define bCCKTxRate 0x3000 677 + #define bCCKDCCancel 0x0800 678 + #define bCCKISICancel 0x0400 679 + #define bCCKMatchFilter 0x0200 680 + #define bCCKEqualizer 0x0100 681 + #define bCCKPreambleDetect 0x800000 682 + #define bCCKFastFalseCCA 0x400000 683 + #define bCCKChEstStart 0x300000 684 + #define bCCKCCACount 0x080000 685 + #define bCCKcs_lim 0x070000 686 + #define bCCKBistMode 0x80000000 687 + #define bCCKCCAMask 0x40000000 688 + #define bCCKTxDACPhase 0x4 689 + #define bCCKRxADCPhase 0x20000000 /* r_rx_clk */ 690 + #define bCCKr_cp_mode0 0x0100 691 + #define bCCKTxDCOffset 0xf0 692 + #define bCCKRxDCOffset 0xf 693 + #define bCCKCCAMode 0xc000 694 + #define bCCKFalseCS_lim 0x3f00 695 + #define bCCKCS_ratio 0xc00000 696 + #define bCCKCorgBit_sel 0x300000 697 + #define bCCKPD_lim 0x0f0000 698 + #define bCCKNewCCA 0x80000000 699 + #define bCCKRxHPofIG 0x8000 700 + #define bCCKRxIG 0x7f00 701 + #define bCCKLNAPolarity 0x800000 702 + #define bCCKRx1stGain 0x7f0000 703 + #define bCCKRFExtend 0x20000000 /* CCK Rx Iinital gain polarity */ 704 + #define bCCKRxAGCSatLevel 0x1f000000 705 + #define bCCKRxAGCSatCount 0xe0 706 + #define bCCKRxRFSettle 0x1f /* AGCsamp_dly */ 707 + #define bCCKFixedRxAGC 0x8000 708 + #define bCCKAntennaPolarity 0x2000 709 + #define bCCKTxFilterType 0x0c00 710 + #define bCCKRxAGCReportType 0x0300 711 + #define bCCKRxDAGCEn 0x80000000 712 + #define bCCKRxDAGCPeriod 0x20000000 713 + #define bCCKRxDAGCSatLevel 0x1f000000 714 + #define bCCKTimingRecovery 0x800000 715 + #define bCCKTxC0 0x3f0000 716 + #define bCCKTxC1 0x3f000000 717 + #define bCCKTxC2 0x3f 718 + #define bCCKTxC3 0x3f00 719 + #define bCCKTxC4 0x3f0000 720 + #define bCCKTxC5 0x3f000000 721 + #define bCCKTxC6 0x3f 722 + #define bCCKTxC7 0x3f00 723 + #define bCCKDebugPort 0xff0000 724 + #define bCCKDACDebug 0x0f000000 725 + #define bCCKFalseAlarmEnable 0x8000 726 + #define bCCKFalseAlarmRead 0x4000 727 + #define bCCKTRSSI 0x7f 728 + #define bCCKRxAGCReport 0xfe 729 + #define bCCKRxReport_AntSel 0x80000000 730 + #define bCCKRxReport_MFOff 0x40000000 731 + #define bCCKRxRxReport_SQLoss 0x20000000 732 + #define bCCKRxReport_Pktloss 0x10000000 733 + #define bCCKRxReport_Lockedbit 0x08000000 734 + #define bCCKRxReport_RateError 0x04000000 735 + #define bCCKRxReport_RxRate 0x03000000 736 + #define bCCKRxFACounterLower 0xff 737 + #define bCCKRxFACounterUpper 0xff000000 738 + #define bCCKRxHPAGCStart 0xe000 739 + #define bCCKRxHPAGCFinal 0x1c00 740 + #define bCCKRxFalseAlarmEnable 0x8000 741 + #define bCCKFACounterFreeze 0x4000 742 + #define bCCKTxPathSel 0x10000000 743 + #define bCCKDefaultRxPath 0xc000000 744 + #define bCCKOptionRxPath 0x3000000 745 + 746 + /* 5. PageC(0xC00) */ 747 + #define bNumOfSTF 0x3 /* Useless */ 748 + #define bShift_L 0xc0 749 + #define bGI_TH 0xc 750 + #define bRxPathA 0x1 751 + #define bRxPathB 0x2 752 + #define bRxPathC 0x4 753 + #define bRxPathD 0x8 754 + #define bTxPathA 0x1 755 + #define bTxPathB 0x2 756 + #define bTxPathC 0x4 757 + #define bTxPathD 0x8 758 + #define bTRSSIFreq 0x200 759 + #define bADCBackoff 0x3000 760 + #define bDFIRBackoff 0xc000 761 + #define bTRSSILatchPhase 0x10000 762 + #define bRxIDCOffset 0xff 763 + #define bRxQDCOffset 0xff00 764 + #define bRxDFIRMode 0x1800000 765 + #define bRxDCNFType 0xe000000 766 + #define bRXIQImb_A 0x3ff 767 + #define bRXIQImb_B 0xfc00 768 + #define bRXIQImb_C 0x3f0000 769 + #define bRXIQImb_D 0xffc00000 770 + #define bDC_dc_Notch 0x60000 771 + #define bRxNBINotch 0x1f000000 772 + #define bPD_TH 0xf 773 + #define bPD_TH_Opt2 0xc000 774 + #define bPWED_TH 0x700 775 + #define bIfMF_Win_L 0x800 776 + #define bPD_Option 0x1000 777 + #define bMF_Win_L 0xe000 778 + #define bBW_Search_L 0x30000 779 + #define bwin_enh_L 0xc0000 780 + #define bBW_TH 0x700000 781 + #define bED_TH2 0x3800000 782 + #define bBW_option 0x4000000 783 + #define bRatio_TH 0x18000000 784 + #define bWindow_L 0xe0000000 785 + #define bSBD_Option 0x1 786 + #define bFrame_TH 0x1c 787 + #define bFS_Option 0x60 788 + #define bDC_Slope_check 0x80 789 + #define bFGuard_Counter_DC_L 0xe00 790 + #define bFrame_Weight_Short 0x7000 791 + #define bSub_Tune 0xe00000 792 + #define bFrame_DC_Length 0xe000000 793 + #define bSBD_start_offset 0x30000000 794 + #define bFrame_TH_2 0x7 795 + #define bFrame_GI2_TH 0x38 796 + #define bGI2_Sync_en 0x40 797 + #define bSarch_Short_Early 0x300 798 + #define bSarch_Short_Late 0xc00 799 + #define bSarch_GI2_Late 0x70000 800 + #define bCFOAntSum 0x1 801 + #define bCFOAcc 0x2 802 + #define bCFOStartOffset 0xc 803 + #define bCFOLookBack 0x70 804 + #define bCFOSumWeight 0x80 805 + #define bDAGCEnable 0x10000 806 + #define bTXIQImb_A 0x3ff 807 + #define bTXIQImb_B 0xfc00 808 + #define bTXIQImb_C 0x3f0000 809 + #define bTXIQImb_D 0xffc00000 810 + #define bTxIDCOffset 0xff 811 + #define bTxQDCOffset 0xff00 812 + #define bTxDFIRMode 0x10000 813 + #define bTxPesudoNoiseOn 0x4000000 814 + #define bTxPesudoNoise_A 0xff 815 + #define bTxPesudoNoise_B 0xff00 816 + #define bTxPesudoNoise_C 0xff0000 817 + #define bTxPesudoNoise_D 0xff000000 818 + #define bCCADropOption 0x20000 819 + #define bCCADropThres 0xfff00000 820 + #define bEDCCA_H 0xf 821 + #define bEDCCA_L 0xf0 822 + #define bLambda_ED 0x300 823 + #define bRxInitialGain 0x7f 824 + #define bRxAntDivEn 0x80 825 + #define bRxAGCAddressForLNA 0x7f00 826 + #define bRxHighPowerFlow 0x8000 827 + #define bRxAGCFreezeThres 0xc0000 828 + #define bRxFreezeStep_AGC1 0x300000 829 + #define bRxFreezeStep_AGC2 0xc00000 830 + #define bRxFreezeStep_AGC3 0x3000000 831 + #define bRxFreezeStep_AGC0 0xc000000 832 + #define bRxRssi_Cmp_En 0x10000000 833 + #define bRxQuickAGCEn 0x20000000 834 + #define bRxAGCFreezeThresMode 0x40000000 835 + #define bRxOverFlowCheckType 0x80000000 836 + #define bRxAGCShift 0x7f 837 + #define bTRSW_Tri_Only 0x80 838 + #define bPowerThres 0x300 839 + #define bRxAGCEn 0x1 840 + #define bRxAGCTogetherEn 0x2 841 + #define bRxAGCMin 0x4 842 + #define bRxHP_Ini 0x7 843 + #define bRxHP_TRLNA 0x70 844 + #define bRxHP_RSSI 0x700 845 + #define bRxHP_BBP1 0x7000 846 + #define bRxHP_BBP2 0x70000 847 + #define bRxHP_BBP3 0x700000 848 + #define bRSSI_H 0x7f0000 /* threshold for high power */ 849 + #define bRSSI_Gen 0x7f000000 /* threshold for ant diversity */ 850 + #define bRxSettle_TRSW 0x7 851 + #define bRxSettle_LNA 0x38 852 + #define bRxSettle_RSSI 0x1c0 853 + #define bRxSettle_BBP 0xe00 854 + #define bRxSettle_RxHP 0x7000 855 + #define bRxSettle_AntSW_RSSI 0x38000 856 + #define bRxSettle_AntSW 0xc0000 857 + #define bRxProcessTime_DAGC 0x300000 858 + #define bRxSettle_HSSI 0x400000 859 + #define bRxProcessTime_BBPPW 0x800000 860 + #define bRxAntennaPowerShift 0x3000000 861 + #define bRSSITableSelect 0xc000000 862 + #define bRxHP_Final 0x7000000 863 + #define bRxHTSettle_BBP 0x7 864 + #define bRxHTSettle_HSSI 0x8 865 + #define bRxHTSettle_RxHP 0x70 866 + #define bRxHTSettle_BBPPW 0x80 867 + #define bRxHTSettle_Idle 0x300 868 + #define bRxHTSettle_Reserved 0x1c00 869 + #define bRxHTRxHPEn 0x8000 870 + #define bRxHTAGCFreezeThres 0x30000 871 + #define bRxHTAGCTogetherEn 0x40000 872 + #define bRxHTAGCMin 0x80000 873 + #define bRxHTAGCEn 0x100000 874 + #define bRxHTDAGCEn 0x200000 875 + #define bRxHTRxHP_BBP 0x1c00000 876 + #define bRxHTRxHP_Final 0xe0000000 877 + #define bRxPWRatioTH 0x3 878 + #define bRxPWRatioEn 0x4 879 + #define bRxMFHold 0x3800 880 + #define bRxPD_Delay_TH1 0x38 881 + #define bRxPD_Delay_TH2 0x1c0 882 + #define bRxPD_DC_COUNT_MAX 0x600 883 + #define bRxPD_Delay_TH 0x8000 884 + #define bRxProcess_Delay 0xf0000 885 + #define bRxSearchrange_GI2_Early 0x700000 886 + #define bRxFrame_Guard_Counter_L 0x3800000 887 + #define bRxSGI_Guard_L 0xc000000 888 + #define bRxSGI_Search_L 0x30000000 889 + #define bRxSGI_TH 0xc0000000 890 + #define bDFSCnt0 0xff 891 + #define bDFSCnt1 0xff00 892 + #define bDFSFlag 0xf0000 893 + #define bMFWeightSum 0x300000 894 + #define bMinIdxTH 0x7f000000 895 + #define bDAFormat 0x40000 896 + #define bTxChEmuEnable 0x01000000 897 + #define bTRSWIsolation_A 0x7f 898 + #define bTRSWIsolation_B 0x7f00 899 + #define bTRSWIsolation_C 0x7f0000 900 + #define bTRSWIsolation_D 0x7f000000 901 + #define bExtLNAGain 0x7c00 902 + 903 + /* 6. PageE(0xE00) */ 904 + #define bSTBCEn 0x4 /* Useless */ 905 + #define bAntennaMapping 0x10 906 + #define bNss 0x20 907 + #define bCFOAntSumD 0x200 908 + #define bPHYCounterReset 0x8000000 909 + #define bCFOReportGet 0x4000000 910 + #define bOFDMContinueTx 0x10000000 911 + #define bOFDMSingleCarrier 0x20000000 912 + #define bOFDMSingleTone 0x40000000 913 + #define bHTDetect 0x100 914 + #define bCFOEn 0x10000 915 + #define bCFOValue 0xfff00000 916 + #define bSigTone_Re 0x3f 917 + #define bSigTone_Im 0x7f00 918 + #define bCounter_CCA 0xffff 919 + #define bCounter_ParityFail 0xffff0000 920 + #define bCounter_RateIllegal 0xffff 921 + #define bCounter_CRC8Fail 0xffff0000 922 + #define bCounter_MCSNoSupport 0xffff 923 + #define bCounter_FastSync 0xffff 924 + #define bShortCFO 0xfff 925 + #define bShortCFOTLength 12 /* total */ 926 + #define bShortCFOFLength 11 /* fraction */ 927 + #define bLongCFO 0x7ff 928 + #define bLongCFOTLength 11 929 + #define bLongCFOFLength 11 930 + #define bTailCFO 0x1fff 931 + #define bTailCFOTLength 13 932 + #define bTailCFOFLength 12 933 + #define bmax_en_pwdB 0xffff 934 + #define bCC_power_dB 0xffff0000 935 + #define bnoise_pwdB 0xffff 936 + #define bPowerMeasTLength 10 937 + #define bPowerMeasFLength 3 938 + #define bRx_HT_BW 0x1 939 + #define bRxSC 0x6 940 + #define bRx_HT 0x8 941 + #define bNB_intf_det_on 0x1 942 + #define bIntf_win_len_cfg 0x30 943 + #define bNB_Intf_TH_cfg 0x1c0 944 + #define bRFGain 0x3f 945 + #define bTableSel 0x40 946 + #define bTRSW 0x80 947 + #define bRxSNR_A 0xff 948 + #define bRxSNR_B 0xff00 949 + #define bRxSNR_C 0xff0000 950 + #define bRxSNR_D 0xff000000 951 + #define bSNREVMTLength 8 952 + #define bSNREVMFLength 1 953 + #define bCSI1st 0xff 954 + #define bCSI2nd 0xff00 955 + #define bRxEVM1st 0xff0000 956 + #define bRxEVM2nd 0xff000000 957 + #define bSIGEVM 0xff 958 + #define bPWDB 0xff00 959 + #define bSGIEN 0x10000 960 + 961 + #define bSFactorQAM1 0xf /* Useless */ 962 + #define bSFactorQAM2 0xf0 963 + #define bSFactorQAM3 0xf00 964 + #define bSFactorQAM4 0xf000 965 + #define bSFactorQAM5 0xf0000 966 + #define bSFactorQAM6 0xf0000 967 + #define bSFactorQAM7 0xf00000 968 + #define bSFactorQAM8 0xf000000 969 + #define bSFactorQAM9 0xf0000000 970 + #define bCSIScheme 0x100000 971 + 972 + #define bNoiseLvlTopSet 0x3 /* Useless */ 973 + #define bChSmooth 0x4 974 + #define bChSmoothCfg1 0x38 975 + #define bChSmoothCfg2 0x1c0 976 + #define bChSmoothCfg3 0xe00 977 + #define bChSmoothCfg4 0x7000 978 + #define bMRCMode 0x800000 979 + #define bTHEVMCfg 0x7000000 980 + 981 + #define bLoopFitType 0x1 /* Useless */ 982 + #define bUpdCFO 0x40 983 + #define bUpdCFOOffData 0x80 984 + #define bAdvUpdCFO 0x100 985 + #define bAdvTimeCtrl 0x800 986 + #define bUpdClko 0x1000 987 + #define bFC 0x6000 988 + #define bTrackingMode 0x8000 989 + #define bPhCmpEnable 0x10000 990 + #define bUpdClkoLTF 0x20000 991 + #define bComChCFO 0x40000 992 + #define bCSIEstiMode 0x80000 993 + #define bAdvUpdEqz 0x100000 994 + #define bUChCfg 0x7000000 995 + #define bUpdEqz 0x8000000 996 + 997 + /* Rx Pseduo noise */ 998 + #define bRxPesudoNoiseOn 0x20000000 /* Useless */ 999 + #define bRxPesudoNoise_A 0xff 1000 + #define bRxPesudoNoise_B 0xff00 1001 + #define bRxPesudoNoise_C 0xff0000 1002 + #define bRxPesudoNoise_D 0xff000000 1003 + #define bPesudoNoiseState_A 0xffff 1004 + #define bPesudoNoiseState_B 0xffff0000 1005 + #define bPesudoNoiseState_C 0xffff 1006 + #define bPesudoNoiseState_D 0xffff0000 1007 + 1008 + /* 7. RF Register */ 1009 + /* Zebra1 */ 1010 + #define bZebra1_HSSIEnable 0x8 /* Useless */ 1011 + #define bZebra1_TRxControl 0xc00 1012 + #define bZebra1_TRxGainSetting 0x07f 1013 + #define bZebra1_RxCorner 0xc00 1014 + #define bZebra1_TxChargePump 0x38 1015 + #define bZebra1_RxChargePump 0x7 1016 + #define bZebra1_ChannelNum 0xf80 1017 + #define bZebra1_TxLPFBW 0x400 1018 + #define bZebra1_RxLPFBW 0x600 1019 + 1020 + /* Zebra4 */ 1021 + #define bRTL8256RegModeCtrl1 0x100 /* Useless */ 1022 + #define bRTL8256RegModeCtrl0 0x40 1023 + #define bRTL8256_TxLPFBW 0x18 1024 + #define bRTL8256_RxLPFBW 0x600 1025 + 1026 + /* RTL8258 */ 1027 + #define bRTL8258_TxLPFBW 0xc /* Useless */ 1028 + #define bRTL8258_RxLPFBW 0xc00 1029 + #define bRTL8258_RSSILPFBW 0xc0 1030 + 1031 + 1032 + /* */ 1033 + /* Other Definition */ 1034 + /* */ 1035 + 1036 + /* byte endable for sb_write */ 1037 + #define bByte0 0x1 /* Useless */ 1038 + #define bByte1 0x2 1039 + #define bByte2 0x4 1040 + #define bByte3 0x8 1041 + #define bWord0 0x3 1042 + #define bWord1 0xc 1043 + #define bDWord 0xf 1044 + 1045 + /* for PutRegsetting & GetRegSetting BitMask */ 1046 + #define bMaskByte0 0xff /* Reg 0xc50 rOFDM0_XAAGCCore~0xC6f */ 1047 + #define bMaskByte1 0xff00 1048 + #define bMaskByte2 0xff0000 1049 + #define bMaskByte3 0xff000000 1050 + #define bMaskHWord 0xffff0000 1051 + #define bMaskLWord 0x0000ffff 1052 + #define bMaskDWord 0xffffffff 1053 + #define bMask12Bits 0xfff 1054 + #define bMaskH4Bits 0xf0000000 1055 + #define bMaskOFDM_D 0xffc00000 1056 + #define bMaskCCK 0x3f3f3f3f 1057 + 1058 + /* for PutRFRegsetting & GetRFRegSetting BitMask */ 1059 + #define bRFRegOffsetMask 0xfffff 1060 + 1061 + #define bEnable 0x1 /* Useless */ 1062 + #define bDisable 0x0 1063 + 1064 + #define LeftAntenna 0x0 /* Useless */ 1065 + #define RightAntenna 0x1 1066 + 1067 + #define tCheckTxStatus 500 /* 500ms Useless */ 1068 + #define tUpdateRxCounter 100 /* 100ms */ 1069 + 1070 + #define rateCCK 0 /* Useless */ 1071 + #define rateOFDM 1 1072 + #define rateHT 2 1073 + 1074 + /* define Register-End */ 1075 + #define bPMAC_End 0x1ff /* Useless */ 1076 + #define bFPGAPHY0_End 0x8ff 1077 + #define bFPGAPHY1_End 0x9ff 1078 + #define bCCKPHY0_End 0xaff 1079 + #define bOFDMPHY0_End 0xcff 1080 + #define bOFDMPHY1_End 0xdff 1081 + 1082 + #define bPMACControl 0x0 /* Useless */ 1083 + #define bWMACControl 0x1 1084 + #define bWNICControl 0x2 1085 + 1086 + #define PathA 0x0 /* Useless */ 1087 + #define PathB 0x1 1088 + #define PathC 0x2 1089 + #define PathD 0x3 1090 + 1091 + /*--------------------------Define Parameters-------------------------------*/ 1092 + 1093 + 1094 + #endif
+176
drivers/staging/rtl8188eu/include/Hal8188EPwrSeq.h
··· 1 + 2 + /****************************************************************************** 3 + * 4 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 5 + * 6 + * This program is free software; you can redistribute it and/or modify it 7 + * under the terms of version 2 of the GNU General Public License as 8 + * published by the Free Software Foundation. 9 + * 10 + * This program is distributed in the hope that it will be useful, but WITHOUT 11 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 + * more details. 14 + * 15 + * You should have received a copy of the GNU General Public License along with 16 + * this program; if not, write to the Free Software Foundation, Inc., 17 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 18 + * 19 + * 20 + ******************************************************************************/ 21 + 22 + #ifndef __HAL8188EPWRSEQ_H__ 23 + #define __HAL8188EPWRSEQ_H__ 24 + 25 + #include "HalPwrSeqCmd.h" 26 + 27 + /* 28 + Check document WM-20110607-Paul-RTL8188E_Power_Architecture-R02.vsd 29 + There are 6 HW Power States: 30 + 0: POFF--Power Off 31 + 1: PDN--Power Down 32 + 2: CARDEMU--Card Emulation 33 + 3: ACT--Active Mode 34 + 4: LPS--Low Power State 35 + 5: SUS--Suspend 36 + 37 + The transision from different states are defined below 38 + TRANS_CARDEMU_TO_ACT 39 + TRANS_ACT_TO_CARDEMU 40 + TRANS_CARDEMU_TO_SUS 41 + TRANS_SUS_TO_CARDEMU 42 + TRANS_CARDEMU_TO_PDN 43 + TRANS_ACT_TO_LPS 44 + TRANS_LPS_TO_ACT 45 + 46 + TRANS_END 47 + 48 + PWR SEQ Version: rtl8188E_PwrSeq_V09.h 49 + */ 50 + #define RTL8188E_TRANS_CARDEMU_TO_ACT_STEPS 10 51 + #define RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS 10 52 + #define RTL8188E_TRANS_CARDEMU_TO_SUS_STEPS 10 53 + #define RTL8188E_TRANS_SUS_TO_CARDEMU_STEPS 10 54 + #define RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS 10 55 + #define RTL8188E_TRANS_PDN_TO_CARDEMU_STEPS 10 56 + #define RTL8188E_TRANS_ACT_TO_LPS_STEPS 15 57 + #define RTL8188E_TRANS_LPS_TO_ACT_STEPS 15 58 + #define RTL8188E_TRANS_END_STEPS 1 59 + 60 + 61 + #define RTL8188E_TRANS_CARDEMU_TO_ACT \ 62 + /* format */ \ 63 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 64 + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, BIT1},/* wait till 0x04[17] = 1 power ready*/ \ 65 + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0|BIT1, 0}, /* 0x02[1:0] = 0 reset BB*/ \ 66 + {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7}, /*0x24[23] = 2b'01 schmit trigger */ \ 67 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0}, /* 0x04[15] = 0 disable HWPDN (control by DRV)*/\ 68 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4|BIT3, 0}, /*0x04[12:11] = 2b'00 disable WL suspend*/ \ 69 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0}, /*0x04[8] = 1 polling until return 0*/ \ 70 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT0, 0}, /*wait till 0x04[8] = 0*/ \ 71 + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0}, /*LDO normal mode*/ \ 72 + {0x0074, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, /*SDIO Driving*/ \ 73 + 74 + #define RTL8188E_TRANS_ACT_TO_CARDEMU \ 75 + /* format */ \ 76 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 77 + {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0},/*0x1F[7:0] = 0 turn off RF*/ \ 78 + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, /*LDO Sleep mode*/ \ 79 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1}, /*0x04[9] = 1 turn off MAC by HW state machine*/ \ 80 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, 0}, /*wait till 0x04[9] = 0 polling until return 0 to disable*/ \ 81 + 82 + #define RTL8188E_TRANS_CARDEMU_TO_SUS \ 83 + /* format */ \ 84 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 85 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3}, /*0x04[12:11] = 2b'01enable WL suspend*/ \ 86 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3|BIT4}, /*0x04[12:11] = 2b'11enable WL suspend for PCIe*/ \ 87 + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, BIT7}, /* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */ \ 88 + {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0}, /*Clear SIC_EN register 0x40[12] = 1'b0 */ \ 89 + {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, /*Set USB suspend enable local register 0xfe10[4]=1 */ \ 90 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0}, /*Set SDIO suspend local register*/ \ 91 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0}, /*wait power state to suspend*/ 92 + 93 + #define RTL8188E_TRANS_SUS_TO_CARDEMU \ 94 + /* format */ \ 95 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 96 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0}, /*Set SDIO suspend local register*/ \ 97 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1}, /*wait power state to suspend*/\ 98 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0}, /*0x04[12:11] = 2b'01enable WL suspend*/ 99 + 100 + #define RTL8188E_TRANS_CARDEMU_TO_CARDDIS \ 101 + /* format */ \ 102 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 103 + {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7}, /*0x24[23] = 2b'01 schmit trigger */ \ 104 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3}, /*0x04[12:11] = 2b'01 enable WL suspend*/ \ 105 + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, /* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */ \ 106 + {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0}, /*Clear SIC_EN register 0x40[12] = 1'b0 */ \ 107 + {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4}, /*Set USB suspend enable local register 0xfe10[4]=1 */ \ 108 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0}, /*Set SDIO suspend local register*/ \ 109 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0}, /*wait power state to suspend*/ 110 + 111 + #define RTL8188E_TRANS_CARDDIS_TO_CARDEMU \ 112 + /* format */ \ 113 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 114 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0}, /*Set SDIO suspend local register*/ \ 115 + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1}, /*wait power state to suspend*/\ 116 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0}, /*0x04[12:11] = 2b'01enable WL suspend*/ 117 + 118 + #define RTL8188E_TRANS_CARDEMU_TO_PDN \ 119 + /* format */ \ 120 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 121 + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0},/* 0x04[16] = 0*/\ 122 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7},/* 0x04[15] = 1*/ 123 + 124 + #define RTL8188E_TRANS_PDN_TO_CARDEMU \ 125 + /* format */ \ 126 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here */ \ 127 + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0},/* 0x04[15] = 0*/ 128 + 129 + /* This is used by driver for LPSRadioOff Procedure, not for FW LPS Step */ 130 + #define RTL8188E_TRANS_ACT_TO_LPS \ 131 + /* format */ \ 132 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here */ \ 133 + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F},/*Tx Pause*/ \ 134 + {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ 135 + {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ 136 + {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ 137 + {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ 138 + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0},/*CCK and OFDM are disabled,and clock are gated*/ \ 139 + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US},/*Delay 1us*/ \ 140 + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F},/*Reset MAC TRX*/ \ 141 + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0},/*check if removed later*/ \ 142 + {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, BIT5},/*Respond TxOK to scheduler*/ \ 143 + 144 + 145 + #define RTL8188E_TRANS_LPS_TO_ACT \ 146 + /* format */ \ 147 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here */ \ 148 + {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84}, /*SDIO RPWM*/\ 149 + {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, /*USB RPWM*/\ 150 + {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, /*PCIe RPWM*/\ 151 + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, /*Delay*/\ 152 + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0}, /*. 0x08[4] = 0 switch TSF to 40M*/\ 153 + {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT7, 0}, /*Polling 0x109[7]=0 TSF in 40M*/\ 154 + {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6|BIT7, 0}, /*. 0x29[7:6] = 2b'00 enable BB clock*/\ 155 + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1}, /*. 0x101[1] = 1*/\ 156 + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, /*. 0x100[7:0] = 0xFF enable WMAC TRX*/\ 157 + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0}, /*. 0x02[1:0] = 2b'11 enable BB macro*/\ 158 + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, /*. 0x522 = 0*/ 159 + 160 + #define RTL8188E_TRANS_END \ 161 + /* format */ \ 162 + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, comments here*/ \ 163 + {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,0, PWR_CMD_END, 0, 0}, /* */ 164 + 165 + 166 + extern struct wl_pwr_cfg rtl8188E_power_on_flow[RTL8188E_TRANS_CARDEMU_TO_ACT_STEPS+RTL8188E_TRANS_END_STEPS]; 167 + extern struct wl_pwr_cfg rtl8188E_radio_off_flow[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS+RTL8188E_TRANS_END_STEPS]; 168 + extern struct wl_pwr_cfg rtl8188E_card_disable_flow[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS+RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS+RTL8188E_TRANS_END_STEPS]; 169 + extern struct wl_pwr_cfg rtl8188E_card_enable_flow[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS+RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS+RTL8188E_TRANS_END_STEPS]; 170 + extern struct wl_pwr_cfg rtl8188E_suspend_flow[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS+RTL8188E_TRANS_CARDEMU_TO_SUS_STEPS+RTL8188E_TRANS_END_STEPS]; 171 + extern struct wl_pwr_cfg rtl8188E_resume_flow[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS+RTL8188E_TRANS_CARDEMU_TO_SUS_STEPS+RTL8188E_TRANS_END_STEPS]; 172 + extern struct wl_pwr_cfg rtl8188E_hwpdn_flow[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS+RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS+RTL8188E_TRANS_END_STEPS]; 173 + extern struct wl_pwr_cfg rtl8188E_enter_lps_flow[RTL8188E_TRANS_ACT_TO_LPS_STEPS+RTL8188E_TRANS_END_STEPS]; 174 + extern struct wl_pwr_cfg rtl8188E_leave_lps_flow[RTL8188E_TRANS_LPS_TO_ACT_STEPS+RTL8188E_TRANS_END_STEPS]; 175 + 176 + #endif /* __HAL8188EPWRSEQ_H__ */
+75
drivers/staging/rtl8188eu/include/Hal8188ERateAdaptive.h
··· 1 + #ifndef __INC_RA_H 2 + #define __INC_RA_H 3 + /*++ 4 + Copyright (c) Realtek Semiconductor Corp. All rights reserved. 5 + 6 + Module Name: 7 + RateAdaptive.h 8 + 9 + Abstract: 10 + Prototype of RA and related data structure. 11 + 12 + Major Change History: 13 + When Who What 14 + ---------- --------------- ------------------------------- 15 + 2011-08-12 Page Create. 16 + --*/ 17 + 18 + /* Rate adaptive define */ 19 + #define PERENTRY 23 20 + #define RETRYSIZE 5 21 + #define RATESIZE 28 22 + #define TX_RPT2_ITEM_SIZE 8 23 + 24 + /* */ 25 + /* TX report 2 format in Rx desc */ 26 + /* */ 27 + #define GET_TX_RPT2_DESC_PKT_LEN_88E(__pRxStatusDesc) \ 28 + LE_BITS_TO_4BYTE(__pRxStatusDesc, 0, 9) 29 + #define GET_TX_RPT2_DESC_MACID_VALID_1_88E(__pRxStatusDesc) \ 30 + LE_BITS_TO_4BYTE(__pRxStatusDesc+16, 0, 32) 31 + #define GET_TX_RPT2_DESC_MACID_VALID_2_88E(__pRxStatusDesc) \ 32 + LE_BITS_TO_4BYTE(__pRxStatusDesc+20, 0, 32) 33 + 34 + #define GET_TX_REPORT_TYPE1_RERTY_0(__pAddr) \ 35 + LE_BITS_TO_4BYTE(__pAddr, 0, 16) 36 + #define GET_TX_REPORT_TYPE1_RERTY_1(__pAddr) \ 37 + LE_BITS_TO_1BYTE(__pAddr+2, 0, 8) 38 + #define GET_TX_REPORT_TYPE1_RERTY_2(__pAddr) \ 39 + LE_BITS_TO_1BYTE(__pAddr+3, 0, 8) 40 + #define GET_TX_REPORT_TYPE1_RERTY_3(__pAddr) \ 41 + LE_BITS_TO_1BYTE(__pAddr+4, 0, 8) 42 + #define GET_TX_REPORT_TYPE1_RERTY_4(__pAddr) \ 43 + LE_BITS_TO_1BYTE(__pAddr+4+1, 0, 8) 44 + #define GET_TX_REPORT_TYPE1_DROP_0(__pAddr) \ 45 + LE_BITS_TO_1BYTE(__pAddr+4+2, 0, 8) 46 + #define GET_TX_REPORT_TYPE1_DROP_1(__pAddr) \ 47 + LE_BITS_TO_1BYTE(__pAddr+4+3, 0, 8) 48 + 49 + /* End rate adaptive define */ 50 + 51 + void ODM_RASupport_Init(struct odm_dm_struct *dm_odm); 52 + 53 + int ODM_RAInfo_Init_all(struct odm_dm_struct *dm_odm); 54 + 55 + int ODM_RAInfo_Init(struct odm_dm_struct *dm_odm, u8 MacID); 56 + 57 + u8 ODM_RA_GetShortGI_8188E(struct odm_dm_struct *dm_odm, u8 MacID); 58 + 59 + u8 ODM_RA_GetDecisionRate_8188E(struct odm_dm_struct *dm_odm, u8 MacID); 60 + 61 + u8 ODM_RA_GetHwPwrStatus_8188E(struct odm_dm_struct *dm_odm, u8 MacID); 62 + void ODM_RA_UpdateRateInfo_8188E(struct odm_dm_struct *dm_odm, u8 MacID, 63 + u8 RateID, u32 RateMask, 64 + u8 SGIEnable); 65 + 66 + void ODM_RA_SetRSSI_8188E(struct odm_dm_struct *dm_odm, u8 macid, 67 + u8 rssi); 68 + 69 + void ODM_RA_TxRPT2Handle_8188E(struct odm_dm_struct *dm_odm, 70 + u8 *txrpt_buf, u16 txrpt_len, 71 + u32 validentry0, u32 validentry1); 72 + 73 + void ODM_RA_Set_TxRPT_Time(struct odm_dm_struct *dm_odm, u16 minRptTime); 74 + 75 + #endif
+46
drivers/staging/rtl8188eu/include/Hal8188EReg.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + /* */ 21 + /* File Name: Hal8188EReg.h */ 22 + /* */ 23 + /* Description: */ 24 + /* */ 25 + /* This file is for RTL8188E register definition. */ 26 + /* */ 27 + /* */ 28 + /* */ 29 + #ifndef __HAL_8188E_REG_H__ 30 + #define __HAL_8188E_REG_H__ 31 + 32 + /* */ 33 + /* Register Definition */ 34 + /* */ 35 + #define TRX_ANTDIV_PATH 0x860 36 + #define RX_ANTDIV_PATH 0xb2c 37 + #define ODM_R_A_AGC_CORE1_8188E 0xc50 38 + 39 + 40 + /* */ 41 + /* Bitmap Definition */ 42 + /* */ 43 + #define BIT_FA_RESET_8188E BIT0 44 + 45 + 46 + #endif
+44
drivers/staging/rtl8188eu/include/HalHWImg8188E_BB.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + 21 + #ifndef __INC_BB_8188E_HW_IMG_H 22 + #define __INC_BB_8188E_HW_IMG_H 23 + 24 + /* static bool CheckCondition(const u32 Condition, const u32 Hex); */ 25 + 26 + /****************************************************************************** 27 + * AGC_TAB_1T.TXT 28 + ******************************************************************************/ 29 + 30 + enum HAL_STATUS ODM_ReadAndConfig_AGC_TAB_1T_8188E(struct odm_dm_struct *odm); 31 + 32 + /****************************************************************************** 33 + * PHY_REG_1T.TXT 34 + ******************************************************************************/ 35 + 36 + enum HAL_STATUS ODM_ReadAndConfig_PHY_REG_1T_8188E(struct odm_dm_struct *odm); 37 + 38 + /****************************************************************************** 39 + * PHY_REG_PG.TXT 40 + ******************************************************************************/ 41 + 42 + void ODM_ReadAndConfig_PHY_REG_PG_8188E(struct odm_dm_struct *dm_odm); 43 + 44 + #endif
+34
drivers/staging/rtl8188eu/include/HalHWImg8188E_FW.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + 21 + #ifndef __INC_FW_8188E_HW_IMG_H 22 + #define __INC_FW_8188E_HW_IMG_H 23 + 24 + 25 + /****************************************************************************** 26 + * FW_AP.TXT 27 + ******************************************************************************/ 28 + /****************************************************************************** 29 + * FW_WoWLAN.TXT 30 + ******************************************************************************/ 31 + #define ArrayLength_8188E_FW_WoWLAN 15764 32 + extern const u8 Array_8188E_FW_WoWLAN[ArrayLength_8188E_FW_WoWLAN]; 33 + 34 + #endif
+30
drivers/staging/rtl8188eu/include/HalHWImg8188E_MAC.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + 21 + #ifndef __INC_MAC_8188E_HW_IMG_H 22 + #define __INC_MAC_8188E_HW_IMG_H 23 + 24 + /****************************************************************************** 25 + * MAC_REG.TXT 26 + ******************************************************************************/ 27 + 28 + enum HAL_STATUS ODM_ReadAndConfig_MAC_REG_8188E(struct odm_dm_struct *pDM_Odm); 29 + 30 + #endif /* end of HWIMG_SUPPORT */
+30
drivers/staging/rtl8188eu/include/HalHWImg8188E_RF.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + 21 + #ifndef __INC_RF_8188E_HW_IMG_H 22 + #define __INC_RF_8188E_HW_IMG_H 23 + 24 + /****************************************************************************** 25 + * RadioA_1T.TXT 26 + ******************************************************************************/ 27 + 28 + enum HAL_STATUS ODM_ReadAndConfig_RadioA_1T_8188E(struct odm_dm_struct *odm); 29 + 30 + #endif /* end of HWIMG_SUPPORT */
+30
drivers/staging/rtl8188eu/include/HalPhyRf.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + 21 + #ifndef __HAL_PHY_RF_H__ 22 + #define __HAL_PHY_RF_H__ 23 + 24 + #define ODM_TARGET_CHNL_NUM_2G_5G 59 25 + 26 + void ODM_ResetIQKResult(struct odm_dm_struct *pDM_Odm); 27 + 28 + u8 ODM_GetRightChnlPlaceforIQK(u8 chnl); 29 + 30 + #endif /* #ifndef __HAL_PHY_RF_H__ */
+63
drivers/staging/rtl8188eu/include/HalPhyRf_8188e.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + 21 + #ifndef __HAL_PHY_RF_8188E_H__ 22 + #define __HAL_PHY_RF_8188E_H__ 23 + 24 + /*--------------------------Define Parameters-------------------------------*/ 25 + #define IQK_DELAY_TIME_88E 10 /* ms */ 26 + #define index_mapping_NUM_88E 15 27 + #define AVG_THERMAL_NUM_88E 4 28 + 29 + 30 + void ODM_TxPwrTrackAdjust88E(struct odm_dm_struct *pDM_Odm, 31 + u8 Type, /* 0 = OFDM, 1 = CCK */ 32 + u8 *pDirection,/* 1 = +(incr) 2 = -(decr) */ 33 + u32 *pOutWriteVal); /* Tx tracking CCK/OFDM BB 34 + * swing index adjust */ 35 + 36 + 37 + void odm_TXPowerTrackingCallback_ThermalMeter_8188E(struct adapter *Adapter); 38 + 39 + 40 + /* 1 7. IQK */ 41 + 42 + void PHY_IQCalibrate_8188E(struct adapter *Adapter, bool ReCovery); 43 + 44 + /* LC calibrate */ 45 + void PHY_LCCalibrate_8188E(struct adapter *pAdapter); 46 + 47 + /* AP calibrate */ 48 + void PHY_APCalibrate_8188E(struct adapter *pAdapter, s8 delta); 49 + 50 + void PHY_DigitalPredistortion_8188E(struct adapter *pAdapter); 51 + 52 + void _PHY_SaveADDARegisters(struct adapter *pAdapter, u32 *ADDAReg, 53 + u32 *ADDABackup, u32 RegisterNum); 54 + 55 + void _PHY_PathADDAOn(struct adapter *pAdapter, u32 *ADDAReg, 56 + bool isPathAOn, bool is2T); 57 + 58 + void _PHY_MACSettingCalibration(struct adapter *pAdapter, u32 *MACReg, 59 + u32 *MACBackup); 60 + 61 + void _PHY_PathAStandBy(struct adapter *pAdapter); 62 + 63 + #endif /* #ifndef __HAL_PHY_RF_8188E_H__ */
+128
drivers/staging/rtl8188eu/include/HalPwrSeqCmd.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + #ifndef __HALPWRSEQCMD_H__ 21 + #define __HALPWRSEQCMD_H__ 22 + 23 + #include <drv_types.h> 24 + 25 + /*---------------------------------------------*/ 26 + /* 3 The value of cmd: 4 bits */ 27 + /*---------------------------------------------*/ 28 + #define PWR_CMD_READ 0x00 29 + /* offset: the read register offset */ 30 + /* msk: the mask of the read value */ 31 + /* value: N/A, left by 0 */ 32 + /* note: dirver shall implement this function by read & msk */ 33 + 34 + #define PWR_CMD_WRITE 0x01 35 + /* offset: the read register offset */ 36 + /* msk: the mask of the write bits */ 37 + /* value: write value */ 38 + /* note: driver shall implement this cmd by read & msk after write */ 39 + 40 + #define PWR_CMD_POLLING 0x02 41 + /* offset: the read register offset */ 42 + /* msk: the mask of the polled value */ 43 + /* value: the value to be polled, masked by the msd field. */ 44 + /* note: driver shall implement this cmd by */ 45 + /* do{ */ 46 + /* if ( (Read(offset) & msk) == (value & msk) ) */ 47 + /* break; */ 48 + /* } while (not timeout); */ 49 + 50 + #define PWR_CMD_DELAY 0x03 51 + /* offset: the value to delay */ 52 + /* msk: N/A */ 53 + /* value: the unit of delay, 0: us, 1: ms */ 54 + 55 + #define PWR_CMD_END 0x04 56 + /* offset: N/A */ 57 + /* msk: N/A */ 58 + /* value: N/A */ 59 + 60 + /*---------------------------------------------*/ 61 + /* 3 The value of base: 4 bits */ 62 + /*---------------------------------------------*/ 63 + /* define the base address of each block */ 64 + #define PWR_BASEADDR_MAC 0x00 65 + #define PWR_BASEADDR_USB 0x01 66 + #define PWR_BASEADDR_PCIE 0x02 67 + #define PWR_BASEADDR_SDIO 0x03 68 + 69 + /*---------------------------------------------*/ 70 + /* 3 The value of interface_msk: 4 bits */ 71 + /*---------------------------------------------*/ 72 + #define PWR_INTF_SDIO_MSK BIT(0) 73 + #define PWR_INTF_USB_MSK BIT(1) 74 + #define PWR_INTF_PCI_MSK BIT(2) 75 + #define PWR_INTF_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3)) 76 + 77 + /*---------------------------------------------*/ 78 + /* 3 The value of fab_msk: 4 bits */ 79 + /*---------------------------------------------*/ 80 + #define PWR_FAB_TSMC_MSK BIT(0) 81 + #define PWR_FAB_UMC_MSK BIT(1) 82 + #define PWR_FAB_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3)) 83 + 84 + /*---------------------------------------------*/ 85 + /* 3 The value of cut_msk: 8 bits */ 86 + /*---------------------------------------------*/ 87 + #define PWR_CUT_TESTCHIP_MSK BIT(0) 88 + #define PWR_CUT_A_MSK BIT(1) 89 + #define PWR_CUT_B_MSK BIT(2) 90 + #define PWR_CUT_C_MSK BIT(3) 91 + #define PWR_CUT_D_MSK BIT(4) 92 + #define PWR_CUT_E_MSK BIT(5) 93 + #define PWR_CUT_F_MSK BIT(6) 94 + #define PWR_CUT_G_MSK BIT(7) 95 + #define PWR_CUT_ALL_MSK 0xFF 96 + 97 + 98 + enum pwrseq_cmd_delat_unit { 99 + PWRSEQ_DELAY_US, 100 + PWRSEQ_DELAY_MS, 101 + }; 102 + 103 + struct wl_pwr_cfg { 104 + u16 offset; 105 + u8 cut_msk; 106 + u8 fab_msk:4; 107 + u8 interface_msk:4; 108 + u8 base:4; 109 + u8 cmd:4; 110 + u8 msk; 111 + u8 value; 112 + }; 113 + 114 + #define GET_PWR_CFG_OFFSET(__PWR_CMD) __PWR_CMD.offset 115 + #define GET_PWR_CFG_CUT_MASK(__PWR_CMD) __PWR_CMD.cut_msk 116 + #define GET_PWR_CFG_FAB_MASK(__PWR_CMD) __PWR_CMD.fab_msk 117 + #define GET_PWR_CFG_INTF_MASK(__PWR_CMD) __PWR_CMD.interface_msk 118 + #define GET_PWR_CFG_BASE(__PWR_CMD) __PWR_CMD.base 119 + #define GET_PWR_CFG_CMD(__PWR_CMD) __PWR_CMD.cmd 120 + #define GET_PWR_CFG_MASK(__PWR_CMD) __PWR_CMD.msk 121 + #define GET_PWR_CFG_VALUE(__PWR_CMD) __PWR_CMD.value 122 + 123 + 124 + /* Prototype of protected function. */ 125 + u8 HalPwrSeqCmdParsing(struct adapter *padapter, u8 CutVersion, u8 FabVersion, 126 + u8 InterfaceType, struct wl_pwr_cfg PwrCfgCmd[]); 127 + 128 + #endif
+167
drivers/staging/rtl8188eu/include/HalVerDef.h
··· 1 + /****************************************************************************** 2 + * 3 + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 + * 5 + * This program is free software; you can redistribute it and/or modify it 6 + * under the terms of version 2 of the GNU General Public License as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, but WITHOUT 10 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 + * more details. 13 + * 14 + * You should have received a copy of the GNU General Public License along with 15 + * this program; if not, write to the Free Software Foundation, Inc., 16 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17 + * 18 + * 19 + ******************************************************************************/ 20 + #ifndef __HAL_VERSION_DEF_H__ 21 + #define __HAL_VERSION_DEF_H__ 22 + 23 + enum HAL_IC_TYPE { 24 + CHIP_8192S = 0, 25 + CHIP_8188C = 1, 26 + CHIP_8192C = 2, 27 + CHIP_8192D = 3, 28 + CHIP_8723A = 4, 29 + CHIP_8188E = 5, 30 + CHIP_8881A = 6, 31 + CHIP_8812A = 7, 32 + CHIP_8821A = 8, 33 + CHIP_8723B = 9, 34 + CHIP_8192E = 10, 35 + }; 36 + 37 + enum HAL_CHIP_TYPE { 38 + TEST_CHIP = 0, 39 + NORMAL_CHIP = 1, 40 + FPGA = 2, 41 + }; 42 + 43 + enum HAL_CUT_VERSION { 44 + A_CUT_VERSION = 0, 45 + B_CUT_VERSION = 1, 46 + C_CUT_VERSION = 2, 47 + D_CUT_VERSION = 3, 48 + E_CUT_VERSION = 4, 49 + F_CUT_VERSION = 5, 50 + G_CUT_VERSION = 6, 51 + }; 52 + 53 + enum HAL_VENDOR { 54 + CHIP_VENDOR_TSMC = 0, 55 + CHIP_VENDOR_UMC = 1, 56 + }; 57 + 58 + enum HAL_RF_TYPE { 59 + RF_TYPE_1T1R = 0, 60 + RF_TYPE_1T2R = 1, 61 + RF_TYPE_2T2R = 2, 62 + RF_TYPE_2T3R = 3, 63 + RF_TYPE_2T4R = 4, 64 + RF_TYPE_3T3R = 5, 65 + RF_TYPE_3T4R = 6, 66 + RF_TYPE_4T4R = 7, 67 + }; 68 + 69 + struct HAL_VERSION { 70 + enum HAL_IC_TYPE ICType; 71 + enum HAL_CHIP_TYPE ChipType; 72 + enum HAL_CUT_VERSION CUTVersion; 73 + enum HAL_VENDOR VendorType; 74 + enum HAL_RF_TYPE RFType; 75 + u8 ROMVer; 76 + }; 77 + 78 + /* Get element */ 79 + #define GET_CVID_IC_TYPE(version) (((version).ICType)) 80 + #define GET_CVID_CHIP_TYPE(version) (((version).ChipType)) 81 + #define GET_CVID_RF_TYPE(version) (((version).RFType)) 82 + #define GET_CVID_MANUFACTUER(version) (((version).VendorType)) 83 + #define GET_CVID_CUT_VERSION(version) (((version).CUTVersion)) 84 + #define GET_CVID_ROM_VERSION(version) (((version).ROMVer) & ROM_VERSION_MASK) 85 + 86 + /* Common Macro. -- */ 87 + /* HAL_VERSION VersionID */ 88 + 89 + /* HAL_IC_TYPE_E */ 90 + #define IS_81XXC(version) \ 91 + (((GET_CVID_IC_TYPE(version) == CHIP_8192C) || \ 92 + (GET_CVID_IC_TYPE(version) == CHIP_8188C)) ? true : false) 93 + #define IS_8723_SERIES(version) \ 94 + ((GET_CVID_IC_TYPE(version) == CHIP_8723A) ? true : false) 95 + #define IS_92D(version) \ 96 + ((GET_CVID_IC_TYPE(version) == CHIP_8192D) ? true : false) 97 + #define IS_8188E(version) \ 98 + ((GET_CVID_IC_TYPE(version) == CHIP_8188E) ? true : false) 99 + 100 + /* HAL_CHIP_TYPE_E */ 101 + #define IS_TEST_CHIP(version) \ 102 + ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false) 103 + #define IS_NORMAL_CHIP(version) \ 104 + ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) 105 + 106 + /* HAL_CUT_VERSION_E */ 107 + #define IS_A_CUT(version) \ 108 + ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false) 109 + #define IS_B_CUT(version) \ 110 + ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false) 111 + #define IS_C_CUT(version) \ 112 + ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false) 113 + #define IS_D_CUT(version) \ 114 + ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false) 115 + #define IS_E_CUT(version) \ 116 + ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false) 117 + 118 + 119 + /* HAL_VENDOR_E */ 120 + #define IS_CHIP_VENDOR_TSMC(version) \ 121 + ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false) 122 + #define IS_CHIP_VENDOR_UMC(version) \ 123 + ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false) 124 + 125 + /* HAL_RF_TYPE_E */ 126 + #define IS_1T1R(version) \ 127 + ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T1R) ? true : false) 128 + #define IS_1T2R(version) \ 129 + ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R) ? true : false) 130 + #define IS_2T2R(version) \ 131 + ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R) ? true : false) 132 + 133 + /* Chip version Macro. -- */ 134 + #define IS_81XXC_TEST_CHIP(version) \ 135 + ((IS_81XXC(version) && (!IS_NORMAL_CHIP(version))) ? true : false) 136 + 137 + #define IS_92C_SERIAL(version) \ 138 + ((IS_81XXC(version) && IS_2T2R(version)) ? true : false) 139 + #define IS_81xxC_VENDOR_UMC_A_CUT(version) \ 140 + (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 141 + (IS_A_CUT(version) ? true : false) : false) : false) 142 + #define IS_81xxC_VENDOR_UMC_B_CUT(version) \ 143 + (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 144 + (IS_B_CUT(version) ? true : false) : false) : false) 145 + #define IS_81xxC_VENDOR_UMC_C_CUT(version) \ 146 + (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 147 + (IS_C_CUT(version) ? true : false) : false) : false) 148 + 149 + #define IS_NORMAL_CHIP92D(version) \ 150 + ((IS_92D(version)) ? \ 151 + ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) : false) 152 + 153 + #define IS_92D_SINGLEPHY(version) \ 154 + ((IS_92D(version)) ? (IS_2T2R(version) ? true : false) : false) 155 + #define IS_92D_C_CUT(version) \ 156 + ((IS_92D(version)) ? (IS_C_CUT(version) ? true : false) : false) 157 + #define IS_92D_D_CUT(version) \ 158 + ((IS_92D(version)) ? (IS_D_CUT(version) ? true : false) : false) 159 + #define IS_92D_E_CUT(version) \ 160 + ((IS_92D(version)) ? (IS_E_CUT(version) ? true : false) : false) 161 + 162 + #define IS_8723A_A_CUT(version) \ 163 + ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false) 164 + #define IS_8723A_B_CUT(version) \ 165 + ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false) 166 + 167 + #endif