add MTK-combo-module,continue with commit 17f39ed917874e77e80411f33faba1b7ee8138c8
[firefly-linux-kernel-4.4.55.git] / drivers / mtk_wcn_combo / drv_wlan / wlan / include / rftest.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_2/include/rftest.h#1 $
3 */
4
5 /*! \file   "rftest.h"
6     \brief  definitions for RF Productino test
7
8 */
9
10 /*******************************************************************************
11 * Copyright (c) 2007 MediaTek Inc.
12 *
13 * All rights reserved. Copying, compilation, modification, distribution
14 * or any other use whatsoever of this material is strictly prohibited
15 * except in accordance with a Software License Agreement with
16 * MediaTek Inc.
17 ********************************************************************************
18 */
19
20 /*******************************************************************************
21 * LEGAL DISCLAIMER
22 *
23 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
24 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
25 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
26 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
27 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
29 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
30 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
31 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
32 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
33 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
34 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
35 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
36 *
37 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
38 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
39 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
40 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
41 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
42 *
43 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
44 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
45 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
46 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
47 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
48 * (ICC).
49 ********************************************************************************
50 */
51
52 /*
53 ** $Log: rftest.h $
54  *
55  * 12 20 2011 cp.wu
56  * [WCXRP00001144] [MT6620 Wi-Fi][Driver][Firmware] Add RF_FUNC_ID for exposing device and related version information
57  * add driver implementations for RF_AT_FUNCID_FW_INFO & RF_AT_FUNCID_DRV_INFO 
58  * to expose version information
59  *
60  * 03 18 2011 cp.wu
61  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
62  * create V2.0 driver release based on label "MT6620_WIFI_DRIVER_V2_0_110318_1600" from main trunk
63  *
64  * 08 04 2010 cp.wu
65  * NULL
66  * add an extra parameter to rftestQueryATInfo 'cause it's necessary to pass u4FuncData for query request.
67  *
68  * 07 08 2010 cp.wu
69  * 
70  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
71  *
72  * 06 06 2010 kevin.huang
73  * [WPD00003832][MT6620 5931] Create driver base 
74  * [MT6620 5931] Create driver base
75  *
76  * 04 14 2010 cp.wu
77  * [WPD00001943]Create WiFi test driver framework on WinXP 
78  * information buffer for query oid/ioctl is now buffered in prCmdInfo 
79  *  *  *  * instead of glue-layer variable to improve multiple oid/ioctl capability
80  *
81  * 12 30 2009 cp.wu
82  * [WPD00001943]Create WiFi test driver framework on WinXP 
83  * 1) According to CMD/EVENT documentation v0.8, 
84  *  *  *  *  *  *  * OID_CUSTOM_TEST_RX_STATUS & OID_CUSTOM_TEST_TX_STATUS is no longer used,
85  *  *  *  *  *  *  * and result is retrieved by get ATInfo instead
86  *  *  *  *  *  *  * 2) add 4 counter for recording aggregation statistics
87 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-12-08 17:35:11 GMT mtk02752
88 **  * comment out RF test which is not supported on MT6620
89 **  + API decalre for rftest 
90 **  \main\maintrunk.MT6620WiFiDriver_Prj\1 2009-12-08 11:29:07 GMT mtk02752
91 **  definitions for RF test mode
92 **
93 */
94 #ifndef _RFTEST_H
95 #define _RFTEST_H
96
97 /*******************************************************************************
98 *                         C O M P I L E R   F L A G S
99 ********************************************************************************
100 */
101
102 /*******************************************************************************
103 *                    E X T E R N A L   R E F E R E N C E S
104 ********************************************************************************
105 */
106
107 /*******************************************************************************
108 *                              C O N S T A N T S
109 ********************************************************************************
110 */
111 // Table Version
112 #define RF_AUTO_TEST_FUNCTION_TABLE_VERSION 0x01000001
113
114 // Power
115 #define RF_AT_PARAM_POWER_MASK      BITS(0,7)
116 #define RF_AT_PARAM_POWER_MAX       RF_AT_PARAM_POWER_MASK
117
118 // Rate
119 #define RF_AT_PARAM_RATE_MCS_MASK   BIT(31)
120 #define RF_AT_PARAM_RATE_MASK       BITS(0,7)
121 #define RF_AT_PARAM_RATE_CCK_MAX    3
122 #define RF_AT_PARAM_RATE_1M         0
123 #define RF_AT_PARAM_RATE_2M         1
124 #define RF_AT_PARAM_RATE_5_5M       2
125 #define RF_AT_PARAM_RATE_11M        3
126 #define RF_AT_PARAM_RATE_6M         4
127 #define RF_AT_PARAM_RATE_9M         5
128 #define RF_AT_PARAM_RATE_12M        6
129 #define RF_AT_PARAM_RATE_18M        7
130 #define RF_AT_PARAM_RATE_24M        8
131 #define RF_AT_PARAM_RATE_36M        9
132 #define RF_AT_PARAM_RATE_48M        10
133 #define RF_AT_PARAM_RATE_54M        11
134
135 // Antenna
136 #define RF_AT_PARAM_ANTENNA_ID_MASK BITS(0,7)
137 #define RF_AT_PARAM_ANTENNA_ID_MAX  1
138
139 // Packet Length
140 #define RF_AT_PARAM_TX_80211HDR_BYTE_MAX     (32)
141 #define RF_AT_PARAM_TX_80211PAYLOAD_BYTE_MAX (2048)
142
143 #define RF_AT_PARAM_TX_PKTLEN_BYTE_DEFAULT  1024
144 #define RF_AT_PARAM_TX_PKTLEN_BYTE_MAX  \
145     ((UINT_16)(RF_AT_PARAM_TX_80211HDR_BYTE_MAX + RF_AT_PARAM_TX_80211PAYLOAD_BYTE_MAX ))
146
147 // Packet Count
148 #define RF_AT_PARAM_TX_PKTCNT_DEFAULT    1000
149 #define RF_AT_PARAM_TX_PKTCNT_UNLIMITED  0
150
151 // Packet Interval
152 #define RF_AT_PARAM_TX_PKT_INTERVAL_US_DEFAULT  50
153
154 // ALC
155 #define RF_AT_PARAM_ALC_DISABLE     0
156 #define RF_AT_PARAM_ALC_ENABLE      1
157
158 // TXOP
159 #define RF_AT_PARAM_TXOP_DEFAULT    0
160 #define RF_AT_PARAM_TXOPQUE_QMASK   BITS(16,31)
161 #define RF_AT_PARAM_TXOPQUE_TMASK   BITS(0,15)
162 #define RF_AT_PARAM_TXOPQUE_AC0     (0<<16)
163 #define RF_AT_PARAM_TXOPQUE_AC1     (1<<16)
164 #define RF_AT_PARAM_TXOPQUE_AC2     (2<<16)
165 #define RF_AT_PARAM_TXOPQUE_AC3     (3<<16)
166 #define RF_AT_PARAM_TXOPQUE_AC4     (4<<16)
167 #define RF_AT_PARAM_TXOPQUE_QOFFSET 16
168
169 // Retry Limit
170 #define RF_AT_PARAM_TX_RETRY_DEFAULT    0
171 #define RF_AT_PARAM_TX_RETRY_MAX        6
172
173 // QoS Queue
174 #define RF_AT_PARAM_QOSQUE_AC0      0
175 #define RF_AT_PARAM_QOSQUE_AC1      1
176 #define RF_AT_PARAM_QOSQUE_AC2      2
177 #define RF_AT_PARAM_QOSQUE_AC3      3
178 #define RF_AT_PARAM_QOSQUE_AC4      4
179 #define RF_AT_PARAM_QOSQUE_DEFAULT  RF_AT_PARAM_QOSQUE_AC0
180
181 // Bandwidth
182 #define RF_AT_PARAM_BANDWIDTH_20MHZ             0
183 #define RF_AT_PARAM_BANDWIDTH_40MHZ             1
184 #define RF_AT_PARAM_BANDWIDTH_U20_IN_40MHZ      2
185 #define RF_AT_PARAM_BANDWIDTH_D20_IN_40MHZ      3
186 #define RF_AT_PARAM_BANDWIDTH_DEFAULT   RF_AT_PARAM_BANDWIDTH_20MHZ
187
188 // GI (Guard Interval)
189 #define RF_AT_PARAM_GI_800NS    0
190 #define RF_AT_PARAM_GI_400NS    1
191 #define RF_AT_PARAM_GI_DEFAULT  RF_AT_PARAM_GI_800NS
192
193 // STBC
194 #define RF_AT_PARAM_STBC_DISABLE    0
195 #define RF_AT_PARAM_STBC_ENABLE     1
196
197 // RIFS
198 #define RF_AT_PARAM_RIFS_DISABLE    0
199 #define RF_AT_PARAM_RIFS_ENABLE     1
200
201
202 /*******************************************************************************
203 *                             D A T A   T Y P E S
204 ********************************************************************************
205 */
206 // Function ID List
207 typedef enum _ENUM_RF_AT_FUNCID_T {
208     RF_AT_FUNCID_VERSION = 0,
209     RF_AT_FUNCID_COMMAND,
210     RF_AT_FUNCID_POWER,
211     RF_AT_FUNCID_RATE,
212     RF_AT_FUNCID_PREAMBLE,
213     RF_AT_FUNCID_ANTENNA,
214     RF_AT_FUNCID_PKTLEN,
215     RF_AT_FUNCID_PKTCNT,
216     RF_AT_FUNCID_PKTINTERVAL,
217     RF_AT_FUNCID_TEMP_COMPEN,
218     RF_AT_FUNCID_TXOPLIMIT,
219     RF_AT_FUNCID_ACKPOLICY,
220     RF_AT_FUNCID_PKTCONTENT,
221     RF_AT_FUNCID_RETRYLIMIT,
222     RF_AT_FUNCID_QUEUE,
223     RF_AT_FUNCID_BANDWIDTH,
224     RF_AT_FUNCID_GI,
225     RF_AT_FUNCID_STBC,
226     RF_AT_FUNCID_CHNL_FREQ,
227     RF_AT_FUNCID_RIFS,
228     RF_AT_FUNCID_TRSW_TYPE,
229     RF_AT_FUNCID_RF_SX_SHUTDOWN,
230     RF_AT_FUNCID_PLL_SHUTDOWN,
231     RF_AT_FUNCID_SLOW_CLK_MODE,
232     RF_AT_FUNCID_ADC_CLK_MODE,
233     RF_AT_FUNCID_MEASURE_MODE,
234     RF_AT_FUNCID_VOLT_COMPEN,
235     RF_AT_FUNCID_DPD_TX_GAIN,
236     RF_AT_FUNCID_DPD_MODE,
237     RF_AT_FUNCID_TSSI_MODE,
238     RF_AT_FUNCID_TX_GAIN_CODE,
239     RF_AT_FUNCID_TX_PWR_MODE,
240
241     /* Query command */
242     RF_AT_FUNCID_TXED_COUNT = 32,
243     RF_AT_FUNCID_TXOK_COUNT,
244     RF_AT_FUNCID_RXOK_COUNT,
245     RF_AT_FUNCID_RXERROR_COUNT,
246     RF_AT_FUNCID_RESULT_INFO,
247     RF_AT_FUNCID_TRX_IQ_RESULT,
248     RF_AT_FUNCID_TSSI_RESULT,
249     RF_AT_FUNCID_DPD_RESULT,
250     RF_AT_FUNCID_RXV_DUMP,
251     RF_AT_FUNCID_RX_PHY_STATIS,
252     RF_AT_FUNCID_MEASURE_RESULT,
253     RF_AT_FUNCID_TEMP_SENSOR,
254     RF_AT_FUNCID_VOLT_SENSOR,
255     RF_AT_FUNCID_READ_EFUSE,
256     RF_AT_FUNCID_RX_RSSI,
257     RF_AT_FUNCID_FW_INFO,
258     RF_AT_FUNCID_DRV_INFO,
259
260     /* Set command */
261     RF_AT_FUNCID_SET_DPD_RESULT = 64,
262     RF_AT_FUNCID_SET_CW_MODE,
263     RF_AT_FUNCID_SET_JAPAN_CH14_FILTER,
264     RF_AT_FUNCID_WRITE_EFUSE,
265     RF_AT_FUNCID_SET_MAC_ADDRESS
266
267 } ENUM_RF_AT_FUNCID_T;
268
269 // Command
270 typedef enum _ENUM_RF_AT_COMMAND_T {
271     RF_AT_COMMAND_STOPTEST = 0,
272     RF_AT_COMMAND_STARTTX,
273     RF_AT_COMMAND_STARTRX,
274     RF_AT_COMMAND_RESET,
275     RF_AT_COMMAND_OUTPUT_POWER,     /* Payload */
276     RF_AT_COMMAND_LO_LEAKAGE,       /* Local freq is renamed to Local leakage */
277     RF_AT_COMMAND_CARRIER_SUPPR,    /* OFDM (LTF/STF), CCK (PI,PI/2) */
278     RF_AT_COMMAND_TRX_IQ_CAL,
279     RF_AT_COMMAND_TSSI_CAL,
280     RF_AT_COMMAND_DPD_CAL,
281     RF_AT_COMMAND_CW,
282     RF_AT_COMMAND_NUM
283 } ENUM_RF_AT_COMMAND_T;
284
285 // Preamble
286 typedef enum _ENUM_RF_AT_PREAMBLE_T {
287     RF_AT_PREAMBLE_NORMAL = 0,
288     RF_AT_PREAMBLE_CCK_SHORT,
289     RF_AT_PREAMBLE_11N_MM,
290     RF_AT_PREAMBLE_11N_GF,
291     RF_AT_PREAMBLE_NUM
292 } ENUM_RF_AT_PREAMBLE_T;
293
294 // Ack Policy
295 typedef enum _ENUM_RF_AT_ACK_POLICY_T {
296     RF_AT_ACK_POLICY_NORMAL = 0,
297     RF_AT_ACK_POLICY_NOACK,
298     RF_AT_ACK_POLICY_NOEXPLICTACK,
299     RF_AT_ACK_POLICY_BLOCKACK,
300     RF_AT_ACK_POLICY_NUM
301 } ENUM_RF_AT_ACK_POLICY_T;
302
303 typedef enum _ENUM_RF_AUTOTEST_STATE_T {
304     RF_AUTOTEST_STATE_STANDBY = 0,
305     RF_AUTOTEST_STATE_TX,
306     RF_AUTOTEST_STATE_RX,
307     RF_AUTOTEST_STATE_RESET,
308     RF_AUTOTEST_STATE_OUTPUT_POWER,
309     RF_AUTOTEST_STATE_LOCA_FREQUENCY,
310     RF_AUTOTEST_STATE_CARRIER_SUPRRESION,
311     RF_AUTOTEST_STATE_NUM
312 } ENUM_RF_AUTOTEST_STATE_T;
313
314
315 /*******************************************************************************
316 *                            P U B L I C   D A T A
317 ********************************************************************************
318 */
319
320 /*******************************************************************************
321 *                           P R I V A T E   D A T A
322 ********************************************************************************
323 */
324
325 /*******************************************************************************
326 *                                 M A C R O S
327 ********************************************************************************
328 */
329
330 /*******************************************************************************
331 *                   F U N C T I O N   D E C L A R A T I O N S
332 ********************************************************************************
333 */
334
335 WLAN_STATUS
336 rftestSetATInfo(
337     IN P_ADAPTER_T  prAdapter,
338     UINT_32         u4FuncIndex,
339     UINT_32         u4FuncData
340     );
341
342 WLAN_STATUS
343 rftestQueryATInfo(
344     IN P_ADAPTER_T  prAdapter,
345     UINT_32         u4FuncIndex,
346     UINT_32         u4FuncData,
347     OUT PVOID       pvQueryBuffer,
348     IN UINT_32      u4QueryBufferLen
349     );
350
351 WLAN_STATUS
352 rftestSetFrequency(
353     IN P_ADAPTER_T  prAdapter,
354     IN UINT_32      u4FreqInKHz,
355     IN PUINT_32     pu4SetInfoLen
356     );
357
358 #endif /* _RFTEST_H */
359
360
361