|
|
@@ -4,10 +4,12 @@
|
|
|
#include "soc/adc_periph.h"
|
|
|
#include "hal/adc_types.h"
|
|
|
#include "soc/apb_saradc_struct.h"
|
|
|
+#include "soc/sens_struct.h"
|
|
|
#include "soc/apb_saradc_reg.h"
|
|
|
#include "soc/rtc_cntl_struct.h"
|
|
|
#include "soc/rtc_cntl_reg.h"
|
|
|
#include "regi2c_ctrl.h"
|
|
|
+#include "hal/hal_defs.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
extern "C" {
|
|
|
@@ -83,11 +85,11 @@ typedef enum {
|
|
|
static inline void adc_ll_digi_set_fsm_time(uint32_t rst_wait, uint32_t start_wait, uint32_t standby_wait)
|
|
|
{
|
|
|
// Internal FSM reset wait time
|
|
|
- APB_SARADC.fsm_wait.rstb_wait = rst_wait;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.fsm_wait, rstb_wait, rst_wait);
|
|
|
// Internal FSM start wait time
|
|
|
- APB_SARADC.fsm_wait.xpd_wait = start_wait;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.fsm_wait, xpd_wait, start_wait);
|
|
|
// Internal FSM standby wait time
|
|
|
- APB_SARADC.fsm_wait.standby_wait = standby_wait;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.fsm_wait, standby_wait, standby_wait);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -115,7 +117,7 @@ static inline void adc_ll_set_sample_cycle(uint32_t sample_cycle)
|
|
|
static inline void adc_ll_digi_set_clk_div(uint32_t div)
|
|
|
{
|
|
|
/* ADC clock devided from digital controller clock clk */
|
|
|
- APB_SARADC.ctrl.sar_clk_div = div;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.ctrl, sar_clk_div, div);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -136,7 +138,7 @@ static inline void adc_ll_digi_set_output_format(adc_digi_output_format_t format
|
|
|
*/
|
|
|
static inline void adc_ll_digi_set_convert_limit_num(uint32_t meas_num)
|
|
|
{
|
|
|
- APB_SARADC.ctrl2.max_meas_num = meas_num;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.ctrl2, max_meas_num, meas_num);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -307,7 +309,7 @@ static inline void adc_ll_digi_trigger_disable(void)
|
|
|
*/
|
|
|
static inline void adc_ll_digi_controller_clk_div(uint32_t div_num, uint32_t div_b, uint32_t div_a)
|
|
|
{
|
|
|
- APB_SARADC.apb_adc_clkm_conf.clkm_div_num = div_num;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.apb_adc_clkm_conf, clkm_div_num, div_num);
|
|
|
APB_SARADC.apb_adc_clkm_conf.clkm_div_b = div_b;
|
|
|
APB_SARADC.apb_adc_clkm_conf.clkm_div_a = div_a;
|
|
|
}
|
|
|
@@ -427,9 +429,9 @@ static inline void adc_ll_digi_filter_enable(adc_ll_num_t adc_n, bool enable)
|
|
|
static inline uint32_t adc_ll_digi_filter_read_data(adc_ll_num_t adc_n)
|
|
|
{
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- return APB_SARADC.filter_status.adc1_filter_data;
|
|
|
+ return HAL_FORCE_READ_U32_REG_FIELD(APB_SARADC.filter_status, adc1_filter_data);
|
|
|
} else { // adc_n == ADC_NUM_2
|
|
|
- return APB_SARADC.filter_status.adc2_filter_data;
|
|
|
+ return HAL_FORCE_READ_U32_REG_FIELD(APB_SARADC.filter_status, adc2_filter_data);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -595,7 +597,7 @@ static inline uint32_t adc_ll_digi_get_intr_status(adc_ll_num_t adc_n)
|
|
|
*/
|
|
|
static inline void adc_ll_digi_dma_set_eof_num(uint32_t num)
|
|
|
{
|
|
|
- APB_SARADC.dma_conf.apb_adc_eof_num = num;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(APB_SARADC.dma_conf, apb_adc_eof_num, num);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -710,7 +712,7 @@ static inline void adc_ll_rtc_disable_channel(adc_ll_num_t adc_n)
|
|
|
static inline void adc_ll_rtc_start_convert(adc_ll_num_t adc_n, int channel)
|
|
|
{
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- while (SENS.sar_slave_addr1.meas_status != 0);
|
|
|
+ while (HAL_FORCE_READ_U32_REG_FIELD(SENS.sar_slave_addr1, meas_status) != 0);
|
|
|
SENS.sar_meas1_ctrl2.meas1_start_sar = 0;
|
|
|
SENS.sar_meas1_ctrl2.meas1_start_sar = 1;
|
|
|
} else { // adc_n == ADC_NUM_2
|
|
|
@@ -749,9 +751,9 @@ static inline int adc_ll_rtc_get_convert_value(adc_ll_num_t adc_n)
|
|
|
{
|
|
|
int ret_val = 0;
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- ret_val = SENS.sar_meas1_ctrl2.meas1_data_sar;
|
|
|
+ ret_val = HAL_FORCE_READ_U32_REG_FIELD(SENS.sar_meas1_ctrl2, meas1_data_sar);
|
|
|
} else { // adc_n == ADC_NUM_2
|
|
|
- ret_val = SENS.sar_meas2_ctrl2.meas2_data_sar;
|
|
|
+ ret_val = HAL_FORCE_READ_U32_REG_FIELD(SENS.sar_meas2_ctrl2, meas2_data_sar);
|
|
|
}
|
|
|
return ret_val;
|
|
|
}
|
|
|
@@ -906,9 +908,9 @@ static inline adc_ll_power_t adc_ll_get_power_manage(void)
|
|
|
static inline void adc_ll_set_sar_clk_div(adc_ll_num_t adc_n, uint32_t div)
|
|
|
{
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- SENS.sar_reader1_ctrl.sar1_clk_div = div;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(SENS.sar_reader1_ctrl, sar1_clk_div, div);
|
|
|
} else { // adc_n == ADC_NUM_2
|
|
|
- SENS.sar_reader2_ctrl.sar2_clk_div = div;
|
|
|
+ HAL_FORCE_MODIFY_U32_REG_FIELD(SENS.sar_reader2_ctrl, sar2_clk_div, div);
|
|
|
}
|
|
|
}
|
|
|
|