1 /* ///////////////////////////////////////////////////////////////////////// */
3 /* Copyright (c) Atmel Corporation. All rights reserved. */
5 /* Module Name: wilc_wlan_if.h */
8 /* ///////////////////////////////////////////////////////////////////////// */
10 #ifndef WILC_WLAN_IF_H
11 #define WILC_WLAN_IF_H
13 #include <linux/netdevice.h>
15 /********************************************
17 * Host Interface Defines
19 ********************************************/
22 #define HIF_SPI BIT(0)
23 #define HIF_SDIO_GPIO_IRQ BIT(2)
25 /********************************************
27 * Wlan Interface Defines
29 ********************************************/
50 #define WILC_MAC_INDICATE_STATUS 0x1
51 #define WILC_MAC_STATUS_INIT -1
52 #define WILC_MAC_STATUS_READY 0
53 #define WILC_MAC_STATUS_CONNECT 1
55 #define WILC_MAC_INDICATE_SCAN 0x2
57 struct tx_complete_data {
64 typedef void (*wilc_tx_complete_func_t)(void *, int);
66 #define WILC_TX_ERR_NO_BUF (-2)
68 /********************************************
70 * Wlan Configuration ID
72 ********************************************/
73 #define WILC_MULTICAST_TABLE_SIZE 8
74 #define MAX_SSID_LEN 33
75 #define MAX_RATES_SUPPORTED 12
79 EXT_SUPP_RATES_IE = 50,
80 HT_CAPABILITY_IE = 45,
110 B_ONLY_MODE = 0, /* 1, 2 M, otherwise 5, 11 M */
111 G_ONLY_MODE, /* 6,12,24 otherwise 9,18,36,48,54 */
112 G_MIXED_11B_1_MODE, /* 1,2,5.5,11 otherwise all on */
113 G_MIXED_11B_2_MODE, /* 1,2,5,11,6,12,24 otherwise all on */
114 } G_OPERATING_MODE_T;
117 G_SHORT_PREAMBLE = 0, /* Short Preamble */
118 G_LONG_PREAMBLE = 1, /* Long Preamble */
119 G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */
122 #define MAC_CONNECTED 1
123 #define MAC_DISCONNECTED 0
125 #define SCAN_DONE TRUE
141 CHIP_SLEEPING_AUTO = 1,
142 CHIP_SLEEPING_MANUAL = 2
147 ACQUIRE_AND_WAKEUP = 1,
152 RELEASE_ALLOW_SLEEP = 1,
161 WPA_AES_TKIP = 0x69, /* Aes or Tkip */
164 WPA2_AES_TKIP = 0x71, /* Aes or Tkip */
176 SITE_SURVEY_ALL_CH = 1,
196 } RSNA_REKEY_POLICY_T;
200 FILTER_AP_ONLY = 0x01,
201 FILTER_STA_ONLY = 0x02
202 } SCAN_CLASS_FITLER_T;
205 PRI_HIGH_RSSI = 0x00,
211 CH_FILTER_OFF = 0x00,
216 AUTO_PROT = 0, /* Auto */
217 NO_PROT, /* Do not use any protection */
218 ERP_PROT, /* Protect all ERP frame exchanges */
219 HT_PROT, /* Protect all HT frame exchanges */
220 GF_PROT, /* Protect all GF frame exchanges */
221 } N_PROTECTION_MODE_T;
226 } G_PROTECTION_MODE_T;
231 HT_ONLY_20_40MHZ_MODE,
232 } N_OPERATING_MODE_T;
238 DETECT_PROTECT_REPORT = 3,
239 } N_OBSS_DETECTION_T;
242 RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */
243 FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */
244 LSIG_TXOP_PROT, /* LSIG TXOP Protection */
245 FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */
246 } N_PROTECTION_TYPE_T;
251 MIMO_MODE = 3, /* power save disable */
273 WID_TYPE_FORCE_32BIT = 0xFFFFFFFF
288 * -----------------------------------------------------------
289 * Configuration : Infrastructure Independent Access Point
290 * Values to set : 0 1 2
291 * -----------------------------------------------------------
293 WID_BSS_TYPE = 0x0000,
297 * -----------------------------------------------------------
298 * Configuration : 1 2 5.5 11 6 9 12 18 24 36 48 54
299 * Values to set : 1 2 5 11 6 9 12 18 24 36 48 54
300 * -----------------------------------------------------------
302 WID_CURRENT_TX_RATE = 0x0001,
306 * -----------------------------------------------------------
307 * Configuration(g) : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
308 * Values to set : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
309 * -----------------------------------------------------------
311 WID_CURRENT_CHANNEL = 0x0002,
315 * -----------------------------------------------------------
316 * Configuration : short long Auto
317 * Values to set : 0 1 2
318 * -----------------------------------------------------------
320 WID_PREAMBLE = 0x0003,
323 * 11g operating mode (ignored if 11g not present)
324 * -----------------------------------------------------------
325 * Configuration : HighPerf Compat(RSet #1) Compat(RSet #2)
326 * Values to set : 1 2 3
327 * -----------------------------------------------------------
329 WID_11G_OPERATING_MODE = 0x0004,
332 * Mac status (response only)
333 * -----------------------------------------------------------
334 * Configuration : disconnect connect
335 * Values to get : 0 1
336 * -----------------------------------------------------------
342 * -----------------------------------------------------------
343 * Configuration : Passive Scanning Active Scanning
344 * Values to set : 0 1
345 * -----------------------------------------------------------
347 WID_SCAN_TYPE = 0x0007,
350 * Key Id (WEP default key Id)
351 * -----------------------------------------------------------
352 * Configuration : Any value between 0 to 3
353 * Values to set : Same value. Default is 0
354 * -----------------------------------------------------------
360 * -----------------------------------------------------------
361 * Configuration : QoS Disable WMM Enable
362 * Values to set : 0 1
363 * -----------------------------------------------------------
365 WID_QOS_ENABLE = 0x000A,
369 * -----------------------------------------------------------
370 * Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE
371 * Values to set : 0 1 2
372 * -----------------------------------------------------------
374 WID_POWER_MANAGEMENT = 0x000B,
377 * WEP/802 11I Configuration
378 * -----------------------------------------------------------
379 * Configuration:Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP
380 * Values (0x) : 00 03 07 29 49 31 51
381 * Configuration:WPA-AES+TKIP RSN-AES+TKIP
382 * Values (0x) : 69 71
383 * -----------------------------------------------------------
385 WID_11I_MODE = 0x000C,
388 * WEP Configuration: Used in BSS STA mode only when WEP is enabled
389 * -----------------------------------------------------------
390 * Configuration : Open System Shared Key Any Type | 802.1x Auth
391 * Values (0x) : 01 02 03 | BIT2
392 * -----------------------------------------------------------
394 WID_AUTH_TYPE = 0x000D,
398 * -----------------------------------------------------------
399 * Configuration : Values to set
400 * Survey 1 Channel : 0
401 * survey all Channels : 1
402 * Disable Site Survey : 2
403 * -----------------------------------------------------------
405 WID_SITE_SURVEY = 0x000E,
409 * -----------------------------------------------------------
410 * Configuration : Any value between 1 to 255
411 * Values to set : Same value. Default is 3
412 * -----------------------------------------------------------
414 WID_LISTEN_INTERVAL = 0x000F,
418 * -----------------------------------------------------------
419 * Configuration : Any value between 1 to 255
420 * Values to set : Same value. Default is 3
421 * -----------------------------------------------------------
423 WID_DTIM_PERIOD = 0x0010,
427 * -----------------------------------------------------------
428 * Configuration : Normal Ack No Ack
429 * Values to set : 0 1
430 * -----------------------------------------------------------
432 WID_ACK_POLICY = 0x0011,
435 * Reset MAC (Set only)
436 * -----------------------------------------------------------
437 * Configuration : Don't Reset Reset No Request
438 * Values to set : 0 1 2
439 * -----------------------------------------------------------
444 * Broadcast SSID Option: Setting this will adhere to "" SSID element
445 * -----------------------------------------------------------
446 * Configuration : Enable Disable
447 * Values to set : 1 0
448 * -----------------------------------------------------------
450 WID_BCAST_SSID = 0x0015,
453 * Disconnect (Station)
454 * -----------------------------------------------------------
455 * Configuration : Association ID
456 * Values to set : Association ID
457 * -----------------------------------------------------------
459 WID_DISCONNECT = 0x0016,
463 * -----------------------------------------------------------
464 * Configuration : Sets TX Power (Higher the value greater the power)
465 * Values to set : Any value between 0 and 63 (inclusive Default 48)
466 * -----------------------------------------------------------
468 WID_TX_POWER_LEVEL_11A = 0x0018,
471 * Group Key Update Policy Selection
472 * -----------------------------------------------------------
473 * Configuration : Disabled timeBased packetBased timePacketBased
474 * Values to set : 1 2 3 4
475 * -----------------------------------------------------------
477 WID_REKEY_POLICY = 0x0019,
481 * -----------------------------------------------------------
482 * Configuration : Disallow Short Slot Allow Short Slot
483 * (Enable Only Long Slot) (Enable Short Slot if applicable)
484 * Values to set : 0 1
485 * -----------------------------------------------------------
487 WID_SHORT_SLOT_ALLOWED = 0x001A,
489 WID_PHY_ACTIVE_REG = 0x001B,
493 * -----------------------------------------------------------
494 * Configuration : Sets TX Power (Higher the value greater the power)
495 * Values to set : Any value between 0 and 63 (inclusive Default 48)
496 * -----------------------------------------------------------
498 WID_TX_POWER_LEVEL_11B = 0x001D,
502 * -----------------------------------------------------------
503 * Configuration : Request default scan
505 * -----------------------------------------------------------
507 WID_START_SCAN_REQ = 0x001E,
511 * -----------------------------------------------------------
513 * Values to get : Rssi value
514 * -----------------------------------------------------------
520 * -----------------------------------------------------------
521 * Configuration : Request to join
522 * Values to set : index of scan result
523 * -----------------------------------------------------------
525 WID_JOIN_REQ = 0x0020,
527 WID_LINKSPEED = 0x0026,
530 * Enable User Control of TX Power
531 * -----------------------------------------------------------
532 * Configuration : Disable Enable
533 * Values to set : 0 1
534 * -----------------------------------------------------------
536 WID_USER_CONTROL_ON_TX_POWER = 0x0027,
538 WID_MEMORY_ACCESS_8BIT = 0x0029,
541 * Enable Auto RX Sensitivity feature
542 * -----------------------------------------------------------
543 * Configuration : Disable Enable
544 * Values to set : 0 1
545 * -----------------------------------------------------------
547 WID_AUTO_RX_SENSITIVITY = 0x0032,
550 * Receive Buffer Based Ack
551 * -----------------------------------------------------------
552 * Configuration : Disable Enable
553 * Values to set : 0 1
554 * -----------------------------------------------------------
556 WID_DATAFLOW_CONTROL = 0x0033,
560 * -----------------------------------------------------------
561 * Configuration : Class No filter AP only Station Only
562 * Values to set : 0 1 2
563 * Configuration : Priority High Rssi Low Rssi Detect
564 * Values to set : 0 0x4 0x0
565 * Configuration : Channel filter off filter on
566 * Values to set : 0 0x10
567 * -----------------------------------------------------------
569 WID_SCAN_FILTER = 0x0036,
572 * Link Loss Threshold (measure in the beacon period)
573 * -----------------------------------------------------------
574 * Configuration : Any value between 10 and 254(Set to 255 disable)
575 * Values to set : Same value. Default is 10
576 * -----------------------------------------------------------
578 WID_LINK_LOSS_THRESHOLD = 0x0037,
580 WID_ABORT_RUNNING_SCAN = 0x003E,
582 /* NMAC Character WID list */
583 WID_WPS_START = 0x0043,
586 * Protection mode for MAC
587 * -----------------------------------------------------------
588 * Configuration : Auto No protection ERP HT GF
589 * Values to set : 0 1 2 3 4
590 * -----------------------------------------------------------
592 WID_11N_PROT_MECH = 0x0080,
595 * ERP Protection type for MAC
596 * -----------------------------------------------------------
597 * Configuration : Self-CTS RTS-CTS
598 * Values to set : 0 1
599 * -----------------------------------------------------------
601 WID_11N_ERP_PROT_TYPE = 0x0081,
605 * -----------------------------------------------------------
606 * Configuration : HT Enable HT Disable
607 * Values to set : 1 0
608 * -----------------------------------------------------------
610 WID_11N_ENABLE = 0x0082,
613 * 11n Operating mode (Note that 11g operating mode will also be
614 * used in addition to this, if this is set to HT Mixed mode)
615 * -----------------------------------------------------------
616 * Configuration : HT Mixed HT Only-20MHz HT Only-20/40MHz
617 * Values to set : 1 2 3
618 * -----------------------------------------------------------
620 WID_11N_OPERATING_MODE = 0x0083,
623 * 11n OBSS non-HT STA Detection flag
624 * -----------------------------------------------------------
625 * Configuration : Do not detect
627 * Configuration : Detect, do not protect or report
629 * Configuration : Detect, protect and do not report
631 * Configuration : Detect, protect and report to other BSS
633 * -----------------------------------------------------------
635 WID_11N_OBSS_NONHT_DETECTION = 0x0084,
638 * 11n HT Protection Type
639 * -----------------------------------------------------------
640 * Configuration : RTS-CTS First Frame Exchange at non-HT-rate
641 * Values to set : 0 1
642 * Configuration : LSIG TXOP First Frame Exchange in Mixed Fmt
643 * Values to set : 2 3
644 * -----------------------------------------------------------
646 WID_11N_HT_PROT_TYPE = 0x0085,
649 * 11n RIFS Protection Enable Flag
650 * -----------------------------------------------------------
651 * Configuration : Disable Enable
652 * Values to set : 0 1
653 * -----------------------------------------------------------
655 WID_11N_RIFS_PROT_ENABLE = 0x0086,
659 * -----------------------------------------------------------
660 * Configuration : Static Dynamic MIMO (Power Save Disabled)
661 * Values to set : 1 2 3
662 * -----------------------------------------------------------
664 WID_11N_SMPS_MODE = 0x0087,
667 * Current transmit MCS
668 * -----------------------------------------------------------
669 * Configuration : MCS Index for data rate
670 * Values to set : 0 to 7
671 * -----------------------------------------------------------
673 WID_11N_CURRENT_TX_MCS = 0x0088,
675 WID_11N_PRINT_STATS = 0x0089,
678 * 11n Short GI Enable Flag
679 * -----------------------------------------------------------
680 * Configuration : Disable Enable
681 * Values to set : 0 1
682 * -----------------------------------------------------------
684 WID_11N_SHORT_GI_ENABLE = 0x008D,
687 * 11n RIFS Enable Flag
688 * -----------------------------------------------------------
689 * Configuration : Disable Enable
690 * Values to set : 0 1
691 * -----------------------------------------------------------
693 WID_RIFS_MODE = 0x0094,
697 * -----------------------------------------------------------
698 * Configuration : Disable Self CTS Enable Self CTS
699 * Values to set : 0 1
700 * Configuration : Disable TX Abort Enable TX Abort
701 * Values to set : 2 3
702 * Configuration : Enable HW TX Abort Enable SW TX Abort
703 * Values to set : 4 5
704 * -----------------------------------------------------------
706 WID_TX_ABORT_CONFIG = 0x00A1,
708 WID_REG_TSSI_11B_VALUE = 0x00A6,
709 WID_REG_TSSI_11G_VALUE = 0x00A7,
710 WID_REG_TSSI_11N_VALUE = 0x00A8,
711 WID_TX_CALIBRATION = 0x00A9,
712 WID_DSCR_TSSI_11B_VALUE = 0x00AA,
713 WID_DSCR_TSSI_11G_VALUE = 0x00AB,
714 WID_DSCR_TSSI_11N_VALUE = 0x00AC,
717 * Immediate Block-Ack Support
718 * -----------------------------------------------------------
719 * Configuration : Disable Enable
720 * Values to set : 0 1
721 * -----------------------------------------------------------
723 WID_11N_IMMEDIATE_BA_ENABLED = 0x00AF,
727 * -----------------------------------------------------------
728 * Configuration : Disable Enable
729 * Values to set : 1 0
730 * -----------------------------------------------------------
732 WID_11N_TXOP_PROT_DISABLE = 0x00B0,
734 WID_TX_POWER_LEVEL_11N = 0x00B1,
736 /* Custom Character WID list */
737 WID_PC_TEST_MODE = 0x00C8,
738 /* SCAN Complete notification WID*/
739 WID_SCAN_COMPLETE = 0x00C9,
741 WID_DEL_BEACON = 0x00CA,
743 WID_LOGTerminal_Switch = 0x00CD,
744 WID_TX_POWER = 0x00CE,
745 /* EMAC Short WID list */
748 * -----------------------------------------------------------
749 * Configuration : Any value between 256 to 2347
750 * Values to set : Same value. Default is 2347
751 * -----------------------------------------------------------
753 WID_RTS_THRESHOLD = 0x1000,
756 * Fragmentation Threshold
757 * -----------------------------------------------------------
758 * Configuration : Any value between 256 to 2346
759 * Values to set : Same value. Default is 2346
760 * -----------------------------------------------------------
762 WID_FRAG_THRESHOLD = 0x1001,
764 WID_SHORT_RETRY_LIMIT = 0x1002,
765 WID_LONG_RETRY_LIMIT = 0x1003,
766 WID_BEACON_INTERVAL = 0x1006,
767 WID_MEMORY_ACCESS_16BIT = 0x1008,
768 WID_RX_SENSE = 0x100B,
769 WID_ACTIVE_SCAN_TIME = 0x100C,
770 WID_PASSIVE_SCAN_TIME = 0x100D,
772 WID_SITE_SURVEY_SCAN_TIME = 0x100E,
773 WID_JOIN_START_TIMEOUT = 0x100F,
774 WID_AUTH_TIMEOUT = 0x1010,
775 WID_ASOC_TIMEOUT = 0x1011,
776 WID_11I_PROTOCOL_TIMEOUT = 0x1012,
777 WID_EAPOL_RESPONSE_TIMEOUT = 0x1013,
779 /* NMAC Short WID list */
780 WID_11N_SIG_QUAL_VAL = 0x1085,
781 WID_CCA_THRESHOLD = 0x1087,
783 /* Custom Short WID list */
785 /* EMAC Integer WID list */
786 WID_FAILED_COUNT = 0x2000,
787 WID_RETRY_COUNT = 0x2001,
788 WID_MULTIPLE_RETRY_COUNT = 0x2002,
789 WID_FRAME_DUPLICATE_COUNT = 0x2003,
790 WID_ACK_FAILURE_COUNT = 0x2004,
791 WID_RECEIVED_FRAGMENT_COUNT = 0x2005,
792 WID_MCAST_RECEIVED_FRAME_COUNT = 0x2006,
793 WID_FCS_ERROR_COUNT = 0x2007,
794 WID_SUCCESS_FRAME_COUNT = 0x2008,
795 WID_HUT_TX_COUNT = 0x200A,
796 WID_TX_FRAGMENT_COUNT = 0x200B,
797 WID_TX_MULTICAST_FRAME_COUNT = 0x200C,
798 WID_RTS_SUCCESS_COUNT = 0x200D,
799 WID_RTS_FAILURE_COUNT = 0x200E,
800 WID_WEP_UNDECRYPTABLE_COUNT = 0x200F,
801 WID_REKEY_PERIOD = 0x2010,
802 WID_REKEY_PACKET_COUNT = 0x2011,
803 WID_1X_SERV_ADDR = 0x2012,
804 WID_STACK_IP_ADDR = 0x2013,
805 WID_STACK_NETMASK_ADDR = 0x2014,
806 WID_HW_RX_COUNT = 0x2015,
807 WID_MEMORY_ADDRESS = 0x201E,
808 WID_MEMORY_ACCESS_32BIT = 0x201F,
809 WID_RF_REG_VAL = 0x2021,
811 /* NMAC Integer WID list */
812 WID_11N_PHY_ACTIVE_REG_VAL = 0x2080,
814 /* Custom Integer WID list */
815 WID_GET_INACTIVE_TIME = 0x2084,
816 WID_SET_OPERATION_MODE = 0X2086,
817 /* EMAC String WID list */
819 WID_FIRMWARE_VERSION = 0x3001,
820 WID_OPERATIONAL_RATE_SET = 0x3002,
822 WID_WEP_KEY_VALUE = 0x3004,
823 WID_11I_PSK = 0x3008,
824 WID_11E_P_ACTION_REQ = 0x3009,
826 WID_HARDWARE_VERSION = 0x300B,
827 WID_MAC_ADDR = 0x300C,
828 WID_HUT_DEST_ADDR = 0x300D,
829 WID_PHY_VERSION = 0x300F,
830 WID_SUPP_USERNAME = 0x3010,
831 WID_SUPP_PASSWORD = 0x3011,
832 WID_SITE_SURVEY_RESULTS = 0x3012,
833 WID_RX_POWER_LEVEL = 0x3013,
834 WID_DEL_ALL_RX_BA = 0x3014,
835 WID_SET_STA_MAC_INACTIVE_TIME = 0x3017,
836 WID_ADD_WEP_KEY = 0x3019,
837 WID_REMOVE_WEP_KEY = 0x301A,
838 WID_ADD_PTK = 0x301B,
839 WID_ADD_RX_GTK = 0x301C,
840 WID_ADD_TX_GTK = 0x301D,
841 WID_REMOVE_KEY = 0x301E,
842 WID_ASSOC_REQ_INFO = 0x301F,
843 WID_ASSOC_RES_INFO = 0x3020,
844 WID_MANUFACTURER = 0x3026, /*Added for CAPI tool */
845 WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */
846 WID_MODEL_NUM = 0x3028, /*Added for CAPI tool */
847 WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */
848 WID_SET_DRV_HANDLER = 0x3030,
850 /* NMAC String WID list */
851 WID_11N_P_ACTION_REQ = 0x3080,
852 WID_HUT_TEST_ID = 0x3081,
853 WID_PMKID_INFO = 0x3082,
854 WID_FIRMWARE_INFO = 0x3083,
855 WID_REGISTER_FRAME = 0x3084,
856 WID_DEL_ALL_STA = 0x3085,
857 WID_REMAIN_ON_CHAN = 0x3996,
858 WID_SSID_PROBE_REQ = 0x3997,
859 WID_JOIN_REQ_EXTENDED = 0x3998,
861 WID_IP_ADDRESS = 0x3999,
863 /* Custom String WID list */
865 /* EMAC Binary WID list */
866 WID_UAPSD_CONFIG = 0x4001,
867 WID_UAPSD_STATUS = 0x4002,
868 WID_WMM_AP_AC_PARAMS = 0x4003,
869 WID_WMM_STA_AC_PARAMS = 0x4004,
870 WID_NETWORK_INFO = 0x4005,
871 WID_STA_JOIN_INFO = 0x4006,
872 WID_CONNECTED_STA_LIST = 0x4007,
874 /* NMAC Binary WID list */
875 WID_11N_AUTORATE_TABLE = 0x4080,
877 WID_SCAN_CHANNEL_LIST = 0x4084,
879 WID_INFO_ELEMENT_PROBE = 0x4085,
880 WID_INFO_ELEMENT_ASSOCIATE = 0x4086,
881 WID_ADD_STA = 0X4087,
882 WID_REMOVE_STA = 0X4088,
883 WID_EDIT_STA = 0X4089,
884 WID_ADD_BEACON = 0x408a,
886 WID_SETUP_MULTICAST_FILTER = 0x408b,
888 /* Miscellaneous WIDs */
894 int wilc_wlan_init(struct net_device *dev);
895 u32 wilc_get_chipid(struct wilc *wilc, bool update);