From a2aa349dcc6cfd3da2c8f4cd3a3a99dc98937fd7 Mon Sep 17 00:00:00 2001 From: "Michael (XIAO Xufeng)" Date: Thu, 10 Dec 2020 15:42:12 +0800 Subject: [PATCH] adc: fixed the issue adc_gpio_init doesn't support ADC_UNIT_BOTH --- components/driver/adc_common.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/components/driver/adc_common.c b/components/driver/adc_common.c index c33f7832c4..e2ef1e85bc 100644 --- a/components/driver/adc_common.c +++ b/components/driver/adc_common.c @@ -215,18 +215,24 @@ static void adc_rtc_chan_init(adc_unit_t adc_unit) esp_err_t adc_gpio_init(adc_unit_t adc_unit, adc_channel_t channel) { gpio_num_t gpio_num = 0; + //If called with `ADC_UNIT_BOTH (ADC_UNIT_1 | ADC_UNIT_2)`, both if blocks will be run if (adc_unit & ADC_UNIT_1) { ADC_CHANNEL_CHECK(ADC_NUM_1, channel); gpio_num = ADC_GET_IO_NUM(ADC_NUM_1, channel); + ADC_CHECK_RET(rtc_gpio_init(gpio_num)); + ADC_CHECK_RET(rtc_gpio_set_direction(gpio_num, RTC_GPIO_MODE_DISABLED)); + ADC_CHECK_RET(rtc_gpio_pulldown_dis(gpio_num)); + ADC_CHECK_RET(rtc_gpio_pullup_dis(gpio_num)); } if (adc_unit & ADC_UNIT_2) { ADC_CHANNEL_CHECK(ADC_NUM_2, channel); gpio_num = ADC_GET_IO_NUM(ADC_NUM_2, channel); + ADC_CHECK_RET(rtc_gpio_init(gpio_num)); + ADC_CHECK_RET(rtc_gpio_set_direction(gpio_num, RTC_GPIO_MODE_DISABLED)); + ADC_CHECK_RET(rtc_gpio_pulldown_dis(gpio_num)); + ADC_CHECK_RET(rtc_gpio_pullup_dis(gpio_num)); } - ADC_CHECK_RET(rtc_gpio_init(gpio_num)); - ADC_CHECK_RET(rtc_gpio_set_direction(gpio_num, RTC_GPIO_MODE_DISABLED)); - ADC_CHECK_RET(rtc_gpio_pulldown_dis(gpio_num)); - ADC_CHECK_RET(rtc_gpio_pullup_dis(gpio_num)); + return ESP_OK; }