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 ******************************************************************************/ 15 #ifndef __HAL_PHY_H__ 16 #define __HAL_PHY_H__ 17 18 19 #if DISABLE_BB_RF 20 #define HAL_FW_ENABLE 0 21 #define HAL_MAC_ENABLE 0 22 #define HAL_BB_ENABLE 0 23 #define HAL_RF_ENABLE 0 24 #else /* FPGA_PHY and ASIC */ 25 #define HAL_FW_ENABLE 1 26 #define HAL_MAC_ENABLE 1 27 #define HAL_BB_ENABLE 1 28 #define HAL_RF_ENABLE 1 29 #endif 30 31 #define RF6052_MAX_TX_PWR 0x3F 32 #define RF6052_MAX_REG_88E 0xFF 33 #define RF6052_MAX_REG_92C 0x7F 34 35 #define RF6052_MAX_REG \ 36 (RF6052_MAX_REG_88E > RF6052_MAX_REG_92C) ? RF6052_MAX_REG_88E: RF6052_MAX_REG_92C 37 38 #define GET_RF6052_REAL_MAX_REG(_Adapter) RF6052_MAX_REG_92C 39 40 #define RF6052_MAX_PATH 2 41 42 /* */ 43 /* Antenna detection method, i.e., using single tone detection or RSSI reported from each antenna detected. */ 44 /* Added by Roger, 2013.05.22. */ 45 /* */ 46 #define ANT_DETECT_BY_SINGLE_TONE BIT0 47 #define ANT_DETECT_BY_RSSI BIT1 48 #define IS_ANT_DETECT_SUPPORT_SINGLE_TONE(__Adapter) ((GET_HAL_DATA(__Adapter)->AntDetection) & ANT_DETECT_BY_SINGLE_TONE) 49 #define IS_ANT_DETECT_SUPPORT_RSSI(__Adapter) ((GET_HAL_DATA(__Adapter)->AntDetection) & ANT_DETECT_BY_RSSI) 50 51 52 /*--------------------------Define Parameters-------------------------------*/ 53 enum BAND_TYPE { 54 BAND_ON_2_4G = 0, 55 BAND_ON_5G, 56 BAND_ON_BOTH, 57 BANDMAX 58 }; 59 60 enum RF_TYPE { 61 RF_TYPE_MIN = 0, /* 0 */ 62 RF_8225 = 1, /* 1 11b/g RF for verification only */ 63 RF_8256 = 2, /* 2 11b/g/n */ 64 RF_8258 = 3, /* 3 11a/b/g/n RF */ 65 RF_6052 = 4, /* 4 11b/g/n RF */ 66 RF_PSEUDO_11N = 5, /* 5, It is a temporality RF. */ 67 RF_TYPE_MAX 68 }; 69 70 enum RF_PATH { 71 RF_PATH_A = 0, 72 RF_PATH_B, 73 RF_PATH_C, 74 RF_PATH_D 75 }; 76 77 #define TX_1S 0 78 #define TX_2S 1 79 #define TX_3S 2 80 #define TX_4S 3 81 82 #define RF_PATH_MAX_92C_88E 2 83 #define RF_PATH_MAX_90_8812 4 /* Max RF number 90 support */ 84 85 enum ANTENNA_PATH { 86 ANTENNA_NONE = 0, 87 ANTENNA_D = 1, 88 ANTENNA_C = 2, 89 ANTENNA_CD = 3, 90 ANTENNA_B = 4, 91 ANTENNA_BD = 5, 92 ANTENNA_BC = 6, 93 ANTENNA_BCD = 7, 94 ANTENNA_A = 8, 95 ANTENNA_AD = 9, 96 ANTENNA_AC = 10, 97 ANTENNA_ACD = 11, 98 ANTENNA_AB = 12, 99 ANTENNA_ABD = 13, 100 ANTENNA_ABC = 14, 101 ANTENNA_ABCD = 15 102 }; 103 104 enum RF_CONTENT { 105 radioa_txt = 0x1000, 106 radiob_txt = 0x1001, 107 radioc_txt = 0x1002, 108 radiod_txt = 0x1003 109 }; 110 111 enum BaseBand_Config_Type { 112 BaseBand_Config_PHY_REG = 0, /* Radio Path A */ 113 BaseBand_Config_AGC_TAB = 1, /* Radio Path B */ 114 BaseBand_Config_AGC_TAB_2G = 2, 115 BaseBand_Config_AGC_TAB_5G = 3, 116 BaseBand_Config_PHY_REG_PG 117 }; 118 119 enum HW_BLOCK { 120 HW_BLOCK_MAC = 0, 121 HW_BLOCK_PHY0 = 1, 122 HW_BLOCK_PHY1 = 2, 123 HW_BLOCK_RF = 3, 124 HW_BLOCK_MAXIMUM = 4, /* Never use this */ 125 }; 126 127 enum WIRELESS_MODE { 128 WIRELESS_MODE_UNKNOWN = 0x00, 129 WIRELESS_MODE_A = 0x01, 130 WIRELESS_MODE_B = 0x02, 131 WIRELESS_MODE_G = 0x04, 132 WIRELESS_MODE_AUTO = 0x08, 133 WIRELESS_MODE_N_24G = 0x10, 134 WIRELESS_MODE_N_5G = 0x20, 135 WIRELESS_MODE_AC_5G = 0x40, 136 WIRELESS_MODE_AC_24G = 0x80, 137 WIRELESS_MODE_AC_ONLY = 0x100, 138 }; 139 140 enum SwChnlCmdID { 141 CmdID_End, 142 CmdID_SetTxPowerLevel, 143 CmdID_BBRegWrite10, 144 CmdID_WritePortUlong, 145 CmdID_WritePortUshort, 146 CmdID_WritePortUchar, 147 CmdID_RF_WriteReg, 148 }; 149 150 struct SwChnlCmd { 151 enum SwChnlCmdID CmdID; 152 u32 Para1; 153 u32 Para2; 154 u32 msDelay; 155 }; 156 157 struct R_ANTENNA_SELECT_OFDM { 158 #ifdef __LITTLE_ENDIAN 159 u32 r_tx_antenna:4; 160 u32 r_ant_l:4; 161 u32 r_ant_non_ht:4; 162 u32 r_ant_ht1:4; 163 u32 r_ant_ht2:4; 164 u32 r_ant_ht_s1:4; 165 u32 r_ant_non_ht_s1:4; 166 u32 OFDM_TXSC:2; 167 u32 Reserved:2; 168 #else 169 u32 Reserved:2; 170 u32 OFDM_TXSC:2; 171 u32 r_ant_non_ht_s1:4; 172 u32 r_ant_ht_s1:4; 173 u32 r_ant_ht2:4; 174 u32 r_ant_ht1:4; 175 u32 r_ant_non_ht:4; 176 u32 r_ant_l:4; 177 u32 r_tx_antenna:4; 178 #endif 179 }; 180 181 /*--------------------------Exported Function prototype---------------------*/ 182 183 #endif /* __HAL_COMMON_H__ */ 184