Commit | Line | Data |
---|---|---|
364e30eb LF |
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_VERSION_DEF_H__ | |
16 | #define __HAL_VERSION_DEF_H__ | |
17 | ||
18 | enum hal_ic_type { | |
19 | CHIP_8192S = 0, | |
20 | CHIP_8188C = 1, | |
21 | CHIP_8192C = 2, | |
22 | CHIP_8192D = 3, | |
23 | CHIP_8723A = 4, | |
24 | CHIP_8188E = 5, | |
25 | CHIP_8881A = 6, | |
26 | CHIP_8812A = 7, | |
27 | CHIP_8821A = 8, | |
28 | CHIP_8723B = 9, | |
29 | CHIP_8192E = 10, | |
30 | }; | |
31 | ||
32 | enum hal_chip_type { | |
33 | TEST_CHIP = 0, | |
34 | NORMAL_CHIP = 1, | |
35 | FPGA = 2, | |
36 | }; | |
37 | ||
38 | enum hal_cut_version { | |
39 | A_CUT_VERSION = 0, | |
40 | B_CUT_VERSION = 1, | |
41 | C_CUT_VERSION = 2, | |
42 | D_CUT_VERSION = 3, | |
43 | E_CUT_VERSION = 4, | |
44 | F_CUT_VERSION = 5, | |
45 | G_CUT_VERSION = 6, | |
46 | }; | |
47 | ||
48 | /* HAL_Manufacturer */ | |
49 | enum hal_vendor { | |
50 | CHIP_VENDOR_TSMC = 0, | |
51 | CHIP_VENDOR_UMC = 1, | |
52 | }; | |
53 | ||
364e30eb LF |
54 | struct hal_version { |
55 | enum hal_ic_type ICType; | |
56 | enum hal_chip_type ChipType; | |
57 | enum hal_cut_version CUTVersion; | |
58 | enum hal_vendor VendorType; | |
364e30eb LF |
59 | u8 ROMVer; |
60 | }; | |
61 | ||
62 | /* Get element */ | |
63 | #define GET_CVID_IC_TYPE(version) ((version).ICType) | |
64 | #define GET_CVID_CHIP_TYPE(version) ((version).ChipType) | |
364e30eb LF |
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 | ||
71 | #define IS_81XXC(version) \ | |
72 | (((GET_CVID_IC_TYPE(version) == CHIP_8192C) || \ | |
73 | (GET_CVID_IC_TYPE(version) == CHIP_8188C)) ? true : false) | |
74 | #define IS_8723_SERIES(version) \ | |
75 | ((GET_CVID_IC_TYPE(version) == CHIP_8723A) ? true : false) | |
76 | ||
77 | #define IS_TEST_CHIP(version) \ | |
78 | ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false) | |
79 | #define IS_NORMAL_CHIP(version) \ | |
80 | ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) | |
81 | ||
82 | #define IS_A_CUT(version) \ | |
83 | ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false) | |
84 | #define IS_B_CUT(version) \ | |
85 | ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false) | |
86 | #define IS_C_CUT(version) \ | |
87 | ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false) | |
88 | #define IS_D_CUT(version) \ | |
89 | ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false) | |
90 | #define IS_E_CUT(version) \ | |
91 | ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false) | |
92 | ||
93 | #define IS_CHIP_VENDOR_TSMC(version) \ | |
94 | ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false) | |
95 | #define IS_CHIP_VENDOR_UMC(version) \ | |
96 | ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false) | |
97 | ||
364e30eb LF |
98 | /* Chip version Macro. -- */ |
99 | ||
364e30eb LF |
100 | #define IS_81xxC_VENDOR_UMC_A_CUT(version) \ |
101 | (IS_81XXC(version)?(IS_CHIP_VENDOR_UMC(version) ? \ | |
102 | (IS_A_CUT(version) ? true : false) : false) : false) | |
103 | #define IS_81xxC_VENDOR_UMC_B_CUT(version) \ | |
104 | (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ? \ | |
105 | (IS_B_CUT(version) ? true : false) : false): false) | |
106 | #define IS_81xxC_VENDOR_UMC_C_CUT(version) \ | |
107 | (IS_81XXC(version)?(IS_CHIP_VENDOR_UMC(version) ? \ | |
108 | (IS_C_CUT(version) ? true : false) : false) : false) | |
109 | #define IS_8723A_A_CUT(version) \ | |
110 | ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false) | |
111 | #define IS_8723A_B_CUT(version) \ | |
112 | ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false) | |
113 | ||
114 | #endif |