mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-03 03:31:41 +03:00
feat(psram): support 250MHz in experimental
This commit is contained in:
@@ -52,15 +52,15 @@ menu "LDO Regulator Configurations"
|
|||||||
choice ESP_LDO_VOLTAGE_PSRAM_DOMAIN
|
choice ESP_LDO_VOLTAGE_PSRAM_DOMAIN
|
||||||
prompt "PSRAM power domain voltage"
|
prompt "PSRAM power domain voltage"
|
||||||
depends on ESP_LDO_RESERVE_PSRAM
|
depends on ESP_LDO_RESERVE_PSRAM
|
||||||
default ESP_LDO_VOLTAGE_PSRAM_1900_MV
|
default ESP_LDO_VOLTAGE_PSRAM_1800_MV
|
||||||
help
|
help
|
||||||
Select the voltage used by the PSRAM power domain.
|
Select the voltage used by the PSRAM power domain.
|
||||||
|
|
||||||
config ESP_LDO_VOLTAGE_PSRAM_1900_MV
|
config ESP_LDO_VOLTAGE_PSRAM_1800_MV
|
||||||
bool "1.9V"
|
bool "1.8V"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config ESP_LDO_VOLTAGE_PSRAM_DOMAIN
|
config ESP_LDO_VOLTAGE_PSRAM_DOMAIN
|
||||||
int
|
int
|
||||||
default 1900 if ESP_LDO_VOLTAGE_PSRAM_1900_MV
|
default 1800 if ESP_LDO_VOLTAGE_PSRAM_1800_MV
|
||||||
endmenu
|
endmenu
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ TEST_CASE("LDO channel state dump", "[LDO][manual][ignore]")
|
|||||||
esp_ldo_channel_handle_t success_ldo_chans[3] = {};
|
esp_ldo_channel_handle_t success_ldo_chans[3] = {};
|
||||||
esp_ldo_channel_config_t ldo_chan_config = {
|
esp_ldo_channel_config_t ldo_chan_config = {
|
||||||
.chan_id = 2,
|
.chan_id = 2,
|
||||||
.voltage_mv = 1900,
|
.voltage_mv = 1800,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(esp_ldo_acquire_channel(&ldo_chan_config, &success_ldo_chans[0]));
|
TEST_ESP_OK(esp_ldo_acquire_channel(&ldo_chan_config, &success_ldo_chans[0]));
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,8 @@
|
|||||||
|
|
||||||
#if CONFIG_SPIRAM_SPEED_80M
|
#if CONFIG_SPIRAM_SPEED_80M
|
||||||
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 320
|
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 320
|
||||||
|
#elif CONFIG_SPIRAM_SPEED_250M
|
||||||
|
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 500
|
||||||
#else
|
#else
|
||||||
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 400
|
#define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 400
|
||||||
#endif
|
#endif
|
||||||
@@ -467,13 +469,6 @@ esp_err_t esp_psram_impl_enable(void)
|
|||||||
mode_reg.mr2.density == 0x7 ? PSRAM_SIZE_32MB :
|
mode_reg.mr2.density == 0x7 ? PSRAM_SIZE_32MB :
|
||||||
mode_reg.mr2.density == 0x6 ? PSRAM_SIZE_64MB : 0;
|
mode_reg.mr2.density == 0x6 ? PSRAM_SIZE_64MB : 0;
|
||||||
|
|
||||||
#if CONFIG_SPIRAM_SPEED_250M
|
|
||||||
if (mode_reg.mr2.density == 0x7) {
|
|
||||||
ESP_EARLY_LOGE(TAG, "PSRAM Not support 250MHz speed");
|
|
||||||
return ESP_ERR_NOT_SUPPORTED;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s_config_mspi_for_psram();
|
s_config_mspi_for_psram();
|
||||||
mspi_timing_psram_tuning();
|
mspi_timing_psram_tuning();
|
||||||
psram_ctrlr_ll_enable_variable_dummy(PSRAM_CTRLR_LL_MSPI_ID_2, true);
|
psram_ctrlr_ll_enable_variable_dummy(PSRAM_CTRLR_LL_MSPI_ID_2, true);
|
||||||
|
|||||||
@@ -30,8 +30,11 @@ menu "PSRAM config"
|
|||||||
help
|
help
|
||||||
Select the speed for the PSRAM chip.
|
Select the speed for the PSRAM chip.
|
||||||
|
|
||||||
|
config SPIRAM_SPEED_250M
|
||||||
|
depends on !ESP32P4_SELECTS_REV_LESS_V3
|
||||||
|
bool "250MHz clock speed"
|
||||||
|
|
||||||
config SPIRAM_SPEED_200M
|
config SPIRAM_SPEED_200M
|
||||||
depends on IDF_EXPERIMENTAL_FEATURES
|
|
||||||
bool "200MHz clock speed"
|
bool "200MHz clock speed"
|
||||||
|
|
||||||
config SPIRAM_SPEED_80M
|
config SPIRAM_SPEED_80M
|
||||||
@@ -47,6 +50,7 @@ menu "PSRAM config"
|
|||||||
default 80 if SPIRAM_SPEED_80M
|
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
|
||||||
|
default 250 if SPIRAM_SPEED_250M
|
||||||
|
|
||||||
config SPIRAM_FETCH_INSTRUCTIONS
|
config SPIRAM_FETCH_INSTRUCTIONS
|
||||||
bool
|
bool
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ static inline void ldo_ll_voltage_to_dref_mul(int ldo_unit, int voltage_mv, uint
|
|||||||
matched_dref = EFUSE.rd_mac_sys_2.ldo_vo1_dref;
|
matched_dref = EFUSE.rd_mac_sys_2.ldo_vo1_dref;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ldo_unit == 1 && voltage_mv == 1900) {
|
if (ldo_unit == 1 && voltage_mv == 1800) {
|
||||||
if (EFUSE.rd_mac_sys_2.ldo_vo2_dref && EFUSE.rd_mac_sys_3.ldo_vo2_mul) {
|
if (EFUSE.rd_mac_sys_2.ldo_vo2_dref && EFUSE.rd_mac_sys_3.ldo_vo2_mul) {
|
||||||
matched_mul = EFUSE.rd_mac_sys_3.ldo_vo2_mul;
|
matched_mul = EFUSE.rd_mac_sys_3.ldo_vo2_mul;
|
||||||
matched_dref = EFUSE.rd_mac_sys_2.ldo_vo2_dref;
|
matched_dref = EFUSE.rd_mac_sys_2.ldo_vo2_dref;
|
||||||
|
|||||||
Reference in New Issue
Block a user