diff --git a/components/esp_hw_support/sleep_modes.c b/components/esp_hw_support/sleep_modes.c index aa85c38218..e741a270b6 100644 --- a/components/esp_hw_support/sleep_modes.c +++ b/components/esp_hw_support/sleep_modes.c @@ -2310,7 +2310,9 @@ FORCE_INLINE_ATTR bool top_domain_pd_allowed(void) { #if SOC_PM_SUPPORT_MODEM_PD top_pd_allowed &= modem_domain_pd_allowed(); #endif +#if SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN top_pd_allowed &= (s_config.domain[ESP_PD_DOMAIN_XTAL].pd_option != ESP_PD_OPTION_ON); +#endif return top_pd_allowed; } diff --git a/components/soc/esp32c5/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c5/include/soc/Kconfig.soc_caps.in index 0a8cf86256..ff828666a8 100644 --- a/components/soc/esp32c5/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c5/include/soc/Kconfig.soc_caps.in @@ -251,6 +251,10 @@ config SOC_XTAL_SUPPORT_48M bool default y +config SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN + bool + default y + config SOC_AES_SUPPORT_DMA bool default y diff --git a/components/soc/esp32c5/include/soc/soc_caps.h b/components/soc/esp32c5/include/soc/soc_caps.h index 09c64746ac..1457f2c9ba 100644 --- a/components/soc/esp32c5/include/soc/soc_caps.h +++ b/components/soc/esp32c5/include/soc/soc_caps.h @@ -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 */ @@ -85,8 +85,9 @@ #define SOC_PHY_SUPPORTED 1 /*-------------------------- XTAL CAPS ---------------------------------------*/ -#define SOC_XTAL_SUPPORT_40M 1 -#define SOC_XTAL_SUPPORT_48M 1 +#define SOC_XTAL_SUPPORT_40M 1 +#define SOC_XTAL_SUPPORT_48M 1 +#define SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN 1 /*-------------------------- AES CAPS -----------------------------------------*/ #define SOC_AES_SUPPORT_DMA (1) diff --git a/components/soc/esp32c6/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c6/include/soc/Kconfig.soc_caps.in index a95891ee61..3b0d579a1e 100644 --- a/components/soc/esp32c6/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c6/include/soc/Kconfig.soc_caps.in @@ -247,6 +247,10 @@ config SOC_XTAL_SUPPORT_40M bool default y +config SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN + bool + default y + config SOC_AES_SUPPORT_DMA bool default y diff --git a/components/soc/esp32c6/include/soc/soc_caps.h b/components/soc/esp32c6/include/soc/soc_caps.h index cdbf7b561e..6c06064646 100644 --- a/components/soc/esp32c6/include/soc/soc_caps.h +++ b/components/soc/esp32c6/include/soc/soc_caps.h @@ -79,7 +79,8 @@ #define SOC_PM_SUPPORTED 1 /*-------------------------- XTAL CAPS ---------------------------------------*/ -#define SOC_XTAL_SUPPORT_40M 1 +#define SOC_XTAL_SUPPORT_40M 1 +#define SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN 1 /*-------------------------- AES CAPS -----------------------------------------*/ #define SOC_AES_SUPPORT_DMA (1) diff --git a/components/soc/esp32c61/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c61/include/soc/Kconfig.soc_caps.in index af53020502..7a366e687f 100644 --- a/components/soc/esp32c61/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c61/include/soc/Kconfig.soc_caps.in @@ -167,6 +167,10 @@ config SOC_XTAL_SUPPORT_40M bool default y +config SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN + bool + default y + config SOC_ADC_PERIPH_NUM int default 1 diff --git a/components/soc/esp32c61/include/soc/soc_caps.h b/components/soc/esp32c61/include/soc/soc_caps.h index 1f1c0c3349..4dee5f3a55 100644 --- a/components/soc/esp32c61/include/soc/soc_caps.h +++ b/components/soc/esp32c61/include/soc/soc_caps.h @@ -65,7 +65,8 @@ #define SOC_ECDSA_SUPPORTED 1 #define SOC_SPIRAM_SUPPORTED 1 /*-------------------------- XTAL CAPS ---------------------------------------*/ -#define SOC_XTAL_SUPPORT_40M 1 +#define SOC_XTAL_SUPPORT_40M 1 +#define SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN 1 //TODO: [ESP32C61] IDF-9302, IDF-9303, IDF-9304 /*-------------------------- ADC CAPS -------------------------------*/ diff --git a/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in index 1d45cbb31d..76acf2f0bd 100644 --- a/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in @@ -239,6 +239,10 @@ config SOC_XTAL_SUPPORT_32M bool default y +config SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN + bool + default y + config SOC_AES_SUPPORT_DMA bool default y diff --git a/components/soc/esp32h2/include/soc/soc_caps.h b/components/soc/esp32h2/include/soc/soc_caps.h index 43adc89c11..4da526658f 100644 --- a/components/soc/esp32h2/include/soc/soc_caps.h +++ b/components/soc/esp32h2/include/soc/soc_caps.h @@ -93,7 +93,8 @@ #define SOC_PM_SUPPORTED 1 /*-------------------------- XTAL CAPS ---------------------------------------*/ -#define SOC_XTAL_SUPPORT_32M 1 +#define SOC_XTAL_SUPPORT_32M 1 +#define SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN 1 /*-------------------------- AES CAPS -----------------------------------------*/ #define SOC_AES_SUPPORT_DMA (1)