1 /****************************************************************************** 2 * 3 * Copyright(c) 2007 - 2017 Realtek Corporation. 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 * The full GNU General Public License is included in this distribution in the 15 * file called LICENSE. 16 * 17 * Contact Information: 18 * wlanfae <wlanfae@realtek.com> 19 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 20 * Hsinchu 300, Taiwan. 21 * 22 * Larry Finger <Larry.Finger@lwfinger.net> 23 * 24 *****************************************************************************/ 25 26 #ifndef __PHYDMPREDEFINE_H__ 27 #define __PHYDMPREDEFINE_H__ 28 29 /**************************************************************** 30 * 1 ============================================================ 31 * 1 Definition 32 * 1 ============================================================ 33 ***************************************************************/ 34 35 #define PHYDM_CODE_BASE "PHYDM_V050" 36 #define PHYDM_RELEASE_DATE "20201019.0" 37 38 /*PHYDM API status*/ 39 #define PHYDM_SET_FAIL 0 40 #define PHYDM_SET_SUCCESS 1 41 #define PHYDM_SET_NO_NEED 3 42 43 /*PHYDM Set/Revert*/ 44 #define PHYDM_SET 1 45 #define PHYDM_REVERT 2 46 47 /* @Max path of IC */ 48 /*N-IC*/ 49 #define MAX_PATH_NUM_8188E 1 50 #define MAX_PATH_NUM_8188F 1 51 #define MAX_PATH_NUM_8710B 1 52 #define MAX_PATH_NUM_8723B 1 53 #define MAX_PATH_NUM_8723D 1 54 #define MAX_PATH_NUM_8703B 1 55 #define MAX_PATH_NUM_8192E 2 56 #define MAX_PATH_NUM_8192F 2 57 #define MAX_PATH_NUM_8197F 2 58 #define MAX_PATH_NUM_8198F 4 59 #define MAX_PATH_NUM_8197G 2 60 #define MAX_PATH_NUM_8721D 1 61 #define MAX_PATH_NUM_8710C 1 62 #define MAX_PATH_NUM_8723F 2 63 64 /*@AC-IC*/ 65 #define MAX_PATH_NUM_8821A 1 66 #define MAX_PATH_NUM_8881A 1 67 #define MAX_PATH_NUM_8821C 1 68 #define MAX_PATH_NUM_8195B 1 69 #define MAX_PATH_NUM_8812A 2 70 #define MAX_PATH_NUM_8822B 2 71 #define MAX_PATH_NUM_8822C 2 72 #define MAX_PATH_NUM_8814A 4 73 #define MAX_PATH_NUM_8814B 4 74 #define MAX_PATH_NUM_8814C 4 75 #define MAX_PATH_NUM_8195B 1 76 #define MAX_PATH_NUM_8812F 2 77 78 /* @Max RF path */ 79 #define PHYDM_MAX_RF_PATH_N 2 /*@For old N-series IC*/ 80 #define PHYDM_MAX_RF_PATH 4 81 82 /* number of entry */ 83 #if (DM_ODM_SUPPORT_TYPE & (ODM_CE)) 84 #ifdef DM_ODM_CE_MAC80211 85 /* @defined in wifi.h (32+1) */ 86 #else 87 #define ASSOCIATE_ENTRY_NUM MACID_NUM_SW_LIMIT /* @Max size of asoc_entry[].*/ 88 #endif 89 #define ODM_ASSOCIATE_ENTRY_NUM ASSOCIATE_ENTRY_NUM 90 #elif(DM_ODM_SUPPORT_TYPE & (ODM_AP)) 91 #define ASSOCIATE_ENTRY_NUM NUM_STAT 92 #define ODM_ASSOCIATE_ENTRY_NUM (ASSOCIATE_ENTRY_NUM + 1) 93 #elif(DM_ODM_SUPPORT_TYPE & (ODM_IOT)) 94 #ifdef CONFIG_CONCURRENT_MODE 95 #define ASSOCIATE_ENTRY_NUM NUM_STA + 2 /*@2 is for station mod*/ 96 #else 97 #define ASSOCIATE_ENTRY_NUM NUM_STA /*@8 is for max size of asoc_entry[].*/ 98 #endif 99 #define ODM_ASSOCIATE_ENTRY_NUM ASSOCIATE_ENTRY_NUM 100 #else 101 #define ODM_ASSOCIATE_ENTRY_NUM (((ASSOCIATE_ENTRY_NUM + 1) * 3) + 1) 102 #endif 103 104 /* @-----MGN rate--------------------------------- */ 105 106 enum PDM_RATE_TYPE { 107 PDM_1SS = 1, /*VHT/HT 1SS*/ 108 PDM_2SS = 2, /*VHT/HT 2SS*/ 109 PDM_3SS = 3, /*VHT/HT 3SS*/ 110 PDM_4SS = 4, /*VHT/HT 4SS*/ 111 PDM_CCK = 11, /*@B*/ 112 PDM_OFDM = 12 /*@G*/ 113 }; 114 115 enum ODM_MGN_RATE { 116 ODM_MGN_1M = 0x02, 117 ODM_MGN_2M = 0x04, 118 ODM_MGN_5_5M = 0x0B, 119 ODM_MGN_6M = 0x0C, 120 ODM_MGN_9M = 0x12, 121 ODM_MGN_11M = 0x16, 122 ODM_MGN_12M = 0x18, 123 ODM_MGN_18M = 0x24, 124 ODM_MGN_24M = 0x30, 125 ODM_MGN_36M = 0x48, 126 ODM_MGN_48M = 0x60, 127 ODM_MGN_54M = 0x6C, 128 ODM_MGN_MCS32 = 0x7F, 129 ODM_MGN_MCS0 = 0x80, 130 ODM_MGN_MCS1, 131 ODM_MGN_MCS2, 132 ODM_MGN_MCS3, 133 ODM_MGN_MCS4, 134 ODM_MGN_MCS5, 135 ODM_MGN_MCS6, 136 ODM_MGN_MCS7 = 0x87, 137 ODM_MGN_MCS8, 138 ODM_MGN_MCS9, 139 ODM_MGN_MCS10, 140 ODM_MGN_MCS11, 141 ODM_MGN_MCS12, 142 ODM_MGN_MCS13, 143 ODM_MGN_MCS14, 144 ODM_MGN_MCS15, 145 ODM_MGN_MCS16 = 0x90, 146 ODM_MGN_MCS17, 147 ODM_MGN_MCS18, 148 ODM_MGN_MCS19, 149 ODM_MGN_MCS20, 150 ODM_MGN_MCS21, 151 ODM_MGN_MCS22, 152 ODM_MGN_MCS23, 153 ODM_MGN_MCS24 = 0x98, 154 ODM_MGN_MCS25, 155 ODM_MGN_MCS26, 156 ODM_MGN_MCS27, 157 ODM_MGN_MCS28, 158 ODM_MGN_MCS29, 159 ODM_MGN_MCS30, 160 ODM_MGN_MCS31, 161 ODM_MGN_VHT1SS_MCS0 = 0xa0, 162 ODM_MGN_VHT1SS_MCS1, 163 ODM_MGN_VHT1SS_MCS2, 164 ODM_MGN_VHT1SS_MCS3, 165 ODM_MGN_VHT1SS_MCS4, 166 ODM_MGN_VHT1SS_MCS5, 167 ODM_MGN_VHT1SS_MCS6, 168 ODM_MGN_VHT1SS_MCS7, 169 ODM_MGN_VHT1SS_MCS8, 170 ODM_MGN_VHT1SS_MCS9, 171 ODM_MGN_VHT2SS_MCS0 = 0xaa, 172 ODM_MGN_VHT2SS_MCS1 = 0xab, 173 ODM_MGN_VHT2SS_MCS2, 174 ODM_MGN_VHT2SS_MCS3, 175 ODM_MGN_VHT2SS_MCS4, 176 ODM_MGN_VHT2SS_MCS5 = 0xaf, 177 ODM_MGN_VHT2SS_MCS6 = 0xb0, 178 ODM_MGN_VHT2SS_MCS7, 179 ODM_MGN_VHT2SS_MCS8, 180 ODM_MGN_VHT2SS_MCS9 = 0xb3, 181 ODM_MGN_VHT3SS_MCS0 = 0xb4, 182 ODM_MGN_VHT3SS_MCS1, 183 ODM_MGN_VHT3SS_MCS2, 184 ODM_MGN_VHT3SS_MCS3, 185 ODM_MGN_VHT3SS_MCS4, 186 ODM_MGN_VHT3SS_MCS5, 187 ODM_MGN_VHT3SS_MCS6, 188 ODM_MGN_VHT3SS_MCS7 = 0xbb, 189 ODM_MGN_VHT3SS_MCS8 = 0xbc, 190 ODM_MGN_VHT3SS_MCS9 = 0xbd, 191 ODM_MGN_VHT4SS_MCS0 = 0xbe, 192 ODM_MGN_VHT4SS_MCS1, 193 ODM_MGN_VHT4SS_MCS2, 194 ODM_MGN_VHT4SS_MCS3, 195 ODM_MGN_VHT4SS_MCS4, 196 ODM_MGN_VHT4SS_MCS5, 197 ODM_MGN_VHT4SS_MCS6, 198 ODM_MGN_VHT4SS_MCS7, 199 ODM_MGN_VHT4SS_MCS8, 200 ODM_MGN_VHT4SS_MCS9 = 0xc7, 201 ODM_MGN_UNKNOWN 202 }; 203 204 #define ODM_MGN_MCS0_SG 0xc0 205 #define ODM_MGN_MCS1_SG 0xc1 206 #define ODM_MGN_MCS2_SG 0xc2 207 #define ODM_MGN_MCS3_SG 0xc3 208 #define ODM_MGN_MCS4_SG 0xc4 209 #define ODM_MGN_MCS5_SG 0xc5 210 #define ODM_MGN_MCS6_SG 0xc6 211 #define ODM_MGN_MCS7_SG 0xc7 212 #define ODM_MGN_MCS8_SG 0xc8 213 #define ODM_MGN_MCS9_SG 0xc9 214 #define ODM_MGN_MCS10_SG 0xca 215 #define ODM_MGN_MCS11_SG 0xcb 216 #define ODM_MGN_MCS12_SG 0xcc 217 #define ODM_MGN_MCS13_SG 0xcd 218 #define ODM_MGN_MCS14_SG 0xce 219 #define ODM_MGN_MCS15_SG 0xcf 220 221 /* @-----DESC rate--------------------------------- */ 222 223 #define ODM_RATEMCS15_SG 0x1c 224 #define ODM_RATEMCS32 0x20 225 226 enum phydm_ctrl_info_rate { 227 ODM_RATE1M = 0x00, 228 ODM_RATE2M = 0x01, 229 ODM_RATE5_5M = 0x02, 230 ODM_RATE11M = 0x03, 231 /* OFDM Rates, TxHT = 0 */ 232 ODM_RATE6M = 0x04, 233 ODM_RATE9M = 0x05, 234 ODM_RATE12M = 0x06, 235 ODM_RATE18M = 0x07, 236 ODM_RATE24M = 0x08, 237 ODM_RATE36M = 0x09, 238 ODM_RATE48M = 0x0A, 239 ODM_RATE54M = 0x0B, 240 /* @MCS Rates, TxHT = 1 */ 241 ODM_RATEMCS0 = 0x0C, 242 ODM_RATEMCS1 = 0x0D, 243 ODM_RATEMCS2 = 0x0E, 244 ODM_RATEMCS3 = 0x0F, 245 ODM_RATEMCS4 = 0x10, 246 ODM_RATEMCS5 = 0x11, 247 ODM_RATEMCS6 = 0x12, 248 ODM_RATEMCS7 = 0x13, 249 ODM_RATEMCS8 = 0x14, 250 ODM_RATEMCS9 = 0x15, 251 ODM_RATEMCS10 = 0x16, 252 ODM_RATEMCS11 = 0x17, 253 ODM_RATEMCS12 = 0x18, 254 ODM_RATEMCS13 = 0x19, 255 ODM_RATEMCS14 = 0x1A, 256 ODM_RATEMCS15 = 0x1B, 257 ODM_RATEMCS16 = 0x1C, 258 ODM_RATEMCS17 = 0x1D, 259 ODM_RATEMCS18 = 0x1E, 260 ODM_RATEMCS19 = 0x1F, 261 ODM_RATEMCS20 = 0x20, 262 ODM_RATEMCS21 = 0x21, 263 ODM_RATEMCS22 = 0x22, 264 ODM_RATEMCS23 = 0x23, 265 ODM_RATEMCS24 = 0x24, 266 ODM_RATEMCS25 = 0x25, 267 ODM_RATEMCS26 = 0x26, 268 ODM_RATEMCS27 = 0x27, 269 ODM_RATEMCS28 = 0x28, 270 ODM_RATEMCS29 = 0x29, 271 ODM_RATEMCS30 = 0x2A, 272 ODM_RATEMCS31 = 0x2B, 273 ODM_RATEVHTSS1MCS0 = 0x2C, 274 ODM_RATEVHTSS1MCS1 = 0x2D, 275 ODM_RATEVHTSS1MCS2 = 0x2E, 276 ODM_RATEVHTSS1MCS3 = 0x2F, 277 ODM_RATEVHTSS1MCS4 = 0x30, 278 ODM_RATEVHTSS1MCS5 = 0x31, 279 ODM_RATEVHTSS1MCS6 = 0x32, 280 ODM_RATEVHTSS1MCS7 = 0x33, 281 ODM_RATEVHTSS1MCS8 = 0x34, 282 ODM_RATEVHTSS1MCS9 = 0x35, 283 ODM_RATEVHTSS2MCS0 = 0x36, 284 ODM_RATEVHTSS2MCS1 = 0x37, 285 ODM_RATEVHTSS2MCS2 = 0x38, 286 ODM_RATEVHTSS2MCS3 = 0x39, 287 ODM_RATEVHTSS2MCS4 = 0x3A, 288 ODM_RATEVHTSS2MCS5 = 0x3B, 289 ODM_RATEVHTSS2MCS6 = 0x3C, 290 ODM_RATEVHTSS2MCS7 = 0x3D, 291 ODM_RATEVHTSS2MCS8 = 0x3E, 292 ODM_RATEVHTSS2MCS9 = 0x3F, 293 ODM_RATEVHTSS3MCS0 = 0x40, 294 ODM_RATEVHTSS3MCS1 = 0x41, 295 ODM_RATEVHTSS3MCS2 = 0x42, 296 ODM_RATEVHTSS3MCS3 = 0x43, 297 ODM_RATEVHTSS3MCS4 = 0x44, 298 ODM_RATEVHTSS3MCS5 = 0x45, 299 ODM_RATEVHTSS3MCS6 = 0x46, 300 ODM_RATEVHTSS3MCS7 = 0x47, 301 ODM_RATEVHTSS3MCS8 = 0x48, 302 ODM_RATEVHTSS3MCS9 = 0x49, 303 ODM_RATEVHTSS4MCS0 = 0x4A, 304 ODM_RATEVHTSS4MCS1 = 0x4B, 305 ODM_RATEVHTSS4MCS2 = 0x4C, 306 ODM_RATEVHTSS4MCS3 = 0x4D, 307 ODM_RATEVHTSS4MCS4 = 0x4E, 308 ODM_RATEVHTSS4MCS5 = 0x4F, 309 ODM_RATEVHTSS4MCS6 = 0x50, 310 ODM_RATEVHTSS4MCS7 = 0x51, 311 ODM_RATEVHTSS4MCS8 = 0x52, 312 ODM_RATEVHTSS4MCS9 = 0x53, 313 }; 314 315 enum phydm_legacy_spec_rate { 316 PHYDM_SPEC_RATE_6M = 0xb, 317 PHYDM_SPEC_RATE_9M = 0xf, 318 PHYDM_SPEC_RATE_12M = 0xa, 319 PHYDM_SPEC_RATE_18M = 0xe, 320 PHYDM_SPEC_RATE_24M = 0x9, 321 PHYDM_SPEC_RATE_36M = 0xd, 322 PHYDM_SPEC_RATE_48M = 0x8, 323 PHYDM_SPEC_RATE_54M = 0xc 324 }; 325 326 #define NUM_RATE_AC_4SS (ODM_RATEVHTSS4MCS9 + 1) 327 #define NUM_RATE_AC_3SS (ODM_RATEVHTSS3MCS9 + 1) 328 #define NUM_RATE_AC_2SS (ODM_RATEVHTSS2MCS9 + 1) 329 #define NUM_RATE_AC_1SS (ODM_RATEVHTSS1MCS9 + 1) 330 #define NUM_RATE_N_4SS (ODM_RATEMCS31 + 1) 331 #define NUM_RATE_N_3SS (ODM_RATEMCS23 + 1) 332 #define NUM_RATE_N_2SS (ODM_RATEMCS15 + 1) 333 #define NUM_RATE_N_1SS (ODM_RATEMCS7 + 1) 334 335 /*Define from larger rate size to small rate size, DO NOT change the position*/ 336 /*[AC-4SS]*/ 337 #if (RTL8814B_SUPPORT) 338 #define PHY_NUM_RATE_IDX NUM_RATE_AC_4SS 339 /*[AC-3SS]*/ 340 #elif (RTL8814A_SUPPORT) 341 #define PHY_NUM_RATE_IDX NUM_RATE_AC_3SS 342 /*[AC-2SS]*/ 343 #elif (RTL8812A_SUPPORT || RTL8822B_SUPPORT || RTL8822C_SUPPORT ||\ 344 RTL8812F_SUPPORT) 345 #define PHY_NUM_RATE_IDX NUM_RATE_AC_2SS 346 /*[AC-1SS]*/ 347 #elif (RTL8881A_SUPPORT || RTL8821A_SUPPORT || RTL8821C_SUPPORT ||\ 348 RTL8195B_SUPPORT) 349 #define PHY_NUM_RATE_IDX NUM_RATE_AC_1SS 350 /*[N-4SS]*/ 351 #elif (RTL8198F_SUPPORT) 352 #define PHY_NUM_RATE_IDX NUM_RATE_N_4SS 353 /*[N-2SS]*/ 354 #elif (RTL8192E_SUPPORT || RTL8197F_SUPPORT || RTL8192F_SUPPORT ||\ 355 RTL8197G_SUPPORT) 356 #define PHY_NUM_RATE_IDX NUM_RATE_N_2SS 357 /*[N-1SS]*/ 358 #elif (RTL8723B_SUPPORT || RTL8703B_SUPPORT || RTL8188E_SUPPORT || \ 359 RTL8188F_SUPPORT || RTL8723D_SUPPORT || RTL8195A_SUPPORT ||\ 360 RTL8710B_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT || RTL8723F_SUPPORT) 361 #define PHY_NUM_RATE_IDX NUM_RATE_N_1SS 362 #else 363 #define PHY_NUM_RATE_IDX NUM_RATE_AC_4SS 364 #endif 365 366 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) 367 #define CONFIG_SFW_SUPPORTED 368 #endif 369 370 /**************************************************************** 371 * 1 ============================================================ 372 * 1 enumeration 373 * 1 ============================================================ 374 ***************************************************************/ 375 376 /* ODM_CMNINFO_INTERFACE */ 377 enum odm_interface { 378 ODM_ITRF_PCIE = 0x1, 379 ODM_ITRF_USB = 0x2, 380 ODM_ITRF_SDIO = 0x4, 381 ODM_ITRF_ALL = 0x7, 382 }; 383 384 enum phydm_api_host { 385 RUN_IN_FW = 0, 386 RUN_IN_DRIVER = 1, 387 }; 388 389 /*@========[Run time IC flag] ===================================*/ 390 391 enum phydm_ic { 392 ODM_RTL8188E = BIT(0), 393 ODM_RTL8812 = BIT(1), 394 ODM_RTL8821 = BIT(2), 395 ODM_RTL8192E = BIT(3), 396 ODM_RTL8723B = BIT(4), 397 ODM_RTL8814A = BIT(5), 398 ODM_RTL8881A = BIT(6), 399 ODM_RTL8822B = BIT(7), 400 ODM_RTL8703B = BIT(8), 401 ODM_RTL8195A = BIT(9), 402 ODM_RTL8188F = BIT(10), 403 ODM_RTL8723D = BIT(11), 404 ODM_RTL8197F = BIT(12), 405 ODM_RTL8821C = BIT(13), 406 ODM_RTL8814B = BIT(14), 407 ODM_RTL8198F = BIT(15), 408 ODM_RTL8710B = BIT(16), 409 ODM_RTL8192F = BIT(17), 410 ODM_RTL8822C = BIT(18), 411 ODM_RTL8195B = BIT(19), 412 ODM_RTL8812F = BIT(20), 413 ODM_RTL8197G = BIT(21), 414 ODM_RTL8721D = BIT(22), 415 ODM_RTL8710C = BIT(23), 416 ODM_RTL8723F = BIT(24) 417 }; 418 419 #define ODM_IC_N_1SS (ODM_RTL8188E | ODM_RTL8188F | ODM_RTL8723B |\ 420 ODM_RTL8703B | ODM_RTL8723D | ODM_RTL8195A |\ 421 ODM_RTL8710B | ODM_RTL8721D | ODM_RTL8710C) 422 #define ODM_IC_N_2SS (ODM_RTL8192E | ODM_RTL8197F | ODM_RTL8192F) 423 #define ODM_IC_N_3SS 0 424 #define ODM_IC_N_4SS 0 425 426 #define ODM_IC_AC_1SS (ODM_RTL8881A | ODM_RTL8821 | ODM_RTL8821C |\ 427 ODM_RTL8195B) 428 #define ODM_IC_AC_2SS (ODM_RTL8812 | ODM_RTL8822B) 429 #define ODM_IC_AC_3SS 0 430 #define ODM_IC_AC_4SS (ODM_RTL8814A) 431 432 #define ODM_IC_JGR3_1SS (ODM_RTL8723F) 433 #define ODM_IC_JGR3_2SS (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8197G) 434 #define ODM_IC_JGR3_3SS 0 435 #define ODM_IC_JGR3_4SS (ODM_RTL8198F | ODM_RTL8814B) 436 437 /*@====the following macro DO NOT need to update when adding a new IC======= */ 438 #define ODM_IC_1SS (ODM_IC_N_1SS | ODM_IC_AC_1SS | ODM_IC_JGR3_1SS) 439 #define ODM_IC_2SS (ODM_IC_N_2SS | ODM_IC_AC_2SS | ODM_IC_JGR3_2SS) 440 #define ODM_IC_3SS (ODM_IC_N_3SS | ODM_IC_AC_3SS | ODM_IC_JGR3_3SS) 441 #define ODM_IC_4SS (ODM_IC_N_4SS | ODM_IC_AC_4SS | ODM_IC_JGR3_4SS) 442 443 #define PHYDM_IC_ABOVE_1SS (ODM_IC_1SS | ODM_IC_2SS | ODM_IC_3SS |\ 444 ODM_IC_4SS) 445 #define PHYDM_IC_ABOVE_2SS (ODM_IC_2SS | ODM_IC_3SS | ODM_IC_4SS) 446 #define PHYDM_IC_ABOVE_3SS (ODM_IC_3SS | ODM_IC_4SS) 447 #define PHYDM_IC_ABOVE_4SS ODM_IC_4SS 448 449 #define ODM_IC_11N_SERIES (ODM_IC_N_1SS | ODM_IC_N_2SS | ODM_IC_N_3SS |\ 450 ODM_IC_N_4SS) 451 #define ODM_IC_11AC_SERIES (ODM_IC_AC_1SS | ODM_IC_AC_2SS |\ 452 ODM_IC_AC_3SS | ODM_IC_AC_4SS) 453 #define ODM_IC_JGR3_SERIES (ODM_IC_JGR3_1SS | ODM_IC_JGR3_2SS |\ 454 ODM_IC_JGR3_3SS | ODM_IC_JGR3_4SS) 455 /*@====================================================*/ 456 457 #define ODM_IC_11AC_1_SERIES (ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8881A) 458 #define ODM_IC_11AC_2_SERIES (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C |\ 459 ODM_RTL8195B) 460 461 /*@[Phy status type]*/ 462 #define PHYSTS_2ND_TYPE_IC (ODM_RTL8197F | ODM_RTL8822B | ODM_RTL8723D |\ 463 ODM_RTL8821C | ODM_RTL8710B | ODM_RTL8195B |\ 464 ODM_RTL8192F | ODM_RTL8721D | ODM_RTL8710C) 465 #define PHYSTS_3RD_TYPE_IC (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8822C |\ 466 ODM_RTL8812F | ODM_RTL8197G | ODM_RTL8723F) 467 /*@[FW Type]*/ 468 #define PHYDM_IC_8051_SERIES (ODM_RTL8881A | ODM_RTL8812 | ODM_RTL8821 |\ 469 ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8703B |\ 470 ODM_RTL8188F | ODM_RTL8192F | ODM_RTL8721D |\ 471 ODM_RTL8710C) 472 #define PHYDM_IC_3081_SERIES (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F |\ 473 ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8198F |\ 474 ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8814B |\ 475 ODM_RTL8197G | ODM_RTL8723F) 476 /*@[LA mode]*/ 477 #define PHYDM_IC_SUPPORT_LA_MODE (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F |\ 478 ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8198F |\ 479 ODM_RTL8192F | ODM_RTL8822C | ODM_RTL8812F |\ 480 ODM_RTL8195B | ODM_RTL8814B | ODM_RTL8197G | ODM_RTL8723F) 481 /*@[BF]*/ 482 #define ODM_IC_TXBF_SUPPORT (ODM_RTL8192E | ODM_RTL8812 | ODM_RTL8821 |\ 483 ODM_RTL8814A | ODM_RTL8881A | ODM_RTL8822B |\ 484 ODM_RTL8197F | ODM_RTL8821C | ODM_RTL8195B |\ 485 ODM_RTL8198F | ODM_RTL8822C | ODM_RTL8812F |\ 486 ODM_RTL8814B | ODM_RTL8197G) 487 #define PHYDM_IC_SUPPORT_MU_BFEE (ODM_RTL8822B | ODM_RTL8821C | ODM_RTL8814B |\ 488 ODM_RTL8195B | ODM_RTL8198F | ODM_RTL8822C |\ 489 ODM_RTL8812F | ODM_RTL8723F) 490 #define PHYDM_IC_SUPPORT_MU_BFER (ODM_RTL8822B | ODM_RTL8814B | ODM_RTL8198F |\ 491 ODM_RTL8822C | ODM_RTL8812F) 492 493 #define PHYDM_IC_SUPPORT_MU (PHYDM_IC_SUPPORT_MU_BFEE |\ 494 PHYDM_IC_SUPPORT_MU_BFER) 495 /*@[PHYDM API]*/ 496 #define CMN_API_SUPPORT_IC (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8192F |\ 497 ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8822C |\ 498 ODM_RTL8198F | ODM_RTL8812F | ODM_RTL8814B |\ 499 ODM_RTL8197G | ODM_RTL8721D | ODM_RTL8710C | ODM_RTL8723F) 500 501 /* fw offload ability*/ 502 #define PHYDM_IC_SUPPORT_FW_PARAM_OFFLOAD (ODM_RTL8814A | ODM_RTL8822B |\ 503 ODM_RTL8821C | ODM_RTL8822C) 504 505 /* halmac offload ability*/ 506 #define PHYDM_IC_SUPPORT_HALMAC_PARAM_OFFLOAD (ODM_RTL8822C | ODM_RTL8812F |\ 507 ODM_RTL8814B | ODM_RTL8723F) 508 509 /*[CCX]*/ 510 #define PHYDM_IC_SUPPORT_FAHM (ODM_RTL8822B | ODM_RTL8821C | ODM_RTL8198F |\ 511 ODM_RTL8814B | ODM_RTL8822C | ODM_RTL8812F |\ 512 ODM_RTL8197G | ODM_RTL8723F) 513 #define PHYDM_IC_SUPPORT_IFS_CLM (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8197G | ODM_RTL8723F) 514 515 /*[ARFR]*/ 516 /*for MAC HW control rate_id=0~12 and 2.4g vht mode(1ss/2ss) support*/ 517 #define PHYDM_IC_RATEID_IDX_TYPE2 (ODM_RTL8822B | ODM_RTL8822C | ODM_RTL8195B |\ 518 ODM_RTL8821C) 519 520 /*@========[Compile time IC flag] ========================*/ 521 /*@========[AC-3/AC/N Support] ===========================*/ 522 523 #if (RTL8814B_SUPPORT || RTL8198F_SUPPORT || RTL8822C_SUPPORT ||\ 524 RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) 525 #define PHYDM_IC_JGR3_SERIES_SUPPORT 526 #if (RTL8814B_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT) 527 #define PHYDM_IC_JGR3_80M_SUPPORT 528 #endif 529 #endif 530 531 #if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8814B_SUPPORT ||\ 532 RTL8723F_SUPPORT) 533 #define PHYDM_IC_HALMAC_PARAM_SUPPORT 534 #endif 535 536 #if (DM_ODM_SUPPORT_TYPE == ODM_AP) 537 538 #ifdef RTK_AC_SUPPORT 539 #define ODM_IC_11AC_SERIES_SUPPORT 1 540 #else 541 #define ODM_IC_11AC_SERIES_SUPPORT 0 542 #endif 543 544 #define ODM_IC_11N_SERIES_SUPPORT 1 545 546 #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) 547 548 #define ODM_IC_11AC_SERIES_SUPPORT 1 549 #define ODM_IC_11N_SERIES_SUPPORT 1 550 551 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE) && defined(DM_ODM_CE_MAC80211) 552 553 #define ODM_IC_11AC_SERIES_SUPPORT 1 554 #define ODM_IC_11N_SERIES_SUPPORT 1 555 556 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE) && defined(DM_ODM_CE_MAC80211_V2) 557 558 #define ODM_IC_11AC_SERIES_SUPPORT 1 559 #define ODM_IC_11N_SERIES_SUPPORT 1 560 561 #else /*ODM_CE*/ 562 563 #if (RTL8188E_SUPPORT || RTL8723B_SUPPORT || RTL8192E_SUPPORT ||\ 564 RTL8195A_SUPPORT || RTL8703B_SUPPORT || RTL8188F_SUPPORT ||\ 565 RTL8723D_SUPPORT || RTL8197F_SUPPORT || RTL8710B_SUPPORT ||\ 566 RTL8192F_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT) 567 #define ODM_IC_11N_SERIES_SUPPORT 1 568 #define ODM_IC_11AC_SERIES_SUPPORT 0 569 #else 570 #define ODM_IC_11N_SERIES_SUPPORT 0 571 #define ODM_IC_11AC_SERIES_SUPPORT 1 572 #endif 573 #endif 574 575 /*@===IC SS Compile Flag, prepare for code size reduction==============*/ 576 #if (RTL8188E_SUPPORT || RTL8188F_SUPPORT || RTL8723B_SUPPORT ||\ 577 RTL8703B_SUPPORT || RTL8723D_SUPPORT || RTL8881A_SUPPORT ||\ 578 RTL8821A_SUPPORT || RTL8821C_SUPPORT || RTL8195A_SUPPORT ||\ 579 RTL8710B_SUPPORT || RTL8195B_SUPPORT || RTL8721D_SUPPORT ||\ 580 RTL8710C_SUPPORT || RTL8723F_SUPPORT) 581 582 #define PHYDM_COMPILE_IC_1SS 583 #endif 584 585 #if (RTL8192E_SUPPORT || RTL8197F_SUPPORT || RTL8812A_SUPPORT ||\ 586 RTL8822B_SUPPORT || RTL8192F_SUPPORT || RTL8822C_SUPPORT ||\ 587 RTL8812F_SUPPORT || RTL8197G_SUPPORT) 588 #define PHYDM_COMPILE_IC_2SS 589 #endif 590 591 /*@#define PHYDM_COMPILE_IC_3SS*/ 592 593 #if ((RTL8814B_SUPPORT) || (RTL8814A_SUPPORT) || (RTL8198F_SUPPORT)) 594 #define PHYDM_COMPILE_IC_4SS 595 #endif 596 597 /*@==[ABOVE N-SS COMPILE FLAG]=================================================*/ 598 #if (defined(PHYDM_COMPILE_IC_1SS) || defined(PHYDM_COMPILE_IC_2SS) ||\ 599 defined(PHYDM_COMPILE_IC_3SS) || defined(PHYDM_COMPILE_IC_4SS)) 600 #define PHYDM_COMPILE_ABOVE_1SS 601 #endif 602 603 #if (defined(PHYDM_COMPILE_IC_2SS) || defined(PHYDM_COMPILE_IC_3SS) ||\ 604 defined(PHYDM_COMPILE_IC_4SS)) 605 #define PHYDM_COMPILE_ABOVE_2SS 606 #endif 607 608 #if (defined(PHYDM_COMPILE_IC_3SS) || defined(PHYDM_COMPILE_IC_4SS)) 609 #define PHYDM_COMPILE_ABOVE_3SS 610 #endif 611 612 #if (defined(PHYDM_COMPILE_IC_4SS)) 613 #define PHYDM_COMPILE_ABOVE_4SS 614 #endif 615 616 /*@==[Max RF path number among all compiled ICs]==============================*/ 617 /*@ ex: support 8814B & 8821C => size=4 */ 618 /*@ ex: support 8822C & 8821C => size=2 */ 619 #if (defined(PHYDM_COMPILE_IC_4SS)) 620 #define RF_PATH_MEM_SIZE 4 621 #elif (defined(PHYDM_COMPILE_IC_3SS)) 622 #define RF_PATH_MEM_SIZE 3 623 #elif (defined(PHYDM_COMPILE_IC_2SS)) 624 #define RF_PATH_MEM_SIZE 2 625 #else 626 #define RF_PATH_MEM_SIZE 1 627 #endif 628 629 /*@========[New Phy-Status Support] ========================*/ 630 #if (RTL8197F_SUPPORT || RTL8723D_SUPPORT || RTL8822B_SUPPORT ||\ 631 RTL8821C_SUPPORT || RTL8710B_SUPPORT || RTL8195B_SUPPORT ||\ 632 RTL8192F_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT) 633 #define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 1 634 #else 635 #define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 0 636 #endif 637 638 #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT || RTL8822C_SUPPORT ||\ 639 RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) 640 #define PHYSTS_3RD_TYPE_SUPPORT 641 #endif 642 643 #ifdef PHYSTS_3RD_TYPE_SUPPORT 644 #define PHYSTS_AUTO_SWITCH_IC (ODM_RTL8822C) 645 #endif 646 647 #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT || RTL8822C_SUPPORT ||\ 648 RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) 649 #define BB_RAM_SUPPORT 650 #endif 651 652 #if (RTL8821C_SUPPORT || RTL8822B_SUPPORT || RTL8822C_SUPPORT ||\ 653 RTL8812F_SUPPORT || RTL8814B_SUPPORT || RTL8195B_SUPPORT ||\ 654 RTL8198F_SUPPORT) 655 #define PHYDM_COMPILE_MU 656 #endif 657 658 #if (RTL8822B_SUPPORT) 659 #define CONFIG_MU_JAGUAR_2 660 #endif 661 662 #if (RTL8814B_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT) 663 #define CONFIG_MU_JAGUAR_3 664 #endif 665 666 #if (defined(CONFIG_MU_JAGUAR_2) || defined(CONFIG_MU_JAGUAR_3)) 667 #if (RTL8814B_SUPPORT) 668 #define MU_EX_MACID 76 669 #elif (RTL8822B_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT) 670 #define MU_EX_MACID 30 671 #endif 672 #endif 673 /*@============================================================================*/ 674 675 #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8821C_SUPPORT ||\ 676 RTL8192F_SUPPORT || RTL8195B_SUPPORT || RTL8822C_SUPPORT ||\ 677 RTL8198F_SUPPORT || RTL8812F_SUPPORT || RTL8814B_SUPPORT ||\ 678 RTL8197G_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT || RTL8723F_SUPPORT) 679 #define PHYDM_COMMON_API_SUPPORT 680 #endif 681 682 #define PHYDM_COMMON_API_IC (ODM_IC_JGR3_SERIES | ODM_RTL8822B |\ 683 ODM_RTL8197F | ODM_RTL8821C | ODM_RTL8192F | ODM_RTL8195B |\ 684 ODM_RTL8721D | ODM_RTL8710C) 685 686 #if (RTL8188E_SUPPORT || RTL8192E_SUPPORT || RTL8821A_SUPPORT ||\ 687 RTL8812A_SUPPORT || RTL8723B_SUPPORT || RTL8703B_SUPPORT ||\ 688 RTL8195A_SUPPORT || RTL8814A_SUPPORT) 689 #define PHYDM_COMMON_API_NOT_SUPPORT 690 #endif 691 692 #if (RTL8821C_SUPPORT || RTL8197F_SUPPORT || RTL8197G_SUPPORT) 693 #define CONFIG_RFE_BY_HW_INFO 694 #endif 695 696 #define CCK_RATE_NUM 4 697 #define OFDM_RATE_NUM 8 698 699 #define LEGACY_RATE_NUM 12 700 701 #define HT_RATE_NUM_4SS 32 702 #define VHT_RATE_NUM_4SS 40 703 704 #define HT_RATE_NUM_3SS 24 705 #define VHT_RATE_NUM_3SS 30 706 707 #define HT_RATE_NUM_2SS 16 708 #define VHT_RATE_NUM_2SS 20 709 710 #define HT_RATE_NUM_1SS 8 711 #define VHT_RATE_NUM_1SS 10 712 #if (defined(PHYDM_COMPILE_ABOVE_4SS)) 713 #define HT_RATE_NUM HT_RATE_NUM_4SS 714 #define VHT_RATE_NUM VHT_RATE_NUM_4SS 715 #elif (defined(PHYDM_COMPILE_ABOVE_3SS)) 716 #define HT_RATE_NUM HT_RATE_NUM_3SS 717 #define VHT_RATE_NUM VHT_RATE_NUM_3SS 718 #elif (defined(PHYDM_COMPILE_ABOVE_2SS)) 719 #define HT_RATE_NUM HT_RATE_NUM_2SS 720 #define VHT_RATE_NUM VHT_RATE_NUM_2SS 721 #else 722 #define HT_RATE_NUM HT_RATE_NUM_1SS 723 #define VHT_RATE_NUM VHT_RATE_NUM_1SS 724 #endif 725 726 #define LOW_BW_RATE_NUM VHT_RATE_NUM 727 728 #if (DM_ODM_SUPPORT_TYPE == ODM_CE) 729 #define SECOND_CH_AT_LSB 2 /*@primary CH @ MSB, SD4: HAL_PRIME_CHNL_OFFSET_UPPER*/ 730 #define SECOND_CH_AT_USB 1 /*@primary CH @ LSB, SD4: HAL_PRIME_CHNL_OFFSET_LOWER*/ 731 #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) 732 #define SECOND_CH_AT_LSB 2 /*@primary CH @ MSB, SD7: HAL_PRIME_CHNL_OFFSET_UPPER*/ 733 #define SECOND_CH_AT_USB 1 /*@primary CH @ LSB, SD7: HAL_PRIME_CHNL_OFFSET_LOWER*/ 734 #else /*if (DM_ODM_SUPPORT_TYPE == ODM_AP)*/ 735 #define SECOND_CH_AT_LSB 1 /*@primary CH @ MSB, SD8: HT_2NDCH_OFFSET_BELOW*/ 736 #define SECOND_CH_AT_USB 2 /*@primary CH @ LSB, SD8: HT_2NDCH_OFFSET_ABOVE*/ 737 #endif 738 739 enum phydm_ic_ip { 740 PHYDM_IC_N = 0, 741 PHYDM_IC_AC = 1, 742 PHYDM_IC_JGR3 = 2 743 }; 744 745 enum phydm_phy_sts_type { 746 PHYDM_PHYSTS_TYPE_1 = 1, 747 PHYDM_PHYSTS_TYPE_2 = 2, 748 PHYDM_PHYSTS_TYPE_3 = 3 749 }; 750 751 /* ODM_CMNINFO_CUT_VER */ 752 enum odm_cut_version { 753 ODM_CUT_A = 0, 754 ODM_CUT_B = 1, 755 ODM_CUT_C = 2, 756 ODM_CUT_D = 3, 757 ODM_CUT_E = 4, 758 ODM_CUT_F = 5, 759 ODM_CUT_G = 6, 760 ODM_CUT_H = 7, 761 ODM_CUT_I = 8, 762 ODM_CUT_J = 9, 763 ODM_CUT_K = 10, 764 ODM_CUT_L = 11, 765 ODM_CUT_M = 12, 766 ODM_CUT_N = 13, 767 ODM_CUT_O = 14, 768 ODM_CUT_TEST = 15, 769 }; 770 771 /* ODM_CMNINFO_FAB_VER */ 772 enum odm_fab { 773 ODM_TSMC = 0, 774 ODM_UMC = 1, 775 }; 776 777 /* ODM_CMNINFO_OP_MODE */ 778 enum odm_operation_mode { 779 ODM_NO_LINK = BIT(0), 780 ODM_LINK = BIT(1), 781 ODM_SCAN = BIT(2), 782 ODM_POWERSAVE = BIT(3), 783 ODM_AP_MODE = BIT(4), 784 ODM_CLIENT_MODE = BIT(5), 785 ODM_AD_HOC = BIT(6), 786 ODM_WIFI_DIRECT = BIT(7), 787 ODM_WIFI_DISPLAY = BIT(8), 788 }; 789 790 /* ODM_CMNINFO_WM_MODE */ 791 #if (DM_ODM_SUPPORT_TYPE & (ODM_CE)) 792 enum odm_wireless_mode { 793 ODM_WM_UNKNOW = 0x0, 794 ODM_WM_B = BIT(0), 795 ODM_WM_G = BIT(1), 796 ODM_WM_A = BIT(2), 797 ODM_WM_N24G = BIT(3), 798 ODM_WM_N5G = BIT(4), 799 ODM_WM_AUTO = BIT(5), 800 ODM_WM_AC = BIT(6), 801 }; 802 #else 803 enum odm_wireless_mode { 804 ODM_WM_UNKNOWN = 0x00,/*@0x0*/ 805 ODM_WM_A = BIT(0), /* @0x1*/ 806 ODM_WM_B = BIT(1), /* @0x2*/ 807 ODM_WM_G = BIT(2),/* @0x4*/ 808 ODM_WM_AUTO = BIT(3),/* @0x8*/ 809 ODM_WM_N24G = BIT(4),/* @0x10*/ 810 ODM_WM_N5G = BIT(5),/* @0x20*/ 811 ODM_WM_AC_5G = BIT(6),/* @0x40*/ 812 ODM_WM_AC_24G = BIT(7),/* @0x80*/ 813 ODM_WM_AC_ONLY = BIT(8),/* @0x100*/ 814 ODM_WM_MAX = BIT(11)/* @0x800*/ 815 816 }; 817 #endif 818 819 /* ODM_CMNINFO_BAND */ 820 enum odm_band_type { 821 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) 822 ODM_BAND_2_4G = BIT(0), 823 ODM_BAND_5G = BIT(1), 824 #else 825 ODM_BAND_2_4G = 0, 826 ODM_BAND_5G, 827 ODM_BAND_ON_BOTH, 828 ODM_BANDMAX 829 #endif 830 }; 831 832 enum odm_rf_band { 833 ODM_RF_BAND_2G = 0, 834 ODM_RF_BAND_5G_LOW = 1, 835 ODM_RF_BAND_5G_MID = 2, 836 ODM_RF_BAND_5G_HIGH = 3, 837 }; 838 839 /* ODM_CMNINFO_SEC_CHNL_OFFSET */ 840 enum phydm_sec_chnl_offset { 841 PHYDM_DONT_CARE = 0, 842 PHYDM_BELOW = 1, 843 PHYDM_ABOVE = 2 844 }; 845 846 /* ODM_CMNINFO_SEC_MODE */ 847 enum odm_security { 848 ODM_SEC_OPEN = 0, 849 ODM_SEC_WEP40 = 1, 850 ODM_SEC_TKIP = 2, 851 ODM_SEC_RESERVE = 3, 852 ODM_SEC_AESCCMP = 4, 853 ODM_SEC_WEP104 = 5, 854 ODM_WEP_WPA_MIXED = 6, /* WEP + WPA */ 855 ODM_SEC_SMS4 = 7, 856 }; 857 858 /* ODM_CMNINFO_CHNL */ 859 860 /* ODM_CMNINFO_BOARD_TYPE */ 861 enum odm_board_type { 862 ODM_BOARD_DEFAULT = 0, /* The DEFAULT case. */ 863 ODM_BOARD_MINICARD = BIT(0), /* @0 = non-mini card, 1= mini card. */ 864 ODM_BOARD_SLIM = BIT(1), /* @0 = non-slim card, 1 = slim card */ 865 ODM_BOARD_BT = BIT(2), /* @0 = without BT card, 1 = with BT */ 866 ODM_BOARD_EXT_PA = BIT(3), /* @0 = no 2G ext-PA, 1 = existing 2G ext-PA */ 867 ODM_BOARD_EXT_LNA = BIT(4), /* @0 = no 2G ext-LNA, 1 = existing 2G ext-LNA */ 868 ODM_BOARD_EXT_TRSW = BIT(5), /* @0 = no ext-TRSW, 1 = existing ext-TRSW */ 869 ODM_BOARD_EXT_PA_5G = BIT(6), /* @0 = no 5G ext-PA, 1 = existing 5G ext-PA */ 870 ODM_BOARD_EXT_LNA_5G = BIT(7), /* @0 = no 5G ext-LNA, 1 = existing 5G ext-LNA */ 871 }; 872 873 enum odm_package_type { 874 ODM_PACKAGE_DEFAULT = 0, 875 ODM_PACKAGE_QFN68 = BIT(0), 876 ODM_PACKAGE_TFBGA90 = BIT(1), 877 ODM_PACKAGE_TFBGA79 = BIT(2), 878 }; 879 880 enum odm_type_gpa { 881 TYPE_GPA0 = 0x0000, 882 TYPE_GPA1 = 0x0055, 883 TYPE_GPA2 = 0x00AA, 884 TYPE_GPA3 = 0x00FF, 885 TYPE_GPA4 = 0x5500, 886 TYPE_GPA5 = 0x5555, 887 TYPE_GPA6 = 0x55AA, 888 TYPE_GPA7 = 0x55FF, 889 TYPE_GPA8 = 0xAA00, 890 TYPE_GPA9 = 0xAA55, 891 TYPE_GPA10 = 0xAAAA, 892 TYPE_GPA11 = 0xAAFF, 893 TYPE_GPA12 = 0xFF00, 894 TYPE_GPA13 = 0xFF55, 895 TYPE_GPA14 = 0xFFAA, 896 TYPE_GPA15 = 0xFFFF, 897 }; 898 899 enum odm_type_apa { 900 TYPE_APA0 = 0x0000, 901 TYPE_APA1 = 0x0055, 902 TYPE_APA2 = 0x00AA, 903 TYPE_APA3 = 0x00FF, 904 TYPE_APA4 = 0x5500, 905 TYPE_APA5 = 0x5555, 906 TYPE_APA6 = 0x55AA, 907 TYPE_APA7 = 0x55FF, 908 TYPE_APA8 = 0xAA00, 909 TYPE_APA9 = 0xAA55, 910 TYPE_APA10 = 0xAAAA, 911 TYPE_APA11 = 0xAAFF, 912 TYPE_APA12 = 0xFF00, 913 TYPE_APA13 = 0xFF55, 914 TYPE_APA14 = 0xFFAA, 915 TYPE_APA15 = 0xFFFF, 916 }; 917 918 enum odm_type_glna { 919 TYPE_GLNA0 = 0x0000, 920 TYPE_GLNA1 = 0x0055, 921 TYPE_GLNA2 = 0x00AA, 922 TYPE_GLNA3 = 0x00FF, 923 TYPE_GLNA4 = 0x5500, 924 TYPE_GLNA5 = 0x5555, 925 TYPE_GLNA6 = 0x55AA, 926 TYPE_GLNA7 = 0x55FF, 927 TYPE_GLNA8 = 0xAA00, 928 TYPE_GLNA9 = 0xAA55, 929 TYPE_GLNA10 = 0xAAAA, 930 TYPE_GLNA11 = 0xAAFF, 931 TYPE_GLNA12 = 0xFF00, 932 TYPE_GLNA13 = 0xFF55, 933 TYPE_GLNA14 = 0xFFAA, 934 TYPE_GLNA15 = 0xFFFF, 935 }; 936 937 enum odm_type_alna { 938 TYPE_ALNA0 = 0x0000, 939 TYPE_ALNA1 = 0x0055, 940 TYPE_ALNA2 = 0x00AA, 941 TYPE_ALNA3 = 0x00FF, 942 TYPE_ALNA4 = 0x5500, 943 TYPE_ALNA5 = 0x5555, 944 TYPE_ALNA6 = 0x55AA, 945 TYPE_ALNA7 = 0x55FF, 946 TYPE_ALNA8 = 0xAA00, 947 TYPE_ALNA9 = 0xAA55, 948 TYPE_ALNA10 = 0xAAAA, 949 TYPE_ALNA11 = 0xAAFF, 950 TYPE_ALNA12 = 0xFF00, 951 TYPE_ALNA13 = 0xFF55, 952 TYPE_ALNA14 = 0xFFAA, 953 TYPE_ALNA15 = 0xFFFF, 954 }; 955 956 #if (RTL8721D_SUPPORT) 957 /* ODM_CMNINFO_POWER_VOLTAGE */ 958 enum odm_power_voltage { 959 ODM_POWER_18V = 0, 960 ODM_POWER_33V = 1, 961 }; 962 963 /* ODM_CMNINFO_ANTDIV_GPIO */ 964 enum odm_antdiv_gpio { 965 ANTDIV_GPIO_PA2PA4 = 0, 966 ANTDIV_GPIO_PA5PA6 = 1, 967 ANTDIV_GPIO_PA12PA13 = 2, 968 ANTDIV_GPIO_PA14PA15 = 3, 969 ANTDIV_GPIO_PA16PA17 = 4, 970 ANTDIV_GPIO_PB1PB2 = 5, 971 ANTDIV_GPIO_PB26PB29 = 6, 972 ANTDIV_GPIO_PB1PB2PB26 = 7, // add by Jiao Qi for AmebaD SP3T only 973 }; 974 975 /* ODM_CMNINFO_PEAK_DETECT_MODE */ 976 enum odm_peak_detect_mode { 977 ODM_PD_DIS = 0, 978 ODM_PD_ENG = 1, 979 ODM_PD_ENA = 2, 980 ODM_PD_ENALL = 3, 981 }; 982 #endif 983 984 #define PAUSE_FAIL 0 985 #define PAUSE_SUCCESS 1 986 987 enum odm_parameter_init { 988 ODM_PRE_SETTING = 0, 989 ODM_POST_SETTING = 1, 990 ODM_INIT_FW_SETTING = 2, 991 ODM_PRE_RF_SET = 3, 992 ODM_POST_RF_SET = 4 993 }; 994 995 enum phydm_pause_type { 996 PHYDM_PAUSE = 1, /*Pause & Set new value*/ 997 PHYDM_PAUSE_NO_SET = 2, /*Pause & Stay in current value*/ 998 PHYDM_RESUME = 3 999 }; 1000 1001 enum phydm_backup_type { 1002 PHYDM_BACKUP = 1, 1003 PHYDM_RESTORE = 2 1004 }; 1005 1006 enum phydm_pause_level { 1007 PHYDM_PAUSE_RELEASE = -1, 1008 PHYDM_PAUSE_LEVEL_0 = 0, /* @Low Priority function */ 1009 PHYDM_PAUSE_LEVEL_1 = 1, /* @Middle Priority function */ 1010 PHYDM_PAUSE_LEVEL_2 = 2, /* @High priority function (ex: Check hang function) */ 1011 PHYDM_PAUSE_LEVEL_3 = 3, /* @Debug function (the highest priority) */ 1012 PHYDM_PAUSE_MAX_NUM = 4 1013 }; 1014 1015 enum phydm_dis_hw_fun { 1016 HW_FUN_DIS = 0, /*@Disable a cetain HW function & backup the original value*/ 1017 HW_FUN_RESUME = 1 /*Revert */ 1018 }; 1019 1020 #endif 1021