fw.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (c) 2012 - 2018 Microchip Technology Inc., and its subsidiaries.
  4. * All rights reserved.
  5. */
  6. #ifndef WILC_FW_H
  7. #define WILC_FW_H
  8. #include <linux/ieee80211.h>
  9. #define WILC_MAX_NUM_STA 9
  10. #define WILC_MAX_RATES_SUPPORTED 12
  11. #define WILC_MAX_NUM_PMKIDS 16
  12. #define WILC_MAX_NUM_SCANNED_CH 14
  13. struct wilc_assoc_resp {
  14. __le16 capab_info;
  15. __le16 status_code;
  16. __le16 aid;
  17. } __packed;
  18. struct wilc_pmkid {
  19. u8 bssid[ETH_ALEN];
  20. u8 pmkid[WLAN_PMKID_LEN];
  21. } __packed;
  22. struct wilc_pmkid_attr {
  23. u8 numpmkid;
  24. struct wilc_pmkid pmkidlist[WILC_MAX_NUM_PMKIDS];
  25. } __packed;
  26. struct wilc_reg_frame {
  27. u8 reg;
  28. u8 reg_id;
  29. __le16 frame_type;
  30. } __packed;
  31. struct wilc_drv_handler {
  32. __le32 handler;
  33. u8 mode;
  34. } __packed;
  35. struct wilc_sta_wpa_ptk {
  36. u8 mac_addr[ETH_ALEN];
  37. u8 key_len;
  38. u8 key[];
  39. } __packed;
  40. struct wilc_ap_wpa_ptk {
  41. u8 mac_addr[ETH_ALEN];
  42. u8 index;
  43. u8 key_len;
  44. u8 key[];
  45. } __packed;
  46. struct wilc_wpa_igtk {
  47. u8 index;
  48. u8 pn_len;
  49. u8 pn[6];
  50. u8 key_len;
  51. u8 key[];
  52. } __packed;
  53. struct wilc_gtk_key {
  54. u8 mac_addr[ETH_ALEN];
  55. u8 rsc[8];
  56. u8 index;
  57. u8 key_len;
  58. u8 key[];
  59. } __packed;
  60. struct wilc_op_mode {
  61. __le32 mode;
  62. } __packed;
  63. struct wilc_noa_opp_enable {
  64. u8 ct_window;
  65. u8 cnt;
  66. __le32 duration;
  67. __le32 interval;
  68. __le32 start_time;
  69. } __packed;
  70. struct wilc_noa_opp_disable {
  71. u8 cnt;
  72. __le32 duration;
  73. __le32 interval;
  74. __le32 start_time;
  75. } __packed;
  76. struct wilc_join_bss_param {
  77. char ssid[IEEE80211_MAX_SSID_LEN];
  78. u8 ssid_terminator;
  79. u8 bss_type;
  80. u8 ch;
  81. __le16 cap_info;
  82. u8 sa[ETH_ALEN];
  83. u8 bssid[ETH_ALEN];
  84. __le16 beacon_period;
  85. u8 dtim_period;
  86. u8 supp_rates[WILC_MAX_RATES_SUPPORTED + 1];
  87. u8 wmm_cap;
  88. u8 uapsd_cap;
  89. u8 ht_capable;
  90. u8 rsn_found;
  91. u8 rsn_grp_policy;
  92. u8 mode_802_11i;
  93. u8 p_suites[3];
  94. u8 akm_suites[3];
  95. u8 rsn_cap[2];
  96. u8 noa_enabled;
  97. __le32 tsf_lo;
  98. u8 idx;
  99. u8 opp_enabled;
  100. union {
  101. struct wilc_noa_opp_disable opp_dis;
  102. struct wilc_noa_opp_enable opp_en;
  103. };
  104. } __packed;
  105. struct wilc_external_auth_param {
  106. u8 action;
  107. u8 bssid[ETH_ALEN];
  108. u8 ssid[IEEE80211_MAX_SSID_LEN];
  109. u8 ssid_len;
  110. __le32 key_mgmt_suites;
  111. __le16 status;
  112. } __packed;
  113. #endif