summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/host.h
blob: d4457ef808a647c8c174de7d015b27ec01622127 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
/**
  * This file contains definitions of WLAN commands.
  */

#ifndef _LBS_HOST_H_
#define _LBS_HOST_H_

/** PUBLIC DEFINITIONS */
#define DEFAULT_AD_HOC_CHANNEL			6
#define	DEFAULT_AD_HOC_CHANNEL_A		36

#define CMD_OPTION_WAITFORRSP			0x0002

/** Host command IDs */

/* Return command are almost always the same as the host command, but with
 * bit 15 set high.  There are a few exceptions, though...
 */
#define CMD_RET(cmd)			(0x8000 | cmd)

/* Return command convention exceptions: */
#define CMD_RET_802_11_ASSOCIATE		0x8012

/* Command codes */
#define CMD_GET_HW_SPEC				0x0003
#define	CMD_EEPROM_UPDATE			0x0004
#define CMD_802_11_RESET			0x0005
#define	CMD_802_11_SCAN				0x0006
#define CMD_802_11_GET_LOG			0x000b
#define CMD_MAC_MULTICAST_ADR			0x0010
#define CMD_802_11_AUTHENTICATE			0x0011
#define CMD_802_11_EEPROM_ACCESS		0x0059
#define CMD_802_11_ASSOCIATE			0x0050
#define CMD_802_11_SET_WEP			0x0013
#define CMD_802_11_GET_STAT			0x0014
#define CMD_802_3_GET_STAT			0x0015
#define CMD_802_11_SNMP_MIB			0x0016
#define CMD_MAC_REG_MAP				0x0017
#define CMD_BBP_REG_MAP				0x0018
#define CMD_MAC_REG_ACCESS			0x0019
#define CMD_BBP_REG_ACCESS			0x001a
#define CMD_RF_REG_ACCESS			0x001b
#define CMD_802_11_RADIO_CONTROL		0x001c
#define CMD_802_11_RF_CHANNEL			0x001d
#define CMD_802_11_RF_TX_POWER			0x001e
#define CMD_802_11_RSSI				0x001f
#define CMD_802_11_RF_ANTENNA			0x0020
#define CMD_802_11_PS_MODE			0x0021
#define CMD_802_11_DATA_RATE			0x0022
#define CMD_RF_REG_MAP				0x0023
#define CMD_802_11_DEAUTHENTICATE		0x0024
#define CMD_802_11_REASSOCIATE			0x0025
#define CMD_MAC_CONTROL				0x0028
#define CMD_802_11_AD_HOC_START			0x002b
#define CMD_802_11_AD_HOC_JOIN			0x002c
#define CMD_802_11_QUERY_TKIP_REPLY_CNTRS	0x002e
#define CMD_802_11_ENABLE_RSN			0x002f
#define CMD_802_11_SET_AFC			0x003c
#define CMD_802_11_GET_AFC			0x003d
#define CMD_802_11_AD_HOC_STOP			0x0040
#define CMD_802_11_HOST_SLEEP_CFG		0x0043
#define CMD_802_11_WAKEUP_CONFIRM		0x0044
#define CMD_802_11_HOST_SLEEP_ACTIVATE		0x0045
#define CMD_802_11_BEACON_STOP			0x0049
#define CMD_802_11_MAC_ADDRESS			0x004d
#define CMD_802_11_LED_GPIO_CTRL		0x004e
#define CMD_802_11_EEPROM_ACCESS		0x0059
#define CMD_802_11_BAND_CONFIG			0x0058
#define CMD_GSPI_BUS_CONFIG			0x005a
#define CMD_802_11D_DOMAIN_INFO			0x005b
#define CMD_802_11_KEY_MATERIAL			0x005e
#define CMD_802_11_SLEEP_PARAMS			0x0066
#define CMD_802_11_INACTIVITY_TIMEOUT		0x0067
#define CMD_802_11_SLEEP_PERIOD			0x0068
#define CMD_802_11_TPC_CFG			0x0072
#define CMD_802_11_PA_CFG			0x0073
#define CMD_802_11_FW_WAKE_METHOD		0x0074
#define CMD_802_11_SUBSCRIBE_EVENT		0x0075
#define CMD_802_11_RATE_ADAPT_RATESET		0x0076
#define CMD_802_11_TX_RATE_QUERY		0x007f
#define	CMD_GET_TSF				0x0080
#define CMD_BT_ACCESS				0x0087
#define CMD_FWT_ACCESS				0x0095
#define CMD_802_11_MONITOR_MODE			0x0098
#define CMD_MESH_ACCESS				0x009b
#define CMD_MESH_CONFIG				0x00a3
#define	CMD_SET_BOOT2_VER			0x00a5
#define CMD_802_11_BEACON_CTRL			0x00b0

