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