diff --git a/drivers/flash/flash_esp32.c b/drivers/flash/flash_esp32.c index 696e359f2c2..a97b6d96b95 100644 --- a/drivers/flash/flash_esp32.c +++ b/drivers/flash/flash_esp32.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -81,8 +82,14 @@ static inline void flash_esp32_sem_give(const struct device *dev) static int flash_esp32_read(const struct device *dev, off_t address, void *buffer, size_t length) { + int ret = 0; + flash_esp32_sem_take(dev); - int ret = spi_flash_read(address, buffer, length); + if (!esp_flash_encryption_enabled()) { + ret = spi_flash_read(address, buffer, length); + } else { + ret = spi_flash_read_encrypted(address, buffer, length); + } flash_esp32_sem_give(dev); return ret; } @@ -92,8 +99,14 @@ static int flash_esp32_write(const struct device *dev, const void *buffer, size_t length) { + int ret = 0; + flash_esp32_sem_take(dev); - int ret = spi_flash_write(address, buffer, length); + if (!esp_flash_encryption_enabled()) { + ret = spi_flash_write(address, buffer, length); + } else { + ret = spi_flash_write_encrypted(address, buffer, length); + } flash_esp32_sem_give(dev); return ret; }