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