Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/dev/mediatek/mt76/mt7921/mcu.h
48525 views
1
/* 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
9
struct 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 */
37
enum {
38
MCU_EXT_EVENT_RATE_REPORT = 0x87,
39
};
40
41
struct 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
53
enum {
54
MT_EBF = BIT(0), /* explicit beamforming */
55
MT_IBF = BIT(1) /* implicit beamforming */
56
};
57
58
struct mt7921_mcu_ant_id_config {
59
u8 ant_id[4];
60
} __packed;
61
62
struct mt7921_txpwr_req {
63
u8 ver;
64
u8 action;
65
__le16 len;
66
u8 dbdc_idx;
67
u8 rsv[3];
68
} __packed;
69
70
struct mt7921_txpwr_event {
71
u8 ver;
72
u8 action;
73
__le16 len;
74
struct mt7921_txpwr txpwr;
75
} __packed;
76
77
struct mt7921_wf_rf_pin_ctrl_event {
78
u8 result;
79
u8 value;
80
} __packed;
81
82
enum {
83
TM_SWITCH_MODE,
84
TM_SET_AT_CMD,
85
TM_QUERY_AT_CMD,
86
};
87
88
enum {
89
MT7921_TM_NORMAL,
90
MT7921_TM_TESTMODE,
91
MT7921_TM_ICAP,
92
MT7921_TM_ICAP_OVERLAP,
93
MT7921_TM_WIFISPECTRUM,
94
};
95
96
struct mt7921_rftest_cmd {
97
u8 action;
98
u8 rsv[3];
99
__le32 param0;
100
__le32 param1;
101
} __packed;
102
103
struct mt7921_rftest_evt {
104
__le32 param0;
105
__le32 param1;
106
} __packed;
107
108
struct mt7921_clc_info_tlv {
109
__le16 tag;
110
__le16 len;
111
112
u8 chan_conf; /* BIT(0) : Enable UNII-4
113
* BIT(1) : Enable UNII-5
114
* BIT(2) : Enable UNII-6
115
* BIT(3) : Enable UNII-7
116
* BIT(4) : Enable UNII-8
117
*/
118
u8 rsv[63];
119
} __packed;
120
#endif
121
122