From d7f7f0ad24dff066fb89a9b8ea6f671c7749e528 Mon Sep 17 00:00:00 2001 From: gaoxu Date: Mon, 28 Oct 2024 09:38:13 +0800 Subject: [PATCH] fix(adc): fix adc1 error after bootloader random --- .../src/bootloader_random_esp32p4.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/components/bootloader_support/src/bootloader_random_esp32p4.c b/components/bootloader_support/src/bootloader_random_esp32p4.c index 7cdc770a44..41d45061f9 100644 --- a/components/bootloader_support/src/bootloader_random_esp32p4.c +++ b/components/bootloader_support/src/bootloader_random_esp32p4.c @@ -100,7 +100,15 @@ void bootloader_random_disable(void) // disable analog i2c master clock ANALOG_CLOCK_DISABLE(); - // No-op for now TODO IDF-6497 - // ADC should be set to defaults here, once ADC API is implemented - // OR just keep this empty and let application continue to use RNG initialized by the bootloader + //TODO IDF-4714 + // disable timer + REG_CLR_BIT(ADC_CTRL2_REG, ADC_TIMER_EN); + // Write reset value of this register + REG_WRITE(ADC_SAR1_PATT_TAB1_REG, 0xFFFFFF); + // Revert ADC I2C configuration and initial voltage source setting + REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_SAR1_INIT_CODE_MSB, 0); + REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_SAR1_INIT_CODE_LSB, 0); + + REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_ENT_VDD_GRP1, 0); + REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_DTEST_VDD_GRP1, 0); }