1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2 /* Copyright(c) 2007 - 2011 Realtek Corporation. */ 3 #ifndef __HAL_VERSION_DEF_H__ 4 #define __HAL_VERSION_DEF_H__ 5 6 enum HAL_IC_TYPE { 7 CHIP_8192S = 0, 8 CHIP_8188C = 1, 9 CHIP_8192C = 2, 10 CHIP_8192D = 3, 11 CHIP_8723A = 4, 12 CHIP_8188E = 5, 13 CHIP_8881A = 6, 14 CHIP_8812A = 7, 15 CHIP_8821A = 8, 16 CHIP_8723B = 9, 17 CHIP_8192E = 10, 18 }; 19 20 enum HAL_CHIP_TYPE { 21 TEST_CHIP = 0, 22 NORMAL_CHIP = 1, 23 FPGA = 2, 24 }; 25 26 enum HAL_CUT_VERSION { 27 A_CUT_VERSION = 0, 28 B_CUT_VERSION = 1, 29 C_CUT_VERSION = 2, 30 D_CUT_VERSION = 3, 31 E_CUT_VERSION = 4, 32 F_CUT_VERSION = 5, 33 G_CUT_VERSION = 6, 34 }; 35 36 enum HAL_VENDOR { 37 CHIP_VENDOR_TSMC = 0, 38 CHIP_VENDOR_UMC = 1, 39 }; 40 41 enum HAL_RF_TYPE { 42 RF_TYPE_1T1R = 0, 43 RF_TYPE_1T2R = 1, 44 RF_TYPE_2T2R = 2, 45 RF_TYPE_2T3R = 3, 46 RF_TYPE_2T4R = 4, 47 RF_TYPE_3T3R = 5, 48 RF_TYPE_3T4R = 6, 49 RF_TYPE_4T4R = 7, 50 }; 51 52 struct HAL_VERSION { 53 enum HAL_IC_TYPE ICType; 54 enum HAL_CHIP_TYPE ChipType; 55 enum HAL_CUT_VERSION CUTVersion; 56 enum HAL_VENDOR VendorType; 57 enum HAL_RF_TYPE RFType; 58 u8 ROMVer; 59 }; 60 61 /* Get element */ 62 #define GET_CVID_IC_TYPE(version) (((version).ICType)) 63 #define GET_CVID_CHIP_TYPE(version) (((version).ChipType)) 64 #define GET_CVID_RF_TYPE(version) (((version).RFType)) 65 #define GET_CVID_MANUFACTUER(version) (((version).VendorType)) 66 #define GET_CVID_CUT_VERSION(version) (((version).CUTVersion)) 67 #define GET_CVID_ROM_VERSION(version) (((version).ROMVer) & ROM_VERSION_MASK) 68 69 /* Common Macro. -- */ 70 /* HAL_VERSION VersionID */ 71 72 /* HAL_IC_TYPE_E */ 73 #define IS_81XXC(version) \ 74 (((GET_CVID_IC_TYPE(version) == CHIP_8192C) || \ 75 (GET_CVID_IC_TYPE(version) == CHIP_8188C)) ? true : false) 76 #define IS_8723_SERIES(version) \ 77 ((GET_CVID_IC_TYPE(version) == CHIP_8723A) ? true : false) 78 #define IS_92D(version) \ 79 ((GET_CVID_IC_TYPE(version) == CHIP_8192D) ? true : false) 80 #define IS_8188E(version) \ 81 ((GET_CVID_IC_TYPE(version) == CHIP_8188E) ? true : false) 82 83 /* HAL_CHIP_TYPE_E */ 84 #define IS_TEST_CHIP(version) \ 85 ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false) 86 #define IS_NORMAL_CHIP(version) \ 87 ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) 88 89 /* HAL_CUT_VERSION_E */ 90 #define IS_A_CUT(version) \ 91 ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false) 92 #define IS_B_CUT(version) \ 93 ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false) 94 #define IS_C_CUT(version) \ 95 ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false) 96 #define IS_D_CUT(version) \ 97 ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false) 98 #define IS_E_CUT(version) \ 99 ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false) 100 101 /* HAL_VENDOR_E */ 102 #define IS_CHIP_VENDOR_TSMC(version) \ 103 ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false) 104 #define IS_CHIP_VENDOR_UMC(version) \ 105 ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false) 106 107 /* HAL_RF_TYPE_E */ 108 #define IS_1T1R(version) \ 109 ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T1R) ? true : false) 110 #define IS_1T2R(version) \ 111 ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R) ? true : false) 112 #define IS_2T2R(version) \ 113 ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R) ? true : false) 114 115 /* Chip version Macro. -- */ 116 #define IS_81XXC_TEST_CHIP(version) \ 117 ((IS_81XXC(version) && (!IS_NORMAL_CHIP(version))) ? true : false) 118 119 #define IS_92C_SERIAL(version) \ 120 ((IS_81XXC(version) && IS_2T2R(version)) ? true : false) 121 #define IS_81xxC_VENDOR_UMC_A_CUT(version) \ 122 (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 123 (IS_A_CUT(version) ? true : false) : false) : false) 124 #define IS_81xxC_VENDOR_UMC_B_CUT(version) \ 125 (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 126 (IS_B_CUT(version) ? true : false) : false) : false) 127 #define IS_81xxC_VENDOR_UMC_C_CUT(version) \ 128 (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ 129 (IS_C_CUT(version) ? true : false) : false) : false) 130 131 #define IS_NORMAL_CHIP92D(version) \ 132 ((IS_92D(version)) ? \ 133 ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) : false) 134 135 #define IS_92D_SINGLEPHY(version) \ 136 ((IS_92D(version)) ? (IS_2T2R(version) ? true : false) : false) 137 #define IS_92D_C_CUT(version) \ 138 ((IS_92D(version)) ? (IS_C_CUT(version) ? true : false) : false) 139 #define IS_92D_D_CUT(version) \ 140 ((IS_92D(version)) ? (IS_D_CUT(version) ? true : false) : false) 141 #define IS_92D_E_CUT(version) \ 142 ((IS_92D(version)) ? (IS_E_CUT(version) ? true : false) : false) 143 144 #define IS_8723A_A_CUT(version) \ 145 ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false) 146 #define IS_8723A_B_CUT(version) \ 147 ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false) 148 149 #endif 150