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_ */
 |