142 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			142 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /****************************************************************************
 | ||
|  | 
 | ||
|  | Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED. | ||
|  | 
 | ||
|  | This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT | ||
|  | be copied by any method or incorporated into another program without | ||
|  | the express written consent of Aerospace C.Power. This Information or any portion | ||
|  | thereof remains the property of Aerospace C.Power. The Information contained herein | ||
|  | is believed to be accurate and Aerospace C.Power assumes no responsibility or | ||
|  | liability for its use in any way and conveys no license or title under | ||
|  | any patent or copyright and makes no representation or warranty that this | ||
|  | Information is free from patent or copyright infringement. | ||
|  | 
 | ||
|  | ****************************************************************************/ | ||
|  | #ifndef _IOT_EFUSE_H_
 | ||
|  | #define _IOT_EFUSE_H_
 | ||
|  | 
 | ||
|  | #include "os_types.h"
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_init() - init efuse module. | ||
|  |  */ | ||
|  | void iot_efuse_init(void); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_prog_done_check() - efuse programming completion flag. | ||
|  |  * @return - true: programming complete. | ||
|  |  *           false: not true. | ||
|  |  */ | ||
|  | uint8_t iot_efuse_prog_done_check(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_write_prog_done() - set efuse programming completion register. | ||
|  |  */ | ||
|  | void iot_efuse_write_prog_done(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_protect() - enable efuse protect function. | ||
|  |  * @return - 0: succeed. | ||
|  |  *           other: failed. | ||
|  |  */ | ||
|  | uint32_t iot_efuse_protect(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_wafer_version() - get wafer version. | ||
|  |  * @return - efuse wafer version. | ||
|  |  */ | ||
|  | uint32_t iot_efuse_get_wafer_version(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_reserve_version() - get reserve version. | ||
|  |  * @return - efuse reserve version. | ||
|  |  */ | ||
|  | uint32_t iot_efuse_get_reserve_version(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_package_version() - get package version. | ||
|  |  * @return - efuse package version. | ||
|  |  */ | ||
|  | uint32_t iot_efuse_get_package_version(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_dcdc_trim() - get dcdc trim code. | ||
|  |  * @return - dcdc trim code. | ||
|  |  */ | ||
|  | uint8_t iot_efuse_get_dcdc_trim(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_pmu_ldo_trim() - get pmu ldo trim code. | ||
|  |  * @return - pmu ldo trim code. | ||
|  |  */ | ||
|  | uint8_t iot_efuse_get_pmu_ldo_trim(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_mac_addr() - get mac address. | ||
|  |  * @param mac - the pointer of mac address. | ||
|  |  */ | ||
|  | void iot_efuse_get_mac_addr(uint8_t *mac); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_set_mac_addr() - set mac address. | ||
|  |  * @param mac - the pointer of mac address. | ||
|  |  */ | ||
|  | void iot_efuse_set_mac_addr(uint8_t *mac); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_chip_id() - get chip id. | ||
|  |  * @return - chip id. | ||
|  |  */ | ||
|  | uint32_t iot_efuse_get_chip_id(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_sub_id() - get sub id. | ||
|  |  * @return - sub id. | ||
|  |  */ | ||
|  | uint32_t iot_efuse_get_sub_id(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_check_data() - check efuse data validity. | ||
|  |  * @return - 0: data is valid. | ||
|  |  *           other: data is invalid. | ||
|  |  */ | ||
|  | uint8_t iot_efuse_check_data(); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_sadc_calib_code() - get sadc calibration data. | ||
|  |  * @param id - sadc id, see sadc_id_t. | ||
|  |  * @param vref - vref calibration data, got 0 means data is invalid. | ||
|  |  * @param vcm - vcm calibration data, got 0 means data is invalid. | ||
|  |  * @param dc_offset - dc_offset calibration data array, got 0 means data is invalid. | ||
|  |  * @param dc_offset_array_len - dc_offset array length, fixed is SADC_HW_CALIB_GAIN_MAX. | ||
|  |  */ | ||
|  | void iot_efuse_get_meter_calib_code(uint8_t id, float *vref, | ||
|  |     float *vcm, float *dc_offset, uint8_t dc_offset_array_len); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_efuse_get_rf_tx_iqm_dc_calib_info() - get rf tx iq mismatch and dc | ||
|  |  *        calibration data. | ||
|  |  * @param i_mag   - pointer used to return i-path mag compensation value. | ||
|  |  * @param q_mag   - pointer used to return q-path mag compensation value. | ||
|  |  * @param i_phase - pointer used to return i-path phase compensation value. | ||
|  |  * @param q_phase - pointer used to return q-path phase compensation value. | ||
|  |  * @param i_dc    - pointer used to return i-path dc offset compensation value. | ||
|  |  * @param q_dc    - pointer used to return q-path dc offset compensation value. | ||
|  |  * @return | ||
|  |  *    ERR_OK - ok | ||
|  |  *    otherwise - failed | ||
|  |  */ | ||
|  | uint32_t iot_efuse_get_rf_tx_iqm_dc_calib_info(uint8_t *i_mag, | ||
|  |     uint8_t *q_mag, uint8_t *i_phase, uint8_t *q_phase, | ||
|  |     int8_t *i_dc, int8_t *q_dc); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif /* _IOT_EFUSE_H_ */
 |