1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _HALMAC_FUNC_88XX_H_
3 #define _HALMAC_FUNC_88XX_H_
4 
5 #include "../halmac_type.h"
6 
7 
8 HALMAC_RET_STATUS
9 halmac_send_h2c_pkt_88xx(
10 	IN PHALMAC_ADAPTER pHalmac_adapter,
11 	IN u8 *pHal_buff,
12 	IN u32 size,
13 	IN u8 ack
14 );
15 
16 HALMAC_RET_STATUS
17 halmac_download_rsvd_page_88xx(
18 	IN PHALMAC_ADAPTER pHalmac_adapter,
19 	IN u8 *pHal_buf,
20 	IN u32 size
21 );
22 
23 HALMAC_RET_STATUS
24 halmac_set_h2c_header_88xx(
25 	IN PHALMAC_ADAPTER pHalmac_adapter,
26 	OUT u8 *pHal_h2c_hdr,
27 	IN u16 *seq,
28 	IN u8 ack
29 );
30 
31 HALMAC_RET_STATUS
32 halmac_set_fw_offload_h2c_header_88xx(
33 	IN PHALMAC_ADAPTER pHalmac_adapter,
34 	OUT u8 *pHal_h2c_hdr,
35 	IN PHALMAC_H2C_HEADER_INFO pH2c_header_info,
36 	OUT u16 *pSeq_num
37 );
38 
39 HALMAC_RET_STATUS
40 halmac_dump_efuse_88xx(
41 	IN PHALMAC_ADAPTER pHalmac_adapter,
42 	IN HALMAC_EFUSE_READ_CFG cfg
43 );
44 
45 HALMAC_RET_STATUS
46 halmac_func_read_efuse_88xx(
47 	IN PHALMAC_ADAPTER pHalmac_adapter,
48 	IN u32 offset,
49 	IN u32 size,
50 	OUT u8 *pEfuse_map
51 );
52 
53 HALMAC_RET_STATUS
54 halmac_func_write_efuse_88xx(
55 	IN PHALMAC_ADAPTER pHalmac_adapter,
56 	IN u32 offset,
57 	IN u8 value
58 );
59 
60 HALMAC_RET_STATUS
61 halmac_func_switch_efuse_bank_88xx(
62 	IN PHALMAC_ADAPTER pHalmac_adapter,
63 	IN HALMAC_EFUSE_BANK efuse_bank
64 );
65 
66 HALMAC_RET_STATUS
67 halmac_read_logical_efuse_map_88xx(
68 	IN PHALMAC_ADAPTER pHalmac_adapter,
69 	IN u8 *pMap
70 );
71 
72 HALMAC_RET_STATUS
73 halmac_func_write_logical_efuse_88xx(
74 	IN PHALMAC_ADAPTER pHalmac_adapter,
75 	IN u32 offset,
76 	IN u8 value
77 );
78 
79 HALMAC_RET_STATUS
80 halmac_func_pg_efuse_by_map_88xx(
81 	IN PHALMAC_ADAPTER pHalmac_adapter,
82 	IN PHALMAC_PG_EFUSE_INFO pPg_efuse_info,
83 	IN HALMAC_EFUSE_READ_CFG cfg
84 );
85 
86 HALMAC_RET_STATUS
87 halmac_eeprom_parser_88xx(
88 	IN PHALMAC_ADAPTER pHalmac_adapter,
89 	IN u8 *pPhysical_efuse_map,
90 	OUT u8 *pLogical_efuse_map
91 );
92 
93 HALMAC_RET_STATUS
94 halmac_read_hw_efuse_88xx(
95 	IN PHALMAC_ADAPTER pHalmac_adapter,
96 	IN u32 offset,
97 	IN u32 size,
98 	OUT u8 *pEfuse_map
99 );
100 
101 HALMAC_RET_STATUS
102 halmac_dlfw_to_mem_88xx(
103 	IN PHALMAC_ADAPTER pHalmac_adapter,
104 	IN u8 *pRam_code,
105 	IN u32 dest,
106 	IN u32 code_size
107 );
108 
109 HALMAC_RET_STATUS
110 halmac_send_fwpkt_88xx(
111 	IN PHALMAC_ADAPTER pHalmac_adapter,
112 	IN u8 *pRam_code,
113 	IN u32 code_size
114 );
115 
116 HALMAC_RET_STATUS
117 halmac_iddma_dlfw_88xx(
118 	IN PHALMAC_ADAPTER pHalmac_adapter,
119 	IN u32 source,
120 	IN u32 dest,
121 	IN u32 length,
122 	IN u8 first
123 );
124 
125 HALMAC_RET_STATUS
126 halmac_check_fw_chksum_88xx(
127 	IN PHALMAC_ADAPTER pHalmac_adapter,
128 	IN u32 memory_address
129 );
130 
131 HALMAC_RET_STATUS
132 halmac_dlfw_end_flow_88xx(
133 	IN PHALMAC_ADAPTER pHalmac_adapter
134 );
135 
136 HALMAC_RET_STATUS
137 halmac_pwr_seq_parser_88xx(
138 	IN PHALMAC_ADAPTER pHalmac_adapter,
139 	IN u8 CUT,
140 	IN u8 FAB,
141 	IN u8 INTF,
142 	IN PHALMAC_WLAN_PWR_CFG PWR_SEQ_CFG
143 );
144 
145 HALMAC_RET_STATUS
146 halmac_get_h2c_buff_free_space_88xx(
147 	IN PHALMAC_ADAPTER pHalmac_adapter
148 );
149 
150 HALMAC_RET_STATUS
151 halmac_send_h2c_set_pwr_mode_88xx(
152 	IN PHALMAC_ADAPTER pHalmac_adapter,
153 	IN PHALMAC_FWLPS_OPTION pHal_FwLps_Opt
154 );
155 
156 HALMAC_RET_STATUS
157 halmac_func_send_original_h2c_88xx(
158 	IN PHALMAC_ADAPTER pHalmac_adapter,
159 	IN u8 *original_h2c,
160 	IN u16 *seq,
161 	IN u8 ack
162 );
163 
164 HALMAC_RET_STATUS
165 halmac_media_status_rpt_88xx(
166 	IN PHALMAC_ADAPTER pHalmac_adapter,
167 	IN u8 op_mode,
168 	IN u8 mac_id_ind,
169 	IN u8 mac_id,
170 	IN u8 mac_id_end
171 );
172 
173 HALMAC_RET_STATUS
174 halmac_send_h2c_update_datapack_88xx(
175 	IN PHALMAC_ADAPTER pHalmac_adapter,
176 	IN HALMAC_DATA_TYPE halmac_data_type,
177 	IN PHALMAC_PHY_PARAMETER_INFO para_info
178 );
179 
180 HALMAC_RET_STATUS
181 halmac_send_h2c_run_datapack_88xx(
182 	IN PHALMAC_ADAPTER pHalmac_adapter,
183 	IN HALMAC_DATA_TYPE halmac_data_type
184 );
185 
186 HALMAC_RET_STATUS
187 halmac_send_bt_coex_cmd_88xx(
188 	IN PHALMAC_ADAPTER pHalmac_adapter,
189 	IN u8 *pBt_buf,
190 	IN u32 bt_size,
191 	IN u8 ack
192 );
193 
194 HALMAC_RET_STATUS
195 halmac_func_ctrl_ch_switch_88xx(
196 	IN PHALMAC_ADAPTER pHalmac_adapter,
197 	IN PHALMAC_CH_SWITCH_OPTION pCs_option
198 );
199 
200 HALMAC_RET_STATUS
201 halmac_func_send_general_info_88xx(
202 	IN PHALMAC_ADAPTER pHalmac_adapter,
203 	IN PHALMAC_GENERAL_INFO pGeneral_info
204 );
205 
206 HALMAC_RET_STATUS
207 halmac_send_h2c_ps_tuning_para_88xx(
208 	IN PHALMAC_ADAPTER pHalmac_adapter
209 );
210 
211 HALMAC_RET_STATUS
212 halmac_parse_c2h_packet_88xx(
213 	IN PHALMAC_ADAPTER pHalmac_adapter,
214 	IN u8 *halmac_buf,
215 	IN u32 halmac_size
216 );
217 
218 HALMAC_RET_STATUS
219 halmac_send_h2c_update_packet_88xx(
220 	IN PHALMAC_ADAPTER pHalmac_adapter,
221 	IN HALMAC_PACKET_ID pkt_id,
222 	IN u8 *pkt,
223 	IN u32 pkt_size
224 );
225 
226 HALMAC_RET_STATUS
227 halmac_send_h2c_phy_parameter_88xx(
228 	IN PHALMAC_ADAPTER pHalmac_adapter,
229 	IN PHALMAC_PHY_PARAMETER_INFO para_info,
230 	IN u8 full_fifo
231 );
232 
233 HALMAC_RET_STATUS
234 halmac_dump_physical_efuse_fw_88xx(
235 	IN PHALMAC_ADAPTER pHalmac_adapter,
236 	IN u32 offset,
237 	IN u32 Size,
238 	OUT u8 *pEfuse_map
239 );
240 
241 HALMAC_RET_STATUS
242 halmac_send_h2c_update_bcn_parse_info_88xx(
243 	IN PHALMAC_ADAPTER pHalmac_adapter,
244 	IN PHALMAC_BCN_IE_INFO pBcn_ie_info
245 );
246 
247 HALMAC_RET_STATUS
248 halmac_convert_to_sdio_bus_offset_88xx(
249 	IN PHALMAC_ADAPTER pHalmac_adapter,
250 	INOUT u32 *halmac_offset
251 );
252 
253 HALMAC_RET_STATUS
254 halmac_update_sdio_free_page_88xx(
255 	IN PHALMAC_ADAPTER pHalmac_adapter
256 );
257 
258 HALMAC_RET_STATUS
259 halmac_update_oqt_free_space_88xx(
260 	IN PHALMAC_ADAPTER pHalmac_adapter
261 );
262 
263 HALMAC_EFUSE_CMD_CONSTRUCT_STATE
264 halmac_query_efuse_curr_state_88xx(
265 	IN PHALMAC_ADAPTER pHalmac_adapter
266 );
267 
268 HALMAC_RET_STATUS
269 halmac_transition_efuse_state_88xx(
270 	IN PHALMAC_ADAPTER pHalmac_adapter,
271 	IN HALMAC_EFUSE_CMD_CONSTRUCT_STATE dest_state
272 );
273 
274 HALMAC_CFG_PARA_CMD_CONSTRUCT_STATE
275 halmac_query_cfg_para_curr_state_88xx(
276 	IN PHALMAC_ADAPTER pHalmac_adapter
277 );
278 
279 HALMAC_RET_STATUS
280 halmac_transition_cfg_para_state_88xx(
281 	IN PHALMAC_ADAPTER pHalmac_adapter,
282 	IN HALMAC_CFG_PARA_CMD_CONSTRUCT_STATE dest_state
283 );
284 
285 HALMAC_SCAN_CMD_CONSTRUCT_STATE
286 halmac_query_scan_curr_state_88xx(
287 	IN PHALMAC_ADAPTER pHalmac_adapter
288 );
289 
290 HALMAC_RET_STATUS
291 halmac_transition_scan_state_88xx(
292 	IN PHALMAC_ADAPTER pHalmac_adapter,
293 	IN HALMAC_SCAN_CMD_CONSTRUCT_STATE dest_state
294 );
295 
296 HALMAC_RET_STATUS
297 halmac_query_cfg_para_status_88xx(
298 	IN PHALMAC_ADAPTER pHalmac_adapter,
299 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
300 	INOUT u8 *data,
301 	INOUT u32 *size
302 );
303 
304 HALMAC_RET_STATUS
305 halmac_query_dump_physical_efuse_status_88xx(
306 	IN PHALMAC_ADAPTER pHalmac_adapter,
307 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
308 	INOUT u8 *data,
309 	INOUT u32 *size
310 );
311 
312 HALMAC_RET_STATUS
313 halmac_query_dump_logical_efuse_status_88xx(
314 	IN PHALMAC_ADAPTER pHalmac_adapter,
315 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
316 	INOUT u8 *data,
317 	INOUT u32 *size
318 );
319 
320 HALMAC_RET_STATUS
321 halmac_query_channel_switch_status_88xx(
322 	IN PHALMAC_ADAPTER pHalmac_adapter,
323 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
324 	INOUT u8 *data,
325 	INOUT u32 *size
326 );
327 
328 HALMAC_RET_STATUS
329 halmac_query_update_packet_status_88xx(
330 	IN PHALMAC_ADAPTER pHalmac_adapter,
331 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
332 	INOUT u8 *data,
333 	INOUT u32 *size
334 );
335 
336 HALMAC_RET_STATUS
337 halmac_query_iqk_status_88xx(
338 	IN PHALMAC_ADAPTER pHalmac_adapter,
339 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
340 	INOUT u8 *data,
341 	INOUT u32 *size
342 );
343 
344 HALMAC_RET_STATUS
345 halmac_query_power_tracking_status_88xx(
346 	IN PHALMAC_ADAPTER pHalmac_adapter,
347 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
348 	INOUT u8 *data,
349 	INOUT u32 *size
350 );
351 
352 HALMAC_RET_STATUS
353 halmac_query_psd_status_88xx(
354 	IN PHALMAC_ADAPTER pHalmac_adapter,
355 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
356 	INOUT u8 *data,
357 	INOUT u32 *size
358 );
359 
360 HALMAC_RET_STATUS
361 halmac_verify_io_88xx(
362 	IN PHALMAC_ADAPTER pHalmac_adapter
363 );
364 
365 HALMAC_RET_STATUS
366 halmac_verify_send_rsvd_page_88xx(
367 	IN PHALMAC_ADAPTER pHalmac_adapter
368 );
369 
370 VOID
371 halmac_power_save_cb_88xx(
372 	IN VOID *CbData
373 );
374 
375 HALMAC_RET_STATUS
376 halmac_buffer_read_88xx(
377 	IN PHALMAC_ADAPTER pHalmac_adapter,
378 	IN u32 offset,
379 	IN u32 size,
380 	IN HAL_FIFO_SEL halmac_fifo_sel,
381 	OUT u8 *pFifo_map
382 );
383 
384 VOID
385 halmac_restore_mac_register_88xx(
386 	IN PHALMAC_ADAPTER pHalmac_adapter,
387 	IN PHALMAC_RESTORE_INFO pRestore_info,
388 	IN u32 restore_num
389 );
390 
391 VOID
392 halmac_api_record_id_88xx(
393 	IN PHALMAC_ADAPTER pHalmac_adapter,
394 	IN HALMAC_API_ID api_id
395 );
396 
397 VOID
398 halmac_get_hcpwm_88xx(
399 	IN PHALMAC_ADAPTER pHalmac_adapter,
400 	OUT u8 *pHcpwm
401 );
402 
403 VOID
404 halmac_get_hcpwm2_88xx(
405 	IN PHALMAC_ADAPTER pHalmac_adapter,
406 	OUT u16 *pHcpwm2
407 );
408 
409 VOID
410 halmac_set_hrpwm_88xx(
411 	IN PHALMAC_ADAPTER pHalmac_adapter,
412 	IN u8 hrpwm
413 );
414 
415 VOID
416 halmac_set_hrpwm2_88xx(
417 	IN PHALMAC_ADAPTER pHalmac_adapter,
418 	IN u16 hrpwm2
419 );
420 
421 #endif /* _HALMAC_FUNC_88XX_H_ */
422