xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/def.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /* Copyright(c) 2009-2012  Realtek Corporation.*/
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #ifndef __RTL8723E_DEF_H__
5*4882a593Smuzhiyun #define __RTL8723E_DEF_H__
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #define HAL_PRIME_CHNL_OFFSET_DONT_CARE		0
8*4882a593Smuzhiyun #define HAL_PRIME_CHNL_OFFSET_LOWER			1
9*4882a593Smuzhiyun #define HAL_PRIME_CHNL_OFFSET_UPPER			2
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #define RX_MPDU_QUEUE						0
12*4882a593Smuzhiyun #define RX_CMD_QUEUE						1
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define CHIP_BONDING_IDENTIFIER(_value)	(((_value)>>22)&0x3)
15*4882a593Smuzhiyun #define	CHIP_BONDING_92C_1T2R		0x1
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #define CHIP_8723		BIT(0)
18*4882a593Smuzhiyun #define NORMAL_CHIP		BIT(3)
19*4882a593Smuzhiyun #define RF_TYPE_1T1R		(~(BIT(4)|BIT(5)|BIT(6)))
20*4882a593Smuzhiyun #define RF_TYPE_1T2R		BIT(4)
21*4882a593Smuzhiyun #define RF_TYPE_2T2R		BIT(5)
22*4882a593Smuzhiyun #define CHIP_VENDOR_UMC		BIT(7)
23*4882a593Smuzhiyun #define B_CUT_VERSION		BIT(12)
24*4882a593Smuzhiyun #define C_CUT_VERSION		BIT(13)
25*4882a593Smuzhiyun #define D_CUT_VERSION		((BIT(12)|BIT(13)))
26*4882a593Smuzhiyun #define E_CUT_VERSION		BIT(14)
27*4882a593Smuzhiyun #define	RF_RL_ID		(BIT(31)|BIT(30)|BIT(29)|BIT(28))
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun /* MASK */
30*4882a593Smuzhiyun #define IC_TYPE_MASK		(BIT(0)|BIT(1)|BIT(2))
31*4882a593Smuzhiyun #define CHIP_TYPE_MASK		BIT(3)
32*4882a593Smuzhiyun #define RF_TYPE_MASK		(BIT(4)|BIT(5)|BIT(6))
33*4882a593Smuzhiyun #define MANUFACTUER_MASK	BIT(7)
34*4882a593Smuzhiyun #define ROM_VERSION_MASK	(BIT(11)|BIT(10)|BIT(9)|BIT(8))
35*4882a593Smuzhiyun #define CUT_VERSION_MASK	(BIT(15)|BIT(14)|BIT(13)|BIT(12))
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun /* Get element */
38*4882a593Smuzhiyun #define GET_CVID_IC_TYPE(version)	((version) & IC_TYPE_MASK)
39*4882a593Smuzhiyun #define GET_CVID_CHIP_TYPE(version)	((version) & CHIP_TYPE_MASK)
40*4882a593Smuzhiyun #define GET_CVID_RF_TYPE(version)	((version) & RF_TYPE_MASK)
41*4882a593Smuzhiyun #define GET_CVID_MANUFACTUER(version)	((version) & MANUFACTUER_MASK)
42*4882a593Smuzhiyun #define GET_CVID_ROM_VERSION(version)	((version) & ROM_VERSION_MASK)
43*4882a593Smuzhiyun #define GET_CVID_CUT_VERSION(version)	((version) & CUT_VERSION_MASK)
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun #define IS_81XXC(version)	((GET_CVID_IC_TYPE(version) == 0) ?\
46*4882a593Smuzhiyun 						true : false)
47*4882a593Smuzhiyun #define IS_8723_SERIES(version)	((GET_CVID_IC_TYPE(version) == CHIP_8723) ? \
48*4882a593Smuzhiyun 						true : false)
49*4882a593Smuzhiyun #define IS_1T1R(version)	((GET_CVID_RF_TYPE(version)) ? false : true)
50*4882a593Smuzhiyun #define IS_1T2R(version)	((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R)\
51*4882a593Smuzhiyun 						? true : false)
52*4882a593Smuzhiyun #define IS_2T2R(version)	((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R)\
53*4882a593Smuzhiyun 						? true : false)
54*4882a593Smuzhiyun #define IS_CHIP_VENDOR_UMC(version)	((GET_CVID_MANUFACTUER(version)) ? \
55*4882a593Smuzhiyun 						true : false)
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun #define IS_VENDOR_UMC_A_CUT(version)	((IS_CHIP_VENDOR_UMC(version))\
58*4882a593Smuzhiyun 					? ((GET_CVID_CUT_VERSION(version)) ? \
59*4882a593Smuzhiyun 					false : true) : false)
60*4882a593Smuzhiyun #define IS_VENDOR_8723_A_CUT(version)	((IS_8723_SERIES(version))\
61*4882a593Smuzhiyun 					? ((GET_CVID_CUT_VERSION(version)) ? \
62*4882a593Smuzhiyun 					false : true) : false)
63*4882a593Smuzhiyun #define IS_VENDOR_8723A_B_CUT(version)	((IS_8723_SERIES(version))\
64*4882a593Smuzhiyun 		? ((GET_CVID_CUT_VERSION(version) == \
65*4882a593Smuzhiyun 		B_CUT_VERSION) ? true : false) : false)
66*4882a593Smuzhiyun #define IS_81XXC_VENDOR_UMC_B_CUT(version)	((IS_CHIP_VENDOR_UMC(version))\
67*4882a593Smuzhiyun 		? ((GET_CVID_CUT_VERSION(version) == \
68*4882a593Smuzhiyun 		B_CUT_VERSION) ? true : false) : false)
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun enum rf_optype {
71*4882a593Smuzhiyun 	RF_OP_BY_SW_3WIRE = 0,
72*4882a593Smuzhiyun 	RF_OP_BY_FW,
73*4882a593Smuzhiyun 	RF_OP_MAX
74*4882a593Smuzhiyun };
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun enum rf_power_state {
77*4882a593Smuzhiyun 	RF_ON,
78*4882a593Smuzhiyun 	RF_OFF,
79*4882a593Smuzhiyun 	RF_SLEEP,
80*4882a593Smuzhiyun 	RF_SHUT_DOWN,
81*4882a593Smuzhiyun };
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun enum power_save_mode {
84*4882a593Smuzhiyun 	POWER_SAVE_MODE_ACTIVE,
85*4882a593Smuzhiyun 	POWER_SAVE_MODE_SAVE,
86*4882a593Smuzhiyun };
87*4882a593Smuzhiyun 
88*4882a593Smuzhiyun enum power_policy_config {
89*4882a593Smuzhiyun 	POWERCFG_MAX_POWER_SAVINGS,
90*4882a593Smuzhiyun 	POWERCFG_GLOBAL_POWER_SAVINGS,
91*4882a593Smuzhiyun 	POWERCFG_LOCAL_POWER_SAVINGS,
92*4882a593Smuzhiyun 	POWERCFG_LENOVO,
93*4882a593Smuzhiyun };
94*4882a593Smuzhiyun 
95*4882a593Smuzhiyun enum interface_select_pci {
96*4882a593Smuzhiyun 	INTF_SEL1_MINICARD = 0,
97*4882a593Smuzhiyun 	INTF_SEL0_PCIE = 1,
98*4882a593Smuzhiyun 	INTF_SEL2_RSV = 2,
99*4882a593Smuzhiyun 	INTF_SEL3_RSV = 3,
100*4882a593Smuzhiyun };
101*4882a593Smuzhiyun 
102*4882a593Smuzhiyun enum rtl_desc_qsel {
103*4882a593Smuzhiyun 	QSLT_BK = 0x2,
104*4882a593Smuzhiyun 	QSLT_BE = 0x0,
105*4882a593Smuzhiyun 	QSLT_VI = 0x5,
106*4882a593Smuzhiyun 	QSLT_VO = 0x7,
107*4882a593Smuzhiyun 	QSLT_BEACON = 0x10,
108*4882a593Smuzhiyun 	QSLT_HIGH = 0x11,
109*4882a593Smuzhiyun 	QSLT_MGNT = 0x12,
110*4882a593Smuzhiyun 	QSLT_CMD = 0x13,
111*4882a593Smuzhiyun };
112*4882a593Smuzhiyun 
113*4882a593Smuzhiyun enum rtl_desc8723e_rate {
114*4882a593Smuzhiyun 	DESC92C_RATE1M = 0x00,
115*4882a593Smuzhiyun 	DESC92C_RATE2M = 0x01,
116*4882a593Smuzhiyun 	DESC92C_RATE5_5M = 0x02,
117*4882a593Smuzhiyun 	DESC92C_RATE11M = 0x03,
118*4882a593Smuzhiyun 
119*4882a593Smuzhiyun 	DESC92C_RATE6M = 0x04,
120*4882a593Smuzhiyun 	DESC92C_RATE9M = 0x05,
121*4882a593Smuzhiyun 	DESC92C_RATE12M = 0x06,
122*4882a593Smuzhiyun 	DESC92C_RATE18M = 0x07,
123*4882a593Smuzhiyun 	DESC92C_RATE24M = 0x08,
124*4882a593Smuzhiyun 	DESC92C_RATE36M = 0x09,
125*4882a593Smuzhiyun 	DESC92C_RATE48M = 0x0a,
126*4882a593Smuzhiyun 	DESC92C_RATE54M = 0x0b,
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun 	DESC92C_RATEMCS0 = 0x0c,
129*4882a593Smuzhiyun 	DESC92C_RATEMCS1 = 0x0d,
130*4882a593Smuzhiyun 	DESC92C_RATEMCS2 = 0x0e,
131*4882a593Smuzhiyun 	DESC92C_RATEMCS3 = 0x0f,
132*4882a593Smuzhiyun 	DESC92C_RATEMCS4 = 0x10,
133*4882a593Smuzhiyun 	DESC92C_RATEMCS5 = 0x11,
134*4882a593Smuzhiyun 	DESC92C_RATEMCS6 = 0x12,
135*4882a593Smuzhiyun 	DESC92C_RATEMCS7 = 0x13,
136*4882a593Smuzhiyun 	DESC92C_RATEMCS8 = 0x14,
137*4882a593Smuzhiyun 	DESC92C_RATEMCS9 = 0x15,
138*4882a593Smuzhiyun 	DESC92C_RATEMCS10 = 0x16,
139*4882a593Smuzhiyun 	DESC92C_RATEMCS11 = 0x17,
140*4882a593Smuzhiyun 	DESC92C_RATEMCS12 = 0x18,
141*4882a593Smuzhiyun 	DESC92C_RATEMCS13 = 0x19,
142*4882a593Smuzhiyun 	DESC92C_RATEMCS14 = 0x1a,
143*4882a593Smuzhiyun 	DESC92C_RATEMCS15 = 0x1b,
144*4882a593Smuzhiyun 	DESC92C_RATEMCS15_SG = 0x1c,
145*4882a593Smuzhiyun 	DESC92C_RATEMCS32 = 0x20,
146*4882a593Smuzhiyun };
147*4882a593Smuzhiyun 
148*4882a593Smuzhiyun struct phy_sts_cck_8723e_t {
149*4882a593Smuzhiyun 	u8 adc_pwdb_X[4];
150*4882a593Smuzhiyun 	u8 sq_rpt;
151*4882a593Smuzhiyun 	u8 cck_agc_rpt;
152*4882a593Smuzhiyun };
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun struct h2c_cmd_8723e {
155*4882a593Smuzhiyun 	u8 element_id;
156*4882a593Smuzhiyun 	u32 cmd_len;
157*4882a593Smuzhiyun 	u8 *p_cmdbuffer;
158*4882a593Smuzhiyun };
159*4882a593Smuzhiyun 
160*4882a593Smuzhiyun #endif
161