mspi_tuning: fix psram timing tuning bug

Prior to this commit, when calling:
- spi_timing_enter_mspi_low_speed_mode()
- spi_timing_enter_mspi_high_speed_mode()

psram timing is not tuned. This will lead to a stall during early
startup. This bug is on S3, for 80MHz DDR PSRAM

This commit will add psram timing tuning, in these two functions.
This commit is contained in:
Armando 2022-12-09 16:59:16 +08:00
parent 5278cc7de0
commit 2369fa4d66
2 changed files with 7 additions and 0 deletions

View File

@ -2,6 +2,7 @@ CONFIG_IDF_TARGET="esp32s3"
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
CONFIG_SPIRAM_RODATA=y

View File

@ -392,6 +392,9 @@ static void clear_timing_tuning_regs(bool control_spi1)
} else {
//Won't touch SPI1 registers
}
spi_timing_config_psram_set_din_mode_num(0, 0, 0);
spi_timing_config_psram_set_extra_dummy(0, 0);
}
#endif //#if SPI_TIMING_FLASH_NEEDS_TUNING || SPI_TIMING_PSRAM_NEEDS_TUNING
@ -414,6 +417,9 @@ void spi_timing_enter_mspi_low_speed_mode(bool control_spi1)
spi_timing_config_set_flash_clock(1, 4);
}
//Set PSRAM module clock
spi_timing_config_set_psram_clock(0, 4);
#if SPI_TIMING_FLASH_NEEDS_TUNING || SPI_TIMING_PSRAM_NEEDS_TUNING
clear_timing_tuning_regs(control_spi1);
#endif