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