158391efdSNathan Chancellor /* SPDX-License-Identifier: GPL-2.0 */ 2554c0a3aSHans de Goede /****************************************************************************** 3554c0a3aSHans de Goede * 4554c0a3aSHans de Goede * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 5554c0a3aSHans de Goede * 6554c0a3aSHans de Goede ******************************************************************************/ 7554c0a3aSHans de Goede #ifndef __HAL_VERSION_DEF_H__ 8554c0a3aSHans de Goede #define __HAL_VERSION_DEF_H__ 9554c0a3aSHans de Goede 10*35f25566SMarco Cesati /* hal_ic_type_e */ 11*35f25566SMarco Cesati enum hal_ic_type_e { /* tag_HAL_IC_Type_Definition */ 12554c0a3aSHans de Goede CHIP_8723B = 8, 13f30c2623SMarco Cesati }; 14554c0a3aSHans de Goede 15*35f25566SMarco Cesati /* hal_chip_type_e */ 16*35f25566SMarco Cesati enum hal_chip_type_e { /* tag_HAL_CHIP_Type_Definition */ 17554c0a3aSHans de Goede TEST_CHIP = 0, 18554c0a3aSHans de Goede NORMAL_CHIP = 1, 19554c0a3aSHans de Goede FPGA = 2, 20f30c2623SMarco Cesati }; 21554c0a3aSHans de Goede 22*35f25566SMarco Cesati /* hal_cut_version_e */ 23*35f25566SMarco Cesati enum hal_cut_version_e { /* tag_HAL_Cut_Version_Definition */ 24554c0a3aSHans de Goede A_CUT_VERSION = 0, 25554c0a3aSHans de Goede B_CUT_VERSION = 1, 26554c0a3aSHans de Goede C_CUT_VERSION = 2, 27554c0a3aSHans de Goede D_CUT_VERSION = 3, 28554c0a3aSHans de Goede E_CUT_VERSION = 4, 29554c0a3aSHans de Goede F_CUT_VERSION = 5, 30554c0a3aSHans de Goede G_CUT_VERSION = 6, 31554c0a3aSHans de Goede H_CUT_VERSION = 7, 32554c0a3aSHans de Goede I_CUT_VERSION = 8, 33554c0a3aSHans de Goede J_CUT_VERSION = 9, 34554c0a3aSHans de Goede K_CUT_VERSION = 10, 35f30c2623SMarco Cesati }; 36554c0a3aSHans de Goede 37554c0a3aSHans de Goede /* HAL_Manufacturer */ 38*35f25566SMarco Cesati enum hal_vendor_e { /* tag_HAL_Manufacturer_Version_Definition */ 39554c0a3aSHans de Goede CHIP_VENDOR_TSMC = 0, 40554c0a3aSHans de Goede CHIP_VENDOR_UMC = 1, 41554c0a3aSHans de Goede CHIP_VENDOR_SMIC = 2, 42f30c2623SMarco Cesati }; 43554c0a3aSHans de Goede 44*35f25566SMarco Cesati struct hal_version { /* tag_HAL_VERSION */ 45*35f25566SMarco Cesati enum hal_ic_type_e ICType; 46*35f25566SMarco Cesati enum hal_chip_type_e ChipType; 47*35f25566SMarco Cesati enum hal_cut_version_e CUTVersion; 48*35f25566SMarco Cesati enum hal_vendor_e VendorType; 49554c0a3aSHans de Goede u8 ROMVer; 50f30c2623SMarco Cesati }; 51554c0a3aSHans de Goede 52*35f25566SMarco Cesati /* hal_version VersionID; */ 53554c0a3aSHans de Goede 54554c0a3aSHans de Goede /* Get element */ 55*35f25566SMarco Cesati #define GET_CVID_IC_TYPE(version) ((enum hal_ic_type_e)((version).ICType)) 56*35f25566SMarco Cesati #define GET_CVID_CHIP_TYPE(version) ((enum hal_chip_type_e)((version).ChipType)) 57*35f25566SMarco Cesati #define GET_CVID_MANUFACTUER(version) ((enum hal_vendor_e)((version).VendorType)) 58*35f25566SMarco Cesati #define GET_CVID_CUT_VERSION(version) ((enum hal_cut_version_e)((version).CUTVersion)) 59554c0a3aSHans de Goede #define GET_CVID_ROM_VERSION(version) (((version).ROMVer) & ROM_VERSION_MASK) 60554c0a3aSHans de Goede 61554c0a3aSHans de Goede /* */ 62554c0a3aSHans de Goede /* Common Macro. -- */ 63554c0a3aSHans de Goede /* */ 64*35f25566SMarco Cesati /* hal_version VersionID */ 65554c0a3aSHans de Goede 66*35f25566SMarco Cesati /* hal_chip_type_e */ 67554c0a3aSHans de Goede #define IS_TEST_CHIP(version) ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false) 68554c0a3aSHans de Goede #define IS_NORMAL_CHIP(version) ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) 69554c0a3aSHans de Goede 70*35f25566SMarco Cesati /* hal_cut_version_e */ 71554c0a3aSHans de Goede #define IS_A_CUT(version) ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false) 72554c0a3aSHans de Goede #define IS_B_CUT(version) ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false) 73554c0a3aSHans de Goede #define IS_C_CUT(version) ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false) 74554c0a3aSHans de Goede #define IS_D_CUT(version) ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false) 75554c0a3aSHans de Goede #define IS_E_CUT(version) ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false) 76554c0a3aSHans de Goede #define IS_I_CUT(version) ((GET_CVID_CUT_VERSION(version) == I_CUT_VERSION) ? true : false) 77554c0a3aSHans de Goede #define IS_J_CUT(version) ((GET_CVID_CUT_VERSION(version) == J_CUT_VERSION) ? true : false) 78554c0a3aSHans de Goede #define IS_K_CUT(version) ((GET_CVID_CUT_VERSION(version) == K_CUT_VERSION) ? true : false) 79554c0a3aSHans de Goede 80*35f25566SMarco Cesati /* hal_vendor_e */ 81554c0a3aSHans de Goede #define IS_CHIP_VENDOR_TSMC(version) ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false) 82554c0a3aSHans de Goede #define IS_CHIP_VENDOR_UMC(version) ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false) 83554c0a3aSHans de Goede #define IS_CHIP_VENDOR_SMIC(version) ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_SMIC) ? true : false) 84554c0a3aSHans de Goede 85554c0a3aSHans de Goede #endif 86