1b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/****************************************************************************** 2b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 3b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 5b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * This program is free software; you can redistribute it and/or modify it 6b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * under the terms of version 2 of the GNU General Public License as 7b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * published by the Free Software Foundation. 8b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 9b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * This program is distributed in the hope that it will be useful, but WITHOUT 10b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * more details. 13b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 14b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * You should have received a copy of the GNU General Public License along with 15b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * this program; if not, write to the Free Software Foundation, Inc., 16b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 18b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger * 19b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ******************************************************************************/ 20b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#ifndef __HAL_VERSION_DEF_H__ 21b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define __HAL_VERSION_DEF_H__ 22b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 23b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Fingerenum HAL_IC_TYPE { 24b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8192S = 0, 25b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8188C = 1, 26b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8192C = 2, 27b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8192D = 3, 28b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8723A = 4, 29b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8188E = 5, 30b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8881A = 6, 31b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8812A = 7, 32b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8821A = 8, 33b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8723B = 9, 34b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_8192E = 10, 35b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger}; 36b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 37b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Fingerenum HAL_CHIP_TYPE { 38b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger TEST_CHIP = 0, 39b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger NORMAL_CHIP = 1, 40b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger FPGA = 2, 41b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger}; 42b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 43b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Fingerenum HAL_CUT_VERSION { 44b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger A_CUT_VERSION = 0, 45b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger B_CUT_VERSION = 1, 46b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger C_CUT_VERSION = 2, 47b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger D_CUT_VERSION = 3, 48b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger E_CUT_VERSION = 4, 49b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger F_CUT_VERSION = 5, 50b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger G_CUT_VERSION = 6, 51b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger}; 52b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 53b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Fingerenum HAL_VENDOR { 54b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_VENDOR_TSMC = 0, 55b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger CHIP_VENDOR_UMC = 1, 56b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger}; 57b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 58b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Fingerenum HAL_RF_TYPE { 59b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_1T1R = 0, 60b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_1T2R = 1, 61b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_2T2R = 2, 62b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_2T3R = 3, 63b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_2T4R = 4, 64b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_3T3R = 5, 65b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_3T4R = 6, 66b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger RF_TYPE_4T4R = 7, 67b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger}; 68b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 69b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Fingerstruct HAL_VERSION { 70b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger enum HAL_IC_TYPE ICType; 71b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger enum HAL_CHIP_TYPE ChipType; 72b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger enum HAL_CUT_VERSION CUTVersion; 73b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger enum HAL_VENDOR VendorType; 74b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger enum HAL_RF_TYPE RFType; 75b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger u8 ROMVer; 76b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger}; 77b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 78b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* Get element */ 79b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define GET_CVID_IC_TYPE(version) (((version).ICType)) 80b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define GET_CVID_CHIP_TYPE(version) (((version).ChipType)) 81b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define GET_CVID_RF_TYPE(version) (((version).RFType)) 82b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define GET_CVID_MANUFACTUER(version) (((version).VendorType)) 83b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define GET_CVID_CUT_VERSION(version) (((version).CUTVersion)) 84b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define GET_CVID_ROM_VERSION(version) (((version).ROMVer) & ROM_VERSION_MASK) 85b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 86b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* Common Macro. -- */ 87b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* HAL_VERSION VersionID */ 88b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 89b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* HAL_IC_TYPE_E */ 90b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_81XXC(version) \ 91b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (((GET_CVID_IC_TYPE(version) == CHIP_8192C) || \ 92b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (GET_CVID_IC_TYPE(version) == CHIP_8188C)) ? true : false) 93b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_8723_SERIES(version) \ 94b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_IC_TYPE(version) == CHIP_8723A) ? true : false) 95b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_92D(version) \ 96b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_IC_TYPE(version) == CHIP_8192D) ? true : false) 97b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_8188E(version) \ 98b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_IC_TYPE(version) == CHIP_8188E) ? true : false) 99b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 100b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* HAL_CHIP_TYPE_E */ 101b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_TEST_CHIP(version) \ 102b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false) 103b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_NORMAL_CHIP(version) \ 104b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) 105b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 106b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* HAL_CUT_VERSION_E */ 107b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_A_CUT(version) \ 108b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false) 109b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_B_CUT(version) \ 110b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false) 111b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_C_CUT(version) \ 112b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false) 113b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_D_CUT(version) \ 114b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false) 115b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_E_CUT(version) \ 116b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false) 117b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 118b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 119b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* HAL_VENDOR_E */ 120b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_CHIP_VENDOR_TSMC(version) \ 121b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false) 122b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_CHIP_VENDOR_UMC(version) \ 123b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false) 124b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 125b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* HAL_RF_TYPE_E */ 126b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_1T1R(version) \ 127b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T1R) ? true : false) 128b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_1T2R(version) \ 129b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R) ? true : false) 130b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_2T2R(version) \ 131b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R) ? true : false) 132b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 133b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger/* Chip version Macro. -- */ 134b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_81XXC_TEST_CHIP(version) \ 135b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_81XXC(version) && (!IS_NORMAL_CHIP(version))) ? true : false) 136b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 137b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_92C_SERIAL(version) \ 138b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_81XXC(version) && IS_2T2R(version)) ? true : false) 139b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_81xxC_VENDOR_UMC_A_CUT(version) \ 140b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 141b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (IS_A_CUT(version) ? true : false) : false) : false) 142b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_81xxC_VENDOR_UMC_B_CUT(version) \ 143b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 144b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (IS_B_CUT(version) ? true : false) : false) : false) 145b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_81xxC_VENDOR_UMC_C_CUT(version) \ 146b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 147b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger (IS_C_CUT(version) ? true : false) : false) : false) 148b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 149b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_NORMAL_CHIP92D(version) \ 150b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_92D(version)) ? \ 151b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) : false) 152b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 153b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_92D_SINGLEPHY(version) \ 154b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_92D(version)) ? (IS_2T2R(version) ? true : false) : false) 155b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_92D_C_CUT(version) \ 156b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_92D(version)) ? (IS_C_CUT(version) ? true : false) : false) 157b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_92D_D_CUT(version) \ 158b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_92D(version)) ? (IS_D_CUT(version) ? true : false) : false) 159b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_92D_E_CUT(version) \ 160b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_92D(version)) ? (IS_E_CUT(version) ? true : false) : false) 161b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 162b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_8723A_A_CUT(version) \ 163b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false) 164b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#define IS_8723A_B_CUT(version) \ 165b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false) 166b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger 167b1da99bbf28fb4f7e5cdcaec4e723e0913f222ffLarry Finger#endif 168