Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ISC */
0002 /* Copyright (C) 2020 MediaTek Inc. */
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 /* ext event table */
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; /* 0: success, others: fail */
0057 } __packed;
0058 
0059 enum {
0060     MT_EBF = BIT(0),    /* explicit beamforming */
0061     MT_IBF = BIT(1)     /* implicit beamforming */
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