GNU Linux-libre 4.4.285-gnu1
[releases.git] / 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 #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