hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
/******************************************************************************
 *
 * Copyright(c) 2019 Realtek Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 *****************************************************************************/
#ifndef _HAL_API_RF_H_
#define _HAL_API_RF_H_
 
enum halrf_thermal_status{
   HALRF_THERMAL_STATUS_BELOW_THRESHOLD,
   HALRF_THERMAL_STATUS_STAY_THRESHOLD,
   HALRF_THERMAL_STATUS_ABOVE_THRESHOLD,
   HALRF_THERMAL_STATUS_UNKNOWN
};
 
enum rtw_hal_status
rtw_hal_rf_init(struct rtw_phl_com_t *phl_com,
           struct hal_info_t *hal_info);
 
void rtw_hal_rf_deinit(struct rtw_phl_com_t *phl_com,
           struct hal_info_t *hal_info);
 
void rtw_hal_init_rf_reg(struct rtw_phl_com_t *phl_com, void *hal);
 
enum rtw_hal_status rtw_hal_rf_get_pwrtrack(struct hal_info_t *hal_info, u8 *txpwr_track_status, u8 phy_idx);
 
void rtw_hal_rf_dm_init(struct hal_info_t *hal_info);
 
enum rtw_hal_status rtw_hal_rf_set_pwrtrack(struct hal_info_t *hal_info, u8 phy_idx, u8 txpwr_track_status);
 
void rtw_hal_rf_dm_init(struct hal_info_t *hal_info);
 
enum rtw_hal_status rtw_hal_rf_get_thermal(struct hal_info_t *hal_info, u8 rf_path, u8 *thermal);
 
enum rtw_hal_status rtw_hal_rf_set_tssi(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path, u32 tssi_de);
 
enum rtw_hal_status rtw_hal_rf_get_tssi(struct hal_info_t *hal_info, u8 phy_idx, u8 rf_path, u32 *tssi);
 
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);
 
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);
 
enum rtw_hal_status rtw_hal_rf_set_continuous_tx(struct hal_info_t *hal_info);
 
enum rtw_hal_status
rtw_hal_rf_set_singletone_tx(struct hal_info_t *hal_info,
                            u8 is_on,enum rf_path path);
 
enum rtw_hal_status rtw_hal_rf_set_suppression_tx(struct hal_info_t *hal_info);
 
enum rtw_hal_status
rtw_hal_rf_chl_rfk_trigger(struct rtw_hal_com_t *hal_com,
                           u8 phy_idx,
                           enum rfk_tri_type rt_type);
 
enum rtw_hal_status rtw_hal_rf_dack_trigger(struct hal_info_t *hal_info,
              u8 force);
 
 
enum rtw_hal_status rtw_hal_rf_iqk_trigger(struct hal_info_t *hal_info,
              u8 phy_idx, u8 force);
 
 
enum rtw_hal_status rtw_hal_rf_lck_trigger(struct hal_info_t *hal_info);
 
 
enum rtw_hal_status rtw_hal_rf_dpk_trigger(struct hal_info_t *hal_info,
              u8 phy_idx, u8 force);
 
 
enum rtw_hal_status rtw_hal_rf_tssi_trigger(struct hal_info_t *hal_info,
               u8 phy_idx);
 
 
enum rtw_hal_status rtw_hal_rf_gapk_trigger(struct hal_info_t *hal_info,
              u8 phy_idx, u8 force);
 
 
enum rtw_hal_status rtw_hal_rf_set_capability_dack(struct hal_info_t *hal_info,
               u8 enable);
 
 
enum rtw_hal_status rtw_hal_rf_set_capability_iqk(struct hal_info_t *hal_info,
               u8 enable);
 
 
enum rtw_hal_status rtw_hal_rf_set_capability_dpk(struct hal_info_t *hal_info,
              u8 enable);
 
 
enum rtw_hal_status rtw_hal_rf_set_capability_dpk_track(struct hal_info_t *hal_info,
              u8 enable);
 
 
 
enum rtw_hal_status rtw_hal_rf_set_capability_tssi(struct hal_info_t *hal_info,
               u8 enable);
 
 
enum rtw_hal_status rtw_hal_rf_set_capability_gapk(struct hal_info_t *hal_info,
              u8 enable);
 
 
enum rtw_hal_status rtw_hal_rf_get_capability_dack(struct hal_info_t *hal_info,
               u8 *enable);
 
 
