1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * This file is part of wl12xx
4  *
5  * Copyright (C) 2011 Texas Instruments Inc.
6  */
7 
8 #ifndef __WL12XX_CONF_H__
9 #define __WL12XX_CONF_H__
10 
11 /* these are number of channels on the band divided by two, rounded up */
12 #define CONF_TX_PWR_COMPENSATION_LEN_2 7
13 #define CONF_TX_PWR_COMPENSATION_LEN_5 18
14 
15 struct wl12xx_conf_rf {
16 	/*
17 	 * Per channel power compensation for 2.4GHz
18 	 *
19 	 * Range: s8
20 	 */
21 	u8 tx_per_channel_power_compensation_2[CONF_TX_PWR_COMPENSATION_LEN_2];
22 
23 	/*
24 	 * Per channel power compensation for 5GHz
25 	 *
26 	 * Range: s8
27 	 */
28 	u8 tx_per_channel_power_compensation_5[CONF_TX_PWR_COMPENSATION_LEN_5];
29 };
30 
31 struct wl12xx_priv_conf {
32 	struct wl12xx_conf_rf rf;
33 	struct conf_memory_settings mem_wl127x;
34 };
35 
36 enum wl12xx_sg_params {
37 	/*
38 	* Configure the min and max time BT gains the antenna
39 	* in WLAN / BT master basic rate
40 	*
41 	* Range: 0 - 255 (ms)
42 	*/
43 	WL12XX_CONF_SG_ACL_BT_MASTER_MIN_BR = 0,
44 	WL12XX_CONF_SG_ACL_BT_MASTER_MAX_BR,
45 
46 	/*
47 	* Configure the min and max time BT gains the antenna
48 	* in WLAN / BT slave basic rate
49 	*
50 	* Range: 0 - 255 (ms)
51 	*/
52 	WL12XX_CONF_SG_ACL_BT_SLAVE_MIN_BR,
53 	WL12XX_CONF_SG_ACL_BT_SLAVE_MAX_BR,
54 
55 	/*
56 	* Configure the min and max time BT gains the antenna
57 	* in WLAN / BT master EDR
58 	*
59 	* Range: 0 - 255 (ms)
60 	*/
61 	WL12XX_CONF_SG_ACL_BT_MASTER_MIN_EDR,
62 	WL12XX_CONF_SG_ACL_BT_MASTER_MAX_EDR,
63 
64 	/*
65 	* Configure the min and max time BT gains the antenna
66 	* in WLAN / BT slave EDR
67 	*
68 	* Range: 0 - 255 (ms)
69 	*/
70 	WL12XX_CONF_SG_ACL_BT_SLAVE_MIN_EDR,
71 	WL12XX_CONF_SG_ACL_BT_SLAVE_MAX_EDR,
72 
73 	/*
74 	* The maximum time WLAN can gain the antenna
75 	* in WLAN PSM / BT master/slave BR
76 	*
77 	* Range: 0 - 255 (ms)
78 	*/
79 	WL12XX_CONF_SG_ACL_WLAN_PS_MASTER_BR,
80 	WL12XX_CONF_SG_ACL_WLAN_PS_SLAVE_BR,
81 
82 	/*
83 	* The maximum time WLAN can gain the antenna
84 	* in WLAN PSM / BT master/slave EDR
85 	*
86 	* Range: 0 - 255 (ms)
87 	*/
88 	WL12XX_CONF_SG_ACL_WLAN_PS_MASTER_EDR,
89 	WL12XX_CONF_SG_ACL_WLAN_PS_SLAVE_EDR,
90 
91 	/* TODO: explain these values */
92 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_BR,
93 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_BR,
94 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_BR,
95 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_BR,
96 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_EDR,
97 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_EDR,
98 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_EDR,
99 	WL12XX_CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_EDR,
100 
101 	WL12XX_CONF_SG_ACL_ACTIVE_SCAN_WLAN_BR,
102 	WL12XX_CONF_SG_ACL_ACTIVE_SCAN_WLAN_EDR,
103 	WL12XX_CONF_SG_ACL_PASSIVE_SCAN_BT_BR,
104 	WL12XX_CONF_SG_ACL_PASSIVE_SCAN_WLAN_BR,
105 	WL12XX_CONF_SG_ACL_PASSIVE_SCAN_BT_EDR,
106 	WL12XX_CONF_SG_ACL_PASSIVE_SCAN_WLAN_EDR,
107 
108 	/*
109 	* Compensation percentage of probe requests when scan initiated
110 	* during BT voice/ACL link.
111 	*
112 	* Range: 0 - 255 (%)
113 	*/
114 	WL12XX_CONF_SG_AUTO_SCAN_PROBE_REQ,
115 
116 	/*
117 	* Compensation percentage of probe requests when active scan initiated
118 	* during BT voice
119 	*
120 	* Range: 0 - 255 (%)
121 	*/
122 	WL12XX_CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3,
123 
124 	/*
125 	* Compensation percentage of WLAN active scan window if initiated
126 	* during BT A2DP
127 	*
128 	* Range: 0 - 1000 (%)
129 	*/
130 	WL12XX_CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP,
131 
132 	/*
133 	* Compensation percentage of WLAN passive scan window if initiated
134 	* during BT A2DP BR
135 	*
136 	* Range: 0 - 1000 (%)
137 	*/
138 	WL12XX_CONF_SG_PASSIVE_SCAN_DUR_FACTOR_A2DP_BR,
139 
140 	/*
141 	* Compensation percentage of WLAN passive scan window if initiated
142 	* during BT A2DP EDR
143 	*
144 	* Range: 0 - 1000 (%)
145 	*/
146 	WL12XX_CONF_SG_PASSIVE_SCAN_DUR_FACTOR_A2DP_EDR,
147 
148 	/*
149 	* Compensation percentage of WLAN passive scan window if initiated
150 	* during BT voice
151 	*
152 	* Range: 0 - 1000 (%)
153 	*/
154 	WL12XX_CONF_SG_PASSIVE_SCAN_DUR_FACTOR_HV3,
155 
156 	/* TODO: explain these values */
157 	WL12XX_CONF_SG_CONSECUTIVE_HV3_IN_PASSIVE_SCAN,
158 	WL12XX_CONF_SG_BCN_HV3_COLL_THR_IN_PASSIVE_SCAN,
159 	WL12XX_CONF_SG_TX_RX_PROTECT_BW_IN_PASSIVE_SCAN,
160 
161 	/*
162 	* Defines whether the SG will force WLAN host to enter/exit PSM
163 	*
164 	* Range: 1 - SG can force, 0 - host handles PSM
165 	*/
166 	WL12XX_CONF_SG_STA_FORCE_PS_IN_BT_SCO,
167 
168 	/*
169 	* Defines antenna configuration (single/dual antenna)
170 	*
171 	* Range: 0 - single antenna, 1 - dual antenna
172 	*/
173 	WL12XX_CONF_SG_ANTENNA_CONFIGURATION,
174 
175 	/*
176 	* The threshold (percent) of max consecutive beacon misses before
177 	* increasing priority of beacon reception.
178 	*
179 	* Range: 0 - 100 (%)
180 	*/
181 	WL12XX_CONF_SG_BEACON_MISS_PERCENT,
182 
183 	/*
184 	* Protection time of the DHCP procedure.
185 	*
186 	* Range: 0 - 100000 (ms)
187 	*/
188 	WL12XX_CONF_SG_DHCP_TIME,
189 
190 	/*
191 	* RX guard time before the beginning of a new BT voice frame during
192 	* which no new WLAN trigger frame is transmitted.
193 	*
194 	* Range: 0 - 100000 (us)
195 	*/
196 	WL12XX_CONF_SG_RXT,
197 
198 	/*
199 	* TX guard time before the beginning of a new BT voice frame during
200 	* which no new WLAN frame is transmitted.
201 	*
202 	* Range: 0 - 100000 (us)
203 	*/
204 	WL12XX_CONF_SG_TXT,
205 
206 	/*
207 	* Enable adaptive RXT/TXT algorithm. If disabled, the host values
208 	* will be utilized.
209 	*
210 	* Range: 0 - disable, 1 - enable
211 	*/
212 	WL12XX_CONF_SG_ADAPTIVE_RXT_TXT,
213 
214 	/* TODO: explain this value */
215 	WL12XX_CONF_SG_GENERAL_USAGE_BIT_MAP,
216 
217 	/*
218 	* Number of consecutive BT voice frames not interrupted by WLAN
219 	*
220 	* Range: 0 - 100
221 	*/
222 	WL12XX_CONF_SG_HV3_MAX_SERVED,
223 
224 	/*
225 	* The used WLAN legacy service period during active BT ACL link
226 	*
227 	* Range: 0 - 255 (ms)
228 	*/
229 	WL12XX_CONF_SG_PS_POLL_TIMEOUT,
230 
231 	/*
232 	* The used WLAN UPSD service period during active BT ACL link
233 	*
234 	* Range: 0 - 255 (ms)
235 	*/
236 	WL12XX_CONF_SG_UPSD_TIMEOUT,
237 
238 	WL12XX_CONF_SG_CONSECUTIVE_CTS_THRESHOLD,
239 	WL12XX_CONF_SG_STA_RX_WINDOW_AFTER_DTIM,
240 	WL12XX_CONF_SG_STA_CONNECTION_PROTECTION_TIME,
241 
242 	/* AP params */
243 	WL12XX_CONF_AP_BEACON_MISS_TX,
244 	WL12XX_CONF_AP_RX_WINDOW_AFTER_BEACON,
245 	WL12XX_CONF_AP_BEACON_WINDOW_INTERVAL,
246 	WL12XX_CONF_AP_CONNECTION_PROTECTION_TIME,
247 	WL12XX_CONF_AP_BT_ACL_VAL_BT_SERVE_TIME,
248 	WL12XX_CONF_AP_BT_ACL_VAL_WL_SERVE_TIME,
249 
250 	/* CTS Diluting params */
251 	WL12XX_CONF_SG_CTS_DILUTED_BAD_RX_PACKETS_TH,
252 	WL12XX_CONF_SG_CTS_CHOP_IN_DUAL_ANT_SCO_MASTER,
253 
254 	WL12XX_CONF_SG_TEMP_PARAM_1,
255 	WL12XX_CONF_SG_TEMP_PARAM_2,
256 	WL12XX_CONF_SG_TEMP_PARAM_3,
257 	WL12XX_CONF_SG_TEMP_PARAM_4,
258 	WL12XX_CONF_SG_TEMP_PARAM_5,
259 	WL12XX_CONF_SG_TEMP_PARAM_6,
260 	WL12XX_CONF_SG_TEMP_PARAM_7,
261 	WL12XX_CONF_SG_TEMP_PARAM_8,
262 	WL12XX_CONF_SG_TEMP_PARAM_9,
263 	WL12XX_CONF_SG_TEMP_PARAM_10,
264 
265 	WL12XX_CONF_SG_PARAMS_MAX,
266 	WL12XX_CONF_SG_PARAMS_ALL = 0xff
267 };
268 
269 #endif /* __WL12XX_CONF_H__ */
270