xref: /openbmc/linux/drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
190211957SLorenzo Bianconi /* SPDX-License-Identifier: ISC */
290211957SLorenzo Bianconi /* Copyright (C) 2022 MediaTek Inc. */
390211957SLorenzo Bianconi 
490211957SLorenzo Bianconi #ifndef __MT76_CONNAC2_MAC_H
590211957SLorenzo Bianconi #define __MT76_CONNAC2_MAC_H
690211957SLorenzo Bianconi 
790211957SLorenzo Bianconi enum tx_header_format {
890211957SLorenzo Bianconi 	MT_HDR_FORMAT_802_3,
990211957SLorenzo Bianconi 	MT_HDR_FORMAT_CMD,
1090211957SLorenzo Bianconi 	MT_HDR_FORMAT_802_11,
1190211957SLorenzo Bianconi 	MT_HDR_FORMAT_802_11_EXT,
1290211957SLorenzo Bianconi };
1390211957SLorenzo Bianconi 
1490211957SLorenzo Bianconi enum tx_pkt_type {
1590211957SLorenzo Bianconi 	MT_TX_TYPE_CT,
1690211957SLorenzo Bianconi 	MT_TX_TYPE_SF,
1790211957SLorenzo Bianconi 	MT_TX_TYPE_CMD,
1890211957SLorenzo Bianconi 	MT_TX_TYPE_FW,
1990211957SLorenzo Bianconi };
2090211957SLorenzo Bianconi 
2190211957SLorenzo Bianconi enum {
2290211957SLorenzo Bianconi 	MT_CTX0,
2390211957SLorenzo Bianconi 	MT_HIF0 = 0x0,
2490211957SLorenzo Bianconi 
2590211957SLorenzo Bianconi 	MT_LMAC_AC00 = 0x0,
2690211957SLorenzo Bianconi 	MT_LMAC_AC01,
2790211957SLorenzo Bianconi 	MT_LMAC_AC02,
2890211957SLorenzo Bianconi 	MT_LMAC_AC03,
2990211957SLorenzo Bianconi 	MT_LMAC_ALTX0 = 0x10,
3090211957SLorenzo Bianconi 	MT_LMAC_BMC0,
3190211957SLorenzo Bianconi 	MT_LMAC_BCN0,
3290211957SLorenzo Bianconi 	MT_LMAC_PSMP0,
3390211957SLorenzo Bianconi };
3490211957SLorenzo Bianconi 
35140efef3SLorenzo Bianconi #define MT_TX_FREE_MSDU_CNT		GENMASK(9, 0)
36140efef3SLorenzo Bianconi #define MT_TX_FREE_WLAN_ID		GENMASK(23, 14)
37*9aecfa75SDeren Wu #define MT_TX_FREE_COUNT		GENMASK(12, 0)
38140efef3SLorenzo Bianconi /* 0: success, others: dropped */
39140efef3SLorenzo Bianconi #define MT_TX_FREE_STATUS		GENMASK(14, 13)
40140efef3SLorenzo Bianconi #define MT_TX_FREE_MSDU_ID		GENMASK(30, 16)
41140efef3SLorenzo Bianconi #define MT_TX_FREE_PAIR			BIT(31)
42140efef3SLorenzo Bianconi /* will support this field in further revision */
43140efef3SLorenzo Bianconi #define MT_TX_FREE_RATE			GENMASK(13, 0)
44140efef3SLorenzo Bianconi 
4590211957SLorenzo Bianconi #define MT_TXD0_Q_IDX			GENMASK(31, 25)
4690211957SLorenzo Bianconi #define MT_TXD0_PKT_FMT			GENMASK(24, 23)
4790211957SLorenzo Bianconi #define MT_TXD0_ETH_TYPE_OFFSET		GENMASK(22, 16)
4890211957SLorenzo Bianconi #define MT_TXD0_TX_BYTES		GENMASK(15, 0)
4990211957SLorenzo Bianconi 
5090211957SLorenzo Bianconi #define MT_TXD1_LONG_FORMAT		BIT(31)
5190211957SLorenzo Bianconi #define MT_TXD1_TGID			BIT(30)
5290211957SLorenzo Bianconi #define MT_TXD1_OWN_MAC			GENMASK(29, 24)
5390211957SLorenzo Bianconi #define MT_TXD1_AMSDU			BIT(23)
5490211957SLorenzo Bianconi #define MT_TXD1_TID			GENMASK(22, 20)
5590211957SLorenzo Bianconi #define MT_TXD1_HDR_PAD			GENMASK(19, 18)
5690211957SLorenzo Bianconi #define MT_TXD1_HDR_FORMAT		GENMASK(17, 16)
5790211957SLorenzo Bianconi #define MT_TXD1_HDR_INFO		GENMASK(15, 11)
5890211957SLorenzo Bianconi #define MT_TXD1_ETH_802_3		BIT(15)
5990211957SLorenzo Bianconi #define MT_TXD1_VTA			BIT(10)
6090211957SLorenzo Bianconi #define MT_TXD1_WLAN_IDX		GENMASK(9, 0)
6190211957SLorenzo Bianconi 
6290211957SLorenzo Bianconi #define MT_TXD2_FIX_RATE		BIT(31)
6390211957SLorenzo Bianconi #define MT_TXD2_FIXED_RATE		BIT(30)
6490211957SLorenzo Bianconi #define MT_TXD2_POWER_OFFSET		GENMASK(29, 24)
6590211957SLorenzo Bianconi #define MT_TXD2_MAX_TX_TIME		GENMASK(23, 16)
6690211957SLorenzo Bianconi #define MT_TXD2_FRAG			GENMASK(15, 14)
6790211957SLorenzo Bianconi #define MT_TXD2_HTC_VLD			BIT(13)
6890211957SLorenzo Bianconi #define MT_TXD2_DURATION		BIT(12)
6990211957SLorenzo Bianconi #define MT_TXD2_BIP			BIT(11)
7090211957SLorenzo Bianconi #define MT_TXD2_MULTICAST		BIT(10)
7190211957SLorenzo Bianconi #define MT_TXD2_RTS			BIT(9)
7290211957SLorenzo Bianconi #define MT_TXD2_SOUNDING		BIT(8)
7390211957SLorenzo Bianconi #define MT_TXD2_NDPA			BIT(7)
7490211957SLorenzo Bianconi #define MT_TXD2_NDP			BIT(6)
7590211957SLorenzo Bianconi #define MT_TXD2_FRAME_TYPE		GENMASK(5, 4)
7690211957SLorenzo Bianconi #define MT_TXD2_SUB_TYPE		GENMASK(3, 0)
7790211957SLorenzo Bianconi 
7890211957SLorenzo Bianconi #define MT_TXD3_SN_VALID		BIT(31)
7990211957SLorenzo Bianconi #define MT_TXD3_PN_VALID		BIT(30)
8090211957SLorenzo Bianconi #define MT_TXD3_SW_POWER_MGMT		BIT(29)
8190211957SLorenzo Bianconi #define MT_TXD3_BA_DISABLE		BIT(28)
8290211957SLorenzo Bianconi #define MT_TXD3_SEQ			GENMASK(27, 16)
8390211957SLorenzo Bianconi #define MT_TXD3_REM_TX_COUNT		GENMASK(15, 11)
8490211957SLorenzo Bianconi #define MT_TXD3_TX_COUNT		GENMASK(10, 6)
8590211957SLorenzo Bianconi #define MT_TXD3_TIMING_MEASURE		BIT(5)
8690211957SLorenzo Bianconi #define MT_TXD3_DAS			BIT(4)
8790211957SLorenzo Bianconi #define MT_TXD3_EEOSP			BIT(3)
8890211957SLorenzo Bianconi #define MT_TXD3_EMRD			BIT(2)
8990211957SLorenzo Bianconi #define MT_TXD3_PROTECT_FRAME		BIT(1)
9090211957SLorenzo Bianconi #define MT_TXD3_NO_ACK			BIT(0)
9190211957SLorenzo Bianconi 
9290211957SLorenzo Bianconi #define MT_TXD4_PN_LOW			GENMASK(31, 0)
9390211957SLorenzo Bianconi 
9490211957SLorenzo Bianconi #define MT_TXD5_PN_HIGH			GENMASK(31, 16)
9590211957SLorenzo Bianconi #define MT_TXD5_MD			BIT(15)
9690211957SLorenzo Bianconi #define MT_TXD5_ADD_BA			BIT(14)
9790211957SLorenzo Bianconi #define MT_TXD5_TX_STATUS_HOST		BIT(10)
9890211957SLorenzo Bianconi #define MT_TXD5_TX_STATUS_MCU		BIT(9)
9990211957SLorenzo Bianconi #define MT_TXD5_TX_STATUS_FMT		BIT(8)
10090211957SLorenzo Bianconi #define MT_TXD5_PID			GENMASK(7, 0)
10190211957SLorenzo Bianconi 
10290211957SLorenzo Bianconi #define MT_TXD6_TX_IBF			BIT(31)
10390211957SLorenzo Bianconi #define MT_TXD6_TX_EBF			BIT(30)
10490211957SLorenzo Bianconi #define MT_TXD6_TX_RATE			GENMASK(29, 16)
10590211957SLorenzo Bianconi #define MT_TXD6_SGI			GENMASK(15, 14)
10690211957SLorenzo Bianconi #define MT_TXD6_HELTF			GENMASK(13, 12)
10790211957SLorenzo Bianconi #define MT_TXD6_LDPC			BIT(11)
10890211957SLorenzo Bianconi #define MT_TXD6_SPE_ID_IDX		BIT(10)
10990211957SLorenzo Bianconi #define MT_TXD6_ANT_ID			GENMASK(7, 4)
11090211957SLorenzo Bianconi #define MT_TXD6_DYN_BW			BIT(3)
11190211957SLorenzo Bianconi #define MT_TXD6_FIXED_BW		BIT(2)
11290211957SLorenzo Bianconi #define MT_TXD6_BW			GENMASK(1, 0)
11390211957SLorenzo Bianconi 
11490211957SLorenzo Bianconi #define MT_TXD7_TXD_LEN			GENMASK(31, 30)
11590211957SLorenzo Bianconi #define MT_TXD7_UDP_TCP_SUM		BIT(29)
11690211957SLorenzo Bianconi #define MT_TXD7_IP_SUM			BIT(28)
11790211957SLorenzo Bianconi #define MT_TXD7_TYPE			GENMASK(21, 20)
11890211957SLorenzo Bianconi #define MT_TXD7_SUB_TYPE		GENMASK(19, 16)
11990211957SLorenzo Bianconi 
12090211957SLorenzo Bianconi #define MT_TXD7_PSE_FID			GENMASK(27, 16)
12190211957SLorenzo Bianconi #define MT_TXD7_SPE_IDX			GENMASK(15, 11)
12290211957SLorenzo Bianconi #define MT_TXD7_HW_AMSDU		BIT(10)
12390211957SLorenzo Bianconi #define MT_TXD7_TX_TIME			GENMASK(9, 0)
12490211957SLorenzo Bianconi 
12590211957SLorenzo Bianconi #define MT_TXD8_L_TYPE			GENMASK(5, 4)
12690211957SLorenzo Bianconi #define MT_TXD8_L_SUB_TYPE		GENMASK(3, 0)
12790211957SLorenzo Bianconi 
12890211957SLorenzo Bianconi #define MT_TX_RATE_STBC			BIT(13)
12990211957SLorenzo Bianconi #define MT_TX_RATE_NSS			GENMASK(12, 10)
13090211957SLorenzo Bianconi #define MT_TX_RATE_MODE			GENMASK(9, 6)
13190211957SLorenzo Bianconi #define MT_TX_RATE_SU_EXT_TONE		BIT(5)
13290211957SLorenzo Bianconi #define MT_TX_RATE_DCM			BIT(4)
13390211957SLorenzo Bianconi /* VHT/HE only use bits 0-3 */
13490211957SLorenzo Bianconi #define MT_TX_RATE_IDX			GENMASK(5, 0)
13590211957SLorenzo Bianconi 
13690211957SLorenzo Bianconi #define MT_TXS0_FIXED_RATE		BIT(31)
13790211957SLorenzo Bianconi #define MT_TXS0_BW			GENMASK(30, 29)
13890211957SLorenzo Bianconi #define MT_TXS0_TID			GENMASK(28, 26)
13990211957SLorenzo Bianconi #define MT_TXS0_AMPDU			BIT(25)
14090211957SLorenzo Bianconi #define MT_TXS0_TXS_FORMAT		GENMASK(24, 23)
14190211957SLorenzo Bianconi #define MT_TXS0_BA_ERROR		BIT(22)
14290211957SLorenzo Bianconi #define MT_TXS0_PS_FLAG			BIT(21)
14390211957SLorenzo Bianconi #define MT_TXS0_TXOP_TIMEOUT		BIT(20)
14490211957SLorenzo Bianconi #define MT_TXS0_BIP_ERROR		BIT(19)
14590211957SLorenzo Bianconi 
14690211957SLorenzo Bianconi #define MT_TXS0_QUEUE_TIMEOUT		BIT(18)
14790211957SLorenzo Bianconi #define MT_TXS0_RTS_TIMEOUT		BIT(17)
14890211957SLorenzo Bianconi #define MT_TXS0_ACK_TIMEOUT		BIT(16)
14990211957SLorenzo Bianconi #define MT_TXS0_ACK_ERROR_MASK		GENMASK(18, 16)
15090211957SLorenzo Bianconi 
15190211957SLorenzo Bianconi #define MT_TXS0_TX_STATUS_HOST		BIT(15)
15290211957SLorenzo Bianconi #define MT_TXS0_TX_STATUS_MCU		BIT(14)
15390211957SLorenzo Bianconi #define MT_TXS0_TX_RATE			GENMASK(13, 0)
15490211957SLorenzo Bianconi 
15590211957SLorenzo Bianconi #define MT_TXS1_SEQNO			GENMASK(31, 20)
15690211957SLorenzo Bianconi #define MT_TXS1_RESP_RATE		GENMASK(19, 16)
15790211957SLorenzo Bianconi #define MT_TXS1_RXV_SEQNO		GENMASK(15, 8)
15890211957SLorenzo Bianconi #define MT_TXS1_TX_POWER_DBM		GENMASK(7, 0)
15990211957SLorenzo Bianconi 
16090211957SLorenzo Bianconi #define MT_TXS2_BF_STATUS		GENMASK(31, 30)
16190211957SLorenzo Bianconi #define MT_TXS2_LAST_TX_RATE		GENMASK(29, 27)
16290211957SLorenzo Bianconi #define MT_TXS2_SHARED_ANTENNA		BIT(26)
16390211957SLorenzo Bianconi #define MT_TXS2_WCID			GENMASK(25, 16)
16490211957SLorenzo Bianconi #define MT_TXS2_TX_DELAY		GENMASK(15, 0)
16590211957SLorenzo Bianconi 
16690211957SLorenzo Bianconi #define MT_TXS3_PID			GENMASK(31, 24)
16790211957SLorenzo Bianconi #define MT_TXS3_ANT_ID			GENMASK(23, 0)
16890211957SLorenzo Bianconi 
16990211957SLorenzo Bianconi #define MT_TXS4_TIMESTAMP		GENMASK(31, 0)
17090211957SLorenzo Bianconi 
17143eaa368SRyder Lee /* PPDU based TXS */
17243eaa368SRyder Lee #define MT_TXS5_MPDU_TX_BYTE		GENMASK(22, 0)
17343eaa368SRyder Lee #define MT_TXS5_MPDU_TX_CNT		GENMASK(31, 23)
17443eaa368SRyder Lee 
17543eaa368SRyder Lee #define MT_TXS6_MPDU_FAIL_CNT		GENMASK(31, 23)
176c7ab7a29SRyder Lee #define MT_TXS7_MPDU_RETRY_BYTE		GENMASK(22, 0)
17743eaa368SRyder Lee #define MT_TXS7_MPDU_RETRY_CNT		GENMASK(31, 23)
17843eaa368SRyder Lee 
179140efef3SLorenzo Bianconi /* RXD DW0 */
180140efef3SLorenzo Bianconi #define MT_RXD0_LENGTH			GENMASK(15, 0)
181140efef3SLorenzo Bianconi #define MT_RXD0_PKT_FLAG                GENMASK(19, 16)
182140efef3SLorenzo Bianconi #define MT_RXD0_PKT_TYPE		GENMASK(31, 27)
183140efef3SLorenzo Bianconi 
184140efef3SLorenzo Bianconi #define MT_RXD0_NORMAL_ETH_TYPE_OFS	GENMASK(22, 16)
185140efef3SLorenzo Bianconi #define MT_RXD0_NORMAL_IP_SUM		BIT(23)
186140efef3SLorenzo Bianconi #define MT_RXD0_NORMAL_UDP_TCP_SUM	BIT(24)
187140efef3SLorenzo Bianconi 
1880880d408SLorenzo Bianconi /* RXD DW1 */
1890880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_WLAN_IDX		GENMASK(9, 0)
1900880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_GROUP_1		BIT(11)
1910880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_GROUP_2		BIT(12)
1920880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_GROUP_3		BIT(13)
1930880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_GROUP_4		BIT(14)
1940880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_GROUP_5		BIT(15)
1950880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_SEC_MODE		GENMASK(20, 16)
1960880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_KEY_ID		GENMASK(22, 21)
1970880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_CM		BIT(23)
1980880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_CLM		BIT(24)
1990880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_ICV_ERR		BIT(25)
2000880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_TKIP_MIC_ERR	BIT(26)
2010880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_FCS_ERR		BIT(27)
2020880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_BAND_IDX		BIT(28)
2030880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_SPP_EN		BIT(29)
2040880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_ADD_OM		BIT(30)
2050880d408SLorenzo Bianconi #define MT_RXD1_NORMAL_SEC_DONE		BIT(31)
2060880d408SLorenzo Bianconi 
2070880d408SLorenzo Bianconi /* RXD DW2 */
2080880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_BSSID		GENMASK(5, 0)
2090880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_CO_ANT		BIT(6)
2100880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_BF_CQI		BIT(7)
2110880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_MAC_HDR_LEN	GENMASK(12, 8)
2120880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_HDR_TRANS	BIT(13)
2130880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_HDR_OFFSET	GENMASK(15, 14)
2140880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_TID		GENMASK(19, 16)
2150880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_MU_BAR		BIT(21)
2160880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_SW_BIT		BIT(22)
2170880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_AMSDU_ERR	BIT(23)
2180880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_MAX_LEN_ERROR	BIT(24)
2190880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_HDR_TRANS_ERROR	BIT(25)
2200880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_INT_FRAME	BIT(26)
2210880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_FRAG		BIT(27)
2220880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_NULL_FRAME	BIT(28)
2230880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_NDATA		BIT(29)
2240880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_NON_AMPDU	BIT(30)
2250880d408SLorenzo Bianconi #define MT_RXD2_NORMAL_BF_REPORT	BIT(31)
2260880d408SLorenzo Bianconi 
2270880d408SLorenzo Bianconi /* RXD DW4 */
2280880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_PAYLOAD_FORMAT	GENMASK(1, 0)
2290880d408SLorenzo Bianconi #define MT_RXD4_FIRST_AMSDU_FRAME	GENMASK(1, 0)
2300880d408SLorenzo Bianconi #define MT_RXD4_MID_AMSDU_FRAME		BIT(1)
2310880d408SLorenzo Bianconi #define MT_RXD4_LAST_AMSDU_FRAME	BIT(0)
2320880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_PATTERN_DROP	BIT(9)
2330880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_CLS		BIT(10)
2340880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_OFLD		GENMASK(12, 11)
2350880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_MAGIC_PKT	BIT(13)
2360880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_WOL		GENMASK(18, 14)
2370880d408SLorenzo Bianconi #define MT_RXD4_NORMAL_CLS_BITMAP	GENMASK(28, 19)
2380880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_PF_MODE		BIT(29)
2390880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_PF_STS		GENMASK(31, 30)
2400880d408SLorenzo Bianconi 
2410880d408SLorenzo Bianconi #define MT_RXV_HDR_BAND_IDX		BIT(24)
2420880d408SLorenzo Bianconi 
2430880d408SLorenzo Bianconi /* RXD DW3 */
2440880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_RXV_SEQ		GENMASK(7, 0)
2450880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_CH_FREQ		GENMASK(15, 8)
2460880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_ADDR_TYPE	GENMASK(17, 16)
2470880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_U2M		BIT(0)
2480880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_HTC_VLD		BIT(0)
2490880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_TSF_COMPARE_LOSS	BIT(19)
2500880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_BEACON_MC	BIT(20)
2510880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_BEACON_UC	BIT(21)
2520880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_AMSDU		BIT(22)
2530880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_MESH		BIT(23)
2540880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_MHCP		BIT(24)
2550880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_NO_INFO_WB	BIT(25)
2560880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_DISABLE_RX_HDR_TRANS	BIT(26)
2570880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_POWER_SAVE_STAT	BIT(27)
2580880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_MORE		BIT(28)
2590880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_UNWANT		BIT(29)
2600880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_RX_DROP		BIT(30)
2610880d408SLorenzo Bianconi #define MT_RXD3_NORMAL_VLAN2ETH		BIT(31)
2620880d408SLorenzo Bianconi 
2630880d408SLorenzo Bianconi /* RXD GROUP4 */
2640880d408SLorenzo Bianconi #define MT_RXD6_FRAME_CONTROL		GENMASK(15, 0)
2650880d408SLorenzo Bianconi #define MT_RXD6_TA_LO			GENMASK(31, 16)
2660880d408SLorenzo Bianconi 
2670880d408SLorenzo Bianconi #define MT_RXD7_TA_HI			GENMASK(31, 0)
2680880d408SLorenzo Bianconi 
2690880d408SLorenzo Bianconi #define MT_RXD8_SEQ_CTRL		GENMASK(15, 0)
2700880d408SLorenzo Bianconi #define MT_RXD8_QOS_CTL			GENMASK(31, 16)
2710880d408SLorenzo Bianconi 
2720880d408SLorenzo Bianconi #define MT_RXD9_HT_CONTROL		GENMASK(31, 0)
2730880d408SLorenzo Bianconi 
274f71662deSLorenzo Bianconi /* P-RXV DW0 */
275f71662deSLorenzo Bianconi #define MT_PRXV_TX_RATE			GENMASK(6, 0)
276f71662deSLorenzo Bianconi #define MT_PRXV_TX_DCM			BIT(4)
277f71662deSLorenzo Bianconi #define MT_PRXV_TX_ER_SU_106T		BIT(5)
278f71662deSLorenzo Bianconi #define MT_PRXV_NSTS			GENMASK(9, 7)
279f71662deSLorenzo Bianconi #define MT_PRXV_TXBF			BIT(10)
280f71662deSLorenzo Bianconi #define MT_PRXV_HT_AD_CODE		BIT(11)
281f71662deSLorenzo Bianconi #define MT_PRXV_HE_RU_ALLOC_L		GENMASK(31, 28)
282f71662deSLorenzo Bianconi 
283f71662deSLorenzo Bianconi #define MT_PRXV_FRAME_MODE		GENMASK(14, 12)
284f71662deSLorenzo Bianconi #define MT_PRXV_HT_SGI			GENMASK(16, 15)
285f71662deSLorenzo Bianconi #define MT_PRXV_HT_STBC			GENMASK(23, 22)
286f71662deSLorenzo Bianconi #define MT_PRXV_TX_MODE			GENMASK(27, 24)
287f71662deSLorenzo Bianconi #define MT_PRXV_DCM			BIT(17)
288f71662deSLorenzo Bianconi #define MT_PRXV_NUM_RX			BIT(20, 18)
289f71662deSLorenzo Bianconi 
290f71662deSLorenzo Bianconi /* P-RXV DW1 */
291f71662deSLorenzo Bianconi #define MT_PRXV_RCPI3			GENMASK(31, 24)
292f71662deSLorenzo Bianconi #define MT_PRXV_RCPI2			GENMASK(23, 16)
293f71662deSLorenzo Bianconi #define MT_PRXV_RCPI1			GENMASK(15, 8)
294f71662deSLorenzo Bianconi #define MT_PRXV_RCPI0			GENMASK(7, 0)
295f71662deSLorenzo Bianconi #define MT_PRXV_HE_RU_ALLOC_H		GENMASK(3, 0)
296f71662deSLorenzo Bianconi 
297f71662deSLorenzo Bianconi /* C-RXV */
298f71662deSLorenzo Bianconi #define MT_CRXV_HT_STBC			GENMASK(1, 0)
299f71662deSLorenzo Bianconi #define MT_CRXV_TX_MODE			GENMASK(7, 4)
300f71662deSLorenzo Bianconi #define MT_CRXV_FRAME_MODE		GENMASK(10, 8)
301f71662deSLorenzo Bianconi #define MT_CRXV_HT_SHORT_GI		GENMASK(14, 13)
302f71662deSLorenzo Bianconi #define MT_CRXV_HE_LTF_SIZE		GENMASK(18, 17)
303f71662deSLorenzo Bianconi #define MT_CRXV_HE_LDPC_EXT_SYM		BIT(20)
304f71662deSLorenzo Bianconi #define MT_CRXV_HE_PE_DISAMBIG		BIT(23)
305f71662deSLorenzo Bianconi #define MT_CRXV_HE_NUM_USER		GENMASK(30, 24)
306f71662deSLorenzo Bianconi #define MT_CRXV_HE_UPLINK		BIT(31)
307f71662deSLorenzo Bianconi 
308f71662deSLorenzo Bianconi #define MT_CRXV_HE_RU0			GENMASK(7, 0)
309f71662deSLorenzo Bianconi #define MT_CRXV_HE_RU1			GENMASK(15, 8)
310f71662deSLorenzo Bianconi #define MT_CRXV_HE_RU2			GENMASK(23, 16)
311f71662deSLorenzo Bianconi #define MT_CRXV_HE_RU3			GENMASK(31, 24)
312f71662deSLorenzo Bianconi 
313f71662deSLorenzo Bianconi #define MT_CRXV_HE_MU_AID		GENMASK(30, 20)
314f71662deSLorenzo Bianconi 
315f71662deSLorenzo Bianconi #define MT_CRXV_HE_SR_MASK		GENMASK(11, 8)
316f71662deSLorenzo Bianconi #define MT_CRXV_HE_SR1_MASK		GENMASK(16, 12)
317f71662deSLorenzo Bianconi #define MT_CRXV_HE_SR2_MASK             GENMASK(20, 17)
318f71662deSLorenzo Bianconi #define MT_CRXV_HE_SR3_MASK             GENMASK(24, 21)
319f71662deSLorenzo Bianconi 
320f71662deSLorenzo Bianconi #define MT_CRXV_HE_BSS_COLOR		GENMASK(5, 0)
321f71662deSLorenzo Bianconi #define MT_CRXV_HE_TXOP_DUR		GENMASK(12, 6)
322f71662deSLorenzo Bianconi #define MT_CRXV_HE_BEAM_CHNG		BIT(13)
323f71662deSLorenzo Bianconi #define MT_CRXV_HE_DOPPLER		BIT(16)
324f71662deSLorenzo Bianconi 
325f71662deSLorenzo Bianconi #define MT_CRXV_SNR		GENMASK(18, 13)
326f71662deSLorenzo Bianconi #define MT_CRXV_FOE_LO		GENMASK(31, 19)
327f71662deSLorenzo Bianconi #define MT_CRXV_FOE_HI		GENMASK(6, 0)
328f71662deSLorenzo Bianconi #define MT_CRXV_FOE_SHIFT	13
329f71662deSLorenzo Bianconi 
330140efef3SLorenzo Bianconi #define MT_CT_PARSE_LEN			72
331140efef3SLorenzo Bianconi #define MT_CT_DMA_BUF_NUM		2
332140efef3SLorenzo Bianconi 
3335c0bed88SLorenzo Bianconi #define MT_CT_INFO_APPLY_TXD		BIT(0)
3345c0bed88SLorenzo Bianconi #define MT_CT_INFO_COPY_HOST_TXD_ALL	BIT(1)
3355c0bed88SLorenzo Bianconi #define MT_CT_INFO_MGMT_FRAME		BIT(2)
3365c0bed88SLorenzo Bianconi #define MT_CT_INFO_NONE_CIPHER_FRAME	BIT(3)
3375c0bed88SLorenzo Bianconi #define MT_CT_INFO_HSR2_TX		BIT(4)
3385c0bed88SLorenzo Bianconi #define MT_CT_INFO_FROM_HOST		BIT(7)
3395c0bed88SLorenzo Bianconi 
340d2f5c8edSLorenzo Bianconi enum tx_mcu_port_q_idx {
341d2f5c8edSLorenzo Bianconi 	MT_TX_MCU_PORT_RX_Q0 = 0x20,
342d2f5c8edSLorenzo Bianconi 	MT_TX_MCU_PORT_RX_Q1,
343d2f5c8edSLorenzo Bianconi 	MT_TX_MCU_PORT_RX_Q2,
344d2f5c8edSLorenzo Bianconi 	MT_TX_MCU_PORT_RX_Q3,
345d2f5c8edSLorenzo Bianconi 	MT_TX_MCU_PORT_RX_FWDL = 0x3e
346d2f5c8edSLorenzo Bianconi };
347d2f5c8edSLorenzo Bianconi 
348d2f5c8edSLorenzo Bianconi enum tx_port_idx {
349d2f5c8edSLorenzo Bianconi 	MT_TX_PORT_IDX_LMAC,
350d2f5c8edSLorenzo Bianconi 	MT_TX_PORT_IDX_MCU
351d2f5c8edSLorenzo Bianconi };
352d2f5c8edSLorenzo Bianconi 
35390211957SLorenzo Bianconi #endif /* __MT76_CONNAC2_MAC_H */
354