blob: 96dc870fd35e84a25145d240958b5bb2321f36aa [file] [log] [blame]
developer0f312e82022-11-01 12:31:52 +08001/* SPDX-License-Identifier: ISC */
2/* Copyright (C) 2020 MediaTek Inc. */
3
4#ifndef __MT7921_MCU_H
5#define __MT7921_MCU_H
6
7#include "../mt76_connac_mcu.h"
8
9struct mt7921_mcu_tx_done_event {
10 u8 pid;
11 u8 status;
12 __le16 seq;
13
14 u8 wlan_idx;
15 u8 tx_cnt;
16 __le16 tx_rate;
17
18 u8 flag;
19 u8 tid;
20 u8 rsp_rate;
21 u8 mcs;
22
23 u8 bw;
24 u8 tx_pwr;
25 u8 reason;
26 u8 rsv0[1];
27
28 __le32 delay;
29 __le32 timestamp;
30 __le32 applied_flag;
31 u8 txs[28];
32
33 u8 rsv1[32];
34} __packed;
35
36/* ext event table */
37enum {
38 MCU_EXT_EVENT_RATE_REPORT = 0x87,
39};
40
41struct mt7921_mcu_eeprom_info {
42 __le32 addr;
43 __le32 valid;
44 u8 data[MT7921_EEPROM_BLOCK_SIZE];
45} __packed;
46
47#define MT_RA_RATE_NSS GENMASK(8, 6)
48#define MT_RA_RATE_MCS GENMASK(3, 0)
49#define MT_RA_RATE_TX_MODE GENMASK(12, 9)
50#define MT_RA_RATE_DCM_EN BIT(4)
51#define MT_RA_RATE_BW GENMASK(14, 13)
52
53struct mt7921_mcu_uni_event {
54 u8 cid;
55 u8 pad[3];
56 __le32 status; /* 0: success, others: fail */
57} __packed;
58
59enum {
60 MT_EBF = BIT(0), /* explicit beamforming */
61 MT_IBF = BIT(1) /* implicit beamforming */
62};
63
64struct mt7921_mcu_reg_event {
65 __le32 reg;
66 __le32 val;
67} __packed;
68
69struct mt7921_mcu_ant_id_config {
70 u8 ant_id[4];
71} __packed;
72
73struct mt7921_txpwr_req {
74 u8 ver;
75 u8 action;
76 __le16 len;
77 u8 dbdc_idx;
78 u8 rsv[3];
79} __packed;
80
81struct mt7921_txpwr_event {
82 u8 ver;
83 u8 action;
84 __le16 len;
85 struct mt7921_txpwr txpwr;
86} __packed;
87
88enum {
89 TM_SWITCH_MODE,
90 TM_SET_AT_CMD,
91 TM_QUERY_AT_CMD,
92};
93
94enum {
95 MT7921_TM_NORMAL,
96 MT7921_TM_TESTMODE,
97 MT7921_TM_ICAP,
98 MT7921_TM_ICAP_OVERLAP,
99 MT7921_TM_WIFISPECTRUM,
100};
101
102struct mt7921_rftest_cmd {
103 u8 action;
104 u8 rsv[3];
105 __le32 param0;
106 __le32 param1;
107} __packed;
108
109struct mt7921_rftest_evt {
110 __le32 param0;
111 __le32 param1;
112} __packed;
113#endif