/* For the IEEE Power Save */
#define CMD_SUBCMD_ENTER_PS		0x0030
#define CMD_SUBCMD_EXIT_PS		0x0031
#define CMD_SUBCMD_SLEEP_CONFIRMED	0x0034
#define CMD_SUBCMD_FULL_POWERDOWN	0x0035
#define CMD_SUBCMD_FULL_POWERUP		0x0036

#define CMD_ENABLE_RSN			0x0001
#define CMD_DISABLE_RSN			0x0000

#define CMD_ACT_GET			0x0000
#define CMD_ACT_SET			0x0001
#define CMD_ACT_GET_AES			0x0002
#define CMD_ACT_SET_AES			0x0003
#define CMD_ACT_REMOVE_AES		0x0004

/* Define action or option for CMD_802_11_SET_WEP */
#define CMD_ACT_ADD			0x0002
#define CMD_ACT_REMOVE			0x0004
#define CMD_ACT_USE_DEFAULT		0x0008

#define CMD_TYPE_WEP_40_BIT		0x01
#define CMD_TYPE_WEP_104_BIT		0x02

#define CMD_NUM_OF_WEP_KEYS		4

#define CMD_WEP_KEY_INDEX_MASK		0x3fff

/* Define action or option for CMD_802_11_RESET */
#define CMD_ACT_HALT			0x0003

/* Define action or option for CMD_802_11_SCAN */
#define CMD_BSS_TYPE_BSS		0x0001
#define CMD_BSS_TYPE_IBSS		0x0002
#define CMD_BSS_TYPE_ANY		0x0003

/* Define action or option for CMD_802_11_SCAN */
#define CMD_SCAN_TYPE_ACTIVE		0x0000
#define CMD_SCAN_TYPE_PASSIVE		0x0001

#define CMD_SCAN_RADIO_TYPE_BG		0

#define	CMD_SCAN_PROBE_DELAY_TIME	0

/* Define action or option for CMD_MAC_CONTROL */
#define CMD_ACT_MAC_RX_ON			0x0001
#define CMD_ACT_MAC_TX_ON			0x0002
#define CMD_ACT_MAC_LOOPBACK_ON			0x0004
#define CMD_ACT_MAC_WEP_ENABLE			0x0008
#define CMD_ACT_MAC_INT_ENABLE			0x0010
#define CMD_ACT_MAC_MULTICAST_ENABLE		0x0020
#define CMD_ACT_MAC_BROADCAST_ENABLE		0x0040
#define CMD_ACT_MAC_PROMISCUOUS_ENABLE		0x0080
#define CMD_ACT_MAC_ALL_MULTICAST_ENABLE	0x0100
#define CMD_ACT_MAC_STRICT_PROTECTION_ENABLE	0x0400

/* Event flags for CMD_802_11_SUBSCRIBE_EVENT */
#define CMD_SUBSCRIBE_RSSI_LOW		0x0001
#define CMD_SUBSCRIBE_SNR_LOW		0x0002
#define CMD_SUBSCRIBE_FAILCOUNT		0x0004
#define CMD_SUBSCRIBE_BCNMISS		0x0008
#define CMD_SUBSCRIBE_RSSI_HIGH		0x0010
#define CMD_SUBSCRIBE_SNR_HIGH		0x0020

#define RADIO_PREAMBLE_LONG	0x00
#define RADIO_PREAMBLE_SHORT	0x02
#define RADIO_PREAMBLE_AUTO	0x04

