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