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