diff --git a/components/esp_hw_support/CMakeLists.txt b/components/esp_hw_support/CMakeLists.txt index f20e393137..d43e0332e2 100644 --- a/components/esp_hw_support/CMakeLists.txt +++ b/components/esp_hw_support/CMakeLists.txt @@ -107,6 +107,7 @@ if(NOT BOOTLOADER_BUILD) "adc_share_hw_ctrl.c" # TODO: IDF-6215 "sleep_cpu.c" # TODO: IDF-6267 "sleep_modes.c" # TODO: IDF-6267 + "sleep_wake_stub.c" # TODO: IDF-6267 ) endif() else() diff --git a/components/esp_hw_support/linker.lf b/components/esp_hw_support/linker.lf index 3e85123b98..2a06811a95 100644 --- a/components/esp_hw_support/linker.lf +++ b/components/esp_hw_support/linker.lf @@ -16,7 +16,6 @@ entries: if SOC_CONFIGURABLE_VDDSDIO_SUPPORTED: rtc_init:rtc_vddsdio_set_config (noflash) if IDF_TARGET_ESP32C6 = n && IDF_TARGET_ESP32H2 = n: # TODO: IDF-5645 - rtc_pm (noflash_text) rtc_sleep (noflash_text) rtc_time (noflash_text) if SOC_PMU_SUPPORTED = y: diff --git a/components/esp_hw_support/port/esp32/CMakeLists.txt b/components/esp_hw_support/port/esp32/CMakeLists.txt index 40ac8b9367..81d3206176 100644 --- a/components/esp_hw_support/port/esp32/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32/CMakeLists.txt @@ -5,7 +5,6 @@ set(srcs "rtc_clk.c" "rtc_clk_init.c" "rtc_init.c" - "rtc_pm.c" "rtc_sleep.c" "rtc_time.c" "chip_info.c") diff --git a/components/esp_hw_support/port/esp32/rtc_pm.c b/components/esp_hw_support/port/esp32/rtc_pm.c deleted file mode 100644 index 43ca6cdd92..0000000000 --- a/components/esp_hw_support/port/esp32/rtc_pm.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "soc/rtc.h" - -typedef enum { - PM_LIGHT_SLEEP = BIT(2), /*!< WiFi PD, memory in light sleep */ -} pm_sleep_mode_t; - -typedef enum{ - PM_SW_NOREJECT = 0, - PM_SW_REJECT = 1 -} pm_sw_reject_t; - - -/* These MAC-related functions are defined in the closed source part of - * RTC library - */ -extern void pm_mac_init(void); -extern int pm_check_mac_idle(void); -extern void pm_mac_deinit(void); - -/* This sleep-related function is called from the closed source part of RTC - * library. - */ -pm_sw_reject_t pm_set_sleep_mode(pm_sleep_mode_t sleep_mode, void(*pmac_save_params)(void)) -{ - (void) pmac_save_params; /* unused */ - - pm_mac_deinit(); - if (pm_check_mac_idle()) { - pm_mac_init(); - return PM_SW_REJECT; - } - - rtc_sleep_config_t cfg = { 0 }; - - switch (sleep_mode) { - case PM_LIGHT_SLEEP: - cfg.wifi_pd_en = 1; - cfg.dig_dbias_wak = 4; - cfg.dig_dbias_slp = 0; - cfg.rtc_dbias_wak = 0; - cfg.rtc_dbias_slp = 0; - cfg.lslp_meminf_pd = 1; - rtc_sleep_init(cfg); - break; - - default: - assert(0 && "unsupported sleep mode"); - } - return PM_SW_NOREJECT; -} diff --git a/components/esp_hw_support/port/esp32/rtc_sleep.c b/components/esp_hw_support/port/esp32/rtc_sleep.c index 98bfa9644a..a4d4ed9ec9 100644 --- a/components/esp_hw_support/port/esp32/rtc_sleep.c +++ b/components/esp_hw_support/port/esp32/rtc_sleep.c @@ -241,11 +241,6 @@ void rtc_sleep_low_init(uint32_t slowclk_period) REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, RTC_CNTL_CK8M_WAIT_SLP_CYCLES); } -void rtc_sleep_set_wakeup_time(uint64_t t) -{ - rtc_cntl_ll_set_wakeup_timer(t); -} - /* Read back 'reject' status when waking from light or deep sleep */ static uint32_t rtc_sleep_finish(void); diff --git a/components/esp_hw_support/port/esp32c2/CMakeLists.txt b/components/esp_hw_support/port/esp32c2/CMakeLists.txt index df1877dec3..d0774a5029 100644 --- a/components/esp_hw_support/port/esp32c2/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32c2/CMakeLists.txt @@ -1,7 +1,6 @@ set(srcs "rtc_clk_init.c" "rtc_clk.c" "rtc_init.c" - "rtc_pm.c" "rtc_sleep.c" "rtc_time.c" "chip_info.c") diff --git a/components/esp_hw_support/port/esp32c2/rtc_pm.c b/components/esp_hw_support/port/esp32c2/rtc_pm.c deleted file mode 100644 index cba8213e1d..0000000000 --- a/components/esp_hw_support/port/esp32c2/rtc_pm.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "soc/rtc.h" -#include "soc/rtc_cntl_reg.h" - -typedef enum { - PM_LIGHT_SLEEP = BIT(2), /*!< WiFi PD, memory in light sleep */ -} pm_sleep_mode_t; - -typedef enum { - PM_SW_NOREJECT = 0, - PM_SW_REJECT = 1 -} pm_sw_reject_t; - - -/* These MAC-related functions are defined in the closed source part of - * RTC library - */ -extern void pm_mac_init(void); -extern int pm_check_mac_idle(void); -extern void pm_mac_deinit(void); - -/* This sleep-related function is called from the closed source part of RTC - * library. - */ -pm_sw_reject_t pm_set_sleep_mode(pm_sleep_mode_t sleep_mode, void(*pmac_save_params)(void)) -{ - (void) pmac_save_params; /* unused */ - - pm_mac_deinit(); - if (pm_check_mac_idle()) { - pm_mac_init(); - return PM_SW_REJECT; - } - - rtc_sleep_config_t cfg = { 0 }; - - switch (sleep_mode) { - case PM_LIGHT_SLEEP: - cfg.dig_dbias_wak = 4; - cfg.dig_dbias_slp = 0; - cfg.rtc_dbias_wak = 0; - cfg.rtc_dbias_slp = 0; - rtc_sleep_init(cfg); - break; - - default: - assert(0 && "unsupported sleep mode"); - } - return PM_SW_NOREJECT; -} diff --git a/components/esp_hw_support/port/esp32c2/rtc_sleep.c b/components/esp_hw_support/port/esp32c2/rtc_sleep.c index 884301d153..1cb648cf37 100644 --- a/components/esp_hw_support/port/esp32c2/rtc_sleep.c +++ b/components/esp_hw_support/port/esp32c2/rtc_sleep.c @@ -149,12 +149,6 @@ void rtc_sleep_low_init(uint32_t slowclk_period) REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, RTC_CNTL_CK8M_WAIT_SLP_CYCLES); } -void rtc_sleep_set_wakeup_time(uint64_t t) -{ - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER0_REG, t & UINT32_MAX); - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER1_REG, t >> 32); -} - static uint32_t rtc_sleep_finish(uint32_t lslp_mem_inf_fpu); uint32_t rtc_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt, uint32_t lslp_mem_inf_fpu) diff --git a/components/esp_hw_support/port/esp32c2/rtc_time.c b/components/esp_hw_support/port/esp32c2/rtc_time.c index b2a6f77a4c..180c51b8bc 100644 --- a/components/esp_hw_support/port/esp32c2/rtc_time.c +++ b/components/esp_hw_support/port/esp32c2/rtc_time.c @@ -170,23 +170,6 @@ uint64_t rtc_time_get(void) return rtc_cntl_ll_get_rtc_time(); } -uint64_t rtc_light_slp_time_get(void) -{ - uint64_t t_wake = READ_PERI_REG(RTC_CNTL_TIME_LOW0_REG); - t_wake |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH0_REG)) << 32; - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - return (t_wake - t_slp); -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { SET_PERI_REG_MASK(RTC_CNTL_SLOW_CLK_CONF_REG, RTC_CNTL_SLOW_CLK_NEXT_EDGE); diff --git a/components/esp_hw_support/port/esp32c3/CMakeLists.txt b/components/esp_hw_support/port/esp32c3/CMakeLists.txt index 6f5037848f..b383b815a6 100644 --- a/components/esp_hw_support/port/esp32c3/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32c3/CMakeLists.txt @@ -1,7 +1,6 @@ set(srcs "rtc_clk_init.c" "rtc_clk.c" "rtc_init.c" - "rtc_pm.c" "rtc_sleep.c" "rtc_time.c" "chip_info.c" diff --git a/components/esp_hw_support/port/esp32c3/rtc_pm.c b/components/esp_hw_support/port/esp32c3/rtc_pm.c deleted file mode 100644 index 93174cd519..0000000000 --- a/components/esp_hw_support/port/esp32c3/rtc_pm.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "soc/rtc.h" -#include "soc/rtc_cntl_reg.h" -#include "soc/syscon_reg.h" - -typedef enum { - PM_LIGHT_SLEEP = BIT(2), /*!< WiFi PD, memory in light sleep */ -} pm_sleep_mode_t; - -typedef enum { - PM_SW_NOREJECT = 0, - PM_SW_REJECT = 1 -} pm_sw_reject_t; - - -/* These MAC-related functions are defined in the closed source part of - * RTC library - */ -extern void pm_mac_init(void); -extern int pm_check_mac_idle(void); -extern void pm_mac_deinit(void); - -/* This sleep-related function is called from the closed source part of RTC - * library. - */ -pm_sw_reject_t pm_set_sleep_mode(pm_sleep_mode_t sleep_mode, void(*pmac_save_params)(void)) -{ - (void) pmac_save_params; /* unused */ - - pm_mac_deinit(); - if (pm_check_mac_idle()) { - pm_mac_init(); - return PM_SW_REJECT; - } - - rtc_sleep_config_t cfg = { 0 }; - - switch (sleep_mode) { - case PM_LIGHT_SLEEP: - cfg.wifi_pd_en = 1; - cfg.dig_dbias_wak = 4; - cfg.dig_dbias_slp = 0; - cfg.rtc_dbias_wak = 0; - cfg.rtc_dbias_slp = 0; - rtc_sleep_init(cfg); - break; - - default: - assert(0 && "unsupported sleep mode"); - } - return PM_SW_NOREJECT; -} diff --git a/components/esp_hw_support/port/esp32c3/rtc_sleep.c b/components/esp_hw_support/port/esp32c3/rtc_sleep.c index 179f6e93dd..df47391408 100644 --- a/components/esp_hw_support/port/esp32c3/rtc_sleep.c +++ b/components/esp_hw_support/port/esp32c3/rtc_sleep.c @@ -190,12 +190,6 @@ void rtc_sleep_low_init(uint32_t slowclk_period) REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, RTC_CNTL_CK8M_WAIT_SLP_CYCLES); } -void rtc_sleep_set_wakeup_time(uint64_t t) -{ - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER0_REG, t & UINT32_MAX); - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER1_REG, t >> 32); -} - static uint32_t rtc_sleep_finish(uint32_t lslp_mem_inf_fpu); uint32_t rtc_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt, uint32_t lslp_mem_inf_fpu) diff --git a/components/esp_hw_support/port/esp32c3/rtc_time.c b/components/esp_hw_support/port/esp32c3/rtc_time.c index 26327e58d3..aa277ba66c 100644 --- a/components/esp_hw_support/port/esp32c3/rtc_time.c +++ b/components/esp_hw_support/port/esp32c3/rtc_time.c @@ -173,23 +173,6 @@ uint64_t rtc_time_get(void) return rtc_cntl_ll_get_rtc_time(); } -uint64_t rtc_light_slp_time_get(void) -{ - uint64_t t_wake = READ_PERI_REG(RTC_CNTL_TIME_LOW0_REG); - t_wake |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH0_REG)) << 32; - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - return (t_wake - t_slp); -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { SET_PERI_REG_MASK(RTC_CNTL_SLOW_CLK_CONF_REG, RTC_CNTL_SLOW_CLK_NEXT_EDGE); diff --git a/components/esp_hw_support/port/esp32c6/rtc_pm.c b/components/esp_hw_support/port/esp32c6/rtc_pm.c deleted file mode 100644 index 8a5daa4517..0000000000 --- a/components/esp_hw_support/port/esp32c6/rtc_pm.c +++ /dev/null @@ -1,7 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -// TODO: IDF-5645 diff --git a/components/esp_hw_support/port/esp32c6/rtc_time.c b/components/esp_hw_support/port/esp32c6/rtc_time.c index 483b9fc0bc..184455b260 100644 --- a/components/esp_hw_support/port/esp32c6/rtc_time.c +++ b/components/esp_hw_support/port/esp32c6/rtc_time.c @@ -210,21 +210,6 @@ uint64_t rtc_time_get(void) return lp_timer_hal_get_cycle_count(0); } -uint64_t rtc_light_slp_time_get(void) -{ - // TODO: IDF-5645 - ESP_EARLY_LOGW(TAG, "rtc_light_slp_time_get() has not been implemented yet"); - return 0; -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(LP_TIMER_MAIN_BUF1_LOW_REG); - t_slp |= ((uint64_t) READ_PERI_REG(LP_TIMER_MAIN_BUF1_HIGH_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { // TODO: IDF-5781 diff --git a/components/esp_hw_support/port/esp32h2/rtc_time.c b/components/esp_hw_support/port/esp32h2/rtc_time.c index 37ad598584..b68488d7e3 100644 --- a/components/esp_hw_support/port/esp32h2/rtc_time.c +++ b/components/esp_hw_support/port/esp32h2/rtc_time.c @@ -212,21 +212,6 @@ uint64_t rtc_time_get(void) return t; } -uint64_t rtc_light_slp_time_get(void) -{ - // TODO: IDF-6267 - ESP_EARLY_LOGW(TAG, "rtc_light_slp_time_get() has not been implemented yet"); - return 0; -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(LP_TIMER_MAIN_BUF1_LOW_REG); - t_slp |= ((uint64_t) READ_PERI_REG(LP_TIMER_MAIN_BUF1_HIGH_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { // TODO: IDF-6254 diff --git a/components/esp_hw_support/port/esp32h4/CMakeLists.txt b/components/esp_hw_support/port/esp32h4/CMakeLists.txt index 640f39022d..af789acfd6 100644 --- a/components/esp_hw_support/port/esp32h4/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32h4/CMakeLists.txt @@ -1,7 +1,6 @@ set(srcs "rtc_clk_init.c" "rtc_clk.c" "rtc_init.c" - "rtc_pm.c" "rtc_sleep.c" "rtc_time.c" "chip_info.c" diff --git a/components/esp_hw_support/port/esp32h4/rtc_pm.c b/components/esp_hw_support/port/esp32h4/rtc_pm.c deleted file mode 100644 index 486f761791..0000000000 --- a/components/esp_hw_support/port/esp32h4/rtc_pm.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "soc/rtc.h" -#include "soc/rtc_cntl_reg.h" -#include "soc/syscon_reg.h" - -typedef enum { - PM_LIGHT_SLEEP = BIT(2), /*!< WiFi PD, memory in light sleep */ -} pm_sleep_mode_t; - -typedef enum { - PM_SW_NOREJECT = 0, - PM_SW_REJECT = 1 -} pm_sw_reject_t; - - -/* These MAC-related functions are defined in the closed source part of - * RTC library - */ -extern void pm_mac_init(void); -extern int pm_check_mac_idle(void); -extern void pm_mac_deinit(void); - -/* This sleep-related function is called from the closed source part of RTC - * library. - */ -pm_sw_reject_t pm_set_sleep_mode(pm_sleep_mode_t sleep_mode, void(*pmac_save_params)(void)) -{ - (void) pmac_save_params; /* unused */ - - pm_mac_deinit(); - if (pm_check_mac_idle()) { - pm_mac_init(); - return PM_SW_REJECT; - } - - rtc_sleep_config_t cfg = { 0 }; - - switch (sleep_mode) { - case PM_LIGHT_SLEEP: - // cfg.wifi_pd_en = 1; // ESP32-H4 TO-DO: IDF-3693 - cfg.dig_dbias_wak = 4; - cfg.dig_dbias_slp = 0; - cfg.rtc_dbias_wak = 0; - cfg.rtc_dbias_slp = 0; - rtc_sleep_init(cfg); - break; - - default: - assert(0 && "unsupported sleep mode"); - } - return PM_SW_NOREJECT; -} diff --git a/components/esp_hw_support/port/esp32h4/rtc_sleep.c b/components/esp_hw_support/port/esp32h4/rtc_sleep.c index 4ea3a706fc..d1ffa8f2a9 100644 --- a/components/esp_hw_support/port/esp32h4/rtc_sleep.c +++ b/components/esp_hw_support/port/esp32h4/rtc_sleep.c @@ -288,12 +288,6 @@ void rtc_sleep_low_init(uint32_t slowclk_period) REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, RTC_CNTL_CK8M_WAIT_SLP_CYCLES); } -void rtc_sleep_set_wakeup_time(uint64_t t) -{ - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER0_REG, t & UINT32_MAX); - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER1_REG, t >> 32); -} - static uint32_t rtc_sleep_finish(uint32_t lslp_mem_inf_fpu); uint32_t rtc_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt, uint32_t lslp_mem_inf_fpu) diff --git a/components/esp_hw_support/port/esp32h4/rtc_time.c b/components/esp_hw_support/port/esp32h4/rtc_time.c index 743473a96a..21b23649f8 100644 --- a/components/esp_hw_support/port/esp32h4/rtc_time.c +++ b/components/esp_hw_support/port/esp32h4/rtc_time.c @@ -167,23 +167,6 @@ uint64_t rtc_time_get(void) return rtc_cntl_ll_get_rtc_time(); } -uint64_t rtc_light_slp_time_get(void) -{ - uint64_t t_wake = READ_PERI_REG(RTC_CNTL_TIME_LOW0_REG); - t_wake |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH0_REG)) << 32; - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - return (t_wake - t_slp); -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { SET_PERI_REG_MASK(RTC_CNTL_SLOW_CLK_CONF_REG, RTC_CNTL_SLOW_CLK_NEXT_EDGE); diff --git a/components/esp_hw_support/port/esp32s2/CMakeLists.txt b/components/esp_hw_support/port/esp32s2/CMakeLists.txt index 15079598f9..a2a386d9d0 100644 --- a/components/esp_hw_support/port/esp32s2/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32s2/CMakeLists.txt @@ -5,7 +5,6 @@ set(srcs "rtc_clk.c" "rtc_clk_init.c" "rtc_init.c" - "rtc_pm.c" "rtc_sleep.c" "rtc_time.c" "chip_info.c") diff --git a/components/esp_hw_support/port/esp32s2/rtc_pm.c b/components/esp_hw_support/port/esp32s2/rtc_pm.c deleted file mode 100644 index d1fb320830..0000000000 --- a/components/esp_hw_support/port/esp32s2/rtc_pm.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "soc/rtc.h" -#include "soc/rtc_cntl_reg.h" -#include "soc/syscon_reg.h" - -typedef enum { - PM_LIGHT_SLEEP = BIT(2), /*!< WiFi PD, memory in light sleep */ -} pm_sleep_mode_t; - -typedef enum{ - PM_SW_NOREJECT = 0, - PM_SW_REJECT = 1 -} pm_sw_reject_t; - - -/* These MAC-related functions are defined in the closed source part of - * RTC library - */ -extern void pm_mac_init(void); -extern int pm_check_mac_idle(void); -extern void pm_mac_deinit(void); - -/* This sleep-related function is called from the closed source part of RTC - * library. - */ -pm_sw_reject_t pm_set_sleep_mode(pm_sleep_mode_t sleep_mode, void(*pmac_save_params)(void)) -{ - (void) pmac_save_params; /* unused */ - - pm_mac_deinit(); - if (pm_check_mac_idle()) { - pm_mac_init(); - return PM_SW_REJECT; - } - - rtc_sleep_config_t cfg = { 0 }; - - switch (sleep_mode) { - case PM_LIGHT_SLEEP: - cfg.wifi_pd_en = 1; - cfg.dig_dbias_wak = 4; - cfg.dig_dbias_slp = 0; - cfg.rtc_dbias_wak = 0; - cfg.rtc_dbias_slp = 0; - rtc_sleep_init(cfg); - break; - - default: - assert(0 && "unsupported sleep mode"); - } - return PM_SW_NOREJECT; -} diff --git a/components/esp_hw_support/port/esp32s2/rtc_sleep.c b/components/esp_hw_support/port/esp32s2/rtc_sleep.c index c138239934..578a6a5c62 100644 --- a/components/esp_hw_support/port/esp32s2/rtc_sleep.c +++ b/components/esp_hw_support/port/esp32s2/rtc_sleep.c @@ -185,11 +185,6 @@ void rtc_sleep_low_init(uint32_t slowclk_period) REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_XTL_BUF_WAIT, rtc_time_us_to_slowclk(RTC_CNTL_XTL_BUF_WAIT_SLP_US, slowclk_period)); } -void rtc_sleep_set_wakeup_time(uint64_t t) -{ - rtc_cntl_ll_set_wakeup_timer(t); -} - /* Read back 'reject' status when waking from light or deep sleep */ static uint32_t rtc_sleep_finish(uint32_t lslp_mem_inf_fpu); diff --git a/components/esp_hw_support/port/esp32s2/rtc_time.c b/components/esp_hw_support/port/esp32s2/rtc_time.c index 57e248e9f1..aae694037e 100644 --- a/components/esp_hw_support/port/esp32s2/rtc_time.c +++ b/components/esp_hw_support/port/esp32s2/rtc_time.c @@ -238,23 +238,6 @@ uint64_t rtc_time_get(void) return rtc_cntl_ll_get_rtc_time(); } -uint64_t rtc_light_slp_time_get(void) -{ - uint64_t t_wake = READ_PERI_REG(RTC_CNTL_TIME_LOW0_REG); - t_wake |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH0_REG)) << 32; - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - return (t_wake - t_slp); -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { SET_PERI_REG_MASK(RTC_CNTL_SLOW_CLK_CONF_REG, RTC_CNTL_SLOW_CLK_NEXT_EDGE); diff --git a/components/esp_hw_support/port/esp32s3/CMakeLists.txt b/components/esp_hw_support/port/esp32s3/CMakeLists.txt index b41200f13e..bb4a29c5af 100644 --- a/components/esp_hw_support/port/esp32s3/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32s3/CMakeLists.txt @@ -5,7 +5,6 @@ set(srcs "rtc_clk.c" "rtc_clk_init.c" "rtc_init.c" - "rtc_pm.c" "rtc_sleep.c" "rtc_time.c" "chip_info.c" diff --git a/components/esp_hw_support/port/esp32s3/rtc_pm.c b/components/esp_hw_support/port/esp32s3/rtc_pm.c deleted file mode 100644 index 4bf523eb20..0000000000 --- a/components/esp_hw_support/port/esp32s3/rtc_pm.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "soc/rtc.h" -#include "soc/rtc_cntl_reg.h" -#include "soc/syscon_reg.h" - -typedef enum { - PM_LIGHT_SLEEP = BIT(2), /*!< WiFi PD, memory in light sleep */ -} pm_sleep_mode_t; - -typedef enum { - PM_SW_NOREJECT = 0, - PM_SW_REJECT = 1 -} pm_sw_reject_t; - - -/* These MAC-related functions are defined in the closed source part of - * RTC library - */ -extern void pm_mac_init(void); -extern int pm_check_mac_idle(void); -extern void pm_mac_deinit(void); - -/* This sleep-related function is called from the closed source part of RTC - * library. - */ -pm_sw_reject_t pm_set_sleep_mode(pm_sleep_mode_t sleep_mode, void(*pmac_save_params)(void)) -{ - (void) pmac_save_params; /* unused */ - - pm_mac_deinit(); - if (pm_check_mac_idle()) { - pm_mac_init(); - return PM_SW_REJECT; - } - - rtc_sleep_config_t cfg = { 0 }; - - switch (sleep_mode) { - case PM_LIGHT_SLEEP: - cfg.wifi_pd_en = 1; - cfg.dig_dbias_slp = 0; - cfg.rtc_dbias_slp = 0; - rtc_sleep_init(cfg); - break; - - default: - assert(0 && "unsupported sleep mode"); - } - return PM_SW_NOREJECT; -} diff --git a/components/esp_hw_support/port/esp32s3/rtc_sleep.c b/components/esp_hw_support/port/esp32s3/rtc_sleep.c index 14d3cf3876..cc9d24fa2b 100644 --- a/components/esp_hw_support/port/esp32s3/rtc_sleep.c +++ b/components/esp_hw_support/port/esp32s3/rtc_sleep.c @@ -245,12 +245,6 @@ void rtc_sleep_low_init(uint32_t slowclk_period) REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, RTC_CNTL_CK8M_WAIT_SLP_CYCLES); } -void rtc_sleep_set_wakeup_time(uint64_t t) -{ - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER0_REG, t & UINT32_MAX); - WRITE_PERI_REG(RTC_CNTL_SLP_TIMER1_REG, t >> 32); -} - static uint32_t rtc_sleep_finish(uint32_t lslp_mem_inf_fpu); __attribute__((weak)) uint32_t rtc_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt, uint32_t lslp_mem_inf_fpu) diff --git a/components/esp_hw_support/port/esp32s3/rtc_time.c b/components/esp_hw_support/port/esp32s3/rtc_time.c index 6333b68a19..ff58ed4d71 100644 --- a/components/esp_hw_support/port/esp32s3/rtc_time.c +++ b/components/esp_hw_support/port/esp32s3/rtc_time.c @@ -172,23 +172,6 @@ uint64_t rtc_time_get(void) return rtc_cntl_ll_get_rtc_time(); } -uint64_t rtc_light_slp_time_get(void) -{ - uint64_t t_wake = READ_PERI_REG(RTC_CNTL_TIME_LOW0_REG); - t_wake |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH0_REG)) << 32; - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - return (t_wake - t_slp); -} - -uint64_t rtc_deep_slp_time_get(void) -{ - uint64_t t_slp = READ_PERI_REG(RTC_CNTL_TIME_LOW1_REG); - t_slp |= ((uint64_t) READ_PERI_REG(RTC_CNTL_TIME_HIGH1_REG)) << 32; - uint64_t t_wake = rtc_time_get(); - return (t_wake - t_slp); -} - void rtc_clk_wait_for_slow_cycle(void) //This function may not by useful any more { SET_PERI_REG_MASK(RTC_CNTL_SLOW_CLK_CONF_REG, RTC_CNTL_SLOW_CLK_NEXT_EDGE); diff --git a/components/esp_pm/include/esp32/pm.h b/components/esp_pm/include/esp32/pm.h index 4933345f09..d5d6022fb3 100644 --- a/components/esp_pm/include/esp32/pm.h +++ b/components/esp_pm/include/esp32/pm.h @@ -6,25 +6,8 @@ #pragma once -#include -#include -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" -/** - * @brief Power management config for ESP32 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp32c2/pm.h b/components/esp_pm/include/esp32c2/pm.h index 78ad319646..4488ff895a 100644 --- a/components/esp_pm/include/esp32c2/pm.h +++ b/components/esp_pm/include/esp32c2/pm.h @@ -6,27 +6,8 @@ #pragma once -#include -#include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32c2_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" - -/** - * @brief Power management config for ESP32-C2 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32c2_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp32c3/pm.h b/components/esp_pm/include/esp32c3/pm.h index e2d125d89a..aeb83322cc 100644 --- a/components/esp_pm/include/esp32c3/pm.h +++ b/components/esp_pm/include/esp32c3/pm.h @@ -6,27 +6,8 @@ #pragma once -#include -#include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32c3_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" - -/** - * @brief Power management config for ESP32C3 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32c3_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp32c6/pm.h b/components/esp_pm/include/esp32c6/pm.h index 6255cccad1..b6b0487861 100644 --- a/components/esp_pm/include/esp32c6/pm.h +++ b/components/esp_pm/include/esp32c6/pm.h @@ -1,32 +1,13 @@ /* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once -#include -#include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32c6_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" - -/** - * @brief Power management config for ESP32C6 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32c6_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp32h2/pm.h b/components/esp_pm/include/esp32h2/pm.h deleted file mode 100644 index 45c89d71c6..0000000000 --- a/components/esp_pm/include/esp32h2/pm.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - - -#pragma once -#include -#include -#include "esp_err.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Power management config for ESP32H2 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32h2_t; - -#ifdef __cplusplus -} -#endif diff --git a/components/esp_pm/include/esp32h4/pm.h b/components/esp_pm/include/esp32h4/pm.h index 9a1c9c9c42..1078f77812 100644 --- a/components/esp_pm/include/esp32h4/pm.h +++ b/components/esp_pm/include/esp32h4/pm.h @@ -6,27 +6,8 @@ #pragma once -#include -#include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32h4_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" - -/** - * @brief Power management config for ESP32H4 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32h4_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp32s2/pm.h b/components/esp_pm/include/esp32s2/pm.h index 8036326ff9..8c6bc5bb84 100644 --- a/components/esp_pm/include/esp32s2/pm.h +++ b/components/esp_pm/include/esp32s2/pm.h @@ -6,27 +6,8 @@ #pragma once -#include -#include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32s2_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" - -/** - * @brief Power management config for ESP32 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32s2_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp32s3/pm.h b/components/esp_pm/include/esp32s3/pm.h index 51ec7aafb2..b51c7df326 100644 --- a/components/esp_pm/include/esp32s3/pm.h +++ b/components/esp_pm/include/esp32s3/pm.h @@ -6,27 +6,8 @@ #pragma once -#include -#include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif +#warning "esp_pm_config_esp32s3_t is deprecated, please include esp_pm.h and use esp_pm_config_t instead" - -/** - * @brief Power management config for ESP32 - * - * Pass a pointer to this structure as an argument to esp_pm_configure function. - */ -typedef struct { - int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ - int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ - bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ -} esp_pm_config_esp32s3_t; - - -#ifdef __cplusplus -} -#endif +/* backward compatibility */ +#include "esp_pm.h" diff --git a/components/esp_pm/include/esp_pm.h b/components/esp_pm/include/esp_pm.h index 4b8a3b05ca..f64bdd93cf 100644 --- a/components/esp_pm/include/esp_pm.h +++ b/components/esp_pm/include/esp_pm.h @@ -9,26 +9,34 @@ #include #include "esp_err.h" #include "sdkconfig.h" -#if CONFIG_IDF_TARGET_ESP32 -#include "esp32/pm.h" -#elif CONFIG_IDF_TARGET_ESP32S2 -#include "esp32s2/pm.h" -#elif CONFIG_IDF_TARGET_ESP32S3 -#include "esp32s3/pm.h" -#elif CONFIG_IDF_TARGET_ESP32C3 -#include "esp32c3/pm.h" -#elif CONFIG_IDF_TARGET_ESP32H4 -#include "esp32h4/pm.h" -#elif CONFIG_IDF_TARGET_ESP32C2 -#include "esp32c2/pm.h" -#elif CONFIG_IDF_TARGET_ESP32C6 -#include "esp32c6/pm.h" -#endif #ifdef __cplusplus extern "C" { #endif +/** + * @brief Power management config + * + * Pass a pointer to this structure as an argument to esp_pm_configure function. + */ +typedef struct { + int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */ + int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */ + bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */ +} esp_pm_config_t; + +/** + * backward compatibility + * newer chips no longer require this typedef + */ +typedef esp_pm_config_t esp_pm_config_esp32_t __attribute__((deprecated("please use esp_pm_config_t instead"))); +typedef esp_pm_config_t esp_pm_config_esp32s2_t __attribute__((deprecated("please use esp_pm_config_t instead"))); +typedef esp_pm_config_t esp_pm_config_esp32s3_t __attribute__((deprecated("please use esp_pm_config_t instead"))); +typedef esp_pm_config_t esp_pm_config_esp32c3_t __attribute__((deprecated("please use esp_pm_config_t instead"))); +typedef esp_pm_config_t esp_pm_config_esp32h4_t __attribute__((deprecated("please use esp_pm_config_t instead"))); +typedef esp_pm_config_t esp_pm_config_esp32c2_t __attribute__((deprecated("please use esp_pm_config_t instead"))); +typedef esp_pm_config_t esp_pm_config_esp32c6_t __attribute__((deprecated("please use esp_pm_config_t instead"))); + /** * @brief Power management constraints */ diff --git a/components/esp_pm/pm_impl.c b/components/esp_pm/pm_impl.c index a14bcc3d2f..b56346ba81 100644 --- a/components/esp_pm/pm_impl.c +++ b/components/esp_pm/pm_impl.c @@ -22,6 +22,7 @@ #include "hal/uart_ll.h" #include "hal/uart_types.h" #include "driver/uart.h" +#include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" @@ -39,31 +40,6 @@ #include "sdkconfig.h" -// [refactor-todo] opportunity for further refactor -#if CONFIG_IDF_TARGET_ESP32 -#include "esp32/pm.h" -#include "driver/gpio.h" -#elif CONFIG_IDF_TARGET_ESP32S2 -#include "esp32s2/pm.h" -#include "driver/gpio.h" -#elif CONFIG_IDF_TARGET_ESP32S3 -#include "esp32s3/pm.h" -#elif CONFIG_IDF_TARGET_ESP32C3 -#include "esp32c3/pm.h" -#include "driver/gpio.h" -#elif CONFIG_IDF_TARGET_ESP32H4 -#include "esp32h4/pm.h" -#include "driver/gpio.h" -#elif CONFIG_IDF_TARGET_ESP32C2 -#include "esp32c2/pm.h" -#include "driver/gpio.h" -#elif CONFIG_IDF_TARGET_ESP32C6 -#include "esp32c6/pm.h" -#include "driver/gpio.h" -#elif CONFIG_IDF_TARGET_ESP32H2 -#include "esp32h2/pm.h" -#include "driver/gpio.h" -#endif #define MHZ (1000000) @@ -227,23 +203,7 @@ esp_err_t esp_pm_configure(const void* vconfig) return ESP_ERR_NOT_SUPPORTED; #endif -#if CONFIG_IDF_TARGET_ESP32 - const esp_pm_config_esp32_t* config = (const esp_pm_config_esp32_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32S2 - const esp_pm_config_esp32s2_t* config = (const esp_pm_config_esp32s2_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32S3 - const esp_pm_config_esp32s3_t* config = (const esp_pm_config_esp32s3_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32C3 - const esp_pm_config_esp32c3_t* config = (const esp_pm_config_esp32c3_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32H4 - const esp_pm_config_esp32h4_t* config = (const esp_pm_config_esp32h4_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32C2 - const esp_pm_config_esp32c2_t* config = (const esp_pm_config_esp32c2_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32C6 - const esp_pm_config_esp32c6_t* config = (const esp_pm_config_esp32c6_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32H2 - const esp_pm_config_esp32h2_t* config = (const esp_pm_config_esp32h2_t*) vconfig; -#endif + const esp_pm_config_t* config = (const esp_pm_config_t*) vconfig; #ifndef CONFIG_FREERTOS_USE_TICKLESS_IDLE if (config->light_sleep_enable) { @@ -347,23 +307,7 @@ esp_err_t esp_pm_get_configuration(void* vconfig) return ESP_ERR_INVALID_ARG; } -#if CONFIG_IDF_TARGET_ESP32 - esp_pm_config_esp32_t* config = (esp_pm_config_esp32_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32S2 - esp_pm_config_esp32s2_t* config = (esp_pm_config_esp32s2_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32S3 - esp_pm_config_esp32s3_t* config = (esp_pm_config_esp32s3_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32C3 - esp_pm_config_esp32c3_t* config = (esp_pm_config_esp32c3_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32H4 - esp_pm_config_esp32h4_t* config = (esp_pm_config_esp32h4_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32C2 - esp_pm_config_esp32c2_t* config = (esp_pm_config_esp32c2_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32C6 - esp_pm_config_esp32c6_t* config = (esp_pm_config_esp32c6_t*) vconfig; -#elif CONFIG_IDF_TARGET_ESP32H2 - esp_pm_config_esp32h2_t* config = (esp_pm_config_esp32h2_t*) vconfig; -#endif + esp_pm_config_t* config = (esp_pm_config_t*) vconfig; portENTER_CRITICAL(&s_switch_lock); config->light_sleep_enable = s_light_sleep_en; @@ -792,23 +736,7 @@ void esp_pm_impl_init(void) #ifdef CONFIG_PM_DFS_INIT_AUTO int xtal_freq_mhz = esp_clk_xtal_freq() / MHZ; -#if CONFIG_IDF_TARGET_ESP32 - esp_pm_config_esp32_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32S2 - esp_pm_config_esp32s2_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32S3 - esp_pm_config_esp32s3_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32C3 - esp_pm_config_esp32c3_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32H4 - esp_pm_config_esp32h4_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32C2 - esp_pm_config_esp32c2_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32C6 - esp_pm_config_esp32c6_t cfg = { -#elif CONFIG_IDF_TARGET_ESP32H2 - esp_pm_config_esp32h2_t cfg = { -#endif + esp_pm_config_t cfg = { .max_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, .min_freq_mhz = xtal_freq_mhz, }; diff --git a/components/esp_pm/test_apps/esp_pm/main/test_pm.c b/components/esp_pm/test_apps/esp_pm/main/test_pm.c index 09e90edce7..af98d2c54a 100644 --- a/components/esp_pm/test_apps/esp_pm/main/test_pm.c +++ b/components/esp_pm/test_apps/esp_pm/main/test_pm.c @@ -48,21 +48,8 @@ TEST_CASE("Can dump power management lock stats", "[pm]") static void switch_freq(int mhz) { int xtal_freq_mhz = esp_clk_xtal_freq() / MHZ; -#if CONFIG_IDF_TARGET_ESP32 - esp_pm_config_esp32_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S2 - esp_pm_config_esp32s2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S3 - esp_pm_config_esp32s3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C2 - esp_pm_config_esp32c2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C3 - esp_pm_config_esp32c3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32H4 - esp_pm_config_esp32h4_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C6 - esp_pm_config_esp32c6_t pm_config = { -#endif + + esp_pm_config_t pm_config = { .max_freq_mhz = mhz, .min_freq_mhz = MIN(mhz, xtal_freq_mhz), }; @@ -105,21 +92,7 @@ static void light_sleep_enable(void) int cur_freq_mhz = esp_clk_cpu_freq() / MHZ; int xtal_freq = esp_clk_xtal_freq() / MHZ; -#if CONFIG_IDF_TARGET_ESP32 - esp_pm_config_esp32_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S2 - esp_pm_config_esp32s2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S3 - esp_pm_config_esp32s3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C2 - esp_pm_config_esp32c2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C3 - esp_pm_config_esp32c3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32H4 - esp_pm_config_esp32h4_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C6 - esp_pm_config_esp32c6_t pm_config = { -#endif + esp_pm_config_t pm_config = { .max_freq_mhz = cur_freq_mhz, .min_freq_mhz = xtal_freq, .light_sleep_enable = true @@ -131,21 +104,7 @@ static void light_sleep_disable(void) { int cur_freq_mhz = esp_clk_cpu_freq() / MHZ; -#if CONFIG_IDF_TARGET_ESP32 - esp_pm_config_esp32_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S2 - esp_pm_config_esp32s2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S3 - esp_pm_config_esp32s3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C2 - esp_pm_config_esp32c2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C3 - esp_pm_config_esp32c3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32H4 - esp_pm_config_esp32h4_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C6 - esp_pm_config_esp32c6_t pm_config = { -#endif + esp_pm_config_t pm_config = { .max_freq_mhz = cur_freq_mhz, .min_freq_mhz = cur_freq_mhz, }; diff --git a/components/hal/esp32h2/include/hal/rtc_cntl_ll.h b/components/hal/esp32h2/include/hal/rtc_cntl_ll.h deleted file mode 100644 index 2df27b8dcf..0000000000 --- a/components/hal/esp32h2/include/hal/rtc_cntl_ll.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#pragma once - -#include "soc/soc.h" -#include "soc/rtc.h" -#include "esp_attr.h" - -#ifdef __cplusplus -extern "C" { -#endif - -FORCE_INLINE_ATTR void rtc_cntl_ll_set_wakeup_timer(uint64_t t) -{ - // ESP32H2-TODO: IDF-6401 -} - -FORCE_INLINE_ATTR uint32_t rtc_cntl_ll_gpio_get_wakeup_pins(void) -{ - return 0; - // ESP32H2-TODO: IDF-6401 -} - -FORCE_INLINE_ATTR uint32_t rtc_cntl_ll_gpio_get_wakeup_status(void) -{ - // ESP32H2-TODO: IDF-6401 - return 0; -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_gpio_clear_wakeup_status(void) -{ - // ESP32H2-TODO: IDF-6401 -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_gpio_set_wakeup_pins(void) -{ - // ESP32H2-TODO: IDF-5718 -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_gpio_clear_wakeup_pins(void) -{ - // ESP32H2-TODO: IDF-5718 -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_set_cpu_retention_link_addr(uint32_t addr) -{ - // ESP32H2-TODO: IDF-5718 has removed the retention feature -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_enable_cpu_retention_clock(void) -{ - // ESP32H2-TODO: IDF-5718 has removed the retention feature -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_enable_cpu_retention(void) -{ - // ESP32H2-TODO: IDF-5718 has removed the retention feature -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_disable_cpu_retention(void) -{ - // ESP32H2-TODO: IDF-5718 has removed the retention feature -} - -FORCE_INLINE_ATTR void rtc_cntl_ll_sleep_enable(void) -{ - // TODO: IDF-6572 -} - -FORCE_INLINE_ATTR uint64_t rtc_cntl_ll_get_rtc_time(void) -{ - // TODO: IDF-6572 - return 0; -} - -FORCE_INLINE_ATTR uint64_t rtc_cntl_ll_time_to_count(uint64_t time_in_us) -{ - // TODO: IDF-6572 - return 0; -} - -FORCE_INLINE_ATTR uint32_t rtc_cntl_ll_get_wakeup_cause(void) -{ - // TODO: IDF-6572 - return 0; -} - -#ifdef __cplusplus -} -#endif diff --git a/components/soc/esp32/include/soc/rtc.h b/components/soc/esp32/include/soc/rtc.h index cfc583ad49..4881a174a2 100644 --- a/components/soc/esp32/include/soc/rtc.h +++ b/components/soc/esp32/include/soc/rtc.h @@ -573,14 +573,6 @@ void rtc_sleep_init(rtc_sleep_config_t cfg); */ void rtc_sleep_low_init(uint32_t slowclk_period); -/** - * @brief Set target value of RTC counter for RTC_TIMER_TRIG_EN wakeup source - * @param t value of RTC counter at which wakeup from sleep will happen; - * only the lower 48 bits are used - */ -void rtc_sleep_set_wakeup_time(uint64_t t); - - #define RTC_EXT0_TRIG_EN BIT(0) //!< EXT0 GPIO wakeup #define RTC_EXT1_TRIG_EN BIT(1) //!< EXT1 GPIO wakeup #define RTC_GPIO_TRIG_EN BIT(2) //!< GPIO wakeup (light sleep only) diff --git a/components/soc/esp32c2/include/soc/rtc.h b/components/soc/esp32c2/include/soc/rtc.h index b838418bed..4f86b86943 100644 --- a/components/soc/esp32c2/include/soc/rtc.h +++ b/components/soc/esp32c2/include/soc/rtc.h @@ -460,10 +460,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * @@ -602,13 +598,6 @@ void rtc_sleep_init(rtc_sleep_config_t cfg); */ void rtc_sleep_low_init(uint32_t slowclk_period); -/** - * @brief Set target value of RTC counter for RTC_TIMER_TRIG_EN wakeup source - * @param t value of RTC counter at which wakeup from sleep will happen; - * only the lower 48 bits are used - */ -void rtc_sleep_set_wakeup_time(uint64_t t); - #define RTC_GPIO_TRIG_EN BIT(2) //!< GPIO wakeup #define RTC_TIMER_TRIG_EN BIT(3) //!< Timer wakeup #define RTC_WIFI_TRIG_EN BIT(5) //!< WIFI wakeup (light sleep only) @@ -659,29 +648,6 @@ void rtc_sleep_set_wakeup_time(uint64_t t); */ uint32_t rtc_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt, uint32_t lslp_mem_inf_fpu); -/** - * @brief Enter deep sleep mode - * - * Similar to rtc_sleep_start(), but additionally uses hardware to calculate the CRC value - * of RTC FAST memory. On wake, this CRC is used to determine if a deep sleep wake - * stub is valid to execute (if a wake address is set). - * - * No RAM is accessed while calculating the CRC and going into deep sleep, which makes - * this function safe to use even if the caller's stack is in RTC FAST memory. - * - * @note If no deep sleep wake stub address is set then calling rtc_sleep_start() will - * have the same effect and takes less time as CRC calculation is skipped. - * - * @note This function should only be called after rtc_sleep_init() has been called to - * configure the system for deep sleep. - * - * @param wakeup_opt - same as for rtc_sleep_start - * @param reject_opt - same as for rtc_sleep_start - * - * @return non-zero if sleep was rejected by hardware - */ -uint32_t rtc_deep_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt); - /** * RTC power and clock control initialization settings */ diff --git a/components/soc/esp32c3/include/soc/rtc.h b/components/soc/esp32c3/include/soc/rtc.h index 8b56920082..59b1dcdd21 100644 --- a/components/soc/esp32c3/include/soc/rtc.h +++ b/components/soc/esp32c3/include/soc/rtc.h @@ -483,10 +483,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * @@ -643,13 +639,6 @@ void rtc_sleep_init(rtc_sleep_config_t cfg); */ void rtc_sleep_low_init(uint32_t slowclk_period); -/** - * @brief Set target value of RTC counter for RTC_TIMER_TRIG_EN wakeup source - * @param t value of RTC counter at which wakeup from sleep will happen; - * only the lower 48 bits are used - */ -void rtc_sleep_set_wakeup_time(uint64_t t); - #define RTC_GPIO_TRIG_EN BIT(2) //!< GPIO wakeup #define RTC_TIMER_TRIG_EN BIT(3) //!< Timer wakeup #define RTC_WIFI_TRIG_EN BIT(5) //!< WIFI wakeup (light sleep only) diff --git a/components/soc/esp32c6/include/soc/rtc.h b/components/soc/esp32c6/include/soc/rtc.h index 734f4f24f6..f0c6c2fc13 100644 --- a/components/soc/esp32c6/include/soc/rtc.h +++ b/components/soc/esp32c6/include/soc/rtc.h @@ -446,10 +446,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * diff --git a/components/soc/esp32h2/include/soc/rtc.h b/components/soc/esp32h2/include/soc/rtc.h index 38e25292f2..ed75221544 100644 --- a/components/soc/esp32h2/include/soc/rtc.h +++ b/components/soc/esp32h2/include/soc/rtc.h @@ -17,7 +17,7 @@ extern "C" { /** * @file rtc.h - * @brief Low-level RTC power, clock, and sleep functions. + * @brief Low-level RTC power, clock functions. * * Functions in this file facilitate configuration of ESP32's RTC_CNTL peripheral. * RTC_CNTL peripheral handles many functions: @@ -456,10 +456,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * @@ -497,7 +493,6 @@ bool rtc_dig_8m_enabled(void); */ uint32_t rtc_clk_freq_cal(uint32_t cal_val); - // -------------------------- CLOCK TREE DEFS ALIAS ---------------------------- // **WARNING**: The following are only for backwards compatibility. // Please use the declarations in soc/clk_tree_defs.h instead. diff --git a/components/soc/esp32h4/include/soc/rtc.h b/components/soc/esp32h4/include/soc/rtc.h index bbdd6397b8..338252d5f0 100644 --- a/components/soc/esp32h4/include/soc/rtc.h +++ b/components/soc/esp32h4/include/soc/rtc.h @@ -499,10 +499,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * @@ -657,13 +653,6 @@ void rtc_sleep_init(rtc_sleep_config_t cfg); */ void rtc_sleep_low_init(uint32_t slowclk_period); -/** - * @brief Set target value of RTC counter for RTC_TIMER_TRIG_EN wakeup source - * @param t value of RTC counter at which wakeup from sleep will happen; - * only the lower 48 bits are used - */ -void rtc_sleep_set_wakeup_time(uint64_t t); - #define RTC_GPIO_TRIG_EN BIT(2) //!< GPIO wakeup #define RTC_TIMER_TRIG_EN BIT(3) //!< Timer wakeup #define RTC_WIFI_TRIG_EN BIT(5) //!< WIFI wakeup (light sleep only) diff --git a/components/soc/esp32s2/include/soc/rtc.h b/components/soc/esp32s2/include/soc/rtc.h index b3321905b8..0436e5b86f 100644 --- a/components/soc/esp32s2/include/soc/rtc.h +++ b/components/soc/esp32s2/include/soc/rtc.h @@ -508,10 +508,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * diff --git a/components/soc/esp32s3/include/soc/rtc.h b/components/soc/esp32s3/include/soc/rtc.h index 82518b83d7..2a45f36a7e 100644 --- a/components/soc/esp32s3/include/soc/rtc.h +++ b/components/soc/esp32s3/include/soc/rtc.h @@ -508,10 +508,6 @@ uint64_t rtc_time_slowclk_to_us(uint64_t rtc_cycles, uint32_t period); */ uint64_t rtc_time_get(void); -uint64_t rtc_light_slp_time_get(void); - -uint64_t rtc_deep_slp_time_get(void); - /** * @brief Busy loop until next RTC_SLOW_CLK cycle * @@ -667,14 +663,6 @@ void rtc_sleep_init(rtc_sleep_config_t cfg); */ void rtc_sleep_low_init(uint32_t slowclk_period); -/** - * @brief Set target value of RTC counter for RTC_TIMER_TRIG_EN wakeup source - * @param t value of RTC counter at which wakeup from sleep will happen; - * only the lower 48 bits are used - */ -void rtc_sleep_set_wakeup_time(uint64_t t); - - #define RTC_EXT0_TRIG_EN BIT(0) //!< EXT0 GPIO wakeup #define RTC_EXT1_TRIG_EN BIT(1) //!< EXT1 GPIO wakeup #define RTC_GPIO_TRIG_EN BIT(2) //!< GPIO wakeup (light sleep only) diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index d48a77d466..05a845a494 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -159,7 +159,6 @@ INPUT = \ $(PROJECT_PATH)/components/esp_netif/include/esp_netif_sntp.h \ $(PROJECT_PATH)/components/esp_partition/include/esp_partition.h \ $(PROJECT_PATH)/components/esp_phy/include/esp_phy_init.h \ - $(PROJECT_PATH)/components/esp_pm/include/$(IDF_TARGET)/pm.h \ $(PROJECT_PATH)/components/esp_pm/include/esp_pm.h \ $(PROJECT_PATH)/components/esp_ringbuf/include/freertos/ringbuf.h \ $(PROJECT_PATH)/components/esp_rom/include/esp_rom_sys.h \ diff --git a/docs/en/api-reference/system/power_management.rst b/docs/en/api-reference/system/power_management.rst index 0c830d50f0..b43e721b07 100644 --- a/docs/en/api-reference/system/power_management.rst +++ b/docs/en/api-reference/system/power_management.rst @@ -25,7 +25,7 @@ Power management can be enabled at compile time, using the option :ref:`CONFIG_P Enabling power management features comes at the cost of increased interrupt latency. Extra latency depends on a number of factors, such as the CPU frequency, single/dual core mode, whether or not frequency switch needs to be done. Minimum extra latency is 0.2 us (when the CPU frequency is 240 MHz and frequency scaling is not enabled). Maximum extra latency is 40 us (when frequency scaling is enabled, and a switch from 40 MHz to 80 MHz is performed on interrupt entry). -Dynamic frequency scaling (DFS) and automatic light sleep can be enabled in an application by calling the function :cpp:func:`esp_pm_configure`. Its argument is a structure defining the frequency scaling settings, :cpp:class:`esp_pm_config_{IDF_TARGET_PATH_NAME}_t`. In this structure, three fields need to be initialized: +Dynamic frequency scaling (DFS) and automatic light sleep can be enabled in an application by calling the function :cpp:func:`esp_pm_configure`. Its argument is a structure defining the frequency scaling settings, :cpp:class:`esp_pm_config_t`. In this structure, three fields need to be initialized: - ``max_freq_mhz``: Maximum CPU frequency in MHz, i.e., the frequency used when the ``ESP_PM_CPU_FREQ_MAX`` lock is acquired. This field will usually be set to the default CPU frequency. - ``min_freq_mhz``: Minimum CPU frequency in MHz, i.e., the frequency used when only the ``ESP_PM_APB_FREQ_MAX`` lock is acquired. This field can be set to the XTAL frequency value, or the XTAL frequency divided by an integer. Note that 10 MHz is the lowest frequency at which the default REF_TICK clock of 1 MHz can be generated. @@ -137,5 +137,4 @@ API Reference ------------- .. include-build-file:: inc/esp_pm.inc -.. include-build-file:: inc/pm.inc diff --git a/docs/en/migration-guides/release-5.x/5.1/index.rst b/docs/en/migration-guides/release-5.x/5.1/index.rst index 35a89aca69..4a3c4b65d7 100644 --- a/docs/en/migration-guides/release-5.x/5.1/index.rst +++ b/docs/en/migration-guides/release-5.x/5.1/index.rst @@ -10,3 +10,4 @@ Migration from 5.0 to 5.1 peripherals storage networking + system diff --git a/docs/en/migration-guides/release-5.x/5.1/system.rst b/docs/en/migration-guides/release-5.x/5.1/system.rst new file mode 100644 index 0000000000..e6fe37009f --- /dev/null +++ b/docs/en/migration-guides/release-5.x/5.1/system.rst @@ -0,0 +1,10 @@ +System +====== + +:link_to_translation:`zh_CN:[中文]` + +Power Management +----------------------- + +* ``esp_pm_config_esp32xx_t`` is deprecated, use ``esp_pm_config_t`` instead. +* ``esp32xx/pm.h`` is deprecated, use ``esp_pm.h`` instead. diff --git a/docs/zh_CN/api-reference/system/power_management.rst b/docs/zh_CN/api-reference/system/power_management.rst index e199d07c24..106fa9efbb 100644 --- a/docs/zh_CN/api-reference/system/power_management.rst +++ b/docs/zh_CN/api-reference/system/power_management.rst @@ -25,7 +25,7 @@ ESP-IDF 中集成的电源管理算法可以根据应用程序组件的需求, 启用电源管理功能将会增加中断延迟。额外延迟与多个因素有关,例如:CPU 频率、单/双核模式、是否需要进行频率切换等。CPU 频率为 240 MHz 且未启用频率调节时,最小额外延迟为 0.2 us;如果启用频率调节,且在中断入口将频率由 40 MHz 调节至 80 MHz,则最大额外延迟为 40 us。 -通过调用 :cpp:func:`esp_pm_configure` 函数可以在应用程序中启用动态调频 (DFS) 功能和自动 Light-sleep 模式。此函数的参数 :cpp:class:`esp_pm_config_{IDF_TARGET_PATH_NAME}_t` 定义了频率调节的相关设置。在此参数结构中,需要初始化以下三个字段: +通过调用 :cpp:func:`esp_pm_configure` 函数可以在应用程序中启用动态调频 (DFS) 功能和自动 Light-sleep 模式。此函数的参数 :cpp:class:`esp_pm_config_t` 定义了频率调节的相关设置。在此参数结构中,需要初始化以下三个字段: - ``max_freq_mhz``:最大 CPU 频率 (MHz),即获取 ``ESP_PM_CPU_FREQ_MAX`` 锁后所使用的频率。该字段通常设置为 :ref:`CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ`。 - ``min_freq_mhz``:最小 CPU 频率 (MHz),即仅获取 ``ESP_PM_APB_FREQ_MAX`` 锁后所使用的频率。该字段可设置为晶振 (XTAL) 频率值,或者 XTAL 频率值除以整数。注意,10 MHz 是生成 1 MHz 的 REF_TICK 默认时钟所需的最小频率。 @@ -137,5 +137,4 @@ API 参考 ------------- .. include-build-file:: inc/esp_pm.inc -.. include-build-file:: inc/pm.inc diff --git a/docs/zh_CN/migration-guides/release-5.x/5.1/index.rst b/docs/zh_CN/migration-guides/release-5.x/5.1/index.rst index 03c107bdac..c95cac366c 100644 --- a/docs/zh_CN/migration-guides/release-5.x/5.1/index.rst +++ b/docs/zh_CN/migration-guides/release-5.x/5.1/index.rst @@ -10,3 +10,4 @@ peripherals storage networking + system diff --git a/docs/zh_CN/migration-guides/release-5.x/5.1/system.rst b/docs/zh_CN/migration-guides/release-5.x/5.1/system.rst new file mode 100644 index 0000000000..d6da2d7bba --- /dev/null +++ b/docs/zh_CN/migration-guides/release-5.x/5.1/system.rst @@ -0,0 +1,10 @@ +系统 +====== + +:link_to_translation:`en:[英文]` + +电源管理 +---------- + +* ``esp_pm_config_esp32xx_t`` 已被弃用,应使用 ``esp_pm_config_t`` 替代。 +* ``esp32xx/pm.h`` 已被弃用,应使用 ``esp_pm.h`` 替代。 diff --git a/examples/wifi/itwt/main/itwt.c b/examples/wifi/itwt/main/itwt.c index 8ce6db7e26..23a60a3128 100644 --- a/examples/wifi/itwt/main/itwt.c +++ b/examples/wifi/itwt/main/itwt.c @@ -254,7 +254,7 @@ void app_main(void) // Configure dynamic frequency scaling: // maximum and minimum frequencies are set in sdkconfig, // automatic light sleep is enabled if tickless idle support is enabled. - esp_pm_config_esp32c6_t pm_config = { + esp_pm_config_t pm_config = { .max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ, .min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ, #if CONFIG_FREERTOS_USE_TICKLESS_IDLE diff --git a/examples/wifi/power_save/main/power_save.c b/examples/wifi/power_save/main/power_save.c index bd39b47d76..780a902ead 100644 --- a/examples/wifi/power_save/main/power_save.c +++ b/examples/wifi/power_save/main/power_save.c @@ -95,19 +95,7 @@ void app_main(void) // Configure dynamic frequency scaling: // maximum and minimum frequencies are set in sdkconfig, // automatic light sleep is enabled if tickless idle support is enabled. -#if CONFIG_IDF_TARGET_ESP32 - esp_pm_config_esp32_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S2 - esp_pm_config_esp32s2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C3 - esp_pm_config_esp32c3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32S3 - esp_pm_config_esp32s3_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C2 - esp_pm_config_esp32c2_t pm_config = { -#elif CONFIG_IDF_TARGET_ESP32C6 - esp_pm_config_esp32c6_t pm_config = { -#endif + esp_pm_config_t pm_config = { .max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ, .min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ, #if CONFIG_FREERTOS_USE_TICKLESS_IDLE