From 57732dbc595b436bccfd20737676dfa9b4e8915f Mon Sep 17 00:00:00 2001 From: cjin Date: Tue, 2 Jun 2026 20:00:44 +0800 Subject: [PATCH] fix(ble): use default frequency for ble power save example --- .../nimble/power_save/main/Kconfig.projbuild | 85 ------------------- .../bluetooth/nimble/power_save/main/main.c | 5 +- 2 files changed, 3 insertions(+), 87 deletions(-) diff --git a/examples/bluetooth/nimble/power_save/main/Kconfig.projbuild b/examples/bluetooth/nimble/power_save/main/Kconfig.projbuild index 1ce82a20a12..70dcff8042b 100644 --- a/examples/bluetooth/nimble/power_save/main/Kconfig.projbuild +++ b/examples/bluetooth/nimble/power_save/main/Kconfig.projbuild @@ -1,90 +1,5 @@ menu "Example Configuration" - choice EXAMPLE_MAX_CPU_FREQ - prompt "Maximum CPU frequency" - default EXAMPLE_MAX_CPU_FREQ_160 if !IDF_TARGET_ESP32H2 && !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C5 - default EXAMPLE_MAX_CPU_FREQ_96 if IDF_TARGET_ESP32H2 - default EXAMPLE_MAX_CPU_FREQ_120 if IDF_TARGET_ESP32C2 - default EXAMPLE_MAX_CPU_FREQ_240 if IDF_TARGET_ESP32C5 - depends on PM_ENABLE - help - Maximum CPU frequency to use for dynamic frequency scaling. - - config EXAMPLE_MAX_CPU_FREQ_80 - bool "80 MHz" - config EXAMPLE_MAX_CPU_FREQ_96 - bool "96 MHz" - depends on IDF_TARGET_ESP32H2 - config EXAMPLE_MAX_CPU_FREQ_160 - bool "160 MHz" - config EXAMPLE_MAX_CPU_FREQ_120 - bool "120 MHz" - depends on IDF_TARGET_ESP32C2 - config EXAMPLE_MAX_CPU_FREQ_240 - bool "240 MHz" - depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C5 - endchoice - - config EXAMPLE_MAX_CPU_FREQ_MHZ - int - default 80 if EXAMPLE_MAX_CPU_FREQ_80 - default 96 if EXAMPLE_MAX_CPU_FREQ_96 - default 120 if EXAMPLE_MAX_CPU_FREQ_120 - default 160 if EXAMPLE_MAX_CPU_FREQ_160 - default 240 if EXAMPLE_MAX_CPU_FREQ_240 - - choice EXAMPLE_MIN_CPU_FREQ - prompt "Minimum CPU frequency" - default EXAMPLE_MIN_CPU_FREQ_40M if !IDF_TARGET_ESP32H2 && !IDF_TARGET_ESP32C2 && !IDF_TARGET_ESP32C5 - default EXAMPLE_MIN_CPU_FREQ_48M if IDF_TARGET_ESP32C5 - default EXAMPLE_MIN_CPU_FREQ_32M if IDF_TARGET_ESP32H2 - default EXAMPLE_MIN_CPU_FREQ_26M if IDF_TARGET_ESP32C2 - depends on PM_ENABLE - help - Minimum CPU frequency to use for dynamic frequency scaling. - Should be set to XTAL frequency or XTAL frequency divided by integer. - - config EXAMPLE_MIN_CPU_FREQ_80M - bool "80 MHz" - depends on !(IDF_TARGET_ESP32 && EXAMPLE_MAX_CPU_FREQ_240) - help - ESP32 does not support switching between 240M and 80M.The root cause - is that when switching between 240M and 80M, we need to disable - BBPLL and then re-enable it with a different frequency.Since the - Bluetooth baseband works from PLL frequency, it will temporarily - lose its 80 MHz clock, while the BBPLL is disabled. - config EXAMPLE_MIN_CPU_FREQ_48M - bool "48 MHz (use with 48MHz XTAL)" - depends on XTAL_FREQ_48 || XTAL_FREQ_AUTO - config EXAMPLE_MIN_CPU_FREQ_40M - bool "40 MHz (use with 40MHz XTAL)" - depends on XTAL_FREQ_40 || XTAL_FREQ_AUTO - config EXAMPLE_MIN_CPU_FREQ_32M - bool "32 MHz (use with 32MHz XTAL)" - depends on IDF_TARGET_ESP32H2 - depends on XTAL_FREQ_32 || XTAL_FREQ_AUTO - config EXAMPLE_MIN_CPU_FREQ_26M - bool "26 MHz (use with 26MHz XTAL)" - depends on IDF_TARGET_ESP32C2 - depends on XTAL_FREQ_26 || XTAL_FREQ_AUTO - config EXAMPLE_MIN_CPU_FREQ_20M - bool "20 MHz (use with 40MHz XTAL)" - depends on XTAL_FREQ_40 || XTAL_FREQ_AUTO - config EXAMPLE_MIN_CPU_FREQ_10M - bool "10 MHz (use with 40MHz XTAL)" - depends on XTAL_FREQ_40 || XTAL_FREQ_AUTO - endchoice - - config EXAMPLE_MIN_CPU_FREQ_MHZ - int - default 80 if EXAMPLE_MIN_CPU_FREQ_80M - default 48 if EXAMPLE_MIN_CPU_FREQ_48M - default 40 if EXAMPLE_MIN_CPU_FREQ_40M - default 32 if EXAMPLE_MIN_CPU_FREQ_32M - default 26 if EXAMPLE_MIN_CPU_FREQ_26M - default 20 if EXAMPLE_MIN_CPU_FREQ_20M - default 10 if EXAMPLE_MIN_CPU_FREQ_10M - choice EXAMPLE_USE_IO_TYPE prompt "I/O Capability" default BLE_SM_IO_CAP_NO_IO diff --git a/examples/bluetooth/nimble/power_save/main/main.c b/examples/bluetooth/nimble/power_save/main/main.c index 4b3ffe1a679..75ae3440ea2 100644 --- a/examples/bluetooth/nimble/power_save/main/main.c +++ b/examples/bluetooth/nimble/power_save/main/main.c @@ -16,6 +16,7 @@ #include "console/console.h" #include "services/gap/ble_svc_gap.h" #include "bleprph.h" +#include "soc/rtc.h" #if CONFIG_EXAMPLE_USE_CI_ADDRESS #ifdef CONFIG_IDF_TARGET_ESP32 @@ -595,8 +596,8 @@ app_main(void) // maximum and minimum frequencies are set in sdkconfig, // automatic light sleep is enabled if tickless idle support is enabled. esp_pm_config_t pm_config = { - .max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ, - .min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ, + .max_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, + .min_freq_mhz = rtc_clk_xtal_freq_get(), #if CONFIG_FREERTOS_USE_TICKLESS_IDLE .light_sleep_enable = true #endif