162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* Copyright(c) 2009-2012  Realtek Corporation.*/
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#ifndef __RTL92D_DEF_H__
562306a36Sopenharmony_ci#define __RTL92D_DEF_H__
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/* Min Spacing related settings. */
862306a36Sopenharmony_ci#define	MAX_MSS_DENSITY_2T				0x13
962306a36Sopenharmony_ci#define	MAX_MSS_DENSITY_1T				0x0A
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define RF6052_MAX_TX_PWR				0x3F
1262306a36Sopenharmony_ci#define RF6052_MAX_PATH					2
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#define	PHY_RSSI_SLID_WIN_MAX				100
1562306a36Sopenharmony_ci#define	PHY_LINKQUALITY_SLID_WIN_MAX			20
1662306a36Sopenharmony_ci#define	PHY_BEACON_RSSI_SLID_WIN_MAX			10
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define RT_AC_INT_MASKS		(IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK)
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#define RX_SMOOTH_FACTOR				20
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci#define HAL_PRIME_CHNL_OFFSET_DONT_CARE			0
2362306a36Sopenharmony_ci#define HAL_PRIME_CHNL_OFFSET_LOWER			1
2462306a36Sopenharmony_ci#define HAL_PRIME_CHNL_OFFSET_UPPER			2
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci#define RX_MPDU_QUEUE					0
2762306a36Sopenharmony_ci#define RX_CMD_QUEUE					1
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cienum version_8192d {
3062306a36Sopenharmony_ci	VERSION_TEST_CHIP_88C = 0x0000,
3162306a36Sopenharmony_ci	VERSION_TEST_CHIP_92C = 0x0020,
3262306a36Sopenharmony_ci	VERSION_TEST_UMC_CHIP_8723 = 0x0081,
3362306a36Sopenharmony_ci	VERSION_NORMAL_TSMC_CHIP_88C = 0x0008,
3462306a36Sopenharmony_ci	VERSION_NORMAL_TSMC_CHIP_92C = 0x0028,
3562306a36Sopenharmony_ci	VERSION_NORMAL_TSMC_CHIP_92C_1T2R = 0x0018,
3662306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_88C_A_CUT = 0x0088,
3762306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_92C_A_CUT = 0x00a8,
3862306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_92C_1T2R_A_CUT = 0x0098,
3962306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_8723_1T1R_A_CUT = 0x0089,
4062306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_8723_1T1R_B_CUT = 0x1089,
4162306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_88C_B_CUT = 0x1088,
4262306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_92C_B_CUT = 0x10a8,
4362306a36Sopenharmony_ci	VERSION_NORMAL_UMC_CHIP_92C_1T2R_B_CUT = 0x1090,
4462306a36Sopenharmony_ci	VERSION_TEST_CHIP_92D_SINGLEPHY = 0x0022,
4562306a36Sopenharmony_ci	VERSION_TEST_CHIP_92D_DUALPHY = 0x0002,
4662306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_SINGLEPHY = 0x002a,
4762306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_DUALPHY = 0x000a,
4862306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_C_CUT_SINGLEPHY = 0x202a,
4962306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_C_CUT_DUALPHY = 0x200a,
5062306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_D_CUT_SINGLEPHY = 0x302a,
5162306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_D_CUT_DUALPHY = 0x300a,
5262306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_E_CUT_SINGLEPHY = 0x402a,
5362306a36Sopenharmony_ci	VERSION_NORMAL_CHIP_92D_E_CUT_DUALPHY = 0x400a,
5462306a36Sopenharmony_ci};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci/* for 92D */
5762306a36Sopenharmony_ci#define CHIP_92D_SINGLEPHY		BIT(9)
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci/* Chip specific */
6062306a36Sopenharmony_ci#define CHIP_BONDING_IDENTIFIER(_value)	(((_value)>>22)&0x3)
6162306a36Sopenharmony_ci#define CHIP_BONDING_92C_1T2R			0x1
6262306a36Sopenharmony_ci#define CHIP_BONDING_88C_USB_MCARD		0x2
6362306a36Sopenharmony_ci#define CHIP_BONDING_88C_USB_HP			0x1
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci/* [15:12] IC version(CUT): A-cut=0, B-cut=1, C-cut=2, D-cut=3 */
6662306a36Sopenharmony_ci/* [7] Manufacturer: TSMC=0, UMC=1 */
6762306a36Sopenharmony_ci/* [6:4] RF type: 1T1R=0, 1T2R=1, 2T2R=2 */
6862306a36Sopenharmony_ci/* [3] Chip type: TEST=0, NORMAL=1 */
6962306a36Sopenharmony_ci/* [2:0] IC type: 81xxC=0, 8723=1, 92D=2 */
7062306a36Sopenharmony_ci#define CHIP_8723			BIT(0)
7162306a36Sopenharmony_ci#define CHIP_92D			BIT(1)
7262306a36Sopenharmony_ci#define NORMAL_CHIP			BIT(3)
7362306a36Sopenharmony_ci#define RF_TYPE_1T1R			(~(BIT(4)|BIT(5)|BIT(6)))
7462306a36Sopenharmony_ci#define RF_TYPE_1T2R			BIT(4)
7562306a36Sopenharmony_ci#define RF_TYPE_2T2R			BIT(5)
7662306a36Sopenharmony_ci#define CHIP_VENDOR_UMC			BIT(7)
7762306a36Sopenharmony_ci#define CHIP_92D_B_CUT			BIT(12)
7862306a36Sopenharmony_ci#define CHIP_92D_C_CUT			BIT(13)
7962306a36Sopenharmony_ci#define CHIP_92D_D_CUT			(BIT(13)|BIT(12))
8062306a36Sopenharmony_ci#define CHIP_92D_E_CUT			BIT(14)
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci/* MASK */
8362306a36Sopenharmony_ci#define IC_TYPE_MASK			(BIT(0)|BIT(1)|BIT(2))
8462306a36Sopenharmony_ci#define CHIP_TYPE_MASK			BIT(3)
8562306a36Sopenharmony_ci#define RF_TYPE_MASK			(BIT(4)|BIT(5)|BIT(6))
8662306a36Sopenharmony_ci#define MANUFACTUER_MASK		BIT(7)
8762306a36Sopenharmony_ci#define ROM_VERSION_MASK		(BIT(11)|BIT(10)|BIT(9)|BIT(8))
8862306a36Sopenharmony_ci#define CUT_VERSION_MASK		(BIT(15)|BIT(14)|BIT(13)|BIT(12))
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci/* Get element */
9262306a36Sopenharmony_ci#define GET_CVID_IC_TYPE(version)	((version) & IC_TYPE_MASK)
9362306a36Sopenharmony_ci#define GET_CVID_CHIP_TYPE(version)	((version) & CHIP_TYPE_MASK)
9462306a36Sopenharmony_ci#define GET_CVID_RF_TYPE(version)	((version) & RF_TYPE_MASK)
9562306a36Sopenharmony_ci#define GET_CVID_MANUFACTUER(version)	((version) & MANUFACTUER_MASK)
9662306a36Sopenharmony_ci#define GET_CVID_ROM_VERSION(version)	((version) & ROM_VERSION_MASK)
9762306a36Sopenharmony_ci#define GET_CVID_CUT_VERSION(version)	((version) & CUT_VERSION_MASK)
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci#define IS_1T1R(version)		((GET_CVID_RF_TYPE(version)) ?	\
10062306a36Sopenharmony_ci					 false : true)
10162306a36Sopenharmony_ci#define IS_1T2R(version)		((GET_CVID_RF_TYPE(version) ==	\
10262306a36Sopenharmony_ci					 RF_TYPE_1T2R) ? true : false)
10362306a36Sopenharmony_ci#define IS_2T2R(version)		((GET_CVID_RF_TYPE(version) ==	\
10462306a36Sopenharmony_ci					 RF_TYPE_2T2R) ? true : false)
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci#define IS_92D_SINGLEPHY(version)	((IS_92D(version)) ?		\
10762306a36Sopenharmony_ci				 (IS_2T2R(version) ? true : false) : false)
10862306a36Sopenharmony_ci#define IS_92D(version)			((GET_CVID_IC_TYPE(version) ==	\
10962306a36Sopenharmony_ci					 CHIP_92D) ? true : false)
11062306a36Sopenharmony_ci#define IS_92D_C_CUT(version)		((IS_92D(version)) ?		\
11162306a36Sopenharmony_ci				 ((GET_CVID_CUT_VERSION(version) ==	\
11262306a36Sopenharmony_ci				 CHIP_92D_C_CUT) ? true : false) : false)
11362306a36Sopenharmony_ci#define IS_92D_D_CUT(version)			((IS_92D(version)) ?	\
11462306a36Sopenharmony_ci				 ((GET_CVID_CUT_VERSION(version) ==	\
11562306a36Sopenharmony_ci				 CHIP_92D_D_CUT) ? true : false) : false)
11662306a36Sopenharmony_ci#define IS_92D_E_CUT(version)		((IS_92D(version)) ?		\
11762306a36Sopenharmony_ci				 ((GET_CVID_CUT_VERSION(version) ==	\
11862306a36Sopenharmony_ci				 CHIP_92D_E_CUT) ? true : false) : false)
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_cienum rf_optype {
12162306a36Sopenharmony_ci	RF_OP_BY_SW_3WIRE = 0,
12262306a36Sopenharmony_ci	RF_OP_BY_FW,
12362306a36Sopenharmony_ci	RF_OP_MAX
12462306a36Sopenharmony_ci};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_cienum rtl_desc_qsel {
12762306a36Sopenharmony_ci	QSLT_BK = 0x2,
12862306a36Sopenharmony_ci	QSLT_BE = 0x0,
12962306a36Sopenharmony_ci	QSLT_VI = 0x5,
13062306a36Sopenharmony_ci	QSLT_VO = 0x7,
13162306a36Sopenharmony_ci	QSLT_BEACON = 0x10,
13262306a36Sopenharmony_ci	QSLT_HIGH = 0x11,
13362306a36Sopenharmony_ci	QSLT_MGNT = 0x12,
13462306a36Sopenharmony_ci	QSLT_CMD = 0x13,
13562306a36Sopenharmony_ci};
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_cienum channel_plan {
13862306a36Sopenharmony_ci	CHPL_FCC	= 0,
13962306a36Sopenharmony_ci	CHPL_IC		= 1,
14062306a36Sopenharmony_ci	CHPL_ETSI	= 2,
14162306a36Sopenharmony_ci	CHPL_SPAIN	= 3,
14262306a36Sopenharmony_ci	CHPL_FRANCE	= 4,
14362306a36Sopenharmony_ci	CHPL_MKK	= 5,
14462306a36Sopenharmony_ci	CHPL_MKK1	= 6,
14562306a36Sopenharmony_ci	CHPL_ISRAEL	= 7,
14662306a36Sopenharmony_ci	CHPL_TELEC	= 8,
14762306a36Sopenharmony_ci	CHPL_GLOBAL	= 9,
14862306a36Sopenharmony_ci	CHPL_WORLD	= 10,
14962306a36Sopenharmony_ci};
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_cistruct phy_sts_cck_8192d {
15262306a36Sopenharmony_ci	u8 adc_pwdb_X[4];
15362306a36Sopenharmony_ci	u8 sq_rpt;
15462306a36Sopenharmony_ci	u8 cck_agc_rpt;
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_cistruct h2c_cmd_8192c {
15862306a36Sopenharmony_ci	u8 element_id;
15962306a36Sopenharmony_ci	u32 cmd_len;
16062306a36Sopenharmony_ci	u8 *p_cmdbuffer;
16162306a36Sopenharmony_ci};
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_cistruct txpower_info {
16462306a36Sopenharmony_ci	u8 cck_index[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
16562306a36Sopenharmony_ci	u8 ht40_1sindex[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
16662306a36Sopenharmony_ci	u8 ht40_2sindexdiff[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
16762306a36Sopenharmony_ci	u8 ht20indexdiff[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
16862306a36Sopenharmony_ci	u8 ofdmindexdiff[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
16962306a36Sopenharmony_ci	u8 ht40maxoffset[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
17062306a36Sopenharmony_ci	u8 ht20maxoffset[RF6052_MAX_PATH][CHANNEL_GROUP_MAX];
17162306a36Sopenharmony_ci	u8 tssi_a[3];		/* 5GL/5GM/5GH */
17262306a36Sopenharmony_ci	u8 tssi_b[3];
17362306a36Sopenharmony_ci};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci#endif
176