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 
7 #ifndef WILC_WLAN_CFG_H
8 #define WILC_WLAN_CFG_H
9 
10 struct wilc_cfg_byte {
11 	u16 id;
12 	u8 val;
13 };
14 
15 struct wilc_cfg_hword {
16 	u16 id;
17 	u16 val;
18 };
19 
20 struct wilc_cfg_word {
21 	u16 id;
22 	u32 val;
23 };
24 
25 struct wilc_cfg_str {
26 	u16 id;
27 	u8 *str;
28 };
29 
30 struct wilc_cfg_str_vals {
31 	u8 mac_address[7];
32 	u8 firmware_version[129];
33 	u8 assoc_rsp[WILC_MAX_ASSOC_RESP_FRAME_SIZE];
34 };
35 
36 struct wilc_cfg {
37 	struct wilc_cfg_byte *b;
38 	struct wilc_cfg_hword *hw;
39 	struct wilc_cfg_word *w;
40 	struct wilc_cfg_str *s;
41 	struct wilc_cfg_str_vals *str_vals;
42 };
43 
44 struct wilc;
45 int wilc_wlan_cfg_set_wid(u8 *frame, u32 offset, u16 id, u8 *buf, int size);
46 int wilc_wlan_cfg_get_wid(u8 *frame, u32 offset, u16 id);
47 int wilc_wlan_cfg_get_val(struct wilc *wl, u16 wid, u8 *buffer,
48 			  u32 buffer_size);
49 void wilc_wlan_cfg_indicate_rx(struct wilc *wilc, u8 *frame, int size,
50 			       struct wilc_cfg_rsp *rsp);
51 int wilc_wlan_cfg_init(struct wilc *wl);
52 void wilc_wlan_cfg_deinit(struct wilc *wl);
53 
54 #endif
55