mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
fix(esp_hw_support): fix unused OSC source deinit breaks XTAL32K configuration
This commit is contained in:
@ -92,12 +92,9 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
||||
}
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
if (slow_clk == SLOW_CLK_32K_XTAL) {
|
||||
rtc_clk_32k_enable(false);
|
||||
} else if (slow_clk == SLOW_CLK_32K_EXT_OSC) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
}
|
||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||
* Improve calibration routine to wait until the frequency is stable.
|
||||
|
@ -177,12 +177,9 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
||||
}
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
if (slow_clk == SLOW_CLK_32K_XTAL) {
|
||||
rtc_clk_32k_enable(false);
|
||||
} else if (slow_clk == SLOW_CLK_32K_EXT_OSC) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
}
|
||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||
* Improve calibration routine to wait until the frequency is stable.
|
||||
|
@ -169,10 +169,8 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
// 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.
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
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);
|
||||
}
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||
|
@ -187,10 +187,8 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
// 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.
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
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);
|
||||
}
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_RC32K) {
|
||||
|
@ -150,10 +150,8 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
// 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.
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
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);
|
||||
}
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||
|
@ -185,10 +185,8 @@ static void select_rtc_slow_clk(soc_rtc_slow_clk_src_t rtc_slow_clk_src)
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
// 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.
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
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);
|
||||
}
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_RC32K) {
|
||||
|
@ -180,12 +180,9 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
||||
}
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
if (slow_clk == SLOW_CLK_32K_XTAL) {
|
||||
rtc_clk_32k_enable(false);
|
||||
} else if (slow_clk == SLOW_CLK_32K_EXT_OSC) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
}
|
||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||
* Improve calibration routine to wait until the frequency is stable.
|
||||
|
@ -178,12 +178,9 @@ static void select_rtc_slow_clk(slow_clk_sel_t slow_clk)
|
||||
}
|
||||
rtc_clk_slow_src_set(rtc_slow_clk_src);
|
||||
if (rtc_slow_clk_src != SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||
if (slow_clk == SLOW_CLK_32K_XTAL) {
|
||||
rtc_clk_32k_enable(false);
|
||||
} else if (slow_clk == SLOW_CLK_32K_EXT_OSC) {
|
||||
rtc_clk_32k_disable_external();
|
||||
}
|
||||
}
|
||||
if (SLOW_CLK_CAL_CYCLES > 0) {
|
||||
/* TODO: 32k XTAL oscillator has some frequency drift at startup.
|
||||
* Improve calibration routine to wait until the frequency is stable.
|
||||
|
Reference in New Issue
Block a user