diff --git a/components/driver/esp32c3/adc.c b/components/driver/esp32c3/adc.c index ffcf09c158..b2312b1767 100644 --- a/components/driver/esp32c3/adc.c +++ b/components/driver/esp32c3/adc.c @@ -229,8 +229,10 @@ esp_err_t adc_digi_initialize(const adc_digi_init_config_t *init_config) }; adc_hal_context_config(&s_adc_digi_ctx->hal, &config); - //enable SARADC module clock + //enable ADC digital part periph_module_enable(PERIPH_SARADC_MODULE); + //reset ADC digital part + periph_module_reset(PERIPH_SARADC_MODULE); adc_hal_calibration_init(ADC_NUM_1); adc_hal_calibration_init(ADC_NUM_2); diff --git a/components/hal/esp32s2/include/hal/clk_gate_ll.h b/components/hal/esp32s2/include/hal/clk_gate_ll.h index 3d2690649b..6dc896a793 100644 --- a/components/hal/esp32s2/include/hal/clk_gate_ll.h +++ b/components/hal/esp32s2/include/hal/clk_gate_ll.h @@ -29,6 +29,8 @@ extern "C" { static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) { switch (periph) { + case PERIPH_SARADC_MODULE: + return DPORT_APB_SARADC_CLK_EN; case PERIPH_LEDC_MODULE: return DPORT_LEDC_CLK_EN; case PERIPH_UART0_MODULE: @@ -109,6 +111,8 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en (void)enable; // unused switch (periph) { + case PERIPH_SARADC_MODULE: + return DPORT_APB_SARADC_RST; case PERIPH_LEDC_MODULE: return DPORT_LEDC_RST; case PERIPH_UART0_MODULE: diff --git a/components/soc/esp32s2/include/soc/periph_defs.h b/components/soc/esp32s2/include/soc/periph_defs.h index 5361489741..e64872e2a5 100644 --- a/components/soc/esp32s2/include/soc/periph_defs.h +++ b/components/soc/esp32s2/include/soc/periph_defs.h @@ -55,6 +55,7 @@ typedef enum { PERIPH_AES_DMA_MODULE, PERIPH_SHA_DMA_MODULE, PERIPH_DEDIC_GPIO_MODULE, + PERIPH_SARADC_MODULE, PERIPH_MODULE_MAX } periph_module_t;