xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852be/phl/hal_g6/efuse/hal_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_EFUSE_H_
16 #define _HAL_EFUSE_H_
17 
18 #define MAX_EFUSE_FILE_VERSION_LENGTH 6
19 #define EFUSE_MASK_FILE_LEN 96
20 #define MAX_EFUSE_MAP_LEN 1536
21 
22 enum EFUSE_STATUS_FLAGS {
23 	EFUSE_STATUS_PROCESS = BIT0,
24 	EFUSE_STATUS_MAP_FILE_LOADED = BIT1,
25 	EFUSE_STATUS_MASK_FILE_LOADED = BIT2,
26 	EFUSE_STATUS_BT_MAP_FILE_LOADED = BIT3,
27 	EFUSE_STATUS_BT_MASK_FILE_LOADED = BIT4
28 };
29 
30 enum EFUSE_SHADOW_MAP_STATUS {
31 	DEFAULT_MAP = 0,
32 	HW_LOG_MAP = 1,
33 	FILE_MAP = 2,
34 	EFUSE_UNKNOWN,
35 };
36 
37 #define SHADOWMAP_FROM2STR(status)\
38 (status == DEFAULT_MAP) ? "DEFAULT" :\
39 (status == HW_LOG_MAP) ? "HW_LOG_EFUSE" :\
40 (status == FILE_MAP) ? "FILE_EFUSE" :\
41 "UNknow"
42 
43 /*
44  *	@phl_com
45  *	@hal_com
46  *	@shadow_map: Buffer pointer for limited size logical map
47  *	@mask: Buffer pointer for limited size mask read from mask file
48  *	@map_version: Buffer pointer for map version read from map file
49  *	@mask_version: Buffer pointer for mask version read from mask file
50  *	@log_efuse_size: Limited logical map size
51  *	@mask_size: Limited mask size
52  *	@version_len: Length of verion field in map/mask
53  *	@status: Efuse status
54  *	@is_map_valid: Flag to check autoload status
55  *	@reserved
56  */
57 struct efuse_t {
58 	struct rtw_phl_com_t *phl_com;
59 	struct rtw_hal_com_t *hal_com;
60 	u8 *shadow_map;
61 	u8 *mask;
62 	u8 *map_version;
63 	u8 *mask_version;
64 	u32 log_efuse_size;
65 	u32 mask_size;
66 	u32 limit_efuse_size;
67 	u32 limit_mask_size;
68 	u8 version_len;
69 	u8 status;
70 	u8 is_map_valid;
71 	u8 reserved;
72 	u8 map_from_status;
73 	/* BT*/
74 	u8 *bt_shadow_map;
75 	u8 *bt_mask;
76 	u32 bt_log_efuse_size;
77 	u32 bt_efuse_size;
78 	u32 bt_mask_size;
79 };
80 
81 #endif /* _HAL_EFUSE_H_ */
82