1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2016  Realtek Corporation.
5  *
6  * Contact Information:
7  * wlanfae <wlanfae@realtek.com>
8  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
9  * Hsinchu 300, Taiwan.
10  *
11  * Larry Finger <Larry.Finger@lwfinger.net>
12  *
13  *****************************************************************************/
14 #ifndef _HALMAC_API_88XX_SDIO_H_
15 #define _HALMAC_API_88XX_SDIO_H_
16 
17 #include "../halmac_2_platform.h"
18 #include "../halmac_type.h"
19 
20 enum halmac_ret_status
21 halmac_init_sdio_cfg_88xx(struct halmac_adapter *halmac_adapter);
22 
23 enum halmac_ret_status
24 halmac_deinit_sdio_cfg_88xx(struct halmac_adapter *halmac_adapter);
25 
26 enum halmac_ret_status
27 halmac_cfg_rx_aggregation_88xx_sdio(struct halmac_adapter *halmac_adapter,
28 				    struct halmac_rxagg_cfg *phalmac_rxagg_cfg);
29 
30 u8 halmac_reg_read_8_sdio_88xx(struct halmac_adapter *halmac_adapter,
31 			       u32 halmac_offset);
32 
33 enum halmac_ret_status
34 halmac_reg_write_8_sdio_88xx(struct halmac_adapter *halmac_adapter,
35 			     u32 halmac_offset, u8 halmac_data);
36 
37 u16 halmac_reg_read_16_sdio_88xx(struct halmac_adapter *halmac_adapter,
38 				 u32 halmac_offset);
39 
40 enum halmac_ret_status
41 halmac_reg_write_16_sdio_88xx(struct halmac_adapter *halmac_adapter,
42 			      u32 halmac_offset, u16 halmac_data);
43 
44 u32 halmac_reg_read_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
45 				 u32 halmac_offset);
46 
47 enum halmac_ret_status
48 halmac_reg_write_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
49 			      u32 halmac_offset, u32 halmac_data);
50 
51 enum halmac_ret_status
52 halmac_get_sdio_tx_addr_88xx(struct halmac_adapter *halmac_adapter,
53 			     u8 *halmac_buf, u32 halmac_size, u32 *pcmd53_addr);
54 
55 enum halmac_ret_status
56 halmac_cfg_tx_agg_align_sdio_88xx(struct halmac_adapter *halmac_adapter,
57 				  u8 enable, u16 align_size);
58 
59 enum halmac_ret_status halmac_cfg_tx_agg_align_sdio_not_support_88xx(
60 	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size);
61 
62 enum halmac_ret_status
63 halmac_tx_allowed_sdio_88xx(struct halmac_adapter *halmac_adapter,
64 			    u8 *halmac_buf, u32 halmac_size);
65 
66 u32 halmac_reg_read_indirect_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
67 					  u32 halmac_offset);
68 
69 u8 halmac_reg_read_nbyte_sdio_88xx(struct halmac_adapter *halmac_adapter,
70 				   u32 halmac_offset, u32 halmac_size,
71 				   u8 *halmac_data);
72 
73 #endif /* _HALMAC_API_88XX_SDIO_H_ */
74