diff --git a/components/esp_hw_support/sleep_modes.c b/components/esp_hw_support/sleep_modes.c index e975977587..56ac3b39f6 100644 --- a/components/esp_hw_support/sleep_modes.c +++ b/components/esp_hw_support/sleep_modes.c @@ -2195,7 +2195,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/beta3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c5/beta3/include/soc/Kconfig.soc_caps.in index ab9d266cda..80647852e9 100644 --- a/components/soc/esp32c5/beta3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c5/beta3/include/soc/Kconfig.soc_caps.in @@ -155,6 +155,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/beta3/include/soc/soc_caps.h b/components/soc/esp32c5/beta3/include/soc/soc_caps.h index 28a6b38156..f1c165066d 100644 --- a/components/soc/esp32c5/beta3/include/soc/soc_caps.h +++ b/components/soc/esp32c5/beta3/include/soc/soc_caps.h @@ -86,6 +86,7 @@ /*-------------------------- XTAL CAPS ---------------------------------------*/ #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/esp32c5/mp/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c5/mp/include/soc/Kconfig.soc_caps.in index d1de4ca1cf..a3dcd0a448 100644 --- a/components/soc/esp32c5/mp/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c5/mp/include/soc/Kconfig.soc_caps.in @@ -67,6 +67,10 @@ config SOC_XTAL_SUPPORT_48M 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/esp32c5/mp/include/soc/soc_caps.h b/components/soc/esp32c5/mp/include/soc/soc_caps.h index b29e73bc80..6463939ec1 100644 --- a/components/soc/esp32c5/mp/include/soc/soc_caps.h +++ b/components/soc/esp32c5/mp/include/soc/soc_caps.h @@ -77,6 +77,7 @@ /*-------------------------- XTAL CAPS ---------------------------------------*/ #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 0a661bfbc6..cc07216d0c 100644 --- a/components/soc/esp32c6/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c6/include/soc/Kconfig.soc_caps.in @@ -251,6 +251,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 1669e280ae..12ea7d015f 100644 --- a/components/soc/esp32c6/include/soc/soc_caps.h +++ b/components/soc/esp32c6/include/soc/soc_caps.h @@ -80,7 +80,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 c2dc6e807b..7d19b8acbd 100644 --- a/components/soc/esp32c61/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c61/include/soc/Kconfig.soc_caps.in @@ -43,6 +43,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/esp32c61/include/soc/soc_caps.h b/components/soc/esp32c61/include/soc/soc_caps.h index 2eb010c7c0..6453f091d6 100644 --- a/components/soc/esp32c61/include/soc/soc_caps.h +++ b/components/soc/esp32c61/include/soc/soc_caps.h @@ -78,7 +78,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/esp32h2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in index 186e61f030..108937ec71 100644 --- a/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in @@ -243,6 +243,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 a5c11c8b15..9a41122d94 100644 --- a/components/soc/esp32h2/include/soc/soc_caps.h +++ b/components/soc/esp32h2/include/soc/soc_caps.h @@ -94,7 +94,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)