From fccc30d2d50d6c50e7b3b03da202fa44379baea2 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Mon, 27 Nov 2017 10:33:41 +1100 Subject: [PATCH] bootloader: Only apply VDDSDIO 1.8V->1.9V if regulator is enabled Fixes bug if regulator is disabled via efuse. --- components/bootloader/Kconfig.projbuild | 6 ++++-- components/bootloader/subproject/main/bootloader_start.c | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/components/bootloader/Kconfig.projbuild b/components/bootloader/Kconfig.projbuild index c618085913..3680a478a9 100644 --- a/components/bootloader/Kconfig.projbuild +++ b/components/bootloader/Kconfig.projbuild @@ -44,14 +44,16 @@ config BOOTLOADER_SPI_WP_PIN The default value (GPIO 7) is correct for WP pin on ESP32-D2WD integrated flash. config BOOTLOADER_VDDSDIO_BOOST - bool "Increase VDDSDIO LDO voltage to 1.9V" + bool "Increase VDDSDIO 1.8V LDO voltage to 1.9V" default y help If this option is enabled, and VDDSDIO LDO is set to 1.8V (using EFUSE or MTDI bootstrapping pin), bootloader will change LDO settings to output 1.9V instead. This helps prevent flash chip from browning out during flash programming operations. - For 3.3V flash, this option has no effect. + + This option has no effect if VDDSDIO is set to 3.3V, or if the internal + VDDSDIO regulator is disabled via efuse. endmenu # Bootloader diff --git a/components/bootloader/subproject/main/bootloader_start.c b/components/bootloader/subproject/main/bootloader_start.c index 2a130d1d3a..99fb398fbe 100644 --- a/components/bootloader/subproject/main/bootloader_start.c +++ b/components/bootloader/subproject/main/bootloader_start.c @@ -745,12 +745,11 @@ static void vddsdio_configure() { #if CONFIG_BOOTLOADER_VDDSDIO_BOOST rtc_vddsdio_config_t cfg = rtc_vddsdio_get_config(); - if (cfg.tieh == 0) { // 1.8V is used + if (cfg.enable == 1 && cfg.tieh == 0) { // VDDSDIO regulator is enabled @ 1.8V cfg.drefh = 3; cfg.drefm = 3; cfg.drefl = 3; cfg.force = 1; - cfg.enable = 1; rtc_vddsdio_set_config(cfg); ets_delay_us(10); // wait for regulator to become stable }