#ifndef _HW_ADJUST_H
#define _HW_ADJUST_H
#include "datatype.h"

typedef enum 
{
    TX_POWER_MINUX_20,
    TX_POWER_MINUX_15,
    TX_POWER_MINUX_10,
    TX_POWER_MINUX_5,
    TX_POWER_MINUX_4,
    TX_POWER_MINUX_3,
    TX_POWER_MINUX_2,
    TX_POWER_MINUX_1,
    TX_POWER_0,
    TX_POWER_1,
    TX_POWER_2,
    TX_POWER_3,
    TX_POWER_4,
    TX_POWER_7,

}tx_power_t;


/*
* brief: radio calibration.
*/
void radio_calibration(void);

/*
* 简介:load otp中的设置参数
*/
void otp_load_radio_param(void);

/*
* 简介:设置32k中心频率
*/
void radio_set_32k_freq(uint32_t freq);

/*
* 简介:设置32k ppm的值
*/
void radio_set_32k_ppm(uint16_t ppm);

/*
* 内部32k时钟校准
*/
void radio_auto_cali_32k(void);

/*
* 初始化32k ppm及时钟参数

*/
void radio_update_32k_freq_and_ppm(void);

/*
* 简介:设置发射功率
* @param[1]: tx power [-20dbm~5dbm].
*/
void radio_set_tx_power(tx_power_t tx_power);

/*
* 简介:设置晶振启动时间，单位微秒(us)
*/
void set_xtal_osa(uint32_t osa_time);

/*
* 简介:配置射频参数
*/
void soc_radio_configuration(void);

/*
* 简介:读取lib库版本信息
*/
uint32_t read_lib_version(void);


/*
* 简介:执行一次32k校准
*/
void hwadjust_calc_32krc_once(void);

void hwadjust_get_temperature_adc_data_period_stop(void);
void hwadjust_get_temperature_adc_data_period_start(void *wparam,void *lparam);
void radio_temperature_auto_cali(void);
void hwadjust_calc_32k_rc_stop(void);
void  radio_calc_32krc_and_temperature(int cal_min,int cal_max);

#endif
