mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
Merge branch 'fix/fix_current_leakage_after_ext_osc_detect_failed_v5.3' into 'release/v5.3'
fix(esp_hw_support): fix current leakage if ext32k slow clock source not exists (v5.3) See merge request espressif/esp-idf!38440
This commit is contained in:
@@ -172,6 +172,11 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Get the state of 32k XTAL oscillator
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -114,6 +114,11 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
rtc_clk_32k_enable_common(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
rtc_clk_32k_enable_common(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
/* Helping external 32kHz crystal to start up.
|
/* Helping external 32kHz crystal to start up.
|
||||||
* External crystal connected to outputs GPIO32 GPIO33.
|
* External crystal connected to outputs GPIO32 GPIO33.
|
||||||
* Forms N pulses with a frequency of about 32KHz on the outputs of the crystal.
|
* Forms N pulses with a frequency of about 32KHz on the outputs of the crystal.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -257,6 +257,11 @@ void rtc_clk_xtal_freq_update(soc_xtal_freq_t xtal_freq);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32KHz external oscillator
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enable or disable 8 MHz internal oscillator
|
* @brief Enable or disable 8 MHz internal oscillator
|
||||||
*
|
*
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -36,6 +36,12 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
REG_SET_BIT(RTC_CNTL_PAD_HOLD_REG, BIT(EXT_OSC_SLOW_GPIO_NUM));
|
REG_SET_BIT(RTC_CNTL_PAD_HOLD_REG, BIT(EXT_OSC_SLOW_GPIO_NUM));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
PIN_INPUT_DISABLE(IO_MUX_GPIO0_REG);
|
||||||
|
REG_CLR_BIT(RTC_CNTL_PAD_HOLD_REG, BIT(EXT_OSC_SLOW_GPIO_NUM));
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_8m_enable(bool clk_8m_en, bool d256_en)
|
void rtc_clk_8m_enable(bool clk_8m_en, bool d256_en)
|
||||||
{
|
{
|
||||||
if (clk_8m_en) {
|
if (clk_8m_en) {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -263,6 +263,11 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Get the state of 32k XTAL oscillator
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -55,6 +55,13 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
PIN_INPUT_DISABLE(IO_MUX_GPIO0_REG);
|
||||||
|
CLEAR_PERI_REG_MASK(RTC_CNTL_PAD_HOLD_REG, RTC_CNTL_GPIO_PIN0_HOLD);
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
||||||
{
|
{
|
||||||
/* No special bootstrapping needed for ESP32-C3, 'cycle' argument is to keep the signature
|
/* No special bootstrapping needed for ESP32-C3, 'cycle' argument is to keep the signature
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -207,6 +207,11 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Get the state of 32k XTAL oscillator
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -64,6 +64,13 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
PIN_INPUT_DISABLE(IO_MUX_GPIO0_REG);
|
||||||
|
REG_CLR_BIT(LP_AON_GPIO_HOLD0_REG, BIT(EXT_OSC_SLOW_GPIO_NUM));
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
||||||
{
|
{
|
||||||
/* No special bootstrapping needed for ESP32-C5, 'cycle' argument is to keep the signature
|
/* No special bootstrapping needed for ESP32-C5, 'cycle' argument is to keep the signature
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -205,6 +205,11 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Get the state of 32k XTAL oscillator
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -61,6 +61,13 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
PIN_INPUT_DISABLE(IO_MUX_GPIO0_REG);
|
||||||
|
REG_CLR_BIT(LP_AON_GPIO_HOLD0_REG, BIT(EXT_OSC_SLOW_GPIO_NUM));
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
||||||
{
|
{
|
||||||
/* No special bootstrapping needed for ESP32-C6, 'cycle' argument is to keep the signature
|
/* No special bootstrapping needed for ESP32-C6, 'cycle' argument is to keep the signature
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -207,6 +207,11 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Get the state of 32k XTAL oscillator
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -61,6 +61,13 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
PIN_INPUT_DISABLE(IO_MUX_GPIO13_REG);
|
||||||
|
REG_CLR_BIT(LP_AON_GPIO_HOLD0_REG, BIT(EXT_OSC_SLOW_GPIO_NUM));
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
||||||
{
|
{
|
||||||
/* No special bootstrapping needed for ESP32-H2, 'cycle' argument is to keep the signature
|
/* No special bootstrapping needed for ESP32-H2, 'cycle' argument is to keep the signature
|
||||||
|
@@ -258,6 +258,11 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
*/
|
*/
|
||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Get the state of 32k XTAL oscillator
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -48,6 +48,13 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
CLEAR_PERI_REG_MASK(RTC_IO_XTAL_32P_PAD_REG, RTC_IO_X32P_MUX_SEL);
|
||||||
|
CLEAR_PERI_REG_MASK(RTC_IO_XTAL_32N_PAD_REG, RTC_IO_X32N_MUX_SEL);
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
||||||
{
|
{
|
||||||
/* No special bootstrapping needed for ESP32-S2, 'cycle' argument is to keep the signature
|
/* No special bootstrapping needed for ESP32-S2, 'cycle' argument is to keep the signature
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -276,7 +276,12 @@ void rtc_clk_32k_enable(bool en);
|
|||||||
void rtc_clk_32k_enable_external(void);
|
void rtc_clk_32k_enable_external(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the state of 32k XTAL oscillator
|
* @brief Disable 32 kHz XTAL oscillator input.
|
||||||
|
*/
|
||||||
|
void rtc_clk_32k_disable_external(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the state of 32k XTAL oscillators
|
||||||
* @return true if 32k XTAL oscillator has been enabled
|
* @return true if 32k XTAL oscillator has been enabled
|
||||||
*/
|
*/
|
||||||
bool rtc_clk_32k_enabled(void);
|
bool rtc_clk_32k_enabled(void);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -71,6 +71,13 @@ void rtc_clk_32k_enable_external(void)
|
|||||||
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
clk_ll_xtal32k_enable(CLK_LL_XTAL32K_ENABLE_MODE_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtc_clk_32k_disable_external(void)
|
||||||
|
{
|
||||||
|
PIN_INPUT_DISABLE(IO_MUX_GPIO15_REG);
|
||||||
|
CLEAR_PERI_REG_MASK(RTC_CNTL_PAD_HOLD_REG, RTC_CNTL_X32P_HOLD);
|
||||||
|
clk_ll_xtal32k_disable();
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
void rtc_clk_32k_bootstrap(uint32_t cycle)
|
||||||
{
|
{
|
||||||
/* No special bootstrapping needed for ESP32-S3, 'cycle' argument is to keep the signature
|
/* No special bootstrapping needed for ESP32-S3, 'cycle' argument is to keep the signature
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -91,7 +91,10 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
|||||||
rtc_clk_8m_enable(true, true);
|
rtc_clk_8m_enable(true, true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||||
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
|
}
|
||||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||||
* Improve calibration routine to wait until the frequency is stable.
|
* Improve calibration routine to wait until the frequency is stable.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -180,7 +180,9 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
|||||||
rtc_clk_8m_enable(true, true);
|
rtc_clk_8m_enable(true, true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
|
}
|
||||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||||
* Improve calibration routine to wait until the frequency is stable.
|
* Improve calibration routine to wait until the frequency is stable.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -176,7 +176,10 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
|||||||
rtc_clk_8m_enable(true, true);
|
rtc_clk_8m_enable(true, true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||||
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
|
}
|
||||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||||
* Improve calibration routine to wait until the frequency is stable.
|
* Improve calibration routine to wait until the frequency is stable.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -178,13 +178,12 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
|||||||
rtc_clk_rc32k_enable(true);
|
rtc_clk_rc32k_enable(true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
|
||||||
// Disable unused clock sources after clock source switching is complete.
|
// Disable unused clock sources after clock source switching is complete.
|
||||||
// Regardless of the clock source selection, the internal 136K clock source will always keep on.
|
// Regardless of the clock source selection, the internal 136K clock source will always keep on.
|
||||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K && rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
if ((rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) && (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW)) {
|
||||||
rtc_clk_32k_enable(false);
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||||
* Improve calibration routine to wait until the frequency is stable.
|
* Improve calibration routine to wait until the frequency is stable.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -185,11 +185,11 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
|||||||
rtc_clk_rc32k_enable(true);
|
rtc_clk_rc32k_enable(true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
|
||||||
// Disable unused clock sources after clock source switching is complete.
|
// Disable unused clock sources after clock source switching is complete.
|
||||||
// Regardless of the clock source selection, the internal 136K clock source will always keep on.
|
// Regardless of the clock source selection, the internal 136K clock source will always keep on.
|
||||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K && rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
if ((rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) && (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW)) {
|
||||||
rtc_clk_32k_enable(false);
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
}
|
}
|
||||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_RC32K) {
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_RC32K) {
|
||||||
rtc_clk_rc32k_enable(false);
|
rtc_clk_rc32k_enable(false);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -186,11 +186,11 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
|||||||
rtc_clk_rc32k_enable(true);
|
rtc_clk_rc32k_enable(true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
|
||||||
// Disable unused clock sources after clock source switching is complete.
|
// Disable unused clock sources after clock source switching is complete.
|
||||||
// Regardless of the clock source selection, the internal 136K clock source will always keep on.
|
// Regardless of the clock source selection, the internal 136K clock source will always keep on.
|
||||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K && rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
if ((rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) && (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW)) {
|
||||||
rtc_clk_32k_enable(false);
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
}
|
}
|
||||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_RC32K) {
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_RC32K) {
|
||||||
rtc_clk_rc32k_enable(false);
|
rtc_clk_rc32k_enable(false);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -179,7 +179,10 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
|||||||
rtc_clk_8m_enable(true, true);
|
rtc_clk_8m_enable(true, true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||||
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
|
}
|
||||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||||
* Improve calibration routine to wait until the frequency is stable.
|
* Improve calibration routine to wait until the frequency is stable.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -177,7 +177,10 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
|||||||
rtc_clk_8m_enable(true, true);
|
rtc_clk_8m_enable(true, true);
|
||||||
}
|
}
|
||||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||||
|
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||||
|
rtc_clk_32k_enable(false);
|
||||||
|
rtc_clk_32k_disable_external();
|
||||||
|
}
|
||||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||||
* Improve calibration routine to wait until the frequency is stable.
|
* Improve calibration routine to wait until the frequency is stable.
|
||||||
|
Reference in New Issue
Block a user