Add ar6000 wireless driver.
[kernel.git] / drivers / ar6000 / include / testcmd.h
1 /*
2  * Copyright (c) 2004-2005 Atheros Communications Inc.
3  * All rights reserved.
4  *
5  *
6  * $ATH_LICENSE_HOSTSDK0_C$
7  *
8  */
9
10 #ifndef  TESTCMD_H_
11 #define  TESTCMD_H_
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 typedef enum {
18     ZEROES_PATTERN = 0,
19     ONES_PATTERN,
20     REPEATING_10,
21     PN7_PATTERN,
22     PN9_PATTERN,
23     PN15_PATTERN
24 }TX_DATA_PATTERN;
25
26 /* Continous tx
27    mode : TCMD_CONT_TX_OFF - Disabling continous tx
28           TCMD_CONT_TX_SINE - Enable continuous unmodulated tx
29           TCMD_CONT_TX_FRAME- Enable continuous modulated tx
30    freq : Channel freq in Mhz. (e.g 2412 for channel 1 in 11 g)
31 dataRate: 0 - 1 Mbps
32           1 - 2 Mbps
33           2 - 5.5 Mbps
34           3 - 11 Mbps
35           4 - 6 Mbps
36           5 - 9 Mbps
37           6 - 12 Mbps
38           7 - 18 Mbps
39           8 - 24 Mbps
40           9 - 36 Mbps
41          10 - 28 Mbps
42          11 - 54 Mbps
43   txPwr: Tx power in dBm[5 -11] for unmod Tx, [5-14] for mod Tx
44 antenna:  1 - one antenna
45           2 - two antenna
46 Note : Enable/disable continuous tx test cmd works only when target is awake.
47 */
48
49 typedef enum {
50     TCMD_CONT_TX_OFF = 0,
51     TCMD_CONT_TX_SINE,
52     TCMD_CONT_TX_FRAME,
53     TCMD_CONT_TX_TX99,
54     TCMD_CONT_TX_TX100
55 } TCMD_CONT_TX_MODE;
56
57 typedef PREPACK struct {
58     A_UINT32                 testCmdId;
59     A_UINT32                mode;
60     A_UINT32                freq;
61     A_UINT32                dataRate;
62     A_INT32                 txPwr;
63     A_UINT32                antenna;
64     A_UINT32                enANI;
65     A_UINT32                scramblerOff;
66     A_UINT32                aifsn;
67     A_UINT16                pktSz;
68     A_UINT16                txPattern;
69 } POSTPACK TCMD_CONT_TX;
70
71 #define TCMD_TXPATTERN_ZERONE                 0x1
72 #define TCMD_TXPATTERN_ZERONE_DIS_SCRAMBLE    0x2
73
74 /* Continuous Rx
75  act: TCMD_CONT_RX_PROMIS - promiscuous mode (accept all incoming frames)
76       TCMD_CONT_RX_FILTER - filter mode (accept only frames with dest
77                                              address equal specified
78                                              mac address (set via act =3)
79       TCMD_CONT_RX_REPORT  off mode  (disable cont rx mode and get the
80                                           report from the last cont
81                                           Rx test)
82
83      TCMD_CONT_RX_SETMAC - set MacAddr mode (sets the MAC address for the
84                                                  target. This Overrides
85                                                  the default MAC address.)
86
87 */
88 typedef enum {
89     TCMD_CONT_RX_PROMIS =0,
90     TCMD_CONT_RX_FILTER,
91     TCMD_CONT_RX_REPORT,
92     TCMD_CONT_RX_SETMAC
93 } TCMD_CONT_RX_ACT;
94
95 typedef PREPACK struct {
96     A_UINT32         testCmdId;
97     A_UINT32        act;
98     A_UINT32        enANI;
99     PREPACK union {
100         struct PREPACK TCMD_CONT_RX_PARA {
101             A_UINT32    freq;
102             A_UINT32    antenna;
103         } POSTPACK para;
104         struct PREPACK TCMD_CONT_RX_REPORT {
105             A_UINT32    totalPkt;
106             A_INT32    rssiInDBm;
107         } POSTPACK report;
108         struct PREPACK TCMD_CONT_RX_MAC {
109             A_UCHAR    addr[ATH_MAC_LEN];
110         } POSTPACK mac;
111     } POSTPACK u;
112 } POSTPACK TCMD_CONT_RX;
113
114 /* Force sleep/wake  test cmd
115  mode: TCMD_PM_WAKEUP - Wakeup the target
116        TCMD_PM_SLEEP - Force the target to sleep.
117  */
118 typedef enum {
119     TCMD_PM_WAKEUP = 1, /* be consistent with target */
120     TCMD_PM_SLEEP
121 } TCMD_PM_MODE;
122
123 typedef PREPACK struct {
124         A_UINT32  testCmdId;
125     A_UINT32  mode;
126 } POSTPACK TCMD_PM;
127
128 typedef enum{
129     TCMD_CONT_TX_ID,
130     TCMD_CONT_RX_ID,
131     TCMD_PM_ID
132    } TCMD_ID;
133
134 typedef PREPACK union {
135           TCMD_CONT_TX contTx;
136           TCMD_CONT_RX contRx;
137           TCMD_PM pm ;
138 } POSTPACK TEST_CMD;
139
140 #ifdef __cplusplus
141 }
142 #endif
143
144 #endif /* TESTCMD_H_ */