|
|
@@ -638,7 +638,8 @@ typedef struct {
|
|
|
uint32_t rtc_peri_pd_en : 1; //!< power down RTC peripherals
|
|
|
uint32_t wifi_pd_en : 1; //!< power down WiFi
|
|
|
uint32_t bt_pd_en : 1; //!< power down BT
|
|
|
- uint32_t cpu_pd_en : 1; //!< power down CPU, but not restart when lightsleep.
|
|
|
+ uint32_t cpu_pd_en : 1; //!< power down CPU, but not restart when lightsleep.
|
|
|
+ uint32_t int_8m_pd_en : 1; //!< Power down Internal 8M oscillator
|
|
|
uint32_t dig_peri_pd_en : 1; //!< power down digital peripherals
|
|
|
uint32_t deep_slp : 1; //!< power down digital domain
|
|
|
uint32_t wdt_flashboot_mod_en : 1; //!< enable WDT flashboot mode
|
|
|
@@ -659,6 +660,7 @@ typedef struct {
|
|
|
*
|
|
|
* @param RTC_SLEEP_PD_x flags combined using bitwise OR
|
|
|
*/
|
|
|
+#define is_dslp(pd_flags) ((pd_flags) & RTC_SLEEP_PD_DIG)
|
|
|
#define RTC_SLEEP_CONFIG_DEFAULT(sleep_flags) { \
|
|
|
.lslp_mem_inf_fpu = 0, \
|
|
|
.rtc_mem_inf_follow_cpu = ((sleep_flags) & RTC_SLEEP_PD_RTC_MEM_FOLLOW_CPU) ? 1 : 0, \
|
|
|
@@ -668,6 +670,7 @@ typedef struct {
|
|
|
.wifi_pd_en = ((sleep_flags) & RTC_SLEEP_PD_WIFI) ? 1 : 0, \
|
|
|
.bt_pd_en = ((sleep_flags) & RTC_SLEEP_PD_BT) ? 1 : 0, \
|
|
|
.cpu_pd_en = ((sleep_flags) & RTC_SLEEP_PD_CPU) ? 1 : 0, \
|
|
|
+ .int_8m_pd_en = is_dslp(sleep_flags) ? 1 : ((sleep_flags) & RTC_SLEEP_PD_INT_8M) ? 1 : 0, \
|
|
|
.dig_peri_pd_en = ((sleep_flags) & RTC_SLEEP_PD_DIG_PERIPH) ? 1 : 0, \
|
|
|
.deep_slp = ((sleep_flags) & RTC_SLEEP_PD_DIG) ? 1 : 0, \
|
|
|
.wdt_flashboot_mod_en = 0, \
|
|
|
@@ -690,6 +693,7 @@ typedef struct {
|
|
|
#define RTC_SLEEP_PD_BT BIT(7) //!< Power down BT
|
|
|
#define RTC_SLEEP_PD_CPU BIT(8) //!< Power down CPU when in lightsleep, but not restart
|
|
|
#define RTC_SLEEP_PD_DIG_PERIPH BIT(9) //!< Power down DIG peripherals
|
|
|
+#define RTC_SLEEP_PD_INT_8M BIT(10) //!< Power down Internal 8M oscillator
|
|
|
|
|
|
/**
|
|
|
* @brief Prepare the chip to enter sleep mode
|