mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
spi_flash: make spiflash compatible with ESP32C3 and ESP32S3 ROM
This commit is contained in:
@ -189,6 +189,11 @@ struct spi_flash_host_driver_s {
|
|||||||
*/
|
*/
|
||||||
esp_err_t (*flush_cache)(spi_flash_host_inst_t* host, uint32_t addr, uint32_t size);
|
esp_err_t (*flush_cache)(spi_flash_host_inst_t* host, uint32_t addr, uint32_t size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Suspend check erase/program operation, reserved for ESP32-C3 and ESP32-S3 spi flash ROM IMPL.
|
||||||
|
*/
|
||||||
|
void (*check_suspend)(spi_flash_host_inst_t *host);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resume flash from suspend manually
|
* Resume flash from suspend manually
|
||||||
*/
|
*/
|
||||||
|
@ -20,10 +20,11 @@ void spi_flash_hal_disable_auto_resume_mode(spi_flash_host_inst_t *host);
|
|||||||
void spi_flash_hal_disable_auto_suspend_mode(spi_flash_host_inst_t *host);
|
void spi_flash_hal_disable_auto_suspend_mode(spi_flash_host_inst_t *host);
|
||||||
void spi_flash_hal_setup_auto_resume_mode(spi_flash_host_inst_t *host);
|
void spi_flash_hal_setup_auto_resume_mode(spi_flash_host_inst_t *host);
|
||||||
#endif //SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND
|
#endif //SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND
|
||||||
#include "spi_flash_hal_common.inc"
|
|
||||||
|
|
||||||
#ifndef CONFIG_SPI_FLASH_ROM_IMPL
|
#ifndef CONFIG_SPI_FLASH_ROM_IMPL
|
||||||
|
|
||||||
|
#include "spi_flash_hal_common.inc"
|
||||||
|
|
||||||
// HAL for
|
// HAL for
|
||||||
// - MEMSPI
|
// - MEMSPI
|
||||||
// - SPI1~3 on ESP32/S2/S3/C3
|
// - SPI1~3 on ESP32/S2/S3/C3
|
||||||
@ -93,6 +94,19 @@ esp_err_t spi_flash_hal_set_write_protect(spi_flash_host_inst_t *host, bool wp)
|
|||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else // defined CONFIG_SPI_FLASH_ROM_IMPL
|
||||||
|
|
||||||
|
static inline spi_dev_t *get_spi_dev(spi_flash_host_inst_t *host)
|
||||||
|
{
|
||||||
|
return ((spi_flash_hal_context_t*)host)->spi;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int get_host_id(spi_flash_host_inst_t* host)
|
||||||
|
{
|
||||||
|
spi_dev_t *dev = get_spi_dev(host);
|
||||||
|
return spi_flash_ll_hw_get_id(dev);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // !CONFIG_SPI_FLASH_ROM_IMPL
|
#endif // !CONFIG_SPI_FLASH_ROM_IMPL
|
||||||
|
|
||||||
uint32_t spi_flash_hal_check_status(spi_flash_host_inst_t *host)
|
uint32_t spi_flash_hal_check_status(spi_flash_host_inst_t *host)
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
.configure_host_io_mode = spi_flash_hal_configure_host_io_mode, \
|
.configure_host_io_mode = spi_flash_hal_configure_host_io_mode, \
|
||||||
.poll_cmd_done = spi_flash_hal_poll_cmd_done, \
|
.poll_cmd_done = spi_flash_hal_poll_cmd_done, \
|
||||||
.flush_cache = memspi_host_flush_cache, \
|
.flush_cache = memspi_host_flush_cache, \
|
||||||
|
.check_suspend = NULL, \
|
||||||
.resume = spi_flash_hal_resume, \
|
.resume = spi_flash_hal_resume, \
|
||||||
.suspend = spi_flash_hal_suspend,\
|
.suspend = spi_flash_hal_suspend,\
|
||||||
.sus_setup = spi_flash_hal_setup_read_suspend,\
|
.sus_setup = spi_flash_hal_setup_read_suspend,\
|
||||||
|
@ -61,6 +61,7 @@ static const spi_flash_host_driver_t esp_flash_gpspi_host = {
|
|||||||
.configure_host_io_mode = spi_flash_hal_gpspi_configure_host_io_mode,
|
.configure_host_io_mode = spi_flash_hal_gpspi_configure_host_io_mode,
|
||||||
.poll_cmd_done = spi_flash_hal_gpspi_poll_cmd_done,
|
.poll_cmd_done = spi_flash_hal_gpspi_poll_cmd_done,
|
||||||
.flush_cache = NULL,
|
.flush_cache = NULL,
|
||||||
|
.check_suspend = NULL,
|
||||||
.resume = spi_flash_hal_resume,
|
.resume = spi_flash_hal_resume,
|
||||||
.suspend = spi_flash_hal_suspend,
|
.suspend = spi_flash_hal_suspend,
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user