xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852bs/phl/hal_g6/hal_api_rf.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_API_RF_C_
16 #include "hal_headers.h"
17 #include "phy/rf/halrf_api.h"
18 #include "phy/rf/halrf_export_fun.h"
19 
20 #ifdef USE_TRUE_PHY
21 enum rtw_hal_status
rtw_hal_rf_init(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)22 rtw_hal_rf_init(struct rtw_phl_com_t *phl_com,
23 			struct hal_info_t *hal_info)
24 {
25 	struct rtw_hal_com_t *hal_com = hal_info->hal_com;
26 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
27 
28 	hal_status = halrf_init(phl_com, hal_com, &(hal_info->rf));
29 
30 	if ((hal_status != RTW_HAL_STATUS_SUCCESS) ||
31 		(hal_info->rf == NULL)) {
32 		PHL_ERR("[PHL] rtw_halrf_init failed status(%d), hal_info->rf(%p)\n",
33 			hal_status, hal_info->rf);
34 	}
35 
36 	return hal_status;
37 }
38 
rtw_hal_rf_deinit(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)39 void rtw_hal_rf_deinit(struct rtw_phl_com_t *phl_com,
40 			struct hal_info_t *hal_info)
41 {
42 	struct rtw_hal_com_t *hal_com = hal_info->hal_com;
43 
44 	halrf_deinit(phl_com, hal_com, hal_info->rf);
45 }
46 
rtw_hal_init_rf_reg(struct rtw_phl_com_t * phl_com,void * hal)47 void rtw_hal_init_rf_reg(struct rtw_phl_com_t *phl_com, void *hal)
48 {
49 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
50 	struct rtw_para_info_t *phy_reg_info = NULL;
51 	struct rtw_para_pwrlmt_info_t *pwrlmt_info = NULL;
52 	u8 phy_idx = 0;
53 
54 	for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
55 		phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_radio_a_info;
56 		halrf_config_radio_a_reg(hal_info->rf, phy_reg_info->para_src,
57 				phy_reg_info->para_data_len, phy_reg_info->para_data);
58 	}
59 
60 	for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
61 		phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_radio_b_info;
62 		halrf_config_radio_b_reg(hal_info->rf , phy_reg_info->para_src,
63 				phy_reg_info->para_data_len, phy_reg_info->para_data);
64 	}
65 
66 	for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
67 		phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwr_byrate_info;
68 		halrf_config_store_power_by_rate(hal_info->rf , phy_reg_info->para_src,
69 				phy_reg_info->para_data_len, phy_reg_info->para_data);
70 	}
71 	for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
72 			phy_reg_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwrtrack_info;
73 			halrf_config_store_power_track(hal_info->rf , phy_reg_info->para_src,
74 					phy_reg_info->para_data_len, phy_reg_info->para_data);
75 	}
76 
77 	for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
78 		pwrlmt_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwrlmt_info;
79 		halrf_config_store_power_limit(hal_info->rf , pwrlmt_info->para_src,
80 				pwrlmt_info->para_data_len, pwrlmt_info->para_data);
81 	}
82 
83 	for (phy_idx = 0; phy_idx < 1 ; phy_idx++) {
84 		pwrlmt_info = &phl_com->phy_sw_cap[phy_idx].rf_txpwrlmt_ru_info;
85 		halrf_config_store_power_limit_ru(hal_info->rf , pwrlmt_info->para_src,
86 				pwrlmt_info->para_data_len, pwrlmt_info->para_data);
87 	}
88 }
89 
rtw_hal_rf_dm_init(struct hal_info_t * hal_info)90 void rtw_hal_rf_dm_init(struct hal_info_t *hal_info)
91 {
92 	halrf_dm_init(hal_info->rf);
93 }
94 
95 enum rtw_hal_status
rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t * hal_com,u8 * efuse_map,enum rtw_efuse_info info_type,void * value,u8 size,u8 map_valid)96 rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t *hal_com,
97 	u8 *efuse_map, enum rtw_efuse_info info_type, void *value,
98 	u8 size, u8 map_valid)
99 {
100 	struct hal_info_t *hal_info = hal_com->hal_priv;
101 
102 	PHL_INFO("%s\n", __FUNCTION__);
103 
104 	if(halrf_get_efuse_info(hal_info->rf, efuse_map, info_type, value, size,
105 							map_valid))
106 		return RTW_HAL_STATUS_SUCCESS;
107 	else
108 		return RTW_HAL_STATUS_FAILURE;
109 }
110 
111 void
rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,u8 pwrbyrate_type,u8 pwrlmt_type)112 rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t *hal_com,
113 				enum phl_phy_idx phy_idx,
114 				u8 pwrbyrate_type, u8 pwrlmt_type)
115 {
116 /*	struct hal_info_t *hal_info = hal_com->hal_priv;
117 
118 	halrf_set_power_table_switch(hal_info->rf, phy_idx,
119 				pwrbyrate_type, pwrlmt_type);*/
120 }
121 
rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char * str)122 int rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char *str)
123 {
124 	return halrf_get_predefined_pw_lmt_regu_type_from_str(str);
125 }
126 
rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 * num)127 const char * const *rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 *num)
128 {
129 	return halrf_get_predefined_pw_lmt_regu_type_str_array(num);
130 }
131 
rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t * hal_info,enum band_type band)132 const char *rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t *hal_info, enum band_type band)
133 {
134 	return halrf_get_pw_lmt_regu_type_str(hal_info->rf, band);
135 }
136 
rtw_hal_rf_read_pwr_table(struct rtw_hal_com_t * hal_com,u8 rf_path,u16 rate,u8 bandwidth,u8 channel,u8 offset,u8 dcm,u8 beamforming,s16 * get_item)137 enum rtw_hal_status rtw_hal_rf_read_pwr_table(
138 	struct rtw_hal_com_t *hal_com, u8 rf_path, u16 rate,
139 	u8 bandwidth, u8 channel, u8 offset, u8 dcm,
140 	u8 beamforming, s16 *get_item)
141 {
142 	int ret = RTW_HAL_STATUS_SUCCESS;
143 	struct hal_info_t *hal_info = (struct hal_info_t *)hal_com->hal_priv;
144 
145 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
146 
147 	*get_item = halrf_get_power(hal_info->rf, rf_path, rate, dcm,offset, bandwidth, beamforming, channel);
148 
149 	return ret;
150 }
151 
rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t * hal_com,u32 tx_power_val)152 enum rtw_hal_status rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t *hal_com,
153 	u32 tx_power_val)
154 {
155 	struct hal_info_t *hal_info = (struct hal_info_t *)hal_com->hal_priv;
156 
157 	PHL_INFO("%s\n", __FUNCTION__);
158 
159 	halrf_wl_tx_power_control(hal_info->rf, tx_power_val);
160 
161 	return RTW_HAL_STATUS_SUCCESS;
162 }
163 
rtw_hal_rf_get_pwrtrack(struct hal_info_t * hal_info,u8 * txpwr_track_status)164 enum rtw_hal_status rtw_hal_rf_get_pwrtrack(struct hal_info_t *hal_info, u8 *txpwr_track_status)
165 {
166 	int ret = RTW_HAL_STATUS_SUCCESS;
167 
168 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
169 
170 	*txpwr_track_status = halrf_get_power_track(hal_info->rf);
171 
172 	return ret;
173 }
174 
rtw_hal_rf_set_pwrtrack(struct hal_info_t * hal_info,u8 phy_idx,u8 txpwr_track_status)175 enum rtw_hal_status rtw_hal_rf_set_pwrtrack(struct hal_info_t *hal_info, u8 phy_idx, u8 txpwr_track_status)
176 {
177 	int ret = RTW_HAL_STATUS_SUCCESS;
178 
179 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
180 
181 	halrf_set_power_track(hal_info->rf, phy_idx, txpwr_track_status);
182 
183 	return ret;
184 }
185 
rtw_hal_rf_get_thermal(struct hal_info_t * hal_info,u8 rf_path,u8 * thermal)186 enum rtw_hal_status rtw_hal_rf_get_thermal(struct hal_info_t *hal_info, u8 rf_path, u8 *thermal)
187 {
188 	int ret = RTW_HAL_STATUS_SUCCESS;
189 
190 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
191 
192 	*thermal = halrf_get_thermal(hal_info->rf, rf_path);
193 
194 	return ret;
195 }
196 
rtw_hal_rf_set_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 tssi_de)197 enum rtw_hal_status rtw_hal_rf_set_tssi(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path, u32 tssi_de)
198 {
199 	int ret = RTW_HAL_STATUS_SUCCESS;
200 
201 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
202 
203 	halrf_set_tssi_de_for_tx_verify(hal_info->rf, phy_idx, tssi_de, rf_path);
204 
205 	return ret;
206 
207 }
208 
rtw_hal_rf_set_tssi_offset(struct hal_info_t * hal_info,u8 phy_idx,u32 tssi_de_offset,u8 rf_path)209 enum rtw_hal_status rtw_hal_rf_set_tssi_offset(struct hal_info_t *hal_info, u8 phy_idx, u32 tssi_de_offset, u8 rf_path)
210 {
211 	int ret = RTW_HAL_STATUS_SUCCESS;
212 
213 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
214 
215 	halrf_set_tssi_de_offset(hal_info->rf, phy_idx, tssi_de_offset, rf_path);
216 
217 	return ret;
218 
219 }
220 
rtw_hal_rf_get_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 * tssi_de)221 enum rtw_hal_status rtw_hal_rf_get_tssi(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path, u32 *tssi_de)
222 {
223 	int ret = RTW_HAL_STATUS_SUCCESS;
224 
225 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
226 
227 	*tssi_de = halrf_get_tssi_de(hal_info->rf, phy_idx, rf_path);
228 
229 	return ret;
230 }
231 
rtw_hal_rf_get_online_tssi_de(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,s32 dbm,s32 pout,s32 * tssi_de)232 enum rtw_hal_status rtw_hal_rf_get_online_tssi_de(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path,s32 dbm, s32 pout, s32 *tssi_de)
233 {
234 	int ret = RTW_HAL_STATUS_SUCCESS;
235 
236 	PHL_INFO("[MP HAL API] %s \n", __FUNCTION__);
237 
238 	*tssi_de = halrf_get_online_tssi_de(hal_info->rf, phy_idx, rf_path, dbm, pout);
239 
240 	return ret;
241 }
242 
243 enum rtw_hal_status
rtw_hal_rf_set_continuous_tx(struct hal_info_t * hal_info)244 rtw_hal_rf_set_continuous_tx(struct hal_info_t *hal_info)
245 {
246 	PHL_INFO("%s\n", __FUNCTION__);
247 	return RTW_HAL_STATUS_SUCCESS;
248 }
249 
250 enum rtw_hal_status
rtw_hal_rf_set_singletone_tx(struct hal_info_t * hal_info,u8 is_on,enum rf_path path)251 rtw_hal_rf_set_singletone_tx(struct hal_info_t *hal_info,
252 						u8 is_on,enum rf_path path)
253 {
254 	PHL_INFO("%s: enable = %d path = %x\n", __FUNCTION__, is_on, path);
255 	halrf_lo_test(hal_info->rf, is_on, path);
256 	return RTW_HAL_STATUS_SUCCESS;
257 }
258 
259 enum rtw_hal_status
rtw_hal_rf_set_suppression_tx(struct hal_info_t * hal_info)260 rtw_hal_rf_set_suppression_tx(struct hal_info_t *hal_info)
261 {
262 	PHL_INFO("%s\n", __FUNCTION__);
263 	return RTW_HAL_STATUS_SUCCESS;
264 }
265 
rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t * hal_com,bool dbcc_en)266 enum rtw_hal_status rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t *hal_com,
267 	bool dbcc_en)
268 {
269 	/*need replace with rf api*/
270 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
271 	struct hal_info_t *hal_info = (struct hal_info_t *)hal_com->hal_priv;
272 
273 	if (halrf_set_dbcc(hal_info->rf, dbcc_en))
274 		hal_status = RTW_HAL_STATUS_SUCCESS;
275 
276 	return hal_status;
277 }
278 
279 #define DBG_RFK_TIME
rtw_hal_rf_chl_rfk_trigger(void * hal,u8 phy_idx,u8 force)280 enum rtw_hal_status rtw_hal_rf_chl_rfk_trigger(void *hal,
281 						u8 phy_idx, u8 force)
282 {
283 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
284 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
285 	#ifdef DBG_RFK_TIME
286 	u32 iqk_start = _os_get_cur_time_ms();
287 	#endif
288 
289 	PHL_INFO("[DBG_RFK]%s: phy_idx(%d), force(%d)\n", __func__,
290 		phy_idx, force);
291 	rtw_hal_mac_ser_ctrl(hal_info, false);
292 
293 	hal_status = halrf_chl_rfk_trigger(hal_info->rf, phy_idx, force);
294 
295 	#ifdef DBG_RFK_TIME
296 	PHL_INFO("[DBG_RFK]%s: RFK take %d (ms)\n", __func__,
297 		phl_get_passing_time_ms(iqk_start));
298 	#endif
299 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
300 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
301 
302 	rtw_hal_mac_ser_ctrl(hal_info, true);
303 
304 	return hal_status;
305 }
306 
rtw_hal_rf_dack_trigger(struct hal_info_t * hal_info,u8 force)307 enum rtw_hal_status rtw_hal_rf_dack_trigger(struct hal_info_t *hal_info,
308 						u8 force)
309 {
310 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
311 
312 #if 0
313 	hal_status = halrf_dack_trigger(hal_info->rf, force);
314 #else
315 	hal_status = RTW_HAL_STATUS_SUCCESS;
316 #endif
317 
318 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
319 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
320 
321 	return hal_status;
322 }
323 
rtw_hal_rf_iqk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)324 enum rtw_hal_status rtw_hal_rf_iqk_trigger(struct hal_info_t *hal_info,
325 						u8 phy_idx, u8 force)
326 {
327 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
328 
329 	hal_status = halrf_iqk_trigger(hal_info->rf, phy_idx, force);
330 
331 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
332 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
333 
334 	return hal_status;
335 }
336 
rtw_hal_rf_lck_trigger(struct hal_info_t * hal_info)337 enum rtw_hal_status rtw_hal_rf_lck_trigger(struct hal_info_t *hal_info)
338 {
339 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
340 
341 #if 0
342 	hal_status = halrf_lck_trigger(hal_info->rf);
343 #else
344 	hal_status = RTW_HAL_STATUS_SUCCESS;
345 #endif
346 
347 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
348 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
349 
350 	return hal_status;
351 }
352 
rtw_hal_rf_dpk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)353 enum rtw_hal_status rtw_hal_rf_dpk_trigger(struct hal_info_t *hal_info,
354 						u8 phy_idx, u8 force)
355 {
356 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
357 
358 	hal_status = halrf_dpk_trigger(hal_info->rf, phy_idx, force);
359 
360 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
361 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
362 
363 	return hal_status;
364 }
365 
rtw_hal_rf_tssi_trigger(struct hal_info_t * hal_info,u8 phy_idx)366 enum rtw_hal_status rtw_hal_rf_tssi_trigger(struct hal_info_t *hal_info,
367 				u8 phy_idx)
368 {
369 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
370 
371 #if 0
372 	hal_status = halrf_tssi_trigger(hal_info->rf, phy_idx);
373 #else
374 	hal_status = RTW_HAL_STATUS_SUCCESS;
375 #endif
376 
377 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
378 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
379 
380 	return hal_status;
381 }
382 
rtw_hal_rf_gapk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)383 enum rtw_hal_status rtw_hal_rf_gapk_trigger(struct hal_info_t *hal_info,
384 						u8 phy_idx, u8 force)
385 {
386 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
387 
388 #if 0
389 	hal_status = halrf_gapk_trigger(hal_info->rf, phy_idx, force);
390 #else
391 	hal_status = RTW_HAL_STATUS_SUCCESS;
392 #endif
393 
394 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
395 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
396 
397 	return hal_status;
398 }
399 
400 
rtw_hal_rf_set_capability_dack(struct hal_info_t * hal_info,u8 enable)401 enum rtw_hal_status rtw_hal_rf_set_capability_dack(struct hal_info_t *hal_info,
402 				u8 enable)
403 {
404 #if 0
405 	halrf_dack_onoff(hal_info->rf, enable);
406 #endif
407 
408 	return RTW_HAL_STATUS_SUCCESS;
409 }
410 
rtw_hal_rf_set_capability_iqk(struct hal_info_t * hal_info,u8 enable)411 enum rtw_hal_status rtw_hal_rf_set_capability_iqk(struct hal_info_t *hal_info,
412 				u8 enable)
413 {
414 #if 0
415 	halrf_iqk_onoff(hal_info->rf, enable);
416 #endif
417 
418 	return RTW_HAL_STATUS_SUCCESS;
419 }
420 
rtw_hal_rf_set_capability_dpk(struct hal_info_t * hal_info,u8 enable)421 enum rtw_hal_status rtw_hal_rf_set_capability_dpk(struct hal_info_t *hal_info,
422 						u8 enable)
423 {
424 #if 0
425 	halrf_dpk_onoff(hal_info->rf, enable);
426 #endif
427 
428 	return RTW_HAL_STATUS_SUCCESS;
429 }
430 
rtw_hal_rf_set_capability_dpk_track(struct hal_info_t * hal_info,u8 enable)431 enum rtw_hal_status rtw_hal_rf_set_capability_dpk_track(struct hal_info_t *hal_info,
432 						u8 enable)
433 {
434 #if 0
435 	halrf_dpk_track_onoff(hal_info->rf, enable);
436 #endif
437 
438 	return RTW_HAL_STATUS_SUCCESS;
439 }
440 
441 
rtw_hal_rf_set_capability_tssi(struct hal_info_t * hal_info,u8 enable)442 enum rtw_hal_status rtw_hal_rf_set_capability_tssi(struct hal_info_t *hal_info,
443 				u8 enable)
444 {
445 #if 0
446 	halrf_tssi_onoff(hal_info->rf, enable);
447 #endif
448 
449 	return RTW_HAL_STATUS_SUCCESS;
450 }
451 
rtw_hal_rf_set_capability_gapk(struct hal_info_t * hal_info,u8 enable)452 enum rtw_hal_status rtw_hal_rf_set_capability_gapk(struct hal_info_t *hal_info,
453 						u8 enable)
454 {
455 #if 0
456 	halrf_gapk_onoff(hal_info->rf, enable);
457 #endif
458 
459 	return RTW_HAL_STATUS_SUCCESS;
460 }
461 
462 
rtw_hal_rf_get_capability_dack(struct hal_info_t * hal_info,u8 * enable)463 enum rtw_hal_status rtw_hal_rf_get_capability_dack(struct hal_info_t *hal_info,
464 						u8 *enable)
465 {
466 #if 0
467 	*enable = halrf_get_dack_onoff(hal_info->rf);
468 #endif
469 
470 	return RTW_HAL_STATUS_SUCCESS;
471 }
472 
rtw_hal_rf_get_capability_iqk(struct hal_info_t * hal_info,u8 * enable)473 enum rtw_hal_status rtw_hal_rf_get_capability_iqk(struct hal_info_t *hal_info,
474 				u8 *enable)
475 {
476 #if 0
477 	*enable = halrf_get_iqk_onoff(hal_info->rf);
478 #endif
479 
480 	return RTW_HAL_STATUS_SUCCESS;
481 }
482 
rtw_hal_rf_get_capability_dpk(struct hal_info_t * hal_info,u8 * enable)483 enum rtw_hal_status rtw_hal_rf_get_capability_dpk(struct hal_info_t *hal_info,
484 					u8 *enable)
485 {
486 #if 0
487 	*enable = halrf_get_dpk_onoff(hal_info->rf);
488 #endif
489 	return RTW_HAL_STATUS_SUCCESS;
490 }
491 
rtw_hal_rf_get_capability_dpk_track(struct hal_info_t * hal_info,u8 * enable)492 enum rtw_hal_status rtw_hal_rf_get_capability_dpk_track(struct hal_info_t *hal_info,
493 				u8 *enable)
494 {
495 #if 0
496 	*enable = halrf_get_dpk_track_onoff(hal_info->rf);
497 #endif
498 
499 	return RTW_HAL_STATUS_SUCCESS;
500 }
501 
rtw_hal_rf_get_capability_tssi(struct hal_info_t * hal_info,u8 * enable)502 enum rtw_hal_status rtw_hal_rf_get_capability_tssi(struct hal_info_t *hal_info,
503 				u8 *enable)
504 {
505 #if 0
506 	*enable = halrf_get_tssi_onoff(hal_info->rf);
507 #endif
508 
509 	return RTW_HAL_STATUS_SUCCESS;
510 }
511 
rtw_hal_rf_get_capability_gapk(struct hal_info_t * hal_info,u8 * enable)512 enum rtw_hal_status rtw_hal_rf_get_capability_gapk(struct hal_info_t *hal_info,
513 					u8 *enable)
514 {
515 #if 0
516 	*enable = halrf_get_gapk_onoff(hal_info->rf);
517 #endif
518 
519 	return RTW_HAL_STATUS_SUCCESS;
520 }
521 
522 
rtw_hal_rf_get_tssi_de_value(struct hal_info_t * hal_info)523 enum rtw_hal_status rtw_hal_rf_get_tssi_de_value(struct hal_info_t *hal_info)
524 {
525 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
526 
527 #if 0
528 	hal_status = halrf_get_tssi_de_value(hal_info->rf);
529 #else
530 	hal_status = RTW_HAL_STATUS_SUCCESS;
531 #endif
532 
533 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
534 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
535 
536 	return hal_status;
537 }
538 
rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t * hal_info)539 enum rtw_hal_status rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t *hal_info)
540 {
541 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
542 
543 #if 0
544 	hal_status = halrf_set_tssi_de_tx_verify(hal_info->rf);
545 #else
546 	hal_status = RTW_HAL_STATUS_SUCCESS;
547 #endif
548 
549 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
550 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
551 
552 	return hal_status;
553 }
554 
rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t * hal_info)555 enum rtw_hal_status rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t *hal_info)
556 {
557 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
558 
559 #if 0
560 	hal_status = halrf_get_txpwr_final_abs(hal_info->rf);
561 #else
562 	hal_status = RTW_HAL_STATUS_SUCCESS;
563 #endif
564 
565 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
566 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
567 
568 	return hal_status;
569 }
570 
571 bool
rtw_hal_rf_proc_cmd(struct hal_info_t * hal_info,struct rtw_proc_cmd * incmd,char * output,u32 out_len)572 rtw_hal_rf_proc_cmd(struct hal_info_t *hal_info,
573 					struct rtw_proc_cmd *incmd,
574 					char *output, u32 out_len)
575 {
576 
577 	if(incmd->in_type == RTW_ARG_TYPE_BUF)
578 		halrf_cmd(hal_info->rf, incmd->in.buf, output, out_len);
579 
580 	else if(incmd->in_type == RTW_ARG_TYPE_ARRAY){
581 
582 		halrf_cmd_parser(hal_info->rf, incmd->in.vector,
583 					incmd->in_cnt_len, output, out_len);
584 	}
585 
586 	return true;
587 }
588 
rtw_hal_rf_watchdog(struct hal_info_t * hal_info)589 enum rtw_hal_status rtw_hal_rf_watchdog(struct hal_info_t *hal_info)
590 {
591 
592 	halrf_watchdog(hal_info->rf);
593 
594 	return RTW_HAL_STATUS_SUCCESS;
595 }
596 
597 enum rtw_hal_status
rtw_hal_rf_set_power(struct hal_info_t * hal_info,enum phl_phy_idx phy,enum phl_pwr_table pwr_table)598 rtw_hal_rf_set_power(struct hal_info_t *hal_info, enum phl_phy_idx phy,
599 					enum phl_pwr_table pwr_table)
600 {
601 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
602 
603 	if(halrf_set_power(hal_info->rf, phy, pwr_table))
604 	{
605 		hal_status = RTW_HAL_STATUS_SUCCESS;
606 	}
607 	else
608 	{
609 		hal_status = RTW_HAL_STATUS_FAILURE;
610 	}
611 
612 	return hal_status;
613 }
614 
rtw_hal_rf_set_gain_offset(struct hal_info_t * hal_info,u8 cur_phy_idx,s8 offset,u8 rf_path)615 enum rtw_hal_status rtw_hal_rf_set_gain_offset(struct hal_info_t *hal_info, u8 cur_phy_idx,
616 						s8 offset, u8 rf_path)
617 {
618 
619 	enum rtw_hal_status ret=RTW_HAL_STATUS_SUCCESS;
620 	PHL_INFO("[MP HAL API]%s\n", __FUNCTION__);
621 
622 	halrf_set_rx_gain_offset_for_rx_verify(hal_info->rf, cur_phy_idx, offset, rf_path);
623 
624 	return ret;
625 }
626 
rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t * hal_info)627 enum rtw_hal_status rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t *hal_info)
628 {
629 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_FAILURE;
630 
631 	hal_status = halrf_dpk_tracking(hal_info->rf);
632 
633 	if (hal_status != RTW_HAL_STATUS_SUCCESS)
634 		PHL_ERR("[MP HAL API] %s failed status(%d)\n",__FUNCTION__, hal_status);
635 
636 	return hal_status;
637 }
638 
639 enum rtw_hal_status
rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t * hal_com)640 rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t *hal_com)
641 {
642 	struct hal_info_t *hal_info = hal_com->hal_priv;
643 
644 	hal_com->dev_hw_cap.rfe_type = halrf_get_default_rfe_type(hal_info->rf);
645 	return RTW_HAL_STATUS_SUCCESS;
646 }
647 
648 enum rtw_hal_status
rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t * hal_com)649 rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t *hal_com)
650 {
651 	struct hal_info_t *hal_info = hal_com->hal_priv;
652 
653 	hal_com->dev_hw_cap.xcap = halrf_get_default_xtal(hal_info->rf);
654 	return RTW_HAL_STATUS_SUCCESS;
655 }
656 
rtw_hal_rf_set_tssi_avg(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 xdbm)657 enum rtw_hal_status rtw_hal_rf_set_tssi_avg(struct hal_info_t *hal_info, u8 cur_phy_idx,
658 						s32 xdbm)
659 {
660 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
661 
662 	halrf_set_tssi_avg_mp(hal_info->rf, cur_phy_idx, xdbm);
663 
664 	return hal_status;
665 }
666 
rtw_hal_rf_do_tssi_scan(struct hal_info_t * hal_info,u8 cur_phy_idx)667 void rtw_hal_rf_do_tssi_scan(struct hal_info_t *hal_info, u8 cur_phy_idx)
668 {
669 	halrf_do_tssi_scan(hal_info->rf, cur_phy_idx);
670 }
671 
672 enum rtw_hal_status
rtw_hal_rf_update_ext_pwr_lmt_table(struct hal_info_t * hal_info)673 rtw_hal_rf_update_ext_pwr_lmt_table(struct hal_info_t *hal_info)
674 {
675 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
676 
677 	halrf_power_limit_set_ext_pwr_limit_table(hal_info->rf, HW_PHY_0);
678 	halrf_power_limit_set_ext_pwr_limit_ru_table(hal_info->rf, HW_PHY_0);
679 
680 	return hal_status;
681 }
682 
683 enum rtw_hal_status
rtw_hal_rf_config_radio_to_fw(struct hal_info_t * hal_info)684 rtw_hal_rf_config_radio_to_fw(struct hal_info_t *hal_info)
685 {
686 	halrf_config_radio_to_fw(hal_info->rf);
687 
688 	return RTW_HAL_STATUS_SUCCESS;
689 }
690 
691 bool
rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)692 rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
693 {
694 	struct hal_info_t *hal_info = hal_com->hal_priv;
695 
696 	return halrf_tssi_check_efuse_data(hal_info->rf, phy_idx);
697 }
698 
699 void
rtw_hal_rf_disconnect_notify(void * hal,struct rtw_chan_def * chandef)700 rtw_hal_rf_disconnect_notify(void *hal, struct rtw_chan_def *chandef)
701 {
702 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
703 	halrf_disconnect_notify(hal_info->rf, chandef);
704 }
705 
706 bool
rtw_hal_rf_check_mcc_ch(void * hal,struct rtw_chan_def * chandef)707 rtw_hal_rf_check_mcc_ch(void *hal, struct rtw_chan_def *chandef)
708 {
709 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
710 	return halrf_check_mcc_ch(hal_info->rf, chandef);
711 }
712 
713 void
rtw_hal_rf_dpk_switch(void * hal,bool enable)714 rtw_hal_rf_dpk_switch(void *hal, bool enable)
715 {
716 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
717 
718 	PHL_TRACE(COMP_PHL_MCC, _PHL_INFO_, "rtw_hal_rf_dpk_switch(): enable(%d)\n",
719 		enable);
720 	halrf_dpk_switch(hal_info->rf, enable);
721 }
722 
723 void
rtw_hal_rf_tssi_config(void * hal,enum phl_phy_idx phy_idx,bool enable)724 rtw_hal_rf_tssi_config(void *hal, enum phl_phy_idx phy_idx, bool enable)
725 {
726 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
727 
728 	PHL_TRACE(COMP_PHL_MCC, _PHL_INFO_, "rtw_hal_rf_tssi_config(): enable(%d), phy_idx(%d)\n",
729 		enable, phy_idx);
730 	if (enable)
731 		halrf_tssi_enable(hal_info->rf, phy_idx);
732 	else
733 		halrf_tssi_disable(hal_info->rf, phy_idx);
734 }
735 
736 enum rtw_hal_status
rtw_hal_rf_set_ch_bw(struct hal_info_t * hal_info,enum phl_phy_idx phy,u8 center_ch,enum band_type band,enum channel_width bw)737 rtw_hal_rf_set_ch_bw(struct hal_info_t *hal_info, enum phl_phy_idx phy, u8 center_ch,
738 						enum band_type band, enum channel_width bw)
739 {
740 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
741 
742 	halrf_ctrl_bw_ch(hal_info->rf, phy, center_ch, band, bw);
743 
744 	return hal_status;
745 }
746 
747 void
rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)748 rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
749 {
750 	struct hal_info_t *hal_info = hal_com->hal_priv;
751 
752 	halrf_tssi_get_efuse_ex(hal_info->rf, phy_idx);
753 
754 }
755 
756 
757 /* PSD */
rtw_hal_rf_psd_init(struct hal_info_t * hal_info,u8 cur_phy_idx,u8 path,u8 iq_path,u32 avg,u32 fft)758 enum rtw_hal_status rtw_hal_rf_psd_init(struct hal_info_t *hal_info, u8 cur_phy_idx,
759 					u8 path, u8 iq_path, u32 avg, u32 fft)
760 {
761 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
762 
763 	halrf_psd_init(hal_info->rf, cur_phy_idx, path, iq_path, avg, fft);
764 
765 	return hal_status;
766 }
767 
rtw_hal_rf_psd_restore(struct hal_info_t * hal_info,u8 cur_phy_idx)768 enum rtw_hal_status rtw_hal_rf_psd_restore(struct hal_info_t *hal_info, u8 cur_phy_idx)
769 {
770 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
771 
772 	halrf_psd_restore(hal_info->rf, cur_phy_idx);
773 
774 	return hal_status;
775 }
776 
rtw_hal_rf_psd_get_point_data(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 point,u32 * value)777 enum rtw_hal_status rtw_hal_rf_psd_get_point_data(struct hal_info_t *hal_info, u8 cur_phy_idx,
778 					s32 point, u32 *value)
779 {
780 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
781 
782 	*value = halrf_psd_get_point_data(hal_info->rf, cur_phy_idx, point);
783 
784 	return hal_status;
785 }
786 
rtw_hal_rf_psd_query(struct hal_info_t * hal_info,u8 cur_phy_idx,u32 point,u32 start_point,u32 stop_point,u32 * outbuf)787 enum rtw_hal_status rtw_hal_rf_psd_query(struct hal_info_t *hal_info, u8 cur_phy_idx,
788 					u32 point, u32 start_point, u32 stop_point, u32 *outbuf)
789 {
790 	enum rtw_hal_status hal_status = RTW_HAL_STATUS_SUCCESS;
791 
792 	halrf_psd_query(hal_info->rf, cur_phy_idx, point, start_point, stop_point, outbuf);
793 
794 	return hal_status;
795 }
796 
rtw_hal_rf_rx_ant(struct hal_info_t * hal_info,u8 ant)797 void rtw_hal_rf_rx_ant(struct hal_info_t *hal_info, /*enum halrf_ant*/u8 ant)
798 {
799 	halrf_2g_rxant(hal_info->rf, ant);
800 }
801 
802 enum halrf_thermal_status
rtw_hal_rf_get_ther_protected_threshold(struct hal_info_t * hal_info)803 rtw_hal_rf_get_ther_protected_threshold(
804 	struct hal_info_t *hal_info
805 )
806 {
807 	s8 val = 0;
808 	enum halrf_thermal_status status = HALRF_THERMAL_STATUS_UNKNOWN;
809 
810 	val = halrf_get_ther_protected_threshold(hal_info->rf);
811 
812 	if(val == -1){
813 		status = HALRF_THERMAL_STATUS_ABOVE_THRESHOLD;
814 		PHL_TRACE(COMP_PHL_RF, _PHL_INFO_, "[HALRF] Thermal above threshold!\n");
815 	}
816 	else if(val == 0){
817 		status = HALRF_THERMAL_STATUS_STAY_THRESHOLD;
818 		PHL_TRACE(COMP_PHL_RF, _PHL_INFO_, "[HALRF] Thermal stay at threshold!\n");
819 	}
820 	else if(val == 1){
821 		status = HALRF_THERMAL_STATUS_BELOW_THRESHOLD;
822 		PHL_TRACE(COMP_PHL_RF, _PHL_INFO_, "[HALRF] Thermal below threshold!\n");
823 	}
824 	else{
825 		status = HALRF_THERMAL_STATUS_UNKNOWN;
826 		PHL_TRACE(COMP_PHL_RF, _PHL_WARNING_, "[HALRF] Thermal unknown status!\n");
827 	}
828 	return status;
829 }
830 
rtw_hal_rf_notification(struct hal_info_t * hal_info,enum phl_msg_evt_id event,enum phl_phy_idx phy_idx)831 void rtw_hal_rf_notification(struct hal_info_t *hal_info,
832 			     enum phl_msg_evt_id event,
833 			     enum phl_phy_idx phy_idx)
834 {
835 	halrf_wifi_event_notify(hal_info->rf, event, phy_idx);
836 }
837 
838 void
rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,enum rf_path path)839 rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t *hal_com,
840 		enum phl_phy_idx phy_idx, enum rf_path path)
841 {
842 	struct hal_info_t *hal_info = hal_com->hal_priv;
843 
844 	halrf_tssi_scan_ch(hal_info->rf, path);
845 
846 	halrf_tssi_set_efuse_to_de(hal_info->rf, phy_idx);
847 }
848 
rtw_hal_rf_get_power_limit(void * hal,enum phl_phy_idx phy,u16 rate,u8 bandwidth,u8 beamforming,u8 tx_num,u8 channel)849 s8 rtw_hal_rf_get_power_limit(void *hal, enum phl_phy_idx phy,
850 	u16 rate, u8 bandwidth, u8 beamforming, u8 tx_num, u8 channel)
851 {
852 	struct hal_info_t *hal_info = (struct hal_info_t *)hal;
853 
854 	return halrf_get_power_limit(hal_info->rf, phy, RF_PATH_A, rate,
855 		bandwidth, beamforming, tx_num, channel);
856 }
857 
rtw_hal_rf_cmd_notification(struct hal_info_t * hal_info,void * hal_cmd,enum phl_phy_idx phy_idx)858 void rtw_hal_rf_cmd_notification(struct hal_info_t *hal_info,
859                              void *hal_cmd,
860                              enum phl_phy_idx phy_idx)
861 {
862 	/*to do*/
863 }
864 
865 #else /*ifdef USE_TRUE_PHY*/
866 enum rtw_hal_status
rtw_hal_rf_init(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)867 rtw_hal_rf_init(struct rtw_phl_com_t *phl_com, struct hal_info_t *hal_info)
868 {
869 	return RTW_HAL_STATUS_SUCCESS;
870 }
rtw_hal_rf_deinit(struct rtw_phl_com_t * phl_com,struct hal_info_t * hal_info)871 void rtw_hal_rf_deinit(struct rtw_phl_com_t *phl_com,
872 				struct hal_info_t *hal_info)
873 {
874 }
875 
rtw_hal_init_rf_reg(struct rtw_phl_com_t * phl_com,void * hal)876 void rtw_hal_init_rf_reg(struct rtw_phl_com_t *phl_com, void *hal)
877 {
878 }
879 
rtw_hal_rf_dm_init(struct hal_info_t * hal_info)880 void rtw_hal_rf_dm_init(struct hal_info_t *hal_info)
881 {
882 }
883 
884 enum rtw_hal_status
rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t * hal_com,u8 * efuse_map,enum rtw_efuse_info info_type,void * value,u8 size,u8 map_valid)885 rtw_hal_rf_get_efuse_info(struct rtw_hal_com_t *hal_com, u8 *efuse_map,
886 				enum rtw_efuse_info info_type, void *value,
887 				u8 size, u8 map_valid)
888 {
889 	return RTW_HAL_STATUS_SUCCESS;
890 }
891 
892 enum rtw_hal_status
rtw_hal_rf_read_pwr_table(struct rtw_hal_com_t * hal_com,u8 rf_path,u16 rate,u8 bandwidth,u8 channel,u8 offset,u8 dcm,u8 beamforming,s16 * get_item)893 rtw_hal_rf_read_pwr_table(struct rtw_hal_com_t *hal_com, u8 rf_path, u16 rate,
894 				u8 bandwidth, u8 channel, u8 offset, u8 dcm,
895 				u8 beamforming, s16 *get_item)
896 {
897 	return RTW_HAL_STATUS_SUCCESS;
898 }
899 
900 enum rtw_hal_status
rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t * hal_com,u32 tx_power_val)901 rtw_hal_rf_wl_tx_power_control(struct rtw_hal_com_t *hal_com,
902 				u32 tx_power_val)
903 {
904 	return RTW_HAL_STATUS_SUCCESS;
905 }
906 
rtw_hal_rf_get_pwrtrack(struct hal_info_t * hal_info,u8 * txpwr_track_status)907 enum rtw_hal_status rtw_hal_rf_get_pwrtrack(struct hal_info_t *hal_info,
908 						u8 *txpwr_track_status)
909 {
910 	return RTW_HAL_STATUS_SUCCESS;
911 }
912 
rtw_hal_rf_set_pwrtrack(struct hal_info_t * hal_info,u8 phy_idx,u8 txpwr_track_status)913 enum rtw_hal_status rtw_hal_rf_set_pwrtrack(struct hal_info_t *hal_info,
914 				u8 phy_idx, u8 txpwr_track_status)
915 {
916 	return RTW_HAL_STATUS_SUCCESS;
917 }
918 
rtw_hal_rf_get_thermal(struct hal_info_t * hal_info,u8 rf_path,u8 * thermal)919 enum rtw_hal_status rtw_hal_rf_get_thermal(struct hal_info_t *hal_info,
920 						u8 rf_path, u8 *thermal)
921 {
922 	return RTW_HAL_STATUS_SUCCESS;
923 }
924 
925 enum rtw_hal_status
rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t * hal_com)926 rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t *hal_com)
927 {
928 	return RTW_HAL_STATUS_SUCCESS;
929 }
930 
931 enum rtw_hal_status
rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t * hal_com)932 rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t *hal_com)
933 {
934 	return RTW_HAL_STATUS_SUCCESS;
935 }
936 
rtw_hal_rf_set_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 tssi_de)937 enum rtw_hal_status rtw_hal_rf_set_tssi(struct hal_info_t *hal_info,
938 				u8 phy_idx, u8 rf_path, u32 tssi_de)
939 {
940 	return RTW_HAL_STATUS_SUCCESS;
941 }
rtw_hal_rf_set_tssi_offset(struct hal_info_t * hal_info,u8 phy_idx,u32 tssi_de_offset,u8 rf_path)942 enum rtw_hal_status rtw_hal_rf_set_tssi_offset(struct hal_info_t *hal_info, u8 phy_idx, u32 tssi_de_offset, u8 rf_path)
943 {
944 	return RTW_HAL_STATUS_SUCCESS;
945 }
rtw_hal_rf_get_tssi(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,u32 * tssi_de)946 enum rtw_hal_status rtw_hal_rf_get_tssi(struct hal_info_t *hal_info,
947 					u8 phy_idx, u8 rf_path, u32 *tssi_de)
948 {
949 	return RTW_HAL_STATUS_SUCCESS;
950 }
951 
rtw_hal_rf_get_online_tssi_de(struct hal_info_t * hal_info,u8 phy_idx,u8 rf_path,s32 dbm,s32 pout,s32 * tssi_de)952 enum rtw_hal_status rtw_hal_rf_get_online_tssi_de(
953 	struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path,
954 	s32 dbm, s32 pout, s32 *tssi_de)
955 {
956 	return RTW_HAL_STATUS_SUCCESS;
957 }
958 
959 enum rtw_hal_status
rtw_hal_rf_set_continuous_tx(struct hal_info_t * hal_info)960 rtw_hal_rf_set_continuous_tx(struct hal_info_t *hal_info)
961 {
962 	return RTW_HAL_STATUS_SUCCESS;
963 }
964 
965 enum rtw_hal_status
rtw_hal_rf_set_singletone_tx(struct hal_info_t * hal_info,u8 is_on,enum rf_path path)966 rtw_hal_rf_set_singletone_tx(struct hal_info_t *hal_info,
967 						u8 is_on,enum rf_path path)
968 {
969 	return RTW_HAL_STATUS_SUCCESS;
970 }
971 
972 enum rtw_hal_status
rtw_hal_rf_set_suppression_tx(struct hal_info_t * hal_info)973 rtw_hal_rf_set_suppression_tx(struct hal_info_t *hal_info)
974 {
975 	return RTW_HAL_STATUS_SUCCESS;
976 }
977 
rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t * hal_com,bool dbcc_en)978 enum rtw_hal_status rtw_hal_rf_ctrl_dbcc(struct rtw_hal_com_t *hal_com,
979 	bool dbcc_en)
980 {
981 	return RTW_HAL_STATUS_SUCCESS;
982 }
983 
984 enum rtw_hal_status
rtw_hal_rf_chl_rfk_trigger(void * hal,u8 phy_idx,u8 force)985 rtw_hal_rf_chl_rfk_trigger(void *hal, u8 phy_idx, u8 force)
986 {
987 	return RTW_HAL_STATUS_SUCCESS;
988 }
989 
rtw_hal_rf_dack_trigger(struct hal_info_t * hal_info,u8 force)990 enum rtw_hal_status rtw_hal_rf_dack_trigger(struct hal_info_t *hal_info,
991 						u8 force)
992 {
993 	return RTW_HAL_STATUS_SUCCESS;
994 }
995 
rtw_hal_rf_iqk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)996 enum rtw_hal_status rtw_hal_rf_iqk_trigger(struct hal_info_t *hal_info,
997 						u8 phy_idx, u8 force)
998 {
999 	return RTW_HAL_STATUS_SUCCESS;
1000 }
1001 
rtw_hal_rf_lck_trigger(struct hal_info_t * hal_info)1002 enum rtw_hal_status rtw_hal_rf_lck_trigger(struct hal_info_t *hal_info)
1003 {
1004 	return RTW_HAL_STATUS_SUCCESS;
1005 }
1006 
rtw_hal_rf_dpk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)1007 enum rtw_hal_status rtw_hal_rf_dpk_trigger(struct hal_info_t *hal_info,
1008 						u8 phy_idx, u8 force)
1009 {
1010 	return RTW_HAL_STATUS_SUCCESS;
1011 }
1012 
rtw_hal_rf_tssi_trigger(struct hal_info_t * hal_info,u8 phy_idx)1013 enum rtw_hal_status rtw_hal_rf_tssi_trigger(struct hal_info_t *hal_info,
1014 						u8 phy_idx)
1015 {
1016 	return RTW_HAL_STATUS_SUCCESS;
1017 }
1018 
rtw_hal_rf_gapk_trigger(struct hal_info_t * hal_info,u8 phy_idx,u8 force)1019 enum rtw_hal_status rtw_hal_rf_gapk_trigger(struct hal_info_t *hal_info,
1020 						u8 phy_idx, u8 force)
1021 {
1022 	return RTW_HAL_STATUS_SUCCESS;
1023 }
1024 
1025 
rtw_hal_rf_set_capability_dack(struct hal_info_t * hal_info,u8 enable)1026 enum rtw_hal_status rtw_hal_rf_set_capability_dack(struct hal_info_t *hal_info,
1027 						u8 enable)
1028 {
1029 	return RTW_HAL_STATUS_SUCCESS;
1030 }
1031 
rtw_hal_rf_set_capability_iqk(struct hal_info_t * hal_info,u8 enable)1032 enum rtw_hal_status rtw_hal_rf_set_capability_iqk(struct hal_info_t *hal_info,
1033 						u8 enable)
1034 {
1035 	return RTW_HAL_STATUS_SUCCESS;
1036 }
1037 
rtw_hal_rf_set_capability_dpk(struct hal_info_t * hal_info,u8 enable)1038 enum rtw_hal_status rtw_hal_rf_set_capability_dpk(struct hal_info_t *hal_info,
1039 						u8 enable)
1040 {
1041 	return RTW_HAL_STATUS_SUCCESS;
1042 }
1043 
1044 enum rtw_hal_status
rtw_hal_rf_set_capability_dpk_track(struct hal_info_t * hal_info,u8 enable)1045 rtw_hal_rf_set_capability_dpk_track(struct hal_info_t *hal_info, u8 enable)
1046 {
1047 	return RTW_HAL_STATUS_SUCCESS;
1048 }
1049 
1050 
1051 enum rtw_hal_status
rtw_hal_rf_set_capability_tssi(struct hal_info_t * hal_info,u8 enable)1052 rtw_hal_rf_set_capability_tssi(struct hal_info_t *hal_info, u8 enable)
1053 {
1054 	return RTW_HAL_STATUS_SUCCESS;
1055 }
1056 
rtw_hal_rf_set_capability_gapk(struct hal_info_t * hal_info,u8 enable)1057 enum rtw_hal_status rtw_hal_rf_set_capability_gapk(struct hal_info_t *hal_info,
1058 						u8 enable)
1059 {
1060 	return RTW_HAL_STATUS_SUCCESS;
1061 }
1062 
1063 
rtw_hal_rf_get_capability_dack(struct hal_info_t * hal_info,u8 * enable)1064 enum rtw_hal_status rtw_hal_rf_get_capability_dack(struct hal_info_t *hal_info,
1065 						u8 *enable)
1066 {
1067 	return RTW_HAL_STATUS_SUCCESS;
1068 }
1069 
rtw_hal_rf_get_capability_iqk(struct hal_info_t * hal_info,u8 * enable)1070 enum rtw_hal_status rtw_hal_rf_get_capability_iqk(struct hal_info_t *hal_info,
1071 						u8 *enable)
1072 {
1073 	return RTW_HAL_STATUS_SUCCESS;
1074 }
1075 
rtw_hal_rf_get_capability_dpk(struct hal_info_t * hal_info,u8 * enable)1076 enum rtw_hal_status rtw_hal_rf_get_capability_dpk(struct hal_info_t *hal_info,
1077 						u8 *enable)
1078 {
1079 	return RTW_HAL_STATUS_SUCCESS;
1080 }
1081 
1082 enum rtw_hal_status
rtw_hal_rf_get_capability_dpk_track(struct hal_info_t * hal_info,u8 * enable)1083 rtw_hal_rf_get_capability_dpk_track(struct hal_info_t *hal_info, u8 *enable)
1084 {
1085 	return RTW_HAL_STATUS_SUCCESS;
1086 }
1087 
rtw_hal_rf_get_capability_tssi(struct hal_info_t * hal_info,u8 * enable)1088 enum rtw_hal_status rtw_hal_rf_get_capability_tssi(struct hal_info_t *hal_info,
1089 						u8 *enable)
1090 {
1091 	return RTW_HAL_STATUS_SUCCESS;
1092 }
1093 
rtw_hal_rf_get_capability_gapk(struct hal_info_t * hal_info,u8 * enable)1094 enum rtw_hal_status rtw_hal_rf_get_capability_gapk(struct hal_info_t *hal_info,
1095 						u8 *enable)
1096 {
1097 	return RTW_HAL_STATUS_SUCCESS;
1098 }
1099 
1100 
rtw_hal_rf_get_tssi_de_value(struct hal_info_t * hal_info)1101 enum rtw_hal_status rtw_hal_rf_get_tssi_de_value(struct hal_info_t *hal_info)
1102 {
1103 	return RTW_HAL_STATUS_SUCCESS;
1104 }
1105 
rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t * hal_info)1106 enum rtw_hal_status rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t *hal_info)
1107 {
1108 	return RTW_HAL_STATUS_SUCCESS;
1109 }
1110 
rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t * hal_info)1111 enum rtw_hal_status rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t *hal_info)
1112 {
1113 	return RTW_HAL_STATUS_SUCCESS;
1114 }
1115 
rtw_hal_rf_proc_cmd(struct hal_info_t * hal_info,struct rtw_proc_cmd * incmd,char * output,u32 out_len)1116 bool rtw_hal_rf_proc_cmd(struct hal_info_t *hal_info,
1117 				struct rtw_proc_cmd *incmd,
1118 				char *output, u32 out_len)
1119 {
1120 	return true;
1121 }
1122 
rtw_hal_rf_watchdog(struct hal_info_t * hal_info)1123 enum rtw_hal_status rtw_hal_rf_watchdog(struct hal_info_t *hal_info)
1124 {
1125 	return RTW_HAL_STATUS_SUCCESS;
1126 }
1127 enum rtw_hal_status
rtw_hal_rf_set_power(struct hal_info_t * hal_info,enum phl_phy_idx phy,enum phl_pwr_table pwr_table)1128 rtw_hal_rf_set_power(struct hal_info_t *hal_info, enum phl_phy_idx phy,
1129 					enum phl_pwr_table pwr_table)
1130 {
1131 	return RTW_HAL_STATUS_SUCCESS;
1132 }
1133 
rtw_hal_rf_set_gain_offset(struct hal_info_t * hal_info,u8 cur_phy_idx,s8 offset,u8 rf_path)1134 enum rtw_hal_status rtw_hal_rf_set_gain_offset(struct hal_info_t *hal_info, u8 cur_phy_idx,
1135 						s8 offset, u8 rf_path)
1136 {
1137 	return RTW_HAL_STATUS_SUCCESS;
1138 }
1139 
rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t * hal_info)1140 enum rtw_hal_status rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t *hal_info)
1141 {
1142 	return RTW_HAL_STATUS_SUCCESS;
1143 }
1144 
rtw_hal_rf_do_tssi_scan(struct hal_info_t * hal_info,u8 cur_phy_idx)1145 void rtw_hal_rf_do_tssi_scan(struct hal_info_t *hal_info, u8 cur_phy_idx)
1146 {
1147 
1148 }
1149 
1150 enum rtw_hal_status
rtw_hal_rf_config_radio_to_fw(struct hal_info_t * hal_info)1151 rtw_hal_rf_config_radio_to_fw(struct hal_info_t *hal_info)
1152 {
1153 	return RTW_HAL_STATUS_SUCCESS;
1154 }
1155 
1156 
rtw_hal_rf_set_tssi_avg(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 xdbm)1157 enum rtw_hal_status rtw_hal_rf_set_tssi_avg(struct hal_info_t *hal_info, u8 cur_phy_idx,
1158 						s32 xdbm)
1159 {
1160 	return RTW_HAL_STATUS_SUCCESS;
1161 }
1162 
1163 bool
rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)1164 rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
1165 {
1166 	return true;
1167 }
1168 
1169 enum rtw_hal_status
rtw_hal_rf_set_ch_bw(struct hal_info_t * hal_info,enum phl_phy_idx phy,u8 center_ch,enum band_type band,enum channel_width bw)1170 rtw_hal_rf_set_ch_bw(struct hal_info_t *hal_info, enum phl_phy_idx phy, u8 center_ch,
1171 					enum band_type band, enum channel_width bw)
1172 
1173 {
1174 	return RTW_HAL_STATUS_SUCCESS;
1175 }
1176 
1177 /* PSD */
rtw_hal_rf_psd_init(struct hal_info_t * hal_info,u8 cur_phy_idx,u8 path,u8 iq_path,u32 avg,u32 fft)1178 enum rtw_hal_status rtw_hal_rf_psd_init(struct hal_info_t *hal_info, u8 cur_phy_idx,
1179 					u8 path, u8 iq_path, u32 avg, u32 fft)
1180 {
1181 	return RTW_HAL_STATUS_SUCCESS;
1182 }
1183 
rtw_hal_rf_psd_restore(struct hal_info_t * hal_info,u8 cur_phy_idx)1184 enum rtw_hal_status rtw_hal_rf_psd_restore(struct hal_info_t *hal_info, u8 cur_phy_idx)
1185 {
1186 	return RTW_HAL_STATUS_SUCCESS;
1187 }
1188 
rtw_hal_rf_psd_get_point_data(struct hal_info_t * hal_info,u8 cur_phy_idx,s32 point,u32 * value)1189 enum rtw_hal_status rtw_hal_rf_psd_get_point_data(struct hal_info_t *hal_info, u8 cur_phy_idx,
1190 					s32 point, u32 *value)
1191 {
1192 	return RTW_HAL_STATUS_SUCCESS;
1193 }
1194 
rtw_hal_rf_psd_query(struct hal_info_t * hal_info,u8 cur_phy_idx,u32 point,u32 start_point,u32 stop_point,u32 * outbuf)1195 enum rtw_hal_status rtw_hal_rf_psd_query(struct hal_info_t *hal_info, u8 cur_phy_idx,
1196 					u32 point, u32 start_point, u32 stop_point, u32 *outbuf)
1197 {
1198 	return RTW_HAL_STATUS_SUCCESS;
1199 }
1200 
1201 void
rtw_hal_rf_disconnect_notify(void * hal,struct rtw_chan_def * chandef)1202 rtw_hal_rf_disconnect_notify(void *hal, struct rtw_chan_def *chandef)
1203 {
1204 }
1205 
1206 bool
rtw_hal_rf_check_mcc_ch(void * hal,struct rtw_chan_def * chandef)1207 rtw_hal_rf_check_mcc_ch(void *hal, struct rtw_chan_def *chandef)
1208 {
1209 	return false;
1210 }
1211 
1212 void
rtw_hal_rf_dpk_switch(void * hal,bool enable)1213 rtw_hal_rf_dpk_switch(void *hal, bool enable)
1214 {
1215 
1216 }
1217 
1218 void
rtw_hal_rf_tssi_config(void * hal,enum phl_phy_idx phy_idx,bool enable)1219 rtw_hal_rf_tssi_config(void *hal, enum phl_phy_idx phy_idx, bool enable)
1220 {
1221 
1222 }
1223 
1224 void
rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx)1225 rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx)
1226 {
1227 }
1228 
1229 void
rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,u8 pwrbyrate_type,u8 pwrlmt_type)1230 rtw_hal_rf_set_power_table_switch(struct rtw_hal_com_t *hal_com,
1231 				enum phl_phy_idx phy_idx,
1232 				u8 pwrbyrate_type, u8 pwrlmt_type)
1233 {
1234 	return;
1235 }
1236 
rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char * str)1237 int rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char *str)
1238 {
1239 	return -1;
1240 }
1241 
rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 * num)1242 const char * const *rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 *num)
1243 {
1244 	return NULL;
1245 }
1246 
rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t * hal_info,enum band_type band)1247 const char *rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t *hal_info, enum band_type band)
1248 {
1249 	return NULL;
1250 }
1251 
rtw_hal_rf_rx_ant(struct hal_info_t * hal_info,u8 ant)1252 void rtw_hal_rf_rx_ant(struct hal_info_t *hal_info, /*enum halrf_ant*/u8 ant)
1253 {
1254 
1255 }
1256 
1257 enum halrf_thermal_status
rtw_hal_rf_get_ther_protected_threshold(struct hal_info_t * hal_info)1258 rtw_hal_rf_get_ther_protected_threshold(
1259 	struct hal_info_t *hal_info
1260 )
1261 {
1262 	return HALRF_THERMAL_STATUS_BELOW_THRESHOLD;
1263 }
1264 
rtw_hal_rf_notification(struct hal_info_t * hal_info,enum phl_msg_evt_id event,enum phl_phy_idx phy_idx)1265 void rtw_hal_rf_notification(struct hal_info_t *hal_info,
1266                              enum phl_msg_evt_id event,
1267                              enum phl_phy_idx phy_idx)
1268 {
1269 	return;
1270 }
1271 
1272 void
rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t * hal_com,enum phl_phy_idx phy_idx,enum rf_path path)1273 rtw_hal_rf_tssi_scan_ch(struct rtw_hal_com_t *hal_com,
1274 		enum phl_phy_idx phy_idx, enum rf_path path)
1275 
1276 {
1277 	return;
1278 }
1279 
rtw_hal_rf_get_power_limit(void * hal,enum phl_phy_idx phy,u16 rate,u8 bandwidth,u8 beamforming,u8 tx_num,u8 channel)1280 s8 rtw_hal_rf_get_power_limit(void *hal, enum phl_phy_idx phy,
1281 	u16 rate, u8 bandwidth, u8 beamforming, u8 tx_num, u8 channel)
1282 {
1283 	return 0;
1284 }
1285 
rtw_hal_rf_cmd_notification(struct hal_info_t * hal_info,void * hal_cmd,enum phl_phy_idx phy_idx)1286 void rtw_hal_rf_cmd_notification(struct hal_info_t *hal_info,
1287                              void *hal_cmd,
1288                              enum phl_phy_idx phy_idx)
1289 {
1290 
1291 }
1292 #endif /*ifdef USE_TRUE_PHY*/
1293