• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ///////////////////////////////////////////////////////////////////////// */
2 /*  */
3 /* Copyright (c) Atmel Corporation.  All rights reserved. */
4 /*  */
5 /* Module Name:  wilc_wlan_if.h */
6 /*  */
7 /*  */
8 /* ///////////////////////////////////////////////////////////////////////// */
9 
10 #ifndef WILC_WLAN_IF_H
11 #define WILC_WLAN_IF_H
12 
13 #include <linux/netdevice.h>
14 
15 /********************************************
16  *
17  *      Host Interface Defines
18  *
19  ********************************************/
20 
21 #define HIF_SDIO		(0)
22 #define HIF_SPI			BIT(0)
23 #define HIF_SDIO_GPIO_IRQ	BIT(2)
24 
25 /********************************************
26  *
27  *      Wlan Interface Defines
28  *
29  ********************************************/
30 
31 struct sdio_cmd52 {
32 	u32 read_write:		1;
33 	u32 function:		3;
34 	u32 raw:		1;
35 	u32 address:		17;
36 	u32 data:		8;
37 };
38 
39 struct sdio_cmd53 {
40 	u32 read_write:		1;
41 	u32 function:		3;
42 	u32 block_mode:		1;
43 	u32 increment:		1;
44 	u32 address:		17;
45 	u32 count:		9;
46 	u8 *buffer;
47 	u32 block_size;
48 };
49 
50 #define WILC_MAC_INDICATE_STATUS	0x1
51 #define WILC_MAC_STATUS_INIT		-1
52 #define WILC_MAC_STATUS_READY		0
53 #define WILC_MAC_STATUS_CONNECT		1
54 
55 #define WILC_MAC_INDICATE_SCAN		0x2
56 
57 struct tx_complete_data {
58 	int size;
59 	void *buff;
60 	u8 *bssid;
61 	struct sk_buff *skb;
62 };
63 
64 typedef void (*wilc_tx_complete_func_t)(void *, int);
65 
66 #define WILC_TX_ERR_NO_BUF	(-2)
67 
68 /********************************************
69  *
70  *      Wlan Configuration ID
71  *
72  ********************************************/
73 #define WILC_MULTICAST_TABLE_SIZE	8
74 #define MAX_SSID_LEN            33
75 #define MAX_RATES_SUPPORTED     12
76 
77 typedef enum {
78 	SUPP_RATES_IE		= 1,
79 	EXT_SUPP_RATES_IE	= 50,
80 	HT_CAPABILITY_IE	= 45,
81 	RSN_IE			= 48,
82 	WPA_IE			= 221,
83 	WMM_IE			= 221,
84 	P2P_IE			= 221,
85 } BEACON_IE;
86 
87 typedef enum {
88 	INFRASTRUCTURE		= 0,
89 	INDEPENDENT,
90 	AP,
91 } BSSTYPE_T;
92 
93 typedef enum {
94 	RATE_AUTO		= 0,
95 	RATE_1MB		= 1,
96 	RATE_2MB		= 2,
97 	RATE_5MB		= 5,
98 	RATE_6MB		= 6,
99 	RATE_9MB		= 9,
100 	RATE_11MB		= 11,
101 	RATE_12MB		= 12,
102 	RATE_18MB		= 18,
103 	RATE_24MB		= 24,
104 	RATE_26MB		= 36,
105 	RATE_48MB		= 48,
106 	RATE_54MB		= 54
107 } TX_RATE_T;
108 
109 typedef enum {
110 	B_ONLY_MODE		= 0,    /* 1, 2 M, otherwise 5, 11 M */
111 	G_ONLY_MODE,			/* 6,12,24 otherwise 9,18,36,48,54 */
112 	G_MIXED_11B_1_MODE,		/* 1,2,5.5,11 otherwise all on */
113 	G_MIXED_11B_2_MODE,		/* 1,2,5,11,6,12,24 otherwise all on */
114 } G_OPERATING_MODE_T;
115 
116 typedef enum {
117 	G_SHORT_PREAMBLE	= 0,	/* Short Preamble */
118 	G_LONG_PREAMBLE		= 1,	/* Long Preamble */
119 	G_AUTO_PREAMBLE		= 2,	/* Auto Preamble Selection */
120 } G_PREAMBLE_T;
121 
122 #define MAC_CONNECTED		1
123 #define MAC_DISCONNECTED	0
124 
125 #define SCAN_DONE		TRUE
126 typedef enum {
127 	PASSIVE_SCAN		= 0,
128 	ACTIVE_SCAN		= 1,
129 } SCANTYPE_T;
130 
131 typedef enum {
132 	NO_POWERSAVE		= 0,
133 	MIN_FAST_PS		= 1,
134 	MAX_FAST_PS		= 2,
135 	MIN_PSPOLL_PS		= 3,
136 	MAX_PSPOLL_PS		= 4
137 } USER_PS_MODE_T;
138 
139 typedef enum {
140 	CHIP_WAKEDUP		= 0,
141 	CHIP_SLEEPING_AUTO      = 1,
142 	CHIP_SLEEPING_MANUAL	= 2
143 } CHIP_PS_STATE_T;
144 
145 typedef enum {
146 	ACQUIRE_ONLY            = 0,
147 	ACQUIRE_AND_WAKEUP	= 1,
148 } BUS_ACQUIRE_T;
149 
150 typedef enum {
151 	RELEASE_ONLY		= 0,
152 	RELEASE_ALLOW_SLEEP	= 1,
153 } BUS_RELEASE_T;
154 
155 typedef enum {
156 	NO_SECURITY		= 0,
157 	WEP_40			= 0x3,
158 	WEP_104			= 0x7,
159 	WPA_AES			= 0x29,
160 	WPA_TKIP		= 0x49,
161 	WPA_AES_TKIP		= 0x69,	/* Aes or Tkip */
162 	WPA2_AES		= 0x31,
163 	WPA2_TKIP		= 0x51,
164 	WPA2_AES_TKIP		= 0x71,	/* Aes or Tkip */
165 } SECURITY_T;
166 
167 enum AUTHTYPE {
168 	OPEN_SYSTEM		= 1,
169 	SHARED_KEY		= 2,
170 	ANY			= 3,
171 	IEEE8021		= 5
172 };
173 
174 enum SITESURVEY {
175 	SITE_SURVEY_1CH		= 0,
176 	SITE_SURVEY_ALL_CH	= 1,
177 	SITE_SURVEY_OFF		= 2
178 };
179 
180 typedef enum {
181 	NORMAL_ACK		= 0,
182 	NO_ACK,
183 } ACK_POLICY_T;
184 
185 typedef enum {
186 	DONT_RESET		= 0,
187 	DO_RESET		= 1,
188 	NO_REQUEST		= 2,
189 } RESET_REQ_T;
190 
191 typedef enum {
192 	REKEY_DISABLE		= 1,
193 	REKEY_TIME_BASE,
194 	REKEY_PKT_BASE,
195 	REKEY_TIME_PKT_BASE
196 } RSNA_REKEY_POLICY_T;
197 
198 typedef enum {
199 	FILTER_NO		= 0x00,
200 	FILTER_AP_ONLY		= 0x01,
201 	FILTER_STA_ONLY		= 0x02
202 } SCAN_CLASS_FITLER_T;
203 
204 typedef enum {
205 	PRI_HIGH_RSSI		= 0x00,
206 	PRI_LOW_RSSI		= 0x04,
207 	PRI_DETECT		= 0x08
208 } SCAN_PRI_T;
209 
210 typedef enum {
211 	CH_FILTER_OFF		= 0x00,
212 	CH_FILTER_ON		= 0x10
213 } CH_FILTER_T;
214 
215 typedef enum {
216 	AUTO_PROT		= 0,	/* Auto */
217 	NO_PROT,			/* Do not use any protection */
218 	ERP_PROT,			/* Protect all ERP frame exchanges */
219 	HT_PROT,			/* Protect all HT frame exchanges  */
220 	GF_PROT,			/* Protect all GF frame exchanges  */
221 } N_PROTECTION_MODE_T;
222 
223 typedef enum {
224 	G_SELF_CTS_PROT,
225 	G_RTS_CTS_PROT,
226 } G_PROTECTION_MODE_T;
227 
228 typedef enum {
229 	HT_MIXED_MODE		= 1,
230 	HT_ONLY_20MHZ_MODE,
231 	HT_ONLY_20_40MHZ_MODE,
232 } N_OPERATING_MODE_T;
233 
234 typedef enum {
235 	NO_DETECT		= 0,
236 	DETECT_ONLY		= 1,
237 	DETECT_PROTECT		= 2,
238 	DETECT_PROTECT_REPORT	= 3,
239 } N_OBSS_DETECTION_T;
240 
241 typedef enum {
242 	RTS_CTS_NONHT_PROT	= 0,	/* RTS-CTS at non-HT rate */
243 	FIRST_FRAME_NONHT_PROT,		/* First frame at non-HT rate */
244 	LSIG_TXOP_PROT,                 /* LSIG TXOP Protection */
245 	FIRST_FRAME_MIXED_PROT,		/* First frame at Mixed format */
246 } N_PROTECTION_TYPE_T;
247 
248 typedef enum {
249 	STATIC_MODE		= 1,
250 	DYNAMIC_MODE		= 2,
251 	MIMO_MODE		= 3,	/* power save disable */
252 } N_SMPS_MODE_T;
253 
254 typedef enum {
255 	DISABLE_SELF_CTS,
256 	ENABLE_SELF_CTS,
257 	DISABLE_TX_ABORT,
258 	ENABLE_TX_ABORT,
259 	HW_TRIGGER_ABORT,
260 	SW_TRIGGER_ABORT,
261 } TX_ABORT_OPTION_T;
262 
263 enum wid_type {
264 	WID_CHAR		= 0,
265 	WID_SHORT		= 1,
266 	WID_INT			= 2,
267 	WID_STR			= 3,
268 	WID_BIN_DATA		= 4,
269 	WID_BIN			= 5,
270 	WID_IP			= 6,
271 	WID_ADR			= 7,
272 	WID_UNDEF		= 8,
273 	WID_TYPE_FORCE_32BIT	= 0xFFFFFFFF
274 };
275 
276 struct wid {
277 	u16 id;
278 	enum wid_type type;
279 	s32 size;
280 	s8 *val;
281 };
282 
283 typedef enum {
284 	WID_NIL				= 0xffff,
285 
286 	/*
287 	 *  BSS Type
288 	 *  -----------------------------------------------------------
289 	 *  Configuration : Infrastructure   Independent   Access Point
290 	 *  Values to set :         0               1            2
291 	 *  -----------------------------------------------------------
292 	 */
293 	WID_BSS_TYPE			= 0x0000,
294 
295 	/*
296 	 *  Transmit Rate
297 	 *  -----------------------------------------------------------
298 	 *  Configuration : 1  2  5.5  11  6  9  12  18  24  36  48  54
299 	 *  Values to set : 1  2    5  11  6  9  12  18  24  36  48  54
300 	 *  -----------------------------------------------------------
301 	 */
302 	WID_CURRENT_TX_RATE		= 0x0001,
303 
304 	/*
305 	 *  Channel
306 	 *  -----------------------------------------------------------
307 	 *  Configuration(g) : 1  2  3  4  5  6  7  8  9 10 11 12 13 14
308 	 *  Values to set    : 1  2  3  4  5  6  7  8  9 10 11 12 13 14
309 	 *  -----------------------------------------------------------
310 	 */
311 	WID_CURRENT_CHANNEL		= 0x0002,
312 
313 	/*
314 	 *  Preamble
315 	 *  -----------------------------------------------------------
316 	 *  Configuration :    short    long      Auto
317 	 *  Values to set :       0       1         2
318 	 *  -----------------------------------------------------------
319 	 */
320 	WID_PREAMBLE			= 0x0003,
321 
322 	/*
323 	 * 11g operating mode (ignored if 11g not present)
324 	 *  -----------------------------------------------------------
325 	 *  Configuration :   HighPerf  Compat(RSet #1) Compat(RSet #2)
326 	 *  Values to set :          1               2               3
327 	 *  -----------------------------------------------------------
328 	 */
329 	WID_11G_OPERATING_MODE		= 0x0004,
330 
331 	/*
332 	 *  Mac status (response only)
333 	 *  -----------------------------------------------------------
334 	 *  Configuration :   disconnect  connect
335 	 *  Values to get :          0       1
336 	 *  -----------------------------------------------------------
337 	 */
338 	WID_STATUS			= 0x0005,
339 
340 	/*
341 	 *  Scan type
342 	 *  -----------------------------------------------------------
343 	 *  Configuration :   Passive Scanning   Active Scanning
344 	 *  Values to set :                  0                 1
345 	 *  -----------------------------------------------------------
346 	 */
347 	WID_SCAN_TYPE			= 0x0007,
348 
349 	/*
350 	 *  Key Id (WEP default key Id)
351 	 *  -----------------------------------------------------------
352 	 *  Configuration :   Any value between 0 to 3
353 	 *  Values to set :   Same value. Default is 0
354 	 *  -----------------------------------------------------------
355 	 */
356 	WID_KEY_ID			= 0x0009,
357 
358 	/*
359 	 *  QoS Enable
360 	 *  -----------------------------------------------------------
361 	 *  Configuration :   QoS Disable   WMM Enable
362 	 *  Values to set :   0             1
363 	 *  -----------------------------------------------------------
364 	 */
365 	WID_QOS_ENABLE			= 0x000A,
366 
367 	/*
368 	 *  Power Management
369 	 *  -----------------------------------------------------------
370 	 *  Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE
371 	 *  Values to set : 0            1             2
372 	 *  -----------------------------------------------------------
373 	 */
374 	WID_POWER_MANAGEMENT		= 0x000B,
375 
376 	/*
377 	 *  WEP/802 11I Configuration
378 	 *  -----------------------------------------------------------
379 	 *  Configuration:Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP
380 	 *  Values (0x)  :   00     03   07     29       49       31      51
381 	 *  Configuration:WPA-AES+TKIP RSN-AES+TKIP
382 	 *  Values (0x)  :      69        71
383 	 *  -----------------------------------------------------------
384 	 */
385 	WID_11I_MODE			= 0x000C,
386 
387 	/*
388 	 *  WEP Configuration: Used in BSS STA mode only when WEP is enabled
389 	 *  -----------------------------------------------------------
390 	 *  Configuration : Open System Shared Key Any Type | 802.1x Auth
391 	 *  Values (0x)   :    01             02         03 |    BIT2
392 	 *  -----------------------------------------------------------
393 	 */
394 	WID_AUTH_TYPE			= 0x000D,
395 
396 	/*
397 	 *  Site Survey Type
398 	 *  -----------------------------------------------------------
399 	 *  Configuration       :  Values to set
400 	 *  Survey 1 Channel    :  0
401 	 *  survey all Channels :  1
402 	 *  Disable Site Survey :  2
403 	 *  -----------------------------------------------------------
404 	 */
405 	WID_SITE_SURVEY			= 0x000E,
406 
407 	/*
408 	 *  Listen Interval
409 	 *  -----------------------------------------------------------
410 	 *  Configuration :   Any value between 1 to 255
411 	 *  Values to set :   Same value. Default is 3
412 	 *  -----------------------------------------------------------
413 	 */
414 	WID_LISTEN_INTERVAL		= 0x000F,
415 
416 	/*
417 	 *  DTIM Period
418 	 *  -----------------------------------------------------------
419 	 *  Configuration :   Any value between 1 to 255
420 	 *  Values to set :   Same value. Default is 3
421 	 *  -----------------------------------------------------------
422 	 */
423 	WID_DTIM_PERIOD			= 0x0010,
424 
425 	/*
426 	 *  ACK Policy
427 	 *  -----------------------------------------------------------
428 	 *  Configuration :   Normal Ack            No Ack
429 	 *  Values to set :       0                   1
430 	 *  -----------------------------------------------------------
431 	 */
432 	WID_ACK_POLICY			= 0x0011,
433 
434 	/*
435 	 *  Reset MAC (Set only)
436 	 *  -----------------------------------------------------------
437 	 *  Configuration :   Don't Reset	Reset	No Request
438 	 *  Values to set :       0               1	    2
439 	 *  -----------------------------------------------------------
440 	 */
441 	WID_RESET			= 0x0012,
442 
443 	/*
444 	 *  Broadcast SSID Option: Setting this will adhere to "" SSID element
445 	 *  -----------------------------------------------------------
446 	 *  Configuration :   Enable             Disable
447 	 *  Values to set :   1                  0
448 	 *  -----------------------------------------------------------
449 	 */
450 	WID_BCAST_SSID			= 0x0015,
451 
452 	/*
453 	 *  Disconnect (Station)
454 	 *  -----------------------------------------------------------
455 	 *  Configuration :   Association ID
456 	 *  Values to set :   Association ID
457 	 *  -----------------------------------------------------------
458 	 */
459 	WID_DISCONNECT			= 0x0016,
460 
461 	/*
462 	 *  11a Tx Power Level
463 	 *  -----------------------------------------------------------
464 	 *  Configuration : Sets TX Power (Higher the value greater the power)
465 	 *  Values to set : Any value between 0 and 63 (inclusive Default 48)
466 	 *  -----------------------------------------------------------
467 	 */
468 	WID_TX_POWER_LEVEL_11A		= 0x0018,
469 
470 	/*
471 	 *  Group Key Update Policy Selection
472 	 *  -----------------------------------------------------------
473 	 *  Configuration : Disabled timeBased packetBased timePacketBased
474 	 *  Values to set :   1            2          3              4
475 	 *  -----------------------------------------------------------
476 	 */
477 	WID_REKEY_POLICY		= 0x0019,
478 
479 	/*
480 	 *  Allow Short Slot
481 	 *  -----------------------------------------------------------
482 	 *  Configuration : Disallow Short Slot      Allow Short Slot
483 	 *          (Enable Only Long Slot) (Enable Short Slot if applicable)
484 	 *  Values to set :    0         1
485 	 *  -----------------------------------------------------------
486 	 */
487 	WID_SHORT_SLOT_ALLOWED		= 0x001A,
488 
489 	WID_PHY_ACTIVE_REG		= 0x001B,
490 
491 	/*
492 	 *  11b Tx Power Level
493 	 *  -----------------------------------------------------------
494 	 *  Configuration : Sets TX Power (Higher the value greater the power)
495 	 *  Values to set : Any value between 0 and 63 (inclusive Default 48)
496 	 *  -----------------------------------------------------------
497 	 */
498 	WID_TX_POWER_LEVEL_11B		= 0x001D,
499 
500 	/*
501 	 *  Scan Request
502 	 *  -----------------------------------------------------------
503 	 *  Configuration : Request default scan
504 	 *  Values to set : 0
505 	 *  -----------------------------------------------------------
506 	 */
507 	WID_START_SCAN_REQ		= 0x001E,
508 
509 	/*
510 	 *  Rssi (get only)
511 	 *  -----------------------------------------------------------
512 	 *  Configuration :
513 	 *  Values to get : Rssi value
514 	 *  -----------------------------------------------------------
515 	 */
516 	WID_RSSI			= 0x001F,
517 
518 	/*
519 	 * Join Request
520 	 *  -----------------------------------------------------------
521 	 *  Configuration : Request to join
522 	 *  Values to set : index of scan result
523 	 *  -----------------------------------------------------------
524 	 */
525 	WID_JOIN_REQ			= 0x0020,
526 
527 	WID_LINKSPEED			= 0x0026,
528 
529 	/*
530 	 *  Enable User Control of TX Power
531 	 *  -----------------------------------------------------------
532 	 *  Configuration : Disable                  Enable
533 	 *  Values to set :    0                       1
534 	 *  -----------------------------------------------------------
535 	 */
536 	WID_USER_CONTROL_ON_TX_POWER	= 0x0027,
537 
538 	WID_MEMORY_ACCESS_8BIT		= 0x0029,
539 
540 	/*
541 	 *  Enable Auto RX Sensitivity feature
542 	 *  -----------------------------------------------------------
543 	 *  Configuration : Disable                  Enable
544 	 *  Values to set :    0                       1
545 	 *  -----------------------------------------------------------
546 	 */
547 	WID_AUTO_RX_SENSITIVITY		= 0x0032,
548 
549 	/*
550 	 *  Receive Buffer Based Ack
551 	 *  -----------------------------------------------------------
552 	 *  Configuration : Disable                  Enable
553 	 *  Values to set :    0                       1
554 	 *  -----------------------------------------------------------
555 	 */
556 	WID_DATAFLOW_CONTROL		= 0x0033,
557 
558 	/*
559 	 *  Scan Filter
560 	 *  -----------------------------------------------------------
561 	 *  Configuration : Class       No filter   AP only   Station Only
562 	 *  Values to set :                0           1           2
563 	 *  Configuration : Priority    High Rssi   Low Rssi     Detect
564 	 *  Values to set :                0          0x4         0x0
565 	 *  Configuration : Channel     filter off  filter on
566 	 *  Values to set :                0          0x10
567 	 *  -----------------------------------------------------------
568 	 */
569 	WID_SCAN_FILTER			= 0x0036,
570 
571 	/*
572 	 *  Link Loss Threshold (measure in the beacon period)
573 	 *  -----------------------------------------------------------
574 	 *  Configuration : Any value between 10 and 254(Set to 255 disable)
575 	 *  Values to set : Same value. Default is 10
576 	 *  -----------------------------------------------------------
577 	 */
578 	WID_LINK_LOSS_THRESHOLD		= 0x0037,
579 
580 	WID_ABORT_RUNNING_SCAN		= 0x003E,
581 
582 	/* NMAC Character WID list */
583 	WID_WPS_START			= 0x0043,
584 
585 	/*
586 	 *  Protection mode for MAC
587 	 *  -----------------------------------------------------------
588 	 *  Configuration :  Auto  No protection  ERP    HT    GF
589 	 *  Values to set :  0     1              2      3     4
590 	 *  -----------------------------------------------------------
591 	 */
592 	WID_11N_PROT_MECH		= 0x0080,
593 
594 	/*
595 	 *  ERP Protection type for MAC
596 	 *  -----------------------------------------------------------
597 	 *  Configuration :  Self-CTS   RTS-CTS
598 	 *  Values to set :  0          1
599 	 *  -----------------------------------------------------------
600 	 */
601 	WID_11N_ERP_PROT_TYPE		= 0x0081,
602 
603 	/*
604 	 *  HT Option Enable
605 	 *  -----------------------------------------------------------
606 	 *  Configuration :   HT Enable          HT Disable
607 	 *  Values to set :   1                  0
608 	 *  -----------------------------------------------------------
609 	 */
610 	WID_11N_ENABLE			= 0x0082,
611 
612 	/*
613 	 *  11n Operating mode (Note that 11g operating mode will also be
614 	 *  used in addition to this, if this is set to HT Mixed mode)
615 	 *  -----------------------------------------------------------
616 	 *   Configuration :  HT Mixed  HT Only-20MHz   HT Only-20/40MHz
617 	 *  Values to set :     1         2               3
618 	 *  -----------------------------------------------------------
619 	 */
620 	WID_11N_OPERATING_MODE		= 0x0083,
621 
622 	/*
623 	 *  11n OBSS non-HT STA Detection flag
624 	 *  -----------------------------------------------------------
625 	 *  Configuration :  Do not detect
626 	 *  Values to set :  0
627 	 *  Configuration :  Detect, do not protect or report
628 	 *  Values to set :  1
629 	 *  Configuration :  Detect, protect and do not report
630 	 *  Values to set :  2
631 	 *  Configuration :  Detect, protect and report to other BSS
632 	 *  Values to set :  3
633 	 *  -----------------------------------------------------------
634 	 */
635 	WID_11N_OBSS_NONHT_DETECTION	= 0x0084,
636 
637 	/*
638 	 *  11n HT Protection Type
639 	 *  -----------------------------------------------------------
640 	 *  Configuration :  RTS-CTS   First Frame Exchange at non-HT-rate
641 	 *  Values to set :  0         1
642 	 *  Configuration :  LSIG TXOP First Frame Exchange in Mixed Fmt
643 	 *  Values to set :  2         3
644 	 *  -----------------------------------------------------------
645 	 */
646 	WID_11N_HT_PROT_TYPE		= 0x0085,
647 
648 	/*
649 	 *  11n RIFS Protection Enable Flag
650 	 *  -----------------------------------------------------------
651 	 *  Configuration :  Disable    Enable
652 	 *  Values to set :  0          1
653 	 *  -----------------------------------------------------------
654 	 */
655 	WID_11N_RIFS_PROT_ENABLE	= 0x0086,
656 
657 	/*
658 	 *  SMPS Mode
659 	 *  -----------------------------------------------------------
660 	 *  Configuration :  Static   Dynamic   MIMO (Power Save Disabled)
661 	 *  Values to set :  1        2         3
662 	 *  -----------------------------------------------------------
663 	 */
664 	WID_11N_SMPS_MODE		= 0x0087,
665 
666 	/*
667 	 *  Current transmit MCS
668 	 *  -----------------------------------------------------------
669 	 *  Configuration :  MCS Index for data rate
670 	 *  Values to set :  0 to 7
671 	 *  -----------------------------------------------------------
672 	 */
673 	WID_11N_CURRENT_TX_MCS		= 0x0088,
674 
675 	WID_11N_PRINT_STATS		= 0x0089,
676 
677 	/*
678 	 *  11n Short GI Enable Flag
679 	 *  -----------------------------------------------------------
680 	 *  Configuration :  Disable    Enable
681 	 *  Values to set :  0          1
682 	 *  -----------------------------------------------------------
683 	 */
684 	WID_11N_SHORT_GI_ENABLE		= 0x008D,
685 
686 	/*
687 	 *  11n RIFS Enable Flag
688 	 *  -----------------------------------------------------------
689 	 *  Configuration :  Disable    Enable
690 	 *  Values to set :  0          1
691 	 *  -----------------------------------------------------------
692 	 */
693 	WID_RIFS_MODE			= 0x0094,
694 
695 	/*
696 	 *  TX Abort Feature
697 	 *  -----------------------------------------------------------
698 	 *  Configuration :  Disable Self CTS    Enable Self CTS
699 	 *  Values to set :             0                      1
700 	 *  Configuration :  Disable TX Abort    Enable TX Abort
701 	 *  Values to set :             2                      3
702 	 *  Configuration :  Enable HW TX Abort Enable SW TX Abort
703 	 *  Values to set :             4                      5
704 	 *  -----------------------------------------------------------
705 	 */
706 	WID_TX_ABORT_CONFIG		= 0x00A1,
707 
708 	WID_REG_TSSI_11B_VALUE		= 0x00A6,
709 	WID_REG_TSSI_11G_VALUE		= 0x00A7,
710 	WID_REG_TSSI_11N_VALUE		= 0x00A8,
711 	WID_TX_CALIBRATION		= 0x00A9,
712 	WID_DSCR_TSSI_11B_VALUE		= 0x00AA,
713 	WID_DSCR_TSSI_11G_VALUE		= 0x00AB,
714 	WID_DSCR_TSSI_11N_VALUE		= 0x00AC,
715 
716 	/*
717 	 *  Immediate Block-Ack Support
718 	 *  -----------------------------------------------------------
719 	 *  Configuration : Disable                  Enable
720 	 *  Values to set :    0                       1
721 	 *  -----------------------------------------------------------
722 	 */
723 	WID_11N_IMMEDIATE_BA_ENABLED	= 0x00AF,
724 
725 	/*
726 	 *  TXOP Disable Flag
727 	 *  -----------------------------------------------------------
728 	 *  Configuration : Disable                  Enable
729 	 *  Values to set :    1                        0
730 	 *  -----------------------------------------------------------
731 	 */
732 	WID_11N_TXOP_PROT_DISABLE	= 0x00B0,
733 
734 	WID_TX_POWER_LEVEL_11N		= 0x00B1,
735 
736 	/* Custom Character WID list */
737 	WID_PC_TEST_MODE		= 0x00C8,
738 	/* SCAN Complete notification WID*/
739 	WID_SCAN_COMPLETE		= 0x00C9,
740 
741 	WID_DEL_BEACON			= 0x00CA,
742 
743 	WID_LOGTerminal_Switch		= 0x00CD,
744 	WID_TX_POWER			= 0x00CE,
745 	/*  EMAC Short WID list */
746 	/*  RTS Threshold */
747 	/*
748 	 *  -----------------------------------------------------------
749 	 *  Configuration :   Any value between 256 to 2347
750 	 *  Values to set :   Same value. Default is 2347
751 	 *  -----------------------------------------------------------
752 	 */
753 	WID_RTS_THRESHOLD		= 0x1000,
754 
755 	/*
756 	 *  Fragmentation Threshold
757 	 *  -----------------------------------------------------------
758 	 *  Configuration :   Any value between 256 to 2346
759 	 *  Values to set :   Same value. Default is 2346
760 	 *  -----------------------------------------------------------
761 	 */
762 	WID_FRAG_THRESHOLD		= 0x1001,
763 
764 	WID_SHORT_RETRY_LIMIT		= 0x1002,
765 	WID_LONG_RETRY_LIMIT		= 0x1003,
766 	WID_BEACON_INTERVAL		= 0x1006,
767 	WID_MEMORY_ACCESS_16BIT		= 0x1008,
768 	WID_RX_SENSE			= 0x100B,
769 	WID_ACTIVE_SCAN_TIME		= 0x100C,
770 	WID_PASSIVE_SCAN_TIME		= 0x100D,
771 
772 	WID_SITE_SURVEY_SCAN_TIME	= 0x100E,
773 	WID_JOIN_START_TIMEOUT		= 0x100F,
774 	WID_AUTH_TIMEOUT		= 0x1010,
775 	WID_ASOC_TIMEOUT		= 0x1011,
776 	WID_11I_PROTOCOL_TIMEOUT	= 0x1012,
777 	WID_EAPOL_RESPONSE_TIMEOUT	= 0x1013,
778 
779 	/* NMAC Short WID list */
780 	WID_11N_SIG_QUAL_VAL		= 0x1085,
781 	WID_CCA_THRESHOLD		= 0x1087,
782 
783 	/* Custom Short WID list */
784 
785 	/* EMAC Integer WID list */
786 	WID_FAILED_COUNT		= 0x2000,
787 	WID_RETRY_COUNT			= 0x2001,
788 	WID_MULTIPLE_RETRY_COUNT	= 0x2002,
789 	WID_FRAME_DUPLICATE_COUNT	= 0x2003,
790 	WID_ACK_FAILURE_COUNT		= 0x2004,
791 	WID_RECEIVED_FRAGMENT_COUNT	= 0x2005,
792 	WID_MCAST_RECEIVED_FRAME_COUNT	= 0x2006,
793 	WID_FCS_ERROR_COUNT		= 0x2007,
794 	WID_SUCCESS_FRAME_COUNT		= 0x2008,
795 	WID_HUT_TX_COUNT		= 0x200A,
796 	WID_TX_FRAGMENT_COUNT		= 0x200B,
797 	WID_TX_MULTICAST_FRAME_COUNT	= 0x200C,
798 	WID_RTS_SUCCESS_COUNT		= 0x200D,
799 	WID_RTS_FAILURE_COUNT		= 0x200E,
800 	WID_WEP_UNDECRYPTABLE_COUNT	= 0x200F,
801 	WID_REKEY_PERIOD		= 0x2010,
802 	WID_REKEY_PACKET_COUNT		= 0x2011,
803 	WID_1X_SERV_ADDR		= 0x2012,
804 	WID_STACK_IP_ADDR		= 0x2013,
805 	WID_STACK_NETMASK_ADDR		= 0x2014,
806 	WID_HW_RX_COUNT			= 0x2015,
807 	WID_MEMORY_ADDRESS		= 0x201E,
808 	WID_MEMORY_ACCESS_32BIT		= 0x201F,
809 	WID_RF_REG_VAL			= 0x2021,
810 
811 	/* NMAC Integer WID list */
812 	WID_11N_PHY_ACTIVE_REG_VAL	= 0x2080,
813 
814 	/* Custom Integer WID list */
815 	WID_GET_INACTIVE_TIME		= 0x2084,
816 	WID_SET_OPERATION_MODE		= 0X2086,
817 	/* EMAC String WID list */
818 	WID_SSID			= 0x3000,
819 	WID_FIRMWARE_VERSION		= 0x3001,
820 	WID_OPERATIONAL_RATE_SET	= 0x3002,
821 	WID_BSSID			= 0x3003,
822 	WID_WEP_KEY_VALUE		= 0x3004,
823 	WID_11I_PSK			= 0x3008,
824 	WID_11E_P_ACTION_REQ		= 0x3009,
825 	WID_1X_KEY			= 0x300A,
826 	WID_HARDWARE_VERSION		= 0x300B,
827 	WID_MAC_ADDR			= 0x300C,
828 	WID_HUT_DEST_ADDR		= 0x300D,
829 	WID_PHY_VERSION			= 0x300F,
830 	WID_SUPP_USERNAME		= 0x3010,
831 	WID_SUPP_PASSWORD		= 0x3011,
832 	WID_SITE_SURVEY_RESULTS		= 0x3012,
833 	WID_RX_POWER_LEVEL		= 0x3013,
834 	WID_DEL_ALL_RX_BA		= 0x3014,
835 	WID_SET_STA_MAC_INACTIVE_TIME	= 0x3017,
836 	WID_ADD_WEP_KEY			= 0x3019,
837 	WID_REMOVE_WEP_KEY		= 0x301A,
838 	WID_ADD_PTK			= 0x301B,
839 	WID_ADD_RX_GTK			= 0x301C,
840 	WID_ADD_TX_GTK			= 0x301D,
841 	WID_REMOVE_KEY			= 0x301E,
842 	WID_ASSOC_REQ_INFO		= 0x301F,
843 	WID_ASSOC_RES_INFO		= 0x3020,
844 	WID_MANUFACTURER		= 0x3026, /*Added for CAPI tool */
845 	WID_MODEL_NAME			= 0x3027, /*Added for CAPI tool */
846 	WID_MODEL_NUM			= 0x3028, /*Added for CAPI tool */
847 	WID_DEVICE_NAME			= 0x3029, /*Added for CAPI tool */
848 	WID_SET_DRV_HANDLER		= 0x3030,
849 
850 	/* NMAC String WID list */
851 	WID_11N_P_ACTION_REQ		= 0x3080,
852 	WID_HUT_TEST_ID			= 0x3081,
853 	WID_PMKID_INFO			= 0x3082,
854 	WID_FIRMWARE_INFO		= 0x3083,
855 	WID_REGISTER_FRAME		= 0x3084,
856 	WID_DEL_ALL_STA			= 0x3085,
857 	WID_REMAIN_ON_CHAN		= 0x3996,
858 	WID_SSID_PROBE_REQ		= 0x3997,
859 	WID_JOIN_REQ_EXTENDED		= 0x3998,
860 
861 	WID_IP_ADDRESS			= 0x3999,
862 
863 	/* Custom String WID list */
864 
865 	/* EMAC Binary WID list */
866 	WID_UAPSD_CONFIG		= 0x4001,
867 	WID_UAPSD_STATUS		= 0x4002,
868 	WID_WMM_AP_AC_PARAMS		= 0x4003,
869 	WID_WMM_STA_AC_PARAMS		= 0x4004,
870 	WID_NETWORK_INFO		= 0x4005,
871 	WID_STA_JOIN_INFO		= 0x4006,
872 	WID_CONNECTED_STA_LIST		= 0x4007,
873 
874 	/* NMAC Binary WID list */
875 	WID_11N_AUTORATE_TABLE		= 0x4080,
876 
877 	WID_SCAN_CHANNEL_LIST		= 0x4084,
878 
879 	WID_INFO_ELEMENT_PROBE		= 0x4085,
880 	WID_INFO_ELEMENT_ASSOCIATE	= 0x4086,
881 	WID_ADD_STA			= 0X4087,
882 	WID_REMOVE_STA			= 0X4088,
883 	WID_EDIT_STA			= 0X4089,
884 	WID_ADD_BEACON			= 0x408a,
885 
886 	WID_SETUP_MULTICAST_FILTER	= 0x408b,
887 
888 	/* Miscellaneous WIDs */
889 	WID_ALL				= 0x7FFE,
890 	WID_MAX				= 0xFFFF
891 } WID_T;
892 
893 struct wilc;
894 int wilc_wlan_init(struct net_device *dev);
895 u32 wilc_get_chipid(struct wilc *wilc, bool update);
896 
897 #endif
898