OSDN Git Service

mt76: use SPDX header file comment style
[uclinux-h8/linux.git] / drivers / net / wireless / mediatek / mt76 / mt7915 / testmode.h
1 /* SPDX-License-Identifier: ISC */
2 /* Copyright (C) 2020 MediaTek Inc. */
3
4 #ifndef __MT7915_TESTMODE_H
5 #define __MT7915_TESTMODE_H
6
7 struct mt7915_tm_trx {
8         u8 type;
9         u8 enable;
10         u8 band;
11         u8 rsv;
12 };
13
14 struct mt7915_tm_freq_offset {
15         u8 band;
16         __le32 freq_offset;
17 };
18
19 struct mt7915_tm_slot_time {
20         u8 slot_time;
21         u8 sifs;
22         u8 rifs;
23         u8 _rsv;
24         __le16 eifs;
25         u8 band;
26         u8 _rsv1[5];
27 };
28
29 struct mt7915_tm_clean_txq {
30         bool sta_pause;
31         u8 wcid;        /* 256 sta */
32         u8 band;
33         u8 rsv;
34 };
35
36 struct mt7915_tm_cmd {
37         u8 testmode_en;
38         u8 param_idx;
39         u8 _rsv[2];
40         union {
41                 __le32 data;
42                 struct mt7915_tm_trx trx;
43                 struct mt7915_tm_freq_offset freq;
44                 struct mt7915_tm_slot_time slot;
45                 struct mt7915_tm_clean_txq clean;
46                 u8 test[72];
47         } param;
48 } __packed;
49
50 enum {
51         TM_MAC_TX = 1,
52         TM_MAC_RX,
53         TM_MAC_TXRX,
54         TM_MAC_TXRX_RXV,
55         TM_MAC_RXV,
56         TM_MAC_RX_RXV,
57 };
58
59 struct tm_tx_cont {
60         u8 control_ch;
61         u8 center_ch;
62         u8 bw;
63         u8 tx_ant;
64         __le16 rateval;
65         u8 band;
66         u8 txfd_mode;
67 };
68
69 struct mt7915_tm_rf_test {
70         u8 action;
71         u8 icap_len;
72         u8 _rsv[2];
73         union {
74                 __le32 op_mode;
75                 __le32 freq;
76
77                 struct {
78                         __le32 func_idx;
79                         union {
80                                 __le32 func_data;
81                                 __le32 cal_dump;
82
83                                 struct tm_tx_cont tx_cont;
84
85                                 u8 _pad[80];
86                         } param;
87                 } rf;
88         } op;
89 } __packed;
90
91 enum {
92         RF_OPER_NORMAL,
93         RF_OPER_RF_TEST,
94         RF_OPER_ICAP,
95         RF_OPER_ICAP_OVERLAP,
96         RF_OPER_WIFI_SPECTRUM,
97 };
98
99 #endif