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