]> granicus.if.org Git - esp-idf/commitdiff
bootloader: disconnect VRTC from SAR input in bootloader_random_disable
authorIvan Grokhotkov <ivan@espressif.com>
Tue, 21 Feb 2017 04:10:49 +0000 (12:10 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Tue, 21 Feb 2017 09:07:15 +0000 (17:07 +0800)
Bootloader enables SAR ADC in test mode to get some entropy for the RNG.
The bits which control the ADC test mux were not disabled, which caused
extra ~24uA current to be drawn from VRTC, increasing deep sleep current
consumption. This change disables relevant test mode bits in
bootloader_random_disable.

components/bootloader_support/src/bootloader_random.c

index b58ebe941da70c56701e5b48793de703dac18337..5a00d0cf5afef6d5d1aea01f95175e4e606d3d35 100644 (file)
@@ -135,4 +135,8 @@ void bootloader_random_disable(void)
     /* Reset i2s peripheral */
     SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_I2S0_RST);
     CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_I2S0_RST);
+
+    /* Disable pull supply voltage to SAR ADC */
+    CLEAR_PERI_REG_MASK(RTC_CNTL_TEST_MUX_REG, RTC_CNTL_ENT_RTC);
+    SET_PERI_REG_BITS(RTC_CNTL_TEST_MUX_REG, RTC_CNTL_DTEST_RTC, 0, RTC_CNTL_DTEST_RTC_S);
 }