enum rtw_hal_status rtw_hal_rf_get_capability_iqk(struct hal_info_t *hal_info,
               u8 *enable);
 
 
enum rtw_hal_status rtw_hal_rf_get_capability_dpk(struct hal_info_t *hal_info,
              u8 *enable);
 
 
enum rtw_hal_status rtw_hal_rf_get_capability_dpk_track(struct hal_info_t *hal_info,
               u8 *enable);
 
 
enum rtw_hal_status rtw_hal_rf_get_capability_tssi(struct hal_info_t *hal_info,
               u8 *enable);
 
 
enum rtw_hal_status rtw_hal_rf_get_capability_gapk(struct hal_info_t *hal_info,
              u8 *enable);
 
enum rtw_hal_status rtw_hal_rf_get_tssi_de_value(struct hal_info_t *hal_info);
 
enum rtw_hal_status rtw_hal_rf_set_tssi_de_tx_verify(struct hal_info_t *hal_info);
 
enum rtw_hal_status rtw_hal_rf_get_txpwr_final_abs(struct hal_info_t *hal_info);
 
int rtw_hal_rf_get_predefined_pw_lmt_regu_type_from_str(const char *str);
const char * const *rtw_hal_rf_get_predefined_pw_lmt_regu_type_str_array(u8 *num);
 
u8 rtw_hal_rf_get_pw_lmt_regu_type(struct hal_info_t *hal_info, enum band_type band);
const char *rtw_hal_rf_get_pw_lmt_regu_type_str(struct hal_info_t *hal_info, enum band_type band);
 
bool rtw_hal_rf_pw_lmt_regu_tbl_exist(struct hal_info_t *hal_info, enum band_type band, u8 regu);
int rtw_hal_rf_file_regd_ext_search(struct hal_info_t *hal_info, u16 domain_code, const char *country);
 
void rtw_hal_rf_auto_pw_lmt_regu(struct hal_info_t *hal_info);
void rtw_hal_rf_force_pw_lmt_regu(struct hal_info_t *hal_info,
   u8 regu_2g[], u8 regu_2g_len, u8 regu_5g[], u8 regu_5g_len, u8 regu_6g[], u8 regu_6g_len);
 
bool
rtw_hal_rf_proc_cmd(struct hal_info_t *hal_info,
                   struct rtw_proc_cmd *incmd,
                   char *output, u32 out_len);
 
enum rtw_hal_status
rtw_hal_rf_recover(struct hal_info_t *hal_info, u32 offset, u32 val, enum rf_path path);
 
enum rtw_hal_status rtw_hal_rf_watchdog(struct hal_info_t *hal_info);
 
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);
 
enum rtw_hal_status
rtw_hal_rf_set_power_constraint(struct hal_info_t *hal_info, enum phl_phy_idx phy,
                   u16 mb);
 
enum rtw_hal_status rtw_hal_rf_set_gain_offset(struct hal_info_t *hal_info, u8 cur_phy_idx,
                       s8 offset, u8 rf_path);
 
enum rtw_hal_status rtw_hal_rf_trigger_dpk_tracking(struct hal_info_t *hal_info);
 
enum rtw_hal_status
rtw_hal_rf_get_default_rfe_type(struct rtw_hal_com_t *hal_com);
 
enum rtw_hal_status
rtw_hal_rf_get_default_xtal(struct rtw_hal_com_t *hal_com);
 
 
enum rtw_hal_status rtw_hal_rf_set_tssi_avg(struct hal_info_t *hal_info, u8 cur_phy_idx,
                       s32 xdbm);
void
rtw_hal_rf_do_tssi_scan(struct hal_info_t *hal_ionfo, u8 cur_phy_idx);
 
void
rtw_hal_rf_update_ext_pwr_lmt_table(struct hal_info_t *hal_info,
                         enum phl_phy_idx phy);
 
enum rtw_hal_status
rtw_hal_rf_config_radio_to_fw(struct hal_info_t *hal_info);
 
bool
rtw_hal_rf_check_efuse_data(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx);
 
void
rtw_hal_rf_disconnect_notify(void *hal, struct rtw_chan_def *chandef);
 
bool
rtw_hal_rf_check_mcc_ch(void *hal, struct rtw_chan_def *chandef);
 
void
rtw_hal_rf_dpk_switch(void *hal, bool enable);
 
