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