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