mirror of
https://github.com/espressif/esp-idf.git
synced 2026-05-28 16:46:31 +03:00
feat(esp_hw_support): support esp32s31 DFS
This commit is contained in:
@@ -82,27 +82,6 @@
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2
|
||||
/* Minimal divider at which REF_CLK_FREQ can be obtained */
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32S3
|
||||
/* Minimal divider at which REF_CLK_FREQ can be obtained */
|
||||
#define REF_CLK_DIV_MIN 2 // TODO: IDF-5660
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32C61
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32H2
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32H21
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32P4
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#elif CONFIG_IDF_TARGET_ESP32H4
|
||||
#define REF_CLK_DIV_MIN 2
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM_PROFILING
|
||||
@@ -451,11 +430,13 @@ esp_err_t esp_pm_configure(const void* vconfig)
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
|
||||
#ifdef REF_CLK_DIV_MIN
|
||||
int xtal_freq_mhz = esp_clk_xtal_freq() / MHZ;
|
||||
if (min_freq_mhz < xtal_freq_mhz && min_freq_mhz * MHZ / REF_CLK_FREQ < REF_CLK_DIV_MIN) {
|
||||
ESP_LOGW(TAG, "min_freq_mhz should be >= %d", REF_CLK_FREQ * REF_CLK_DIV_MIN / MHZ);
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!rtc_clk_cpu_freq_mhz_to_config(max_freq_mhz, &freq_config)) {
|
||||
ESP_LOGW(TAG, "invalid max_freq_mhz value (%d)", max_freq_mhz);
|
||||
@@ -479,7 +460,7 @@ esp_err_t esp_pm_configure(const void* vconfig)
|
||||
/* Maximum SOC APB clock frequency is 40 MHz, maximum Modem (WiFi,
|
||||
* Bluetooth, etc..) APB clock frequency is 80 MHz */
|
||||
int apb_clk_freq = esp_clk_apb_freq() / MHZ;
|
||||
#if (CONFIG_ESP_WIFI_ENABLED || CONFIG_BT_ENABLED || CONFIG_IEEE802154_ENABLED) && SOC_PHY_SUPPORTED
|
||||
#if (CONFIG_ESP_WIFI_ENABLED || CONFIG_BT_ENABLED || CONFIG_IEEE802154_ENABLED) && SOC_PHY_SUPPORTED && !SOC_MODEM_APB_CLOCK_IS_INDEPENDENT
|
||||
apb_clk_freq = MAX(apb_clk_freq, MODEM_REQUIRED_MIN_APB_CLK_FREQ / MHZ);
|
||||
#endif
|
||||
int apb_max_freq = MIN(max_freq_mhz, apb_clk_freq); /* CPU frequency in APB_MAX mode */
|
||||
|
||||
@@ -142,7 +142,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ (SOC_XTAL_FREQ_MHZ * 1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 80*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -135,7 +135,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 80*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 80*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 40*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 80*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -136,7 +136,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 40*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 80*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 40*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 80*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -135,7 +135,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 32*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 32*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -137,7 +137,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 32*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 32*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -126,7 +126,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 32*1000000 )
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ ( 32*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 90*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -150,7 +150,6 @@
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ (80*1000000)
|
||||
#define MODEM_REQUIRED_MIN_APB_CLK_FREQ (80*1000000)
|
||||
#define REF_CLK_FREQ (1000000)
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -975,6 +975,10 @@ config SOC_MODEM_CLOCK_IS_INDEPENDENT
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_MODEM_APB_CLOCK_IS_INDEPENDENT
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_MODEM_CLOCK_SOC_PLL_SOURCE_CG_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -128,7 +128,6 @@
|
||||
|
||||
//Periheral Clock {{
|
||||
#define APB_CLK_FREQ ( 40*1000000 )
|
||||
#define REF_CLK_FREQ ( 1000000 )
|
||||
//}}
|
||||
|
||||
/* Overall memory map */
|
||||
|
||||
@@ -402,6 +402,7 @@
|
||||
|
||||
// /*-------------------------- CLOCK SUBSYSTEM CAPS ----------------------------------------*/
|
||||
#define SOC_MODEM_CLOCK_IS_INDEPENDENT (1)
|
||||
#define SOC_MODEM_APB_CLOCK_IS_INDEPENDENT (1)
|
||||
#define SOC_MODEM_CLOCK_SOC_PLL_SOURCE_CG_SUPPORTED (1)
|
||||
#define SOC_MODEM_CLOCK_WIFI_BB_80X1_AS_APB (1)
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
choice EXAMPLE_PM_MAX_FREQ_MHZ
|
||||
prompt "Max CPU frequency (MHz)"
|
||||
default EXAMPLE_PM_MAX_FREQ_MHZ_320
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_10
|
||||
bool "10"
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_20
|
||||
bool "20"
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_40
|
||||
bool "40"
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_80
|
||||
bool "80"
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_160
|
||||
bool "160"
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_240
|
||||
bool "240"
|
||||
config EXAMPLE_PM_MAX_FREQ_MHZ_320
|
||||
bool "320"
|
||||
endchoice
|
||||
|
||||
config EXAMPLE_PM_MAX_FREQ
|
||||
int
|
||||
default 10 if EXAMPLE_PM_MAX_FREQ_MHZ_10
|
||||
default 20 if EXAMPLE_PM_MAX_FREQ_MHZ_20
|
||||
default 40 if EXAMPLE_PM_MAX_FREQ_MHZ_40
|
||||
default 80 if EXAMPLE_PM_MAX_FREQ_MHZ_80
|
||||
default 160 if EXAMPLE_PM_MAX_FREQ_MHZ_160
|
||||
default 240 if EXAMPLE_PM_MAX_FREQ_MHZ_240
|
||||
default 320 if EXAMPLE_PM_MAX_FREQ_MHZ_320
|
||||
|
||||
choice EXAMPLE_PM_MIN_FREQ_MHZ
|
||||
prompt "Min CPU frequency (MHz)"
|
||||
default EXAMPLE_PM_MIN_FREQ_MHZ_40
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_10
|
||||
bool "10"
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_20
|
||||
bool "20"
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_40
|
||||
bool "40"
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_80
|
||||
bool "80"
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_160
|
||||
bool "160"
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_240
|
||||
bool "240"
|
||||
config EXAMPLE_PM_MIN_FREQ_MHZ_320
|
||||
bool "320"
|
||||
endchoice
|
||||
|
||||
config EXAMPLE_PM_MIN_FREQ
|
||||
int
|
||||
default 10 if EXAMPLE_PM_MIN_FREQ_MHZ_10
|
||||
default 20 if EXAMPLE_PM_MIN_FREQ_MHZ_20
|
||||
default 40 if EXAMPLE_PM_MIN_FREQ_MHZ_40
|
||||
default 80 if EXAMPLE_PM_MIN_FREQ_MHZ_80
|
||||
default 160 if EXAMPLE_PM_MIN_FREQ_MHZ_160
|
||||
default 240 if EXAMPLE_PM_MIN_FREQ_MHZ_240
|
||||
default 320 if EXAMPLE_PM_MIN_FREQ_MHZ_320
|
||||
Reference in New Issue
Block a user