Path: blob/main/sys/contrib/dev/mediatek/mt76/mt7921/mcu.h
48525 views
/* SPDX-License-Identifier: ISC */1/* Copyright (C) 2020 MediaTek Inc. */23#ifndef __MT7921_MCU_H4#define __MT7921_MCU_H56#include "../mt76_connac_mcu.h"78struct mt7921_mcu_tx_done_event {9u8 pid;10u8 status;11__le16 seq;1213u8 wlan_idx;14u8 tx_cnt;15__le16 tx_rate;1617u8 flag;18u8 tid;19u8 rsp_rate;20u8 mcs;2122u8 bw;23u8 tx_pwr;24u8 reason;25u8 rsv0[1];2627__le32 delay;28__le32 timestamp;29__le32 applied_flag;30u8 txs[28];3132u8 rsv1[32];33} __packed;3435/* ext event table */36enum {37MCU_EXT_EVENT_RATE_REPORT = 0x87,38};3940struct mt7921_mcu_eeprom_info {41__le32 addr;42__le32 valid;43u8 data[MT7921_EEPROM_BLOCK_SIZE];44} __packed;4546#define MT_RA_RATE_NSS GENMASK(8, 6)47#define MT_RA_RATE_MCS GENMASK(3, 0)48#define MT_RA_RATE_TX_MODE GENMASK(12, 9)49#define MT_RA_RATE_DCM_EN BIT(4)50#define MT_RA_RATE_BW GENMASK(14, 13)5152enum {53MT_EBF = BIT(0), /* explicit beamforming */54MT_IBF = BIT(1) /* implicit beamforming */55};5657struct mt7921_mcu_ant_id_config {58u8 ant_id[4];59} __packed;6061struct mt7921_txpwr_req {62u8 ver;63u8 action;64__le16 len;65u8 dbdc_idx;66u8 rsv[3];67} __packed;6869struct mt7921_txpwr_event {70u8 ver;71u8 action;72__le16 len;73struct mt7921_txpwr txpwr;74} __packed;7576struct mt7921_wf_rf_pin_ctrl_event {77u8 result;78u8 value;79} __packed;8081enum {82TM_SWITCH_MODE,83TM_SET_AT_CMD,84TM_QUERY_AT_CMD,85};8687enum {88MT7921_TM_NORMAL,89MT7921_TM_TESTMODE,90MT7921_TM_ICAP,91MT7921_TM_ICAP_OVERLAP,92MT7921_TM_WIFISPECTRUM,93};9495struct mt7921_rftest_cmd {96u8 action;97u8 rsv[3];98__le32 param0;99__le32 param1;100} __packed;101102struct mt7921_rftest_evt {103__le32 param0;104__le32 param1;105} __packed;106107struct mt7921_clc_info_tlv {108__le16 tag;109__le16 len;110111u8 chan_conf; /* BIT(0) : Enable UNII-4112* BIT(1) : Enable UNII-5113* BIT(2) : Enable UNII-6114* BIT(3) : Enable UNII-7115* BIT(4) : Enable UNII-8116*/117u8 rsv[63];118} __packed;119#endif120121122