Procházet zdrojové kódy

change(Power Management): the xpd_xtal32k value depends on system slow clock source config option when pmu initialize

Li Shuai před 2 roky
rodič
revize
fa489d3c20

+ 8 - 2
components/esp_hw_support/port/esp32c6/pmu_param.c

@@ -361,14 +361,20 @@ const pmu_hp_system_retention_param_t * pmu_hp_system_retention_param_default(pm
 
 /** LP system default parameter */
 
+#if CONFIG_ESP_SYSTEM_RTC_EXT_XTAL
+# define PMU_SLOW_CLK_USE_EXT_XTAL  (1)
+#else
+# define PMU_SLOW_CLK_USE_EXT_XTAL  (0)
+#endif
+
 #define PMU_LP_ACTIVE_POWER_CONFIG_DEFAULT() { \
     .dig_power = {              \
         .mem_dslp       = 0,    \
         .peri_pd_en     = 0,    \
     }, \
     .clk_power = {              \
-        .xpd_xtal32k    = 1,    \
-        .xpd_rc32k      = 1,    \
+        .xpd_xtal32k    = PMU_SLOW_CLK_USE_EXT_XTAL,    \
+        .xpd_rc32k      = 0,    \
         .xpd_fosc       = 1,    \
         .pd_osc         = 0     \
     } \

+ 2 - 2
components/esp_hw_support/port/esp32c6/private_include/pmu_param.h

@@ -285,8 +285,8 @@ typedef struct {
             .mem_dslp      = 0                                              \
         },                                                                  \
         .clk_power = {                                                      \
-            .xpd_xtal32k   = 1,                                             \
-            .xpd_rc32k     = 1,                                             \
+            .xpd_xtal32k   = ((pd_flags) & PMU_SLEEP_PD_XTAL32K) ? 0 : 1,   \
+            .xpd_rc32k     = ((pd_flags) & PMU_SLEEP_PD_RC32K) ? 0 : 1,     \
             .xpd_fosc      = 1                                              \
         }                                                                   \
     },                                                                      \

+ 7 - 1
components/esp_hw_support/port/esp32h2/pmu_param.c

@@ -359,13 +359,19 @@ const pmu_hp_system_retention_param_t * pmu_hp_system_retention_param_default(pm
 
 /** LP system default parameter */
 
+#if CONFIG_ESP_SYSTEM_RTC_EXT_XTAL
+# define PMU_SLOW_CLK_USE_EXT_XTAL  (1)
+#else
+# define PMU_SLOW_CLK_USE_EXT_XTAL  (0)
+#endif
+
 #define PMU_LP_ACTIVE_POWER_CONFIG_DEFAULT() { \
     .dig_power = {              \
         .mem_dslp       = 0,    \
         .peri_pd_en     = 0,    \
     }, \
     .clk_power = {              \
-        .xpd_xtal32k    = 0,    \
+        .xpd_xtal32k    = PMU_SLOW_CLK_USE_EXT_XTAL,    \
         .xpd_rc32k      = 0,    \
         .xpd_fosc       = 1,    \
         .pd_osc         = 0     \

+ 2 - 2
components/esp_hw_support/port/esp32h2/private_include/pmu_param.h

@@ -280,8 +280,8 @@ typedef struct {
             .mem_dslp      = 0                                              \
         },                                                                  \
         .clk_power = {                                                      \
-            .xpd_xtal32k   = 1,                                             \
-            .xpd_rc32k     = 1,                                             \
+            .xpd_xtal32k   = ((pd_flags) & PMU_SLEEP_PD_XTAL32K) ? 0 : 1,   \
+            .xpd_rc32k     = ((pd_flags) & PMU_SLEEP_PD_RC32K) ? 0 : 1,     \
             .xpd_fosc      = 1                                              \
         }                                                                   \
     },                                                                      \