xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852be/phl/hal_g6/btc/halbtc_def.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2019 Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  *****************************************************************************/
15 #define _HAL_BTC_DEF_C_
16 #include "../hal_headers_le.h"
17 #include "hal_btc.h"
18 #include "halbtc_fw.h"
19 #include "halbtc_action.h"
20 
21 #ifdef CONFIG_BTCOEX
22 
23 #define case_role(src) \
24 	case PHL_RTYPE_##src: return #src
25 #define case_mrole(src) \
26 	case BTC_WLMROLE_##src: return #src
27 #define case_slot(src) \
28 	case CXST_##src: return #src
29 #define case_reg(src) \
30 	case REG_##src: return #src
31 #define case_tdma(src) \
32 	case CXTDMA_##src: return #src
33 #define case_trace(src) \
34 	case CXSTEP_##src: return #src
35 #define case_branch(src) \
36 	case BTC_BRANCH_##src: return #src
37 #define case_rxflctrl_(src) \
38 	case CXFLC_##src: return #src
39 #define case_wllink(src) \
40 	case BTC_WLINK_##src: return #src
41 #define case_antpath(src) \
42 	case BTC_ANT_##src: return #src
43 #define case_gdbg(src) \
44 	case BTC_DBG_##src: return #src
45 #define case_chip(src) \
46 	case CHIP_##src: return #src
47 #define case_event(src) \
48 	case CXEVNT_##src: return #src
49 #define case_wlmode(src) \
50 	case WLAN_MD_##src: return #src
51 #define case_wlbw(src) \
52 	case CHANNEL_WIDTH_##src: return #src
53 #define case_cxp(src) \
54 	case BTC_CXP_##src: return #src
55 #define case_rftype(src) \
56 	case RF_##src: return #src
57 #define case_mstate(src) \
58 	case MLME_##src: return #src
59 #define case_rate(src) \
60 	case RTW_DATA_RATE_##src: return #src
61 #define case_polut(src) \
62 	case BTC_PLT_##src: return #src
63 
id_to_str(u8 type,u32 id)64 const char *id_to_str(u8 type, u32 id)
65 {
66 	switch(type) {
67 	case BTC_STR_ROLE:
68 		switch (id) {
69 		case_role(NONE);
70 		case_role(STATION);
71 		case_role(AP);
72 		case_role(VAP);
73 		case_role(ADHOC);
74 		case_role(ADHOC_MASTER);
75 		case_role(MESH);
76 		case_role(MONITOR);
77 		case_role(P2P_DEVICE);
78 		case_role(P2P_GC);
79 		case_role(P2P_GO);
80 		case_role(NAN);
81 		}
82 		break;
83 	case BTC_STR_MROLE:
84 		switch (id) {
85 		case_mrole(NONE);
86 		case_mrole(STA_GC);
87 		case_mrole(STA_GC_NOA);
88 		case_mrole(STA_GO);
89 		case_mrole(STA_GO_NOA);
90 		case_mrole(STA_STA);
91 		}
92 		break;
93 	case BTC_STR_SLOT:
94 		switch (id) {
95 		case_slot(OFF);
96 		case_slot(B2W);
97 		case_slot(W1);
98 		case_slot(W2);
99 		case_slot(W2B);
100 		case_slot(B1);
101 		case_slot(B2);
102 		case_slot(B3);
103 		case_slot(B4);
104 		case_slot(LK);
105 		case_slot(BLK);
106 		case_slot(E2G);
107 		case_slot(E5G);
108 		case_slot(EBT);
109 		case_slot(ENULL);
110 		case_slot(WLK);
111 		case_slot(W1FDD);
112 		case_slot(B1FDD);
113 		}
114 		break;
115 	case BTC_STR_REG:
116 		switch (id) {
117 		case_reg(MAC);
118 		case_reg(BB);
119 		case_reg(RF);
120 		case_reg(BT_RF);
121 		case_reg(BT_MODEM);
122 		case_reg(BT_BLUEWIZE);
123 		case_reg(BT_VENDOR);
124 		case_reg(BT_LE);
125 		}
126 		break;
127 	case BTC_STR_TDMA:
128 		switch (id) {
129 		case_tdma(OFF);
130 		case_tdma(FIX);
131 		case_tdma(AUTO);
132 		case_tdma(AUTO2);
133 		}
134 		break;
135 	case BTC_STR_TRACE:
136 		switch (id) {
137 		case_trace(NONE);
138 		case_trace(EVNT);
139 		case_trace(SLOT);
140 		}
141 		break;
142 	case BTC_STR_BRANCH:
143 		switch (id) {
144 		case_branch(MAIN);
145 		case_branch(HP);
146 		case_branch(LENOVO);
147 		case_branch(HUAWEI);
148 		}
149 		break;
150 	case BTC_STR_RXFLCTRL:
151 		switch (id) {
152 		case_rxflctrl_(OFF);
153 		case_rxflctrl_(NULLP);
154 		case_rxflctrl_(QOSNULL);
155 		case_rxflctrl_(CTS);
156 		}
157 		break;
158 	case BTC_STR_WLLINK:
159 		switch (id) {
160 		case_wllink(NOLINK);
161 		case_wllink(2G_STA);
162 		case_wllink(2G_GO);
163 		case_wllink(2G_GC);
164 		case_wllink(2G_AP);
165 		case_wllink(2G_SCC);
166 		case_wllink(2G_MCC);
167 		case_wllink(25G_MCC);
168 		case_wllink(25G_DBCC);
169 		case_wllink(5G);
170 		case_wllink(2G_NAN);
171 		case_wllink(OTHER);
172 		}
173 		break;
174 	case BTC_STR_ANTPATH:
175 		switch (id) {
176 		case_antpath(WPOWERON);
177 		case_antpath(WINIT);
178 		case_antpath(WONLY);
179 		case_antpath(WOFF);
180 		case_antpath(W2G);
181 		case_antpath(W5G);
182 		case_antpath(W25G);
183 		case_antpath(FREERUN);
184 		case_antpath(WRFK);
185 		case_antpath(BRFK);
186 		}
187 		break;
188 	case BTC_STR_GDBG:
189 		switch (id) {
190 		case_gdbg(GNT_BT);
191 		case_gdbg(GNT_WL);
192 		case_gdbg(BCN_EARLY);
193 		case_gdbg(WL_NULL0);
194 		case_gdbg(WL_NULL1);
195 		case_gdbg(WL_RXISR);
196 		case_gdbg(TDMA_ENTRY);
197 		case_gdbg(A2DP_EMPTY);
198 		case_gdbg(BT_RETRY);
199 		case_gdbg(BT_RELINK);
200 		case_gdbg(SLOT_WL);
201 		case_gdbg(SLOT_BT);
202 		case_gdbg(WL_RFK);
203 		case_gdbg(BT_RFK);
204 		case_gdbg(SLOT_B2W);
205 		case_gdbg(SLOT_W1);
206 		case_gdbg(SLOT_W2);
207 		case_gdbg(SLOT_W2B);
208 		case_gdbg(SLOT_B1);
209 		case_gdbg(SLOT_B2);
210 		case_gdbg(SLOT_B3);
211 		case_gdbg(SLOT_B4);
212 		case_gdbg(SLOT_LK);
213 		case_gdbg(SLOT_E2G);
214 		case_gdbg(SLOT_E5G);
215 		case_gdbg(SLOT_EBT);
216 		case_gdbg(SLOT_ENULL);
217 		case_gdbg(SLOT_WLK);
218 		case_gdbg(SLOT_W1FDD);
219 		case_gdbg(SLOT_B1FDD);
220 		case_gdbg(BT_CHANGE);
221 		}
222 		break;
223 	case BTC_STR_CHIPID:
224 		switch (id) {
225 		case_chip(WIFI6_8852A);
226 		case_chip(WIFI6_8852B);
227 		case_chip(WIFI6_8852C);
228 		}
229 		break;
230 	case BTC_STR_POLUT:
231 		switch (id) {
232 		case_polut(NONE);
233 		case_polut(GNT_BT_TX);
234 		case_polut(GNT_BT_RX);
235 		case_polut(GNT_WL);
236 		case_polut(BT);
237 		case_polut(ALL);
238 		}
239 		break;
240 	case BTC_STR_EVENT:
241 		switch(id) {
242 		case_event(TDMA_ENTRY);
243 		case_event(WL_TMR);
244 		case_event(B1_TMR);
245 		case_event(B2_TMR);
246 		case_event(B3_TMR);
247 		case_event(B4_TMR);
248 		case_event(W2B_TMR);
249 		case_event(B2W_TMR);
250 		case_event(BCN_EARLY);
251 		case_event(A2DP_EMPTY);
252 		case_event(LK_END);
253 		case_event(RX_ISR);
254 		case_event(RX_FC0);
255 		case_event(RX_FC1);
256 		case_event(BT_RELINK);
257 		case_event(BT_RETRY);
258 		case_event(E2G);
259 		case_event(E5G);
260 		case_event(EBT);
261 		case_event(ENULL);
262 		case_event(DRV_WLK);
263 		case_event(BCN_OK);
264 		case_event(BT_CHANGE);
265 		case_event(EBT_EXTEND);
266 		case_event(E2G_NULL1);
267 		}
268 		break;
269 	case BTC_STR_WLMODE:
270 		switch(id) {
271 		case_wlmode(INVALID);
272 		case_wlmode(11B);
273 		case_wlmode(11A);
274 		case_wlmode(11G);
275 		case_wlmode(11N);
276 		case_wlmode(11AC);
277 		case_wlmode(11AX);
278 		case_wlmode(11BG);
279 		case_wlmode(11GN);
280 		case_wlmode(11AN);
281 		case_wlmode(11BN);
282 		case_wlmode(11BGN);
283 		case_wlmode(11BGAC);
284 		case_wlmode(11BGAX);
285 		case_wlmode(11A_AC);
286 		case_wlmode(11A_AX);
287 		case_wlmode(11AGN);
288 		case_wlmode(11ABGN);
289 		case_wlmode(24G_MIX);
290 		case_wlmode(5G_MIX);
291 		case_wlmode(MAX);
292 		}
293 		break;
294 	case BTC_STR_WLBW:
295 		switch(id) {
296 		case_wlbw(20);
297 		case_wlbw(40);
298 		case_wlbw(80);
299 		case_wlbw(160);
300 		case_wlbw(80_80);
301 		case_wlbw(5);
302 		case_wlbw(10);
303 		case_wlbw(MAX);
304 		}
305 		break;
306 	case BTC_STR_RFTYPE:
307 		switch(id) {
308 		case_rftype(1T1R);
309 		case_rftype(1T2R);
310 		case_rftype(2T3R);
311 		case_rftype(2T4R);
312 		case_rftype(3T3R);
313 		case_rftype(3T4R);
314 		case_rftype(4T4R);
315 		}
316 		break;
317 	case BTC_STR_POLICY:
318 		switch(id) {
319 		case_cxp(OFF_BT);
320 		case_cxp(OFF_WL);
321 		case_cxp(OFF_EQ0);
322 		case_cxp(OFF_EQ1);
323 		case_cxp(OFF_EQ2);
324 		case_cxp(OFF_EQ3);
325 		case_cxp(OFF_BWB0);
326 		case_cxp(OFF_BWB1);
327 		case_cxp(OFF_BWB2);
328 		case_cxp(OFFB_BWB0);
329 		case_cxp(OFFE_2GBWISOB);
330 		case_cxp(OFFE_2GISOB);
331 		case_cxp(OFFE_2GBWMIXB);
332 		case_cxp(OFFE_2GBWMIXB2);
333 		case_cxp(OFFE_WL);
334 		case_cxp(FIX_TD3030);
335 		case_cxp(FIX_TD5050);
336 		case_cxp(FIX_TD2030);
337 		case_cxp(FIX_TD4010);
338 		case_cxp(FIX_TD7010);
339 		case_cxp(FIX_TD2060);
340 		case_cxp(FIX_TD3060);
341 		case_cxp(FIX_TD2080);
342 		case_cxp(FIX_TDW1B1);
343 		case_cxp(FIX_TD4010ISO);
344 		case_cxp(PFIX_TD3030);
345 		case_cxp(PFIX_TD5050);
346 		case_cxp(PFIX_TD2030);
347 		case_cxp(PFIX_TD2060);
348 		case_cxp(PFIX_TD3070);
349 		case_cxp(PFIX_TD2080);
350 		case_cxp(PFIX_TDW1B1);
351 		case_cxp(AUTO_TD50B1);
352 		case_cxp(AUTO_TD60B1);
353 		case_cxp(AUTO_TD20B1);
354 		case_cxp(AUTO_TDW1B1);
355 		case_cxp(PAUTO_TD50B1);
356 		case_cxp(PAUTO_TD60B1);
357 		case_cxp(PAUTO_TD20B1);
358 		case_cxp(PAUTO_TDW1B1);
359 		case_cxp(AUTO2_TD3050);
360 		case_cxp(AUTO2_TD3070);
361 		case_cxp(AUTO2_TD5050);
362 		case_cxp(AUTO2_TD6060);
363 		case_cxp(AUTO2_TD2080);
364 		case_cxp(AUTO2_TDW1B4);
365 		case_cxp(PAUTO2_TD3050);
366 		case_cxp(PAUTO2_TD3070);
367 		case_cxp(PAUTO2_TD5050);
368 		case_cxp(PAUTO2_TD6060);
369 		case_cxp(PAUTO2_TD2080);
370 		case_cxp(PAUTO2_TDW1B4);
371 		}
372 		break;
373 	case BTC_STR_MSTATE:
374 		switch(id) {
375 		case_mstate(NO_LINK);
376 		case_mstate(LINKING);
377 		case_mstate(LINKED);
378 		}
379 		break;
380 	case BTC_STR_RATE:
381 		switch(id) {
382 		case_rate(CCK1);
383 		case_rate(CCK2);
384 		case_rate(CCK5_5);
385 		case_rate(CCK11);
386 		case_rate(OFDM6);
387 		case_rate(OFDM9);
388 		case_rate(OFDM12);
389 		case_rate(OFDM18);
390 		case_rate(OFDM24);
391 		case_rate(OFDM36);
392 		case_rate(OFDM48);
393 		case_rate(OFDM54);
394 		case_rate(MCS0);
395 		case_rate(MCS1);
396 		case_rate(MCS2);
397 		case_rate(MCS3);
398 		case_rate(MCS4);
399 		case_rate(MCS5);
400 		case_rate(MCS6);
401 		case_rate(MCS7);
402 		case_rate(MCS8);
403 		case_rate(MCS9);
404 		case_rate(MCS10);
405 		case_rate(MCS11);
406 		case_rate(MCS12);
407 		case_rate(MCS13);
408 		case_rate(MCS14);
409 		case_rate(MCS15);
410 		case_rate(MCS16);
411 		case_rate(MCS17);
412 		case_rate(MCS18);
413 		case_rate(MCS19);
414 		case_rate(MCS20);
415 		case_rate(MCS21);
416 		case_rate(MCS22);
417 		case_rate(MCS23);
418 		case_rate(MCS24);
419 		case_rate(MCS25);
420 		case_rate(MCS26);
421 		case_rate(MCS27);
422 		case_rate(MCS28);
423 		case_rate(MCS29);
424 		case_rate(MCS30);
425 		case_rate(MCS31);
426 		case_rate(VHT_NSS1_MCS0);
427 		case_rate(VHT_NSS1_MCS1);
428 		case_rate(VHT_NSS1_MCS2);
429 		case_rate(VHT_NSS1_MCS3);
430 		case_rate(VHT_NSS1_MCS4);
431 		case_rate(VHT_NSS1_MCS5);
432 		case_rate(VHT_NSS1_MCS6);
433 		case_rate(VHT_NSS1_MCS7);
434 		case_rate(VHT_NSS1_MCS8);
435 		case_rate(VHT_NSS1_MCS9);
436 		case_rate(VHT_NSS2_MCS0);
437 		case_rate(VHT_NSS2_MCS1);
438 		case_rate(VHT_NSS2_MCS2);
439 		case_rate(VHT_NSS2_MCS3);
440 		case_rate(VHT_NSS2_MCS4);
441 		case_rate(VHT_NSS2_MCS5);
442 		case_rate(VHT_NSS2_MCS6);
443 		case_rate(VHT_NSS2_MCS7);
444 		case_rate(VHT_NSS2_MCS8);
445 		case_rate(VHT_NSS2_MCS9);
446 		case_rate(VHT_NSS3_MCS0);
447 		case_rate(VHT_NSS3_MCS1);
448 		case_rate(VHT_NSS3_MCS2);
449 		case_rate(VHT_NSS3_MCS3);
450 		case_rate(VHT_NSS3_MCS4);
451 		case_rate(VHT_NSS3_MCS5);
452 		case_rate(VHT_NSS3_MCS6);
453 		case_rate(VHT_NSS3_MCS7);
454 		case_rate(VHT_NSS3_MCS8);
455 		case_rate(VHT_NSS3_MCS9);
456 		case_rate(VHT_NSS4_MCS0);
457 		case_rate(VHT_NSS4_MCS1);
458 		case_rate(VHT_NSS4_MCS2);
459 		case_rate(VHT_NSS4_MCS3);
460 		case_rate(VHT_NSS4_MCS4);
461 		case_rate(VHT_NSS4_MCS5);
462 		case_rate(VHT_NSS4_MCS6);
463 		case_rate(VHT_NSS4_MCS7);
464 		case_rate(VHT_NSS4_MCS8);
465 		case_rate(VHT_NSS4_MCS9);
466 		case_rate(HE_NSS1_MCS0);
467 		case_rate(HE_NSS1_MCS1);
468 		case_rate(HE_NSS1_MCS2);
469 		case_rate(HE_NSS1_MCS3);
470 		case_rate(HE_NSS1_MCS4);
471 		case_rate(HE_NSS1_MCS5);
472 		case_rate(HE_NSS1_MCS6);
473 		case_rate(HE_NSS1_MCS7);
474 		case_rate(HE_NSS1_MCS8);
475 		case_rate(HE_NSS1_MCS9);
476 		case_rate(HE_NSS1_MCS10);
477 		case_rate(HE_NSS1_MCS11);
478 		case_rate(HE_NSS2_MCS0);
479 		case_rate(HE_NSS2_MCS1);
480 		case_rate(HE_NSS2_MCS2);
481 		case_rate(HE_NSS2_MCS3);
482 		case_rate(HE_NSS2_MCS4);
483 		case_rate(HE_NSS2_MCS5);
484 		case_rate(HE_NSS2_MCS6);
485 		case_rate(HE_NSS2_MCS7);
486 		case_rate(HE_NSS2_MCS8);
487 		case_rate(HE_NSS2_MCS9);
488 		case_rate(HE_NSS2_MCS10);
489 		case_rate(HE_NSS2_MCS11);
490 		case_rate(HE_NSS3_MCS0);
491 		case_rate(HE_NSS3_MCS1);
492 		case_rate(HE_NSS3_MCS2);
493 		case_rate(HE_NSS3_MCS3);
494 		case_rate(HE_NSS3_MCS4);
495 		case_rate(HE_NSS3_MCS5);
496 		case_rate(HE_NSS3_MCS6);
497 		case_rate(HE_NSS3_MCS7);
498 		case_rate(HE_NSS3_MCS8);
499 		case_rate(HE_NSS3_MCS9);
500 		case_rate(HE_NSS3_MCS10);
501 		case_rate(HE_NSS3_MCS11);
502 		case_rate(HE_NSS4_MCS0);
503 		case_rate(HE_NSS4_MCS1);
504 		case_rate(HE_NSS4_MCS2);
505 		case_rate(HE_NSS4_MCS3);
506 		case_rate(HE_NSS4_MCS4);
507 		case_rate(HE_NSS4_MCS5);
508 		case_rate(HE_NSS4_MCS6);
509 		case_rate(HE_NSS4_MCS7);
510 		case_rate(HE_NSS4_MCS8);
511 		case_rate(HE_NSS4_MCS9);
512 		case_rate(HE_NSS4_MCS10);
513 		case_rate(HE_NSS4_MCS11);
514 		case_rate(MAX);
515 		}
516 		break;
517 	}
518 
519 	return "Undefine";
520 }
521 
522 
523 #endif
524