0001
0002
0003
0004 #ifndef __MT7921_MCU_H
0005 #define __MT7921_MCU_H
0006
0007 #include "../mt76_connac_mcu.h"
0008
0009 struct mt7921_mcu_tx_done_event {
0010 u8 pid;
0011 u8 status;
0012 __le16 seq;
0013
0014 u8 wlan_idx;
0015 u8 tx_cnt;
0016 __le16 tx_rate;
0017
0018 u8 flag;
0019 u8 tid;
0020 u8 rsp_rate;
0021 u8 mcs;
0022
0023 u8 bw;
0024 u8 tx_pwr;
0025 u8 reason;
0026 u8 rsv0[1];
0027
0028 __le32 delay;
0029 __le32 timestamp;
0030 __le32 applied_flag;
0031 u8 txs[28];
0032
0033 u8 rsv1[32];
0034 } __packed;
0035
0036
0037 enum {
0038 MCU_EXT_EVENT_RATE_REPORT = 0x87,
0039 };
0040
0041 struct mt7921_mcu_eeprom_info {
0042 __le32 addr;
0043 __le32 valid;
0044 u8 data[16];
0045 } __packed;
0046
0047 #define MT_RA_RATE_NSS GENMASK(8, 6)
0048 #define MT_RA_RATE_MCS GENMASK(3, 0)
0049 #define MT_RA_RATE_TX_MODE GENMASK(12, 9)
0050 #define MT_RA_RATE_DCM_EN BIT(4)
0051 #define MT_RA_RATE_BW GENMASK(14, 13)
0052
0053 struct mt7921_mcu_uni_event {
0054 u8 cid;
0055 u8 pad[3];
0056 __le32 status;
0057 } __packed;
0058
0059 enum {
0060 MT_EBF = BIT(0),
0061 MT_IBF = BIT(1)
0062 };
0063
0064 struct mt7921_mcu_reg_event {
0065 __le32 reg;
0066 __le32 val;
0067 } __packed;
0068
0069 struct mt7921_mcu_ant_id_config {
0070 u8 ant_id[4];
0071 } __packed;
0072
0073 struct mt7921_txpwr_req {
0074 u8 ver;
0075 u8 action;
0076 __le16 len;
0077 u8 dbdc_idx;
0078 u8 rsv[3];
0079 } __packed;
0080
0081 struct mt7921_txpwr_event {
0082 u8 ver;
0083 u8 action;
0084 __le16 len;
0085 struct mt7921_txpwr txpwr;
0086 } __packed;
0087
0088 enum {
0089 TM_SWITCH_MODE,
0090 TM_SET_AT_CMD,
0091 TM_QUERY_AT_CMD,
0092 };
0093
0094 enum {
0095 MT7921_TM_NORMAL,
0096 MT7921_TM_TESTMODE,
0097 MT7921_TM_ICAP,
0098 MT7921_TM_ICAP_OVERLAP,
0099 MT7921_TM_WIFISPECTRUM,
0100 };
0101
0102 struct mt7921_rftest_cmd {
0103 u8 action;
0104 u8 rsv[3];
0105 __le32 param0;
0106 __le32 param1;
0107 } __packed;
0108
0109 struct mt7921_rftest_evt {
0110 __le32 param0;
0111 __le32 param1;
0112 } __packed;
0113 #endif