drivers/flash/flash_stm32_qspi: integrate WP service into write/erase
Flash write protection services were integrated into erase and write procedures. This is step required for fixing following issue: Multi-threading flash access is not supported by flash_write_protection_set(). flash_write_protection_set() will be deprecated Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
This commit is contained in:
parent
14e7c5a5aa
commit
0172cc159d
1 changed files with 2 additions and 13 deletions
|
@ -78,7 +78,6 @@ struct flash_stm32_qspi_data {
|
|||
struct jesd216_erase_type erase_types[JESD216_NUM_ERASE_TYPES];
|
||||
/* Number of bytes per page */
|
||||
uint16_t page_size;
|
||||
bool write_protection;
|
||||
int cmd_status;
|
||||
struct stream dma;
|
||||
};
|
||||
|
@ -285,13 +284,8 @@ static int qspi_wait_until_ready(const struct device *dev)
|
|||
static int flash_stm32_qspi_write(const struct device *dev, off_t addr,
|
||||
const void *data, size_t size)
|
||||
{
|
||||
struct flash_stm32_qspi_data *dev_data = DEV_DATA(dev);
|
||||
int ret = 0;
|
||||
|
||||
if (dev_data->write_protection) {
|
||||
return -EACCES;
|
||||
}
|
||||
|
||||
if (!qspi_address_is_valid(dev, addr, size)) {
|
||||
LOG_DBG("Error: address or size exceeds expected values: "
|
||||
"addr 0x%lx, size %zu", (long)addr, size);
|
||||
|
@ -361,10 +355,6 @@ static int flash_stm32_qspi_erase(const struct device *dev, off_t addr,
|
|||
struct flash_stm32_qspi_data *dev_data = DEV_DATA(dev);
|
||||
int ret = 0;
|
||||
|
||||
if (dev_data->write_protection) {
|
||||
return -EACCES;
|
||||
}
|
||||
|
||||
if (!qspi_address_is_valid(dev, addr, size)) {
|
||||
LOG_DBG("Error: address or size exceeds expected values: "
|
||||
"addr 0x%lx, size %zu", (long)addr, size);
|
||||
|
@ -435,9 +425,8 @@ static int flash_stm32_qspi_erase(const struct device *dev, off_t addr,
|
|||
static int flash_stm32_qspi_write_protection_set(const struct device *dev,
|
||||
bool write_protect)
|
||||
{
|
||||
struct flash_stm32_qspi_data *dev_data = DEV_DATA(dev);
|
||||
|
||||
dev_data->write_protection = write_protect;
|
||||
ARG_UNUSED(dev);
|
||||
ARG_UNUSED(write_protect);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue