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 18enum 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 32enum hal_chip_type { 33 TEST_CHIP = 0, 34 NORMAL_CHIP = 1, 35 FPGA = 2, 36}; 37 38enum 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 */ 49enum hal_vendor { 50 CHIP_VENDOR_TSMC = 0, 51 CHIP_VENDOR_UMC = 1, 52}; 53 54struct 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; 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) 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 98/* Chip version Macro. -- */ 99 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 115