xref: /linux/drivers/net/wireless/mediatek/mt76/mt7925/mac.h (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1 /* SPDX-License-Identifier: BSD-3-Clause-Clear */
2 /* Copyright (C) 2023 MediaTek Inc. */
3 
4 #ifndef __MT7925_MAC_H
5 #define __MT7925_MAC_H
6 
7 #include "../mt76_connac3_mac.h"
8 
9 #define MT_WTBL_TXRX_CAP_RATE_OFFSET	7
10 #define MT_WTBL_TXRX_RATE_G2_HE		24
11 #define MT_WTBL_TXRX_RATE_G2		12
12 
13 #define MT_WTBL_AC0_CTT_OFFSET		20
14 
15 static inline u32 mt7925_mac_wtbl_lmac_addr(struct mt792x_dev *dev, u16 wcid, u8 dw)
16 {
17 	u32 wdu_cr;
18 
19 	if (is_mt7928(&dev->mt76))
20 		wdu_cr = MT7928_WTBLON_TOP_WDUCR;
21 	else
22 		wdu_cr = MT7925_WTBLON_TOP_WDUCR;
23 
24 	mt76_wr(dev, wdu_cr,
25 		FIELD_PREP(MT_WTBLON_TOP_WDUCR_GROUP, (wcid >> 7)));
26 
27 	return MT_WTBL_LMAC_OFFS(wcid, dw);
28 }
29 
30 #endif
31