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