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