|
|
@@ -69,62 +69,6 @@ typedef enum {
|
|
|
ADC2_CTRL_FORCE_DIG = 6, /*!<For ADC2. Arbiter in shield mode. Force select digital controller work. */
|
|
|
} adc_controller_t;
|
|
|
|
|
|
-/* ADC calibration defines. */
|
|
|
-#define ADC_LL_I2C_ADC 0X69
|
|
|
-#define ADC_LL_I2C_ADC_HOSTID 0
|
|
|
-
|
|
|
-#define ADC_LL_ANA_CONFIG2_REG 0x6000E048
|
|
|
-
|
|
|
-#define ADC_LL_SAR1_ENCAL_GND_ADDR 0x7
|
|
|
-#define ADC_LL_SAR1_ENCAL_GND_ADDR_MSB 5
|
|
|
-#define ADC_LL_SAR1_ENCAL_GND_ADDR_LSB 5
|
|
|
-
|
|
|
-#define ADC_LL_SAR2_ENCAL_GND_ADDR 0x7
|
|
|
-#define ADC_LL_SAR2_ENCAL_GND_ADDR_MSB 7
|
|
|
-#define ADC_LL_SAR2_ENCAL_GND_ADDR_LSB 7
|
|
|
-
|
|
|
-#define ADC_LL_SAR1_INITIAL_CODE_HIGH_ADDR 0x1
|
|
|
-#define ADC_LL_SAR1_INITIAL_CODE_HIGH_ADDR_MSB 0x3
|
|
|
-#define ADC_LL_SAR1_INITIAL_CODE_HIGH_ADDR_LSB 0x0
|
|
|
-
|
|
|
-#define ADC_LL_SAR1_INITIAL_CODE_LOW_ADDR 0x0
|
|
|
-#define ADC_LL_SAR1_INITIAL_CODE_LOW_ADDR_MSB 0x7
|
|
|
-#define ADC_LL_SAR1_INITIAL_CODE_LOW_ADDR_LSB 0x0
|
|
|
-
|
|
|
-#define ADC_LL_SAR2_INITIAL_CODE_HIGH_ADDR 0x4
|
|
|
-#define ADC_LL_SAR2_INITIAL_CODE_HIGH_ADDR_MSB 0x3
|
|
|
-#define ADC_LL_SAR2_INITIAL_CODE_HIGH_ADDR_LSB 0x0
|
|
|
-
|
|
|
-#define ADC_LL_SAR2_INITIAL_CODE_LOW_ADDR 0x3
|
|
|
-#define ADC_LL_SAR2_INITIAL_CODE_LOW_ADDR_MSB 0x7
|
|
|
-#define ADC_LL_SAR2_INITIAL_CODE_LOW_ADDR_LSB 0x0
|
|
|
-
|
|
|
-#define ADC_LL_SAR1_DREF_ADDR 0x2
|
|
|
-#define ADC_LL_SAR1_DREF_ADDR_MSB 0x6
|
|
|
-#define ADC_LL_SAR1_DREF_ADDR_LSB 0x4
|
|
|
-
|
|
|
-#define ADC_LL_SAR2_DREF_ADDR 0x5
|
|
|
-#define ADC_LL_SAR2_DREF_ADDR_MSB 0x6
|
|
|
-#define ADC_LL_SAR2_DREF_ADDR_LSB 0x4
|
|
|
-
|
|
|
-#define ADC_LL_SAR1_SAMPLE_CYCLE_ADDR 0x2
|
|
|
-#define ADC_LL_SAR1_SAMPLE_CYCLE_ADDR_MSB 0x2
|
|
|
-#define ADC_LL_SAR1_SAMPLE_CYCLE_ADDR_LSB 0x0
|
|
|
-
|
|
|
-#define ADC_LL_SARADC_DTEST_RTC_ADDR 0x7
|
|
|
-#define ADC_LL_SARADC_DTEST_RTC_ADDR_MSB 1
|
|
|
-#define ADC_LL_SARADC_DTEST_RTC_ADDR_LSB 0
|
|
|
-
|
|
|
-#define ADC_LL_SARADC_ENT_TSENS_ADDR 0x7
|
|
|
-#define ADC_LL_SARADC_ENT_TSENS_ADDR_MSB 2
|
|
|
-#define ADC_LL_SARADC_ENT_TSENS_ADDR_LSB 2
|
|
|
-
|
|
|
-#define ADC_LL_SARADC_ENT_RTC_ADDR 0x7
|
|
|
-#define ADC_LL_SARADC_ENT_RTC_ADDR_MSB 3
|
|
|
-#define ADC_LL_SARADC_ENT_RTC_ADDR_LSB 3
|
|
|
-
|
|
|
-/* ADC calibration defines end. */
|
|
|
-
|
|
|
/*---------------------------------------------------------------
|
|
|
Digital controller setting
|
|
|
---------------------------------------------------------------*/
|
|
|
@@ -155,13 +99,11 @@ static inline void adc_ll_digi_set_fsm_time(uint32_t rst_wait, uint32_t start_wa
|
|
|
static inline void adc_ll_set_sample_cycle(uint32_t sample_cycle)
|
|
|
{
|
|
|
/* Should be called before writing I2C registers. */
|
|
|
- void phy_get_romfunc_addr(void);
|
|
|
- phy_get_romfunc_addr();
|
|
|
SET_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_FORCE_PU_M);
|
|
|
CLEAR_PERI_REG_MASK(ANA_CONFIG_REG, BIT(18));
|
|
|
- SET_PERI_REG_MASK(ADC_LL_ANA_CONFIG2_REG, BIT(16));
|
|
|
+ SET_PERI_REG_MASK(ADC_ANA_CONFIG2_REG, BIT(16));
|
|
|
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_SAMPLE_CYCLE_ADDR, sample_cycle);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_SAMPLE_CYCLE_ADDR, sample_cycle);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1194,27 +1136,25 @@ static inline void adc_ll_disable_sleep_controller(void)
|
|
|
static inline void adc_ll_calibration_prepare(adc_ll_num_t adc_n, adc_channel_t channel, bool internal_gnd)
|
|
|
{
|
|
|
/* Should be called before writing I2C registers. */
|
|
|
- void phy_get_romfunc_addr(void);
|
|
|
- phy_get_romfunc_addr();
|
|
|
CLEAR_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_FORCE_PD_M);
|
|
|
SET_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_FORCE_PU_M);
|
|
|
CLEAR_PERI_REG_MASK(ANA_CONFIG_REG, BIT(18));
|
|
|
- SET_PERI_REG_MASK(ADC_LL_ANA_CONFIG2_REG, BIT(16));
|
|
|
+ SET_PERI_REG_MASK(ADC_ANA_CONFIG2_REG, BIT(16));
|
|
|
|
|
|
/* Enable/disable internal connect GND (for calibration). */
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_DREF_ADDR, 4);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_DREF_ADDR, 4);
|
|
|
if (internal_gnd) {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_ENCAL_GND_ADDR, 1);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_ENCAL_GND_ADDR, 1);
|
|
|
} else {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_ENCAL_GND_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_ENCAL_GND_ADDR, 0);
|
|
|
}
|
|
|
} else {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_DREF_ADDR, 4);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR2_DREF_ADDR, 4);
|
|
|
if (internal_gnd) {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_ENCAL_GND_ADDR, 1);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR2_ENCAL_GND_ADDR, 1);
|
|
|
} else {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_ENCAL_GND_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR2_ENCAL_GND_ADDR, 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1227,9 +1167,9 @@ static inline void adc_ll_calibration_prepare(adc_ll_num_t adc_n, adc_channel_t
|
|
|
static inline void adc_ll_calibration_finish(adc_ll_num_t adc_n)
|
|
|
{
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_ENCAL_GND_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_ENCAL_GND_ADDR, 0);
|
|
|
} else {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_ENCAL_GND_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR2_ENCAL_GND_ADDR, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1245,18 +1185,16 @@ static inline void adc_ll_set_calibration_param(adc_ll_num_t adc_n, uint32_t par
|
|
|
uint8_t msb = param >> 8;
|
|
|
uint8_t lsb = param & 0xFF;
|
|
|
/* Should be called before writing I2C registers. */
|
|
|
- void phy_get_romfunc_addr(void);
|
|
|
- phy_get_romfunc_addr();
|
|
|
SET_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_FORCE_PU_M);
|
|
|
CLEAR_PERI_REG_MASK(ANA_CONFIG_REG, BIT(18));
|
|
|
- SET_PERI_REG_MASK(ADC_LL_ANA_CONFIG2_REG, BIT(16));
|
|
|
+ SET_PERI_REG_MASK(ADC_ANA_CONFIG2_REG, BIT(16));
|
|
|
|
|
|
if (adc_n == ADC_NUM_1) {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_INITIAL_CODE_HIGH_ADDR, msb);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_INITIAL_CODE_LOW_ADDR, lsb);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_INITIAL_CODE_HIGH_ADDR, msb);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR1_INITIAL_CODE_LOW_ADDR, lsb);
|
|
|
} else {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_INITIAL_CODE_HIGH_ADDR, msb);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_INITIAL_CODE_LOW_ADDR, lsb);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR2_INITIAL_CODE_HIGH_ADDR, msb);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SAR2_INITIAL_CODE_LOW_ADDR, lsb);
|
|
|
}
|
|
|
}
|
|
|
/* Temp code end. */
|
|
|
@@ -1275,23 +1213,21 @@ static inline void adc_ll_set_calibration_param(adc_ll_num_t adc_n, uint32_t par
|
|
|
static inline void adc_ll_vref_output(adc_ll_num_t adc, adc_channel_t channel, bool en)
|
|
|
{
|
|
|
/* Should be called before writing I2C registers. */
|
|
|
- void phy_get_romfunc_addr(void);
|
|
|
- phy_get_romfunc_addr();
|
|
|
SET_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_FORCE_PU_M);
|
|
|
CLEAR_PERI_REG_MASK(ANA_CONFIG_REG, BIT(18));
|
|
|
- SET_PERI_REG_MASK(ADC_LL_ANA_CONFIG2_REG, BIT(16));
|
|
|
+ SET_PERI_REG_MASK(ADC_ANA_CONFIG2_REG, BIT(16));
|
|
|
|
|
|
if (en) {
|
|
|
if (adc == ADC_NUM_1) {
|
|
|
/* Config test mux to route v_ref to ADC1 Channels */
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_DTEST_RTC_ADDR, 1);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_ENT_TSENS_ADDR, 0);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_ENT_RTC_ADDR, 1);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_DTEST_RTC_ADDR, 1);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_ENT_TSENS_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_ENT_RTC_ADDR, 1);
|
|
|
} else {
|
|
|
/* Config test mux to route v_ref to ADC2 Channels */
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_DTEST_RTC_ADDR, 0);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_ENT_TSENS_ADDR, 1);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_ENT_RTC_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_DTEST_RTC_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_ENT_TSENS_ADDR, 1);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_ENT_RTC_ADDR, 0);
|
|
|
}
|
|
|
//in sleep force to use rtc to control ADC
|
|
|
SENS.sar_meas2_mux.sar2_rtc_force = 1;
|
|
|
@@ -1302,8 +1238,8 @@ static inline void adc_ll_vref_output(adc_ll_num_t adc, adc_channel_t channel, b
|
|
|
//set en_pad for ADC2 channels (bits 0x380)
|
|
|
SENS.sar_meas2_ctrl2.sar2_en_pad = 1 << channel;
|
|
|
} else {
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_ENT_TSENS_ADDR, 0);
|
|
|
- I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SARADC_ENT_RTC_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_ENT_TSENS_ADDR, 0);
|
|
|
+ I2C_WRITEREG_MASK_RTC(I2C_SAR_ADC, ADC_SARADC_ENT_RTC_ADDR, 0);
|
|
|
SENS.sar_meas2_mux.sar2_rtc_force = 0;
|
|
|
//set sar2_en_test
|
|
|
SENS.sar_meas2_ctrl1.sar2_en_test = 0;
|