add PM related soc caps about power down rtc slow/fast mem

Supporting rtc slow/fast mem does not mean supporting
rtc slow/fast mem power down.
This commit is contained in:
jingli 2022-01-12 15:04:59 +08:00
parent ae127b04cd
commit 93a5087e58
8 changed files with 36 additions and 25 deletions

View File

@ -40,10 +40,10 @@ typedef enum {
#if SOC_PM_SUPPORT_RTC_PERIPH_PD #if SOC_PM_SUPPORT_RTC_PERIPH_PD
ESP_PD_DOMAIN_RTC_PERIPH, //!< RTC IO, sensors and ULP co-processor ESP_PD_DOMAIN_RTC_PERIPH, //!< RTC IO, sensors and ULP co-processor
#endif #endif
#if SOC_RTC_SLOW_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_SLOW_MEM_PD
ESP_PD_DOMAIN_RTC_SLOW_MEM, //!< RTC slow memory ESP_PD_DOMAIN_RTC_SLOW_MEM, //!< RTC slow memory
#endif #endif
#if SOC_RTC_FAST_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_FAST_MEM_PD
ESP_PD_DOMAIN_RTC_FAST_MEM, //!< RTC fast memory ESP_PD_DOMAIN_RTC_FAST_MEM, //!< RTC fast memory
#endif #endif
ESP_PD_DOMAIN_XTAL, //!< XTAL oscillator ESP_PD_DOMAIN_XTAL, //!< XTAL oscillator

View File

@ -156,10 +156,10 @@ static sleep_config_t s_config = {
#if SOC_PM_SUPPORT_RTC_PERIPH_PD #if SOC_PM_SUPPORT_RTC_PERIPH_PD
ESP_PD_OPTION_AUTO, ESP_PD_OPTION_AUTO,
#endif #endif
#if SOC_RTC_SLOW_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_SLOW_MEM_PD
ESP_PD_OPTION_AUTO, ESP_PD_OPTION_AUTO,
#endif #endif
#if SOC_RTC_FAST_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_FAST_MEM_PD
ESP_PD_OPTION_AUTO, ESP_PD_OPTION_AUTO,
#endif #endif
ESP_PD_OPTION_AUTO, ESP_PD_OPTION_AUTO,
@ -1247,7 +1247,7 @@ static uint32_t get_power_down_flags(void)
// If there is any data placed into .rtc.data or .rtc.bss segments, and // If there is any data placed into .rtc.data or .rtc.bss segments, and
// RTC_SLOW_MEM is Auto, keep it powered up as well. // RTC_SLOW_MEM is Auto, keep it powered up as well.
#if SOC_RTC_SLOW_MEM_SUPPORTED && SOC_ULP_SUPPORTED #if SOC_PM_SUPPORT_RTC_SLOW_MEM_PD && SOC_ULP_SUPPORTED
// Labels are defined in the linker script // Labels are defined in the linker script
extern int _rtc_slow_length; extern int _rtc_slow_length;
/** /**
@ -1262,7 +1262,7 @@ static uint32_t get_power_down_flags(void)
} }
#endif #endif
#if SOC_RTC_FAST_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_FAST_MEM_PD
#if !CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP #if !CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP
/* RTC_FAST_MEM is needed for deep sleep stub. /* RTC_FAST_MEM is needed for deep sleep stub.
If RTC_FAST_MEM is Auto, keep it powered on, so that deep sleep stub can run. If RTC_FAST_MEM is Auto, keep it powered on, so that deep sleep stub can run.
@ -1318,21 +1318,21 @@ static uint32_t get_power_down_flags(void)
#if SOC_PM_SUPPORT_RTC_PERIPH_PD #if SOC_PM_SUPPORT_RTC_PERIPH_PD
ESP_EARLY_LOGD(TAG, "RTC_PERIPH: %s", option_str[s_config.pd_options[ESP_PD_DOMAIN_RTC_PERIPH]]); ESP_EARLY_LOGD(TAG, "RTC_PERIPH: %s", option_str[s_config.pd_options[ESP_PD_DOMAIN_RTC_PERIPH]]);
#endif #endif
#if SOC_RTC_SLOW_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_SLOW_MEM_PD
ESP_EARLY_LOGD(TAG, "RTC_SLOW_MEM: %s", option_str[s_config.pd_options[ESP_PD_DOMAIN_RTC_SLOW_MEM]]); ESP_EARLY_LOGD(TAG, "RTC_SLOW_MEM: %s", option_str[s_config.pd_options[ESP_PD_DOMAIN_RTC_SLOW_MEM]]);
#endif #endif
#if SOC_RTC_FAST_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_FAST_MEM_PD
ESP_EARLY_LOGD(TAG, "RTC_FAST_MEM: %s", option_str[s_config.pd_options[ESP_PD_DOMAIN_RTC_FAST_MEM]]); ESP_EARLY_LOGD(TAG, "RTC_FAST_MEM: %s", option_str[s_config.pd_options[ESP_PD_DOMAIN_RTC_FAST_MEM]]);
#endif #endif
// Prepare flags based on the selected options // Prepare flags based on the selected options
uint32_t pd_flags = 0; uint32_t pd_flags = 0;
#if SOC_RTC_FAST_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_FAST_MEM_PD
if (s_config.pd_options[ESP_PD_DOMAIN_RTC_FAST_MEM] != ESP_PD_OPTION_ON) { if (s_config.pd_options[ESP_PD_DOMAIN_RTC_FAST_MEM] != ESP_PD_OPTION_ON) {
pd_flags |= RTC_SLEEP_PD_RTC_FAST_MEM; pd_flags |= RTC_SLEEP_PD_RTC_FAST_MEM;
} }
#endif #endif
#if SOC_RTC_SLOW_MEM_SUPPORTED #if SOC_PM_SUPPORT_RTC_SLOW_MEM_PD
if (s_config.pd_options[ESP_PD_DOMAIN_RTC_SLOW_MEM] != ESP_PD_OPTION_ON) { if (s_config.pd_options[ESP_PD_DOMAIN_RTC_SLOW_MEM] != ESP_PD_OPTION_ON) {
pd_flags |= RTC_SLEEP_PD_RTC_SLOW_MEM; pd_flags |= RTC_SLEEP_PD_RTC_SLOW_MEM;
} }

View File

@ -647,6 +647,14 @@ config SOC_PM_SUPPORT_RTC_PERIPH_PD
bool bool
default y default y
config SOC_PM_SUPPORT_RTC_FAST_MEM_PD
bool
default y
config SOC_PM_SUPPORT_RTC_SLOW_MEM_PD
bool
default y
config SOC_SDMMC_USE_IOMUX config SOC_SDMMC_USE_IOMUX
bool bool
default y default y

View File

@ -349,9 +349,11 @@
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4) #define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
/*-------------------------- Power Management CAPS ---------------------------*/ /*-------------------------- Power Management CAPS ---------------------------*/
#define SOC_PM_SUPPORT_EXT_WAKEUP (1) #define SOC_PM_SUPPORT_EXT_WAKEUP (1)
#define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */ #define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */
#define SOC_PM_SUPPORT_RTC_PERIPH_PD (1) #define SOC_PM_SUPPORT_RTC_PERIPH_PD (1)
#define SOC_PM_SUPPORT_RTC_FAST_MEM_PD (1)
#define SOC_PM_SUPPORT_RTC_SLOW_MEM_PD (1)
/* ---------------------------- Compatibility ------------------------------- */ /* ---------------------------- Compatibility ------------------------------- */
#define SOC_CAN_SUPPORTED SOC_TWAI_SUPPORTED #define SOC_CAN_SUPPORTED SOC_TWAI_SUPPORTED

View File

@ -375,10 +375,6 @@ config SOC_SPI_MEM_SUPPORT_CHECK_SUS
bool bool
default y default y
config SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE
bool
default n
config SOC_MEMSPI_SRC_FREQ_60M_SUPPORTED config SOC_MEMSPI_SRC_FREQ_60M_SUPPORTED
bool bool
default y default y

View File

@ -203,7 +203,6 @@
#define SOC_SPI_MEM_SUPPORT_IDLE_INTR (1) #define SOC_SPI_MEM_SUPPORT_IDLE_INTR (1)
#define SOC_SPI_MEM_SUPPORT_SW_SUSPEND (1) #define SOC_SPI_MEM_SUPPORT_SW_SUSPEND (1)
#define SOC_SPI_MEM_SUPPORT_CHECK_SUS (1) #define SOC_SPI_MEM_SUPPORT_CHECK_SUS (1)
#define SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE (0)
#define SOC_MEMSPI_SRC_FREQ_60M_SUPPORTED 1 #define SOC_MEMSPI_SRC_FREQ_60M_SUPPORTED 1
#define SOC_MEMSPI_SRC_FREQ_30M_SUPPORTED 1 #define SOC_MEMSPI_SRC_FREQ_30M_SUPPORTED 1

View File

@ -831,6 +831,14 @@ config SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP
bool bool
default y default y
config SOC_PM_SUPPORT_RTC_FAST_MEM_PD
bool
default y
config SOC_PM_SUPPORT_RTC_SLOW_MEM_PD
bool
default y
config SOC_COEX_HW_PTI config SOC_COEX_HW_PTI
bool bool
default y default y

View File

@ -375,15 +375,13 @@
#define SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE (1) #define SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE (1)
/*-------------------------- Power Management CAPS ---------------------------*/ /*-------------------------- Power Management CAPS ---------------------------*/
#define SOC_PM_SUPPORT_EXT_WAKEUP (1) #define SOC_PM_SUPPORT_EXT_WAKEUP (1)
#define SOC_PM_SUPPORT_WIFI_WAKEUP (1)
#define SOC_PM_SUPPORT_WIFI_WAKEUP (1) #define SOC_PM_SUPPORT_WIFI_PD (1)
#define SOC_PM_SUPPORT_RTC_PERIPH_PD (1)
#define SOC_PM_SUPPORT_WIFI_PD (1)
#define SOC_PM_SUPPORT_RTC_PERIPH_PD (1)
#define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */ #define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */
#define SOC_PM_SUPPORT_RTC_FAST_MEM_PD (1)
#define SOC_PM_SUPPORT_RTC_SLOW_MEM_PD (1)
/*-------------------------- COEXISTENCE HARDWARE PTI CAPS -------------------------------*/ /*-------------------------- COEXISTENCE HARDWARE PTI CAPS -------------------------------*/
#define SOC_COEX_HW_PTI (1) #define SOC_COEX_HW_PTI (1)