Merge branch 'feat/psram_80m_p4' into 'master'

psram: added 80MHz psram speed option

See merge request espressif/esp-idf!37667
This commit is contained in:
Armando (Dou Yiwen)
2025-03-20 15:47:06 +08:00
3 changed files with 17 additions and 2 deletions

View File

@@ -21,6 +21,9 @@
#elif CONFIG_SPIRAM_SPEED_200M #elif CONFIG_SPIRAM_SPEED_200M
#define MSPI_TIMING_PSRAM_NEEDS_TUNING 1 #define MSPI_TIMING_PSRAM_NEEDS_TUNING 1
#define MSPI_TIMING_MPLL_FREQ_MHZ 400 #define MSPI_TIMING_MPLL_FREQ_MHZ 400
#elif CONFIG_SPIRAM_SPEED_80M
#define MSPI_TIMING_PSRAM_NEEDS_TUNING 1
#define MSPI_TIMING_MPLL_FREQ_MHZ 320
#else #else
#define MSPI_TIMING_MPLL_FREQ_MHZ 400 #define MSPI_TIMING_MPLL_FREQ_MHZ 400
#endif #endif

View File

@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -54,7 +54,13 @@
#define AP_HEX_PSRAM_CS_ECC_HOLD_TIME 4 #define AP_HEX_PSRAM_CS_ECC_HOLD_TIME 4
#define AP_HEX_PSRAM_CS_HOLD_DELAY 3 #define AP_HEX_PSRAM_CS_HOLD_DELAY 3
#if CONFIG_SPIRAM_SPEED_200M
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 500
#elif CONFIG_SPIRAM_SPEED_80M
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 320
#else
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 400 #define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 400
#endif
typedef struct { typedef struct {
union { union {
@@ -369,7 +375,9 @@ esp_err_t esp_psram_impl_enable(void)
{ {
#if SOC_CLK_MPLL_SUPPORTED #if SOC_CLK_MPLL_SUPPORTED
periph_rtc_mpll_acquire(); periph_rtc_mpll_acquire();
periph_rtc_mpll_freq_set(AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ * 1000000, NULL); uint32_t real_mpll_freq = 0;
periph_rtc_mpll_freq_set(AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ * 1000000, &real_mpll_freq);
ESP_EARLY_LOGD(TAG, "real_mpll_freq: %d", real_mpll_freq);
#endif #endif
PSRAM_RCC_ATOMIC() { PSRAM_RCC_ATOMIC() {

View File

@@ -34,6 +34,9 @@ menu "PSRAM config"
depends on IDF_EXPERIMENTAL_FEATURES depends on IDF_EXPERIMENTAL_FEATURES
bool "200MHz clock speed" bool "200MHz clock speed"
config SPIRAM_SPEED_80M
bool "80MHz clock speed"
config SPIRAM_SPEED_20M config SPIRAM_SPEED_20M
bool "20MHz clock speed" bool "20MHz clock speed"
endchoice endchoice
@@ -41,6 +44,7 @@ menu "PSRAM config"
config SPIRAM_SPEED config SPIRAM_SPEED
int int
default 20 if SPIRAM_SPEED_20M default 20 if SPIRAM_SPEED_20M
default 80 if SPIRAM_SPEED_80M
default 100 if SPIRAM_SPEED_100M default 100 if SPIRAM_SPEED_100M
default 200 if SPIRAM_SPEED_200M default 200 if SPIRAM_SPEED_200M