mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix(esp_hw_support): fix esp32h2 system link restore override cpu clk configuration
This commit is contained in:
parent
05c5d04734
commit
3646b5d0c1
@ -524,9 +524,6 @@ inline static void IRAM_ATTR misc_modules_sleep_prepare(bool deep_sleep)
|
|||||||
#endif
|
#endif
|
||||||
#if REGI2C_ANA_CALI_PD_WORKAROUND
|
#if REGI2C_ANA_CALI_PD_WORKAROUND
|
||||||
regi2c_analog_cali_reg_read();
|
regi2c_analog_cali_reg_read();
|
||||||
#endif
|
|
||||||
#if SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG
|
|
||||||
sleep_retention_do_system_retention(true);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -543,9 +540,6 @@ inline static void IRAM_ATTR misc_modules_wake_prepare(void)
|
|||||||
{
|
{
|
||||||
#if SOC_USB_SERIAL_JTAG_SUPPORTED && !SOC_USB_SERIAL_JTAG_SUPPORT_LIGHT_SLEEP
|
#if SOC_USB_SERIAL_JTAG_SUPPORTED && !SOC_USB_SERIAL_JTAG_SUPPORT_LIGHT_SLEEP
|
||||||
sleep_console_usj_pad_restore();
|
sleep_console_usj_pad_restore();
|
||||||
#endif
|
|
||||||
#if SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG
|
|
||||||
sleep_retention_do_system_retention(false);
|
|
||||||
#endif
|
#endif
|
||||||
sar_periph_ctrl_power_enable();
|
sar_periph_ctrl_power_enable();
|
||||||
#if SOC_PM_SUPPORT_CPU_PD && SOC_PM_CPU_RETENTION_BY_RTCCNTL
|
#if SOC_PM_SUPPORT_CPU_PD && SOC_PM_CPU_RETENTION_BY_RTCCNTL
|
||||||
@ -605,6 +599,12 @@ static esp_err_t IRAM_ATTR esp_sleep_start(uint32_t pd_flags, esp_sleep_mode_t m
|
|||||||
should_skip_sleep = light_sleep_uart_prepare(pd_flags, sleep_duration);
|
should_skip_sleep = light_sleep_uart_prepare(pd_flags, sleep_duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG
|
||||||
|
if (!deep_sleep && (pd_flags & PMU_SLEEP_PD_TOP)) {
|
||||||
|
sleep_retention_do_system_retention(true);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Save current frequency and switch to XTAL
|
// Save current frequency and switch to XTAL
|
||||||
rtc_cpu_freq_config_t cpu_freq_config;
|
rtc_cpu_freq_config_t cpu_freq_config;
|
||||||
rtc_clk_cpu_freq_get_config(&cpu_freq_config);
|
rtc_clk_cpu_freq_get_config(&cpu_freq_config);
|
||||||
@ -805,6 +805,18 @@ static esp_err_t IRAM_ATTR esp_sleep_start(uint32_t pd_flags, esp_sleep_mode_t m
|
|||||||
rtc_clk_cpu_freq_set_config(&cpu_freq_config);
|
rtc_clk_cpu_freq_set_config(&cpu_freq_config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
esp_sleep_execute_event_callbacks(SLEEP_EVENT_SW_CLK_READY, (void *)0);
|
||||||
|
|
||||||
|
if (!deep_sleep) {
|
||||||
|
s_config.ccount_ticks_record = esp_cpu_get_cycle_count();
|
||||||
|
#if SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG
|
||||||
|
if (pd_flags & PMU_SLEEP_PD_TOP) {
|
||||||
|
sleep_retention_do_system_retention(false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
misc_modules_wake_prepare();
|
||||||
|
}
|
||||||
|
|
||||||
// Set mspi clock to ROM default one.
|
// Set mspi clock to ROM default one.
|
||||||
if (cpu_freq_config.source == SOC_CPU_CLK_SRC_PLL) {
|
if (cpu_freq_config.source == SOC_CPU_CLK_SRC_PLL) {
|
||||||
#if SOC_MEMSPI_CLOCK_IS_INDEPENDENT
|
#if SOC_MEMSPI_CLOCK_IS_INDEPENDENT
|
||||||
@ -816,13 +828,6 @@ static esp_err_t IRAM_ATTR esp_sleep_start(uint32_t pd_flags, esp_sleep_mode_t m
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_sleep_execute_event_callbacks(SLEEP_EVENT_SW_CLK_READY, (void *)0);
|
|
||||||
|
|
||||||
if (!deep_sleep) {
|
|
||||||
s_config.ccount_ticks_record = esp_cpu_get_cycle_count();
|
|
||||||
misc_modules_wake_prepare();
|
|
||||||
}
|
|
||||||
|
|
||||||
// re-enable UART output
|
// re-enable UART output
|
||||||
resume_uarts();
|
resume_uarts();
|
||||||
return result ? ESP_ERR_SLEEP_REJECT : ESP_OK;
|
return result ? ESP_ERR_SLEEP_REJECT : ESP_OK;
|
||||||
|
Loading…
Reference in New Issue
Block a user