From 9fd50d50ce736525e07673d876da21abb63a84bc Mon Sep 17 00:00:00 2001 From: sibeibei Date: Wed, 17 Jun 2026 13:16:04 +0800 Subject: [PATCH 1/2] update(pm_sleep): update modem_wait_target_cycle for s31 --- components/esp_hw_support/port/esp32s31/pmu_sleep.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components/esp_hw_support/port/esp32s31/pmu_sleep.c b/components/esp_hw_support/port/esp32s31/pmu_sleep.c index 7d7be1e5797..84cc9511f9d 100644 --- a/components/esp_hw_support/port/esp32s31/pmu_sleep.c +++ b/components/esp_hw_support/port/esp32s31/pmu_sleep.c @@ -174,6 +174,11 @@ static inline pmu_sleep_param_config_t * pmu_sleep_param_config_default( param->hp_sys.isolate_wait_cycle = rtc_time_us_to_fastclk(mc->hp.isolate_wait_time_us, fastclk_period); param->hp_sys.reset_wait_cycle = rtc_time_us_to_fastclk(mc->hp.reset_wait_time_us, fastclk_period); + const int hw_wait_time_us = pmu_sleep_calculate_hw_wait_time(sleep_flags, slowclk_src, slowclk_period, fastclk_period); + const int modem_state_skip_time_us = mc->hp.regdma_m2a_work_time_us + mc->hp.system_dfs_up_work_time_us + mc->lp.min_slp_time_us; + const int modem_wakeup_wait_time_us = adjustment - hw_wait_time_us + modem_state_skip_time_us + mc->hp.regdma_rf_on_work_time_us; + param->hp_sys.modem_wakeup_wait_cycle = rtc_time_us_to_fastclk(modem_wakeup_wait_time_us, fastclk_period); + param->lp_sys.min_slp_slow_clk_cycle = rtc_time_us_to_slowclk(mc->lp.min_slp_time_us, slowclk_period_fixed); param->lp_sys.analog_wait_target_cycle = rtc_time_us_to_slowclk(mc->lp.analog_wait_time_us, slowclk_period); param->lp_sys.digital_power_supply_wait_cycle = rtc_time_us_to_fastclk(mc->lp.power_supply_wait_time_us, fastclk_period); @@ -326,6 +331,7 @@ static void pmu_sleep_param_init(pmu_context_t *ctx, const pmu_sleep_param_confi pmu_hal_hp_set_control_ready_wait_cycle(ctx->hal, param->hp_sys.isolate_wait_cycle, param->hp_sys.reset_wait_cycle); pmu_hal_lp_set_control_ready_wait_cycle(ctx->hal, param->lp_sys.isolate_wait_cycle, param->lp_sys.reset_wait_cycle); + pmu_ll_set_modem_wait_target_cycle(ctx->hal->dev, param->hp_sys.modem_wakeup_wait_cycle); pmu_ll_set_xtal_stable_wait_cycle(ctx->hal->dev, param->hp_lp.xtal_stable_wait_slow_clk_cycle); pmu_ll_set_pll_stable_wait_cycle(ctx->hal->dev, param->hp_sys.pll_stable_wait_cycle); } From 3c98f90da9aaedb9d82028e11117bad6143aec98 Mon Sep 17 00:00:00 2001 From: sibeibei Date: Wed, 10 Jun 2026 17:03:34 +0800 Subject: [PATCH 2/2] update(pmu_param): update mdoem icg func clk Due to c-channel design, ETM and BUS must be set to 1 --- components/esp_hw_support/port/esp32s31/pmu_param.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/components/esp_hw_support/port/esp32s31/pmu_param.c b/components/esp_hw_support/port/esp32s31/pmu_param.c index 66ef22d2dde..fecd96a0642 100644 --- a/components/esp_hw_support/port/esp32s31/pmu_param.c +++ b/components/esp_hw_support/port/esp32s31/pmu_param.c @@ -140,10 +140,11 @@ const pmu_hp_system_power_param_t * pmu_hp_system_power_param_default(pmu_hp_mod } #define PMU_HP_MODEM_CLOCK_CONFIG_DEFAULT() { \ - .icg_func.clock[0] = 0xffffffff, \ - .icg_func.clock[1] = 0xffffffff, \ - .icg_apb.clock[0] = 0xffffffff, \ - .icg_apb.clock[1] = 0xffffffff, \ + .icg_func.clock[0] = 0, \ + .icg_func.clock[1] = BIT(PMU_ICG_FUNC_ENA_ETM - 32) \ + | BIT(PMU_ICG_FUNC_ENA_BUS - 32), \ + .icg_apb.clock[0] = 0, \ + .icg_apb.clock[1] = 0, \ .icg_modem.code = PMU_HP_ICG_MODEM_CODE_MODEM, \ .sysclk = { \ .dig_sysclk_nodiv = 0, \