From 5f6f20ea30919818ede1a27e86da05d8bc3766bf Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Tue, 25 Jul 2023 13:54:24 +0800 Subject: [PATCH] fix(esp_pm): fix bad apb_max_freq for 26mhz esp32c2 --- components/esp_pm/pm_impl.c | 4 ++-- components/soc/esp32h2/include/soc/soc.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/components/esp_pm/pm_impl.c b/components/esp_pm/pm_impl.c index 79b3e0c272..615eaf31c3 100644 --- a/components/esp_pm/pm_impl.c +++ b/components/esp_pm/pm_impl.c @@ -266,7 +266,7 @@ esp_err_t esp_pm_configure(const void* vconfig) */ apb_max_freq = 80; } -#elif CONFIG_IDF_TARGET_ESP32C6 +#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 /* Maximum SOC APB clock frequency is 40 MHz, maximum Modem (WiFi, * Bluetooth, etc..) APB clock frequency is 80 MHz */ const int soc_apb_clk_freq = esp_clk_apb_freq() / MHZ; @@ -274,7 +274,7 @@ esp_err_t esp_pm_configure(const void* vconfig) const int apb_clk_freq = MAX(soc_apb_clk_freq, modem_apb_clk_freq); int apb_max_freq = MIN(max_freq_mhz, apb_clk_freq); /* CPU frequency in APB_MAX mode */ #else - int apb_max_freq = MIN(max_freq_mhz, APB_CLK_FREQ / MHZ); /* CPU frequency in APB_MAX mode */ + int apb_max_freq = MIN(max_freq_mhz, 80); /* CPU frequency in APB_MAX mode */ #endif apb_max_freq = MAX(apb_max_freq, min_freq_mhz); diff --git a/components/soc/esp32h2/include/soc/soc.h b/components/soc/esp32h2/include/soc/soc.h index 5a95925d27..6d7e5d9d53 100644 --- a/components/soc/esp32h2/include/soc/soc.h +++ b/components/soc/esp32h2/include/soc/soc.h @@ -140,6 +140,7 @@ #define CPU_CLK_FREQ_MHZ_BTLD (96) // The cpu clock frequency (in MHz) to set at 2nd stage bootloader system clock configuration #define CPU_CLK_FREQ APB_CLK_FREQ #define APB_CLK_FREQ ( 32*1000000 ) +#define MODEM_APB_CLK_FREQ ( 32*1000000 ) #define REF_CLK_FREQ ( 1000000 ) #define XTAL_CLK_FREQ (32*1000000) #define GPIO_MATRIX_DELAY_NS 0