114 lines
1.7 KiB
C
114 lines
1.7 KiB
C
/* SPDX-License-Identifier: ISC */
|
|
/* Copyright (C) 2020 MediaTek Inc. */
|
|
|
|
#ifndef __MT7921_MCU_H
|
|
#define __MT7921_MCU_H
|
|
|
|
#include "../mt76_connac_mcu.h"
|
|
|
|
struct mt7921_mcu_tx_done_event {
|
|
u8 pid;
|
|
u8 status;
|
|
__le16 seq;
|
|
|
|
u8 wlan_idx;
|
|
u8 tx_cnt;
|
|
__le16 tx_rate;
|
|
|
|
u8 flag;
|
|
u8 tid;
|
|
u8 rsp_rate;
|
|
u8 mcs;
|
|
|
|
u8 bw;
|
|
u8 tx_pwr;
|
|
u8 reason;
|
|
u8 rsv0[1];
|
|
|
|
__le32 delay;
|
|
__le32 timestamp;
|
|
__le32 applied_flag;
|
|
u8 txs[28];
|
|
|
|
u8 rsv1[32];
|
|
} __packed;
|
|
|
|
/* ext event table */
|
|
enum {
|
|
MCU_EXT_EVENT_RATE_REPORT = 0x87,
|
|
};
|
|
|
|
struct mt7921_mcu_eeprom_info {
|
|
__le32 addr;
|
|
__le32 valid;
|
|
u8 data[MT7921_EEPROM_BLOCK_SIZE];
|
|
} __packed;
|
|
|
|
#define MT_RA_RATE_NSS GENMASK(8, 6)
|
|
#define MT_RA_RATE_MCS GENMASK(3, 0)
|
|
#define MT_RA_RATE_TX_MODE GENMASK(12, 9)
|
|
#define MT_RA_RATE_DCM_EN BIT(4)
|
|
#define MT_RA_RATE_BW GENMASK(14, 13)
|
|
|
|
struct mt7921_mcu_uni_event {
|
|
u8 cid;
|
|
u8 pad[3];
|
|
__le32 status; /* 0: success, others: fail */
|
|
} __packed;
|
|
|
|
enum {
|
|
MT_EBF = BIT(0), /* explicit beamforming */
|
|
MT_IBF = BIT(1) /* implicit beamforming */
|
|
};
|
|
|
|
struct mt7921_mcu_reg_event {
|
|
__le32 reg;
|
|
__le32 val;
|
|
} __packed;
|
|
|
|
struct mt7921_mcu_ant_id_config {
|
|
u8 ant_id[4];
|
|
} __packed;
|
|
|
|
struct mt7921_txpwr_req {
|
|
u8 ver;
|
|
u8 action;
|
|
__le16 len;
|
|
u8 dbdc_idx;
|
|
u8 rsv[3];
|
|
} __packed;
|
|
|
|
struct mt7921_txpwr_event {
|
|
u8 ver;
|
|
u8 action;
|
|
__le16 len;
|
|
struct mt7921_txpwr txpwr;
|
|
} __packed;
|
|
|
|
enum {
|
|
TM_SWITCH_MODE,
|
|
TM_SET_AT_CMD,
|
|
TM_QUERY_AT_CMD,
|
|
};
|
|
|
|
enum {
|
|
MT7921_TM_NORMAL,
|
|
MT7921_TM_TESTMODE,
|
|
MT7921_TM_ICAP,
|
|
MT7921_TM_ICAP_OVERLAP,
|
|
MT7921_TM_WIFISPECTRUM,
|
|
};
|
|
|
|
struct mt7921_rftest_cmd {
|
|
u8 action;
|
|
u8 rsv[3];
|
|
__le32 param0;
|
|
__le32 param1;
|
|
} __packed;
|
|
|
|
struct mt7921_rftest_evt {
|
|
__le32 param0;
|
|
__le32 param1;
|
|
} __packed;
|
|
#endif
|