void
rtw_hal_rf_tssi_config(void *hal, enum phl_phy_idx phy_idx, bool enable);
 
 
enum rtw_hal_status
rtw_hal_rf_set_ch_bw(struct rtw_hal_com_t *hal_com,
                     enum phl_phy_idx phy,
                     u8 center_ch,
                     enum band_type band,
                     enum channel_width bw);
 
void
rtw_hal_rf_get_efuse_ex(struct rtw_hal_com_t *hal_com, enum phl_phy_idx phy_idx);
 
 
/* PSD */
enum rtw_hal_status rtw_hal_rf_psd_init(struct hal_info_t *hal_info, u8 cur_phy_idx,
                   u8 path, u8 iq_path, u32 avg, u32 fft);
 
enum rtw_hal_status rtw_hal_rf_psd_restore(struct hal_info_t *hal_info, u8 cur_phy_idx);
 
enum rtw_hal_status rtw_hal_rf_psd_get_point_data(struct hal_info_t *hal_info, u8 cur_phy_idx,
                   s32 point, u32 *value);
 
enum rtw_hal_status 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);
 
enum rtw_hal_status rtw_hal_rf_bfer_cfg(struct hal_info_t *hal_info);
 
void rtw_hal_rf_rx_ant(struct hal_info_t *hal_info, /*enum halrf_ant*/ u8 ant);
 
enum halrf_thermal_status
rtw_hal_rf_get_ther_protected_threshold(
   struct hal_info_t *hal_info
);
 
void rtw_hal_rf_notification(struct hal_info_t *hal_info,
                enum phl_msg_evt_id event,
                enum phl_phy_idx phy_idx);
 
void rtw_hal_rf_cmd_notification(struct hal_info_t *hal_info,
                             void *hal_cmd,
                             enum phl_phy_idx phy_idx);
 
enum rtw_hal_status
rtw_hal_rf_syn_config(struct rtw_hal_com_t *hal_com,
                      u8 syn_id,
                      enum phl_phy_idx phy_idx,
                      u8 path,
                      bool turn_on);
void
rtw_hal_rf_set_mp_regulation(struct hal_info_t *hal_info,
       enum phl_phy_idx phy_idx, u8 regulation);
 
void rtw_hal_rf_test_event_trigger(struct hal_info_t *hal_info,
               enum phl_phy_idx phy_idx,
               u8 event,
               u8 func,
               u32 *buf);
 
void rtw_hal_rf_test_event_trigger(struct hal_info_t *hal_info,
               enum phl_phy_idx phy_idx,
               u8 event,
               u8 func,
               u32 *buf);
 
s8 rtw_hal_rf_get_power_limit(struct hal_info_t *hal_info,
   enum phl_phy_idx phy, u16 rate, u8 bandwidth,
   u8 beamforming, u8 tx_num, u8 channel);
s8 rtw_hal_rf_get_power_by_rate_band(struct hal_info_t *hal_info, enum phl_phy_idx phy,
   u16 rate, u8 dcm, u8 offset, u32 band);
s8 rtw_hal_rf_get_power_limit_option(struct hal_info_t *hal_info, enum phl_phy_idx phy, u8 rf_path,
   u16 rate, u8 bandwidth, u8 beamforming, u8 tx_num, u8 channel, u32 band, u8 reg);
u8 rtw_hal_rf_get_tx_tbl_to_tx_pwr_times(struct hal_info_t *hal_info);
 
void rtw_hal_rf_rfe_ant_num_chk(struct rtw_hal_com_t *hal_com);
 
u8 rtw_hal_rf_get_tx_tbl_to_pwr_times(struct hal_info_t *hal_info);
void rtw_hal_rf_set_tx_pwr_comp(struct hal_info_t *hal_info,
           enum phl_phy_idx phy,
           struct rtw_phl_regu_dyn_ant_gain *dyn_ag);
 
void
rtw_hal_rf_cfg_tx_by_bt_link(struct hal_info_t *hal_info , u8 is_bt_link);
 
u32 rtw_hal_rf_process_c2h(void *hal, struct rtw_c2h_info *c2h, struct c2h_evt_msg *c2h_msg);
 
enum rtw_hal_status
rtw_hal_rf_ic_hw_setting_init(struct hal_info_t *hal_info);
 
#endif /*_HAL_API_RF_H_*/