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_HAL8814PHYCFG_H__ 21 #define __INC_HAL8814PHYCFG_H__ 22 23 24 /*--------------------------Define Parameters-------------------------------*/ 25 #define LOOP_LIMIT 5 26 #define MAX_STALL_TIME 50 /* us */ 27 #define AntennaDiversityValue 0x80 /* (Adapter->bSoftwareAntennaDiversity ? 0x00 : 0x80) */ 28 #define MAX_TXPWR_IDX_NMODE_92S 63 29 #define Reset_Cnt_Limit 3 30 31 32 #ifdef CONFIG_PCI_HCI 33 #define MAX_AGGR_NUM 0x0B 34 #else 35 #define MAX_AGGR_NUM 0x07 36 #endif /* CONFIG_PCI_HCI */ 37 38 39 /*--------------------------Define Parameters-------------------------------*/ 40 41 /*------------------------------Define structure----------------------------*/ 42 43 44 /* BB/RF related */ 45 46 #define SIC_ENABLE 0 47 48 /*------------------------------Define structure----------------------------*/ 49 50 51 /*------------------------Export global variable----------------------------*/ 52 /*------------------------Export global variable----------------------------*/ 53 54 55 /*------------------------Export Marco Definition---------------------------*/ 56 /*------------------------Export Marco Definition---------------------------*/ 57 58 59 /*--------------------------Exported Function prototype---------------------*/ 60 /* 1. BB register R/W API */ 61 62 extern u32 63 PHY_QueryBBReg8814A(IN PADAPTER Adapter, 64 IN u32 RegAddr, 65 IN u32 BitMask); 66 67 68 VOID 69 PHY_SetBBReg8814A(IN PADAPTER Adapter, 70 IN u32 RegAddr, 71 IN u32 BitMask, 72 IN u32 Data); 73 74 75 extern u32 76 PHY_QueryRFReg8814A(IN PADAPTER Adapter, 77 IN u8 eRFPath, 78 IN u32 RegAddr, 79 IN u32 BitMask); 80 81 82 void 83 PHY_SetRFReg8814A(IN PADAPTER Adapter, 84 IN u8 eRFPath, 85 IN u32 RegAddr, 86 IN u32 BitMask, 87 IN u32 Data); 88 89 /* 1 3. Initial BB/RF config by reading MAC/BB/RF txt. */ 90 s32 91 phy_BB8814A_Config_ParaFile( 92 IN PADAPTER Adapter 93 ); 94 95 96 RT_STATUS 97 PHY_BBConfigMP_8814A( 98 IN PADAPTER Adapter 99 ); 100 101 VOID 102 PHY_ConfigBB_8814A( 103 IN PADAPTER Adapter 104 ); 105 106 107 VOID 108 phy_ADC_CLK_8814A( 109 IN PADAPTER Adapter 110 ); 111 112 s32 113 PHY_RFConfig8814A( 114 IN PADAPTER Adapter 115 ); 116 117 /* 118 * RF Power setting 119 * 120 * BOOLEAN PHY_SetRFPowerState8814A(PADAPTER Adapter, rt_rf_power_state eRFPowerState); */ 121 122 /* 1 5. Tx Power setting API */ 123 124 VOID 125 PHY_GetTxPowerLevel8814( 126 IN PADAPTER Adapter, 127 OUT ps4Byte powerlevel 128 ); 129 130 VOID 131 PHY_SetTxPowerLevel8814( 132 IN PADAPTER Adapter, 133 IN u8 Channel 134 ); 135 136 u8 137 PHY_GetTxPowerIndex_8814A( 138 IN PADAPTER Adapter, 139 IN u8 RFPath, 140 IN u8 Rate, 141 IN CHANNEL_WIDTH BandWidth, 142 IN u8 Channel 143 ); 144 145 VOID 146 PHY_SetTxPowerIndex_8814A( 147 IN PADAPTER Adapter, 148 IN u32 PowerIndex, 149 IN u8 RFPath, 150 IN u8 Rate 151 ); 152 153 154 BOOLEAN 155 PHY_UpdateTxPowerDbm8814A( 156 IN PADAPTER Adapter, 157 IN s4Byte powerInDbm 158 ); 159 160 161 u32 162 PHY_GetTxBBSwing_8814A( 163 IN PADAPTER Adapter, 164 IN BAND_TYPE Band, 165 IN u8 RFPath 166 ); 167 168 169 170 /* 1 6. Channel setting API */ 171 172 VOID 173 PHY_SwChnlTimerCallback8814A( 174 IN PRT_TIMER pTimer 175 ); 176 177 VOID 178 PHY_SwChnlWorkItemCallback8814A( 179 IN PVOID pContext 180 ); 181 182 183 VOID 184 HAL_HandleSwChnl8814A( 185 IN PADAPTER pAdapter, 186 IN u8 channel 187 ); 188 189 VOID 190 PHY_SwChnlSynchronously8814A(IN PADAPTER pAdapter, 191 IN u8 channel); 192 193 VOID 194 PHY_SwChnlAndSetBWModeCallback8814A(IN PVOID pContext); 195 196 197 VOID 198 PHY_HandleSwChnlAndSetBW8814A( 199 IN PADAPTER Adapter, 200 IN BOOLEAN bSwitchChannel, 201 IN BOOLEAN bSetBandWidth, 202 IN u8 ChannelNum, 203 IN CHANNEL_WIDTH ChnlWidth, 204 IN u8 ChnlOffsetOf40MHz, 205 IN u8 ChnlOffsetOf80MHz, 206 IN u8 CenterFrequencyIndex1 207 ); 208 209 210 BOOLEAN 211 PHY_QueryRFPathSwitch_8814A(IN PADAPTER pAdapter); 212 213 214 215 #if (USE_WORKITEM) 216 VOID 217 RtCheckForHangWorkItemCallback8814A( 218 IN PVOID pContext 219 ); 220 #endif 221 222 BOOLEAN 223 SetAntennaConfig8814A( 224 IN PADAPTER Adapter, 225 IN u8 DefaultAnt 226 ); 227 228 VOID 229 PHY_SetRFEReg8814A( 230 IN PADAPTER Adapter, 231 IN BOOLEAN bInit, 232 IN u8 Band 233 ); 234 235 236 s32 237 PHY_SwitchWirelessBand8814A( 238 IN PADAPTER Adapter, 239 IN u8 Band 240 ); 241 242 VOID 243 PHY_SetIO_8814A( 244 PADAPTER pAdapter 245 ); 246 247 VOID 248 PHY_SetBWMode8814( 249 IN PADAPTER Adapter, 250 IN CHANNEL_WIDTH Bandwidth, /* 20M or 40M */ 251 IN u8 Offset /* Upper, Lower, or Don't care */ 252 ); 253 254 VOID 255 PHY_SwChnl8814( 256 IN PADAPTER Adapter, 257 IN u8 channel 258 ); 259 260 VOID 261 PHY_SetSwChnlBWMode8814( 262 IN PADAPTER Adapter, 263 IN u8 channel, 264 IN CHANNEL_WIDTH Bandwidth, 265 IN u8 Offset40, 266 IN u8 Offset80 267 ); 268 269 s32 PHY_MACConfig8814(PADAPTER Adapter); 270 int PHY_BBConfig8814(PADAPTER Adapter); 271 VOID PHY_Set_SecCCATH_by_RXANT_8814A(PADAPTER pAdapter, u4Byte ulAntennaRx); 272 273 274 275 /*--------------------------Exported Function prototype---------------------*/ 276 277 /*--------------------------Exported Function prototype---------------------*/ 278 #endif /* __INC_HAL8192CPHYCFG_H */ 279