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
15struct 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
31struct wl12xx_priv_conf {
32	struct wl12xx_conf_rf rf;
33	struct conf_memory_settings mem_wl127x;
34};
35
36enum 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