From 2ab144dc3a51010fc3cd741570e9c6b0715b9a4f Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Thu, 23 May 2024 20:07:56 +0800 Subject: [PATCH] fix(esp_hw_support): set pau entry backup configuration with link update --- components/esp_hw_support/port/esp32p4/pmu_sleep.c | 13 ------------- components/hal/esp32p4/pau_hal.c | 4 ++++ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/components/esp_hw_support/port/esp32p4/pmu_sleep.c b/components/esp_hw_support/port/esp32p4/pmu_sleep.c index a2a55cf83b..3b0487157c 100644 --- a/components/esp_hw_support/port/esp32p4/pmu_sleep.c +++ b/components/esp_hw_support/port/esp32p4/pmu_sleep.c @@ -247,19 +247,6 @@ void pmu_sleep_init(const pmu_sleep_config_t *config, bool dslp) } pmu_sleep_analog_init(PMU_instance(), &config->analog, dslp); pmu_sleep_param_init(PMU_instance(), &config->param, dslp); - - // When light sleep (PD_TOP), the PAU will power down. so need use LP_SYS_BACKUP_DMA_CFG2_REG to store recover link address. - if (!dslp && PMU.hp_sys[PMU_MODE_HP_SLEEP].dig_power.top_pd_en) { - if (PMU.hp_sys[PMU_MODE_HP_SLEEP].backup.hp_active2sleep_backup_en || - PMU.hp_sys[PMU_MODE_HP_ACTIVE].backup.hp_sleep2active_backup_en) { - uint32_t link_sel = PMU.hp_sys[PMU_MODE_HP_SLEEP].backup.hp_active2sleep_backup_mode & 0x3; - uint32_t link_addr = REG_READ(PAU_REGDMA_LINK_0_ADDR_REG + link_sel * 4); - lp_sys_ll_set_pau_link_addr(link_addr); - pmu_sleep_enable_regdma_backup(); - } - } else { - pmu_sleep_disable_regdma_backup(); - } } void pmu_sleep_increase_ldo_volt(void) { diff --git a/components/hal/esp32p4/pau_hal.c b/components/hal/esp32p4/pau_hal.c index 38b98ba4e1..2852d99a92 100644 --- a/components/hal/esp32p4/pau_hal.c +++ b/components/hal/esp32p4/pau_hal.c @@ -20,6 +20,10 @@ void pau_hal_set_regdma_entry_link_addr(pau_hal_context_t *hal, pau_regdma_link_ pau_ll_set_regdma_link2_addr(hal->dev, (*link_addr)[2]); /* The link 3 of REGDMA is reserved, PMU state switching will not use * REGDMA link 3 */ + + // When light sleep (PD_TOP), the PAU will power down. so need use LP_SYS_BACKUP_DMA_CFG2_REG + // to store recover link address. We always use link0 as the default retention entry. + lp_sys_ll_set_pau_link_addr((uint32_t)(*link_addr)[0]); } void IRAM_ATTR pau_hal_start_regdma_modem_link(pau_hal_context_t *hal, bool backup_or_restore)