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