xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852be/phl/hal_g6/hal_api_efuse.h (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 #ifndef _HAL_API_EFUSE_H_
16 #define _HAL_API_EFUSE_H_
17 
18 /* efuse exported API */
19 /* WIFI EFUSE */
20 enum rtw_hal_status rtw_hal_efuse_init(struct rtw_phl_com_t *phl_com,
21 					struct hal_info_t *hal_info);
22 void rtw_hal_efuse_deinit(struct rtw_phl_com_t *phl_com,
23 					struct hal_info_t *hal_info);
24 void rtw_hal_efuse_process(struct hal_info_t *hal_info, char *ic_name);
25 enum rtw_hal_status
26 rtw_hal_efuse_shadow_load(struct hal_info_t *hal_info, bool is_limit);
27 enum rtw_hal_status
28 rtw_hal_efuse_shadow_read(struct hal_info_t *hal_info, u8 byte_count,
29 						  u16 offset, u32 *value, bool is_limit);
30 enum rtw_hal_status
31 rtw_hal_efuse_shadow_write(struct hal_info_t *hal_info, u8 byte_count,
32 						   u16 offset, u32 value, bool is_limit);
33 enum rtw_hal_status
34 rtw_hal_efuse_shadow_update(struct hal_info_t *hal_info, bool is_limit);
35 enum rtw_hal_status rtw_hal_efuse_shadow2buf(struct hal_info_t *hal_info,
36 	u8 *pbuf, u16 buflen);
37 enum rtw_hal_status rtw_hal_efuse_file_map_load(struct hal_info_t *hal_info,
38 	char *file_path, u8 is_limit);
39 enum rtw_hal_status rtw_hal_efuse_file_mask_load(struct hal_info_t *hal_info,
40 	char *file_path, u8 is_limit);
41 enum rtw_hal_status rtw_hal_efuse_get_usage(struct hal_info_t *hal_info,
42 	u32 *usage);
43 enum rtw_hal_status rtw_hal_efuse_get_logical_size(struct hal_info_t *hal_info,
44 	u32 *size);
45 enum rtw_hal_status rtw_hal_efuse_get_size(struct hal_info_t *hal_info,
46 	u32 *size);
47 enum rtw_hal_status rtw_hal_efuse_get_avl(struct hal_info_t *hal_info,
48 	u32 *size);
49 enum rtw_hal_status rtw_hal_efuse_get_shadowmap_from(struct hal_info_t *hal_info,
50 	u8 *val);
51 enum rtw_hal_status rtw_hal_efuse_get_offset_mask(struct hal_info_t *hal_info,
52 	u16 offset, u8 *mask);
53 enum rtw_hal_status rtw_hal_efuse_get_mask_buf(struct hal_info_t *hal_info,
54 	u8 *mask, u32 *buflen);
55 
56 
57 /* BT EFUSE */
58 enum rtw_hal_status rtw_hal_efuse_bt_shadow_load(struct hal_info_t *hal_info);
59 
60 enum rtw_hal_status rtw_hal_efuse_bt_shadow_read(struct hal_info_t *hal_info, u8 byte_count,
61 						  u16 offset, u32 *value);
62 
63 enum rtw_hal_status rtw_hal_efuse_bt_shadow_write(struct hal_info_t *hal_info, u8 byte_count,
64 						   u16 offset, u32 value);
65 
66 enum rtw_hal_status rtw_hal_efuse_bt_shadow_update(struct hal_info_t *hal_info);
67 
68 enum rtw_hal_status rtw_hal_efuse_bt_shadow2buf(struct hal_info_t *hal_info,
69 	u8 *pbuf, u16 buflen);
70 
71 enum rtw_hal_status rtw_hal_efuse_bt_file_map_load(
72 	struct hal_info_t *hal_info, char *file_path);
73 
74 enum rtw_hal_status rtw_hal_efuse_bt_file_mask_load(
75 	struct hal_info_t *hal_info, char *file_path);
76 
77 enum rtw_hal_status rtw_hal_efuse_bt_get_usage(struct hal_info_t *hal_info,
78 	u32 *usage);
79 
80 enum rtw_hal_status rtw_hal_efuse_bt_get_logical_size(struct hal_info_t *hal_info,
81 	u32 *size);
82 
83 enum rtw_hal_status rtw_hal_efuse_bt_get_size(struct hal_info_t *hal_info,
84 	u32 *size);
85 
86 enum rtw_hal_status rtw_hal_efuse_bt_get_avl(struct hal_info_t *hal_info,
87 	u32 *size);
88 
89 enum rtw_hal_status rtw_hal_efuse_bt_get_offset_mask(struct hal_info_t *hal_info,
90 	u16 offset, u8 *mask);
91 
92 enum rtw_hal_status rtw_hal_efuse_bt_get_mask_buf(struct hal_info_t *hal_info,
93 	u8 *mask, u32 *buflen);
94 
95 enum rtw_hal_status rtw_hal_efuse_bt_read_hidden(
96 	struct hal_info_t *hal_info, u32 addr, u32 size, u8 *val);
97 
98 enum rtw_hal_status rtw_hal_efuse_bt_write_hidden(
99 	struct hal_info_t *hal_info, u32 addr, u8 val);
100 
101 enum rtw_hal_status rtw_hal_efuse_read_phy_efuse(
102 	struct hal_info_t *hal_info, u32 addr, u32 size, u8 *data, u8 type);
103 
104 enum rtw_hal_status rtw_hal_efuse_renew(
105 	struct hal_info_t *hal_info, u8 type);
106 
107 bool rtw_hal_efuse_proc_cmd(
108 	struct hal_info_t *hal_info,
109 	struct rtw_proc_cmd *incmd,
110 	char *output,
111 	u32 out_len
112 	);
113 
114 #endif /* _HAL_API_EFUSE_H_ */
115