From b24a1ff52101b429f7c0db64751ebdf902dd62f2 Mon Sep 17 00:00:00 2001 From: hebinglin Date: Tue, 2 Jun 2026 20:12:08 +0800 Subject: [PATCH] feat(esp_hw_support): use xtalx2 in retention for h21 --- .../esp_hw_support/port/esp32h21/pmu_param.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/components/esp_hw_support/port/esp32h21/pmu_param.c b/components/esp_hw_support/port/esp32h21/pmu_param.c index faf01161b93..2b930cceb05 100644 --- a/components/esp_hw_support/port/esp32h21/pmu_param.c +++ b/components/esp_hw_support/port/esp32h21/pmu_param.c @@ -17,6 +17,12 @@ #include "esp_hw_log.h" #include "soc/clk_tree_defs.h" +#define PMU_CLK_SRC_VAL(src) \ + (((uint32_t)src == (uint32_t)SOC_MOD_CLK_XTAL) ? 0 : \ + ((uint32_t)src == (uint32_t)SOC_MOD_CLK_PLL_F96M) ? 1 : \ + ((uint32_t)src == (uint32_t)SOC_MOD_CLK_RC_FAST) ? 2 : \ + ((uint32_t)src == (uint32_t)SOC_MOD_CLK_XTAL_X2_F64M) ? 3 : 0) + ESP_HW_LOG_ATTR_TAG(TAG, "pmu_param"); #ifndef ARRAY_SIZE @@ -244,8 +250,8 @@ const pmu_hp_system_analog_param_t * pmu_hp_system_analog_param_default(pmu_hp_m .retention = { \ .hp_sleep2active_backup_modem_clk_code = 3, \ .hp_modem2active_backup_modem_clk_code = 1, \ - .hp_sleep2active_backup_clk_sel = 0, \ - .hp_modem2active_backup_clk_sel = 0, \ + .hp_sleep2active_backup_clk_sel = PMU_CLK_SRC_VAL(SOC_MOD_CLK_XTAL_X2_F64M), \ + .hp_modem2active_backup_clk_sel = PMU_CLK_SRC_VAL(SOC_MOD_CLK_XTAL), \ .hp_sleep2active_backup_mode = PMU_HP_RETENTION_REGDMA_CONFIG(0, 0), \ .hp_modem2active_backup_mode = PMU_HP_RETENTION_REGDMA_CONFIG(0, 2), \ .hp_sleep2active_backup_en = 0, \ @@ -258,8 +264,8 @@ const pmu_hp_system_analog_param_t * pmu_hp_system_analog_param_default(pmu_hp_m .retention = { \ .hp_modem2sleep_backup_modem_clk_code = 3, \ .hp_active2sleep_backup_modem_clk_code = 3, \ - .hp_modem2sleep_backup_clk_sel = 0, \ - .hp_active2sleep_backup_clk_sel = 0, \ + .hp_modem2sleep_backup_clk_sel = PMU_CLK_SRC_VAL(SOC_MOD_CLK_XTAL), \ + .hp_active2sleep_backup_clk_sel = PMU_CLK_SRC_VAL(SOC_MOD_CLK_XTAL_X2_F64M), \ .hp_modem2sleep_backup_mode = PMU_HP_RETENTION_REGDMA_CONFIG(1, 1), \ .hp_active2sleep_backup_mode = PMU_HP_RETENTION_REGDMA_CONFIG(1, 0), \ .hp_modem2sleep_backup_en = 0, \