From fa118a24cdba4f41228fd52448d8013bd6376c76 Mon Sep 17 00:00:00 2001 From: laokaiyao Date: Wed, 25 Dec 2024 11:07:01 +0800 Subject: [PATCH] fix(gpio_reserve): reserve the mspi pin regarding line mode --- components/spi_flash/flash_ops.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/components/spi_flash/flash_ops.c b/components/spi_flash/flash_ops.c index 505649fbb6..9e6bbcd063 100644 --- a/components/spi_flash/flash_ops.c +++ b/components/spi_flash/flash_ops.c @@ -157,8 +157,18 @@ void IRAM_ATTR esp_mspi_pin_init(void) void esp_mspi_pin_reserve(void) { uint64_t reserve_pin_mask = 0; + uint8_t mspi_io; for (esp_mspi_io_t i = 0; i < ESP_MSPI_IO_MAX; i++) { - reserve_pin_mask |= BIT64(esp_mspi_get_io(i)); +#if SOC_SPI_MEM_SUPPORT_OPI_MODE + if (!bootloader_flash_is_octal_mode_enabled() + && i >= ESP_MSPI_IO_DQS && i <= ESP_MSPI_IO_D7) { + continue; + } +#endif + mspi_io = esp_mspi_get_io(i); + if (mspi_io < 64) { // 'reserve_pin_mask' have 64 bits length + reserve_pin_mask |= BIT64(mspi_io); + } } esp_gpio_reserve(reserve_pin_mask); }