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