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 enum { 100 TAM_ARB_OP_MODE_NORMAL = 1, 101 TAM_ARB_OP_MODE_TEST, 102 TAM_ARB_OP_MODE_FORCE_SU = 5, 103 }; 104 105 #endif 106