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