/* Define action or option for CMD_802_11_RF_CHANNEL */
#define CMD_OPT_802_11_RF_CHANNEL_GET	0x00
#define CMD_OPT_802_11_RF_CHANNEL_SET	0x01

/* Define action or option for CMD_802_11_DATA_RATE */
#define CMD_ACT_SET_TX_AUTO		0x0000
#define CMD_ACT_SET_TX_FIX_RATE		0x0001
#define CMD_ACT_GET_TX_RATE		0x0002

#define CMD_ACT_SET_RX			0x0001
#define	CMD_ACT_SET_TX			0x0002
#define CMD_ACT_SET_BOTH		0x0003
#define	CMD_ACT_GET_RX			0x0004
#define CMD_ACT_GET_TX			0x0008
#define	CMD_ACT_GET_BOTH		0x000c

/* Define action or option for CMD_802_11_PS_MODE */
#define CMD_TYPE_CAM			0x0000
#define	CMD_TYPE_MAX_PSP		0x0001
#define CMD_TYPE_FAST_PSP		0x0002

/* Options for CMD_802_11_FW_WAKE_METHOD */
#define CMD_WAKE_METHOD_UNCHANGED	0x0000
#define CMD_WAKE_METHOD_COMMAND_INT	0x0001
#define CMD_WAKE_METHOD_GPIO		0x0002

/* Object IDs for CMD_802_11_SNMP_MIB */
#define SNMP_MIB_OID_BSS_TYPE		0x0000
#define SNMP_MIB_OID_OP_RATE_SET	0x0001
#define SNMP_MIB_OID_BEACON_PERIOD	0x0002  /* Reserved on v9+ */
#define SNMP_MIB_OID_DTIM_PERIOD	0x0003  /* Reserved on v9+ */
#define SNMP_MIB_OID_ASSOC_TIMEOUT	0x0004  /* Reserved on v9+ */
#define SNMP_MIB_OID_RTS_THRESHOLD	0x0005
#define SNMP_MIB_OID_SHORT_RETRY_LIMIT	0x0006
#define SNMP_MIB_OID_LONG_RETRY_LIMIT	0x0007
#define SNMP_MIB_OID_FRAG_THRESHOLD	0x0008
#define SNMP_MIB_OID_11D_ENABLE		0x0009
#define SNMP_MIB_OID_11H_ENABLE		0x000A

/* Define action or option for CMD_BT_ACCESS */
enum cmd_bt_access_opts {
	/* The bt commands start at 5 instead of 1 because the old dft commands
	 * are mapped to 1-4.  These old commands are no longer maintained and
	 * should not be called.
	 */
	CMD_ACT_BT_ACCESS_ADD = 5,
	CMD_ACT_BT_ACCESS_DEL,
	CMD_ACT_BT_ACCESS_LIST,
	CMD_ACT_BT_ACCESS_RESET,
	CMD_ACT_BT_ACCESS_SET_INVERT,
	CMD_ACT_BT_ACCESS_GET_INVERT
};

/* Define action or option for CMD_FWT_ACCESS */
enum cmd_fwt_access_opts {
	CMD_ACT_FWT_ACCESS_ADD = 1,
	CMD_ACT_FWT_ACCESS_DEL,
	CMD_ACT_FWT_ACCESS_LOOKUP,
	CMD_ACT_FWT_ACCESS_LIST,
	CMD_ACT_FWT_ACCESS_LIST_ROUTE,
	CMD_ACT_FWT_ACCESS_LIST_NEIGHBOR,
	CMD_ACT_FWT_ACCESS_RESET,
	CMD_ACT_FWT_ACCESS_CLEANUP,
	CMD_ACT_FWT_ACCESS_TIME,
};

/* Define action or option for CMD_802_11_HOST_SLEEP_CFG */
enum cmd_wol_cfg_opts {
	CMD_ACT_ACTION_NONE = 0,
	CMD_ACT_SET_WOL_RULE,
	CMD_ACT_GET_WOL_RULE,
	CMD_ACT_RESET_WOL_RULE,
};

/* Define action or option for CMD_MESH_ACCESS */
enum cmd_mesh_access_opts {
	CMD_ACT_MESH_GET_TTL = 1,
	CMD_ACT_MESH_SET_TTL,
	CMD_ACT_MESH_GET_STATS,
	CMD_ACT_MESH_GET_ANYCAST,
	CMD_ACT_MESH_SET_ANYCAST,
	CMD_ACT_MESH_SET_LINK_COSTS,
	CMD_ACT_MESH_GET_LINK_COSTS,
	CMD_ACT_MESH_SET_BCAST_RATE,
	CMD_ACT_MESH_GET_BCAST_RATE,
	CMD_ACT_MESH_SET_RREQ_DELAY,
	CMD_ACT_MESH_GET_RREQ_DELAY,
	CMD_ACT_MESH_SET_ROUTE_EXP,
	CMD_ACT_MESH_GET_ROUTE_EXP,
	CMD_ACT_MESH_SET_AUTOSTART_ENABLED,
	CMD_ACT_MESH_GET_AUTOSTART_ENABLED,
	CMD_ACT_MESH_SET_GET_PRB_RSP_LIMIT = 17,
};

/* Define actions and types for CMD_MESH_CONFIG */
enum cmd_mesh_config_actions {
	CMD_ACT_MESH_CONFIG_STOP = 0,
	CMD_ACT_MESH_CONFIG_START,
	CMD_ACT_MESH_CONFIG_SET,
	CMD_ACT_MESH_CONFIG_GET,
};

enum cmd_mesh_config_types {
	CMD_TYPE_MESH_SET_BOOTFLAG = 1,
	CMD_TYPE_MESH_SET_BOOTTIME,
	CMD_TYPE_MESH_SET_DEF_CHANNEL,
	CMD_TYPE_MESH_SET_MESH_IE,
	CMD_TYPE_MESH_GET_DEFAULTS,
	CMD_TYPE_MESH_GET_MESH_IE, /* GET_DEFAULTS is superset of GET_MESHIE */
};

/** Card Event definition */
#define MACREG_INT_CODE_TX_PPA_FREE		0
#define MACREG_INT_CODE_TX_DMA_DONE		1
#define MACREG_INT_CODE_LINK_LOST_W_SCAN	2
#define MACREG_INT_CODE_LINK_LOST_NO_SCAN	3
#define MACREG_INT_CODE_LINK_SENSED		4
#define MACREG_INT_CODE_CMD_FINISHED		5
#define MACREG_INT_CODE_MIB_CHANGED		6
#define MACREG_INT_CODE_INIT_DONE		7
#define MACREG_INT_CODE_DEAUTHENTICATED		8
#define MACREG_INT_CODE_DISASSOCIATED		9
#define MACREG_INT_CODE_PS_AWAKE		10
#define MACREG_INT_CODE_PS_SLEEP		11
#define MACREG_INT_CODE_MIC_ERR_MULTICAST	13
#define MACREG_INT_CODE_MIC_ERR_UNICAST		14
#define MACREG_INT_CODE_WM_AWAKE		15
#define MACREG_INT_CODE_DEEP_SLEEP_AWAKE	16
#define MACREG_INT_CODE_ADHOC_BCN_LOST		17
#define MACREG_INT_CODE_HOST_AWAKE		18
#define MACREG_INT_CODE_STOP_TX			19
#define MACREG_INT_CODE_START_TX		20
#define MACREG_INT_CODE_CHANNEL_SWITCH		21
#define MACREG_INT_CODE_MEASUREMENT_RDY		22
#define MACREG_INT_CODE_WMM_CHANGE		23
#define MACREG_INT_CODE_BG_SCAN_REPORT		24
#define MACREG_INT_CODE_RSSI_LOW		25
#define MACREG_INT_CODE_SNR_LOW			26
#define MACREG_INT_CODE_MAX_FAIL		27
#define MACREG_INT_CODE_RSSI_HIGH		28
#define MACREG_INT_CODE_SNR_HIGH		29
#define MACREG_INT_CODE_MESH_AUTO_STARTED	35
#define MACREG_INT_CODE_FIRMWARE_READY		48

#endif