zephyr/drivers/flash
Patryk Duda 8a85f0e87f drivers: flash: Introduce API function for flash extended operations
Besides of standard flash operations like write or erase, flash
controllers also support additional features like write protection or
readout protection. These features are not available in every flash
controller, what's more controllers can implement it in a different way.

It doesn't make sense to add a separate flash API function for every
flash controller feature, because it could be unique (supported on small
number of flash controllers) or the API won't be able to represent the
same feature on every flash controller.

Extended operation interface provides flexible way for supporting flash
controller features. Code space is divided equally into Zephyr codes
(MSb == 0) and vendor codes (MSb == 1). This way we can easily add
extended operations to the drivers without cluttering the API or
problems with API incompatibility. Extended operation can be promoted
from vendor codes to Zephyr codes if the feature is available in most
flash controllers and can be represented in the same way.

Signed-off-by: Patryk Duda <pdk@semihalf.com>
2023-03-14 11:17:13 +01:00
..
CMakeLists.txt treewide: update usage of zephyr_code_relocate 2023-01-17 18:08:37 +01:00
flash_cadence_qspi_nor_ll.c
flash_cadence_qspi_nor_ll.h
flash_cadence_qspi_nor.c
flash_esp32.c
flash_gd32_v1.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32_v2.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32_v3.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32.c
flash_gd32.h
flash_gecko.c
flash_handlers.c drivers: flash: Introduce API function for flash extended operations 2023-03-14 11:17:13 +01:00
flash_ite_it8xxx2.c ITE: soc: chip_chipregs: Access registers using structure method 2022-11-09 10:44:29 +01:00
flash_mcux_flexspi_hyperflash.c
flash_mcux_flexspi_mx25um51345g.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
flash_mcux_flexspi_nor.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
flash_page_layout.c include: add missing errno.h include 2022-10-11 18:05:17 +02:00
flash_priv.h
flash_rpi_pico.c drivers: flash: bug fix inline function was not inlined 2023-01-10 09:26:37 +01:00
flash_sam0.c drivers: flash: sam0: Resolve write issues in the first row 2022-11-28 10:49:09 +01:00
flash_sam.c
flash_shell.c flash: flash_shell: Fix check_arr size 2023-02-20 19:41:17 +09:00
flash_simulator.c
flash_smartbond.c
flash_stm32_ospi.c drivers: flash: bug fix stm32 ospi flash erase 2023-01-26 09:39:59 +00:00
flash_stm32_qspi.c drivers: flash: stm32 qspi Enter 4-Byte Address Mode 2023-02-24 09:13:44 +01:00
flash_stm32.c drivers: flash: clear stm32 status register errors 2022-12-15 14:31:37 +00:00
flash_stm32.h
flash_stm32f1x.c drivers: flash: stm32: Use consistent log priorities 2023-01-09 19:19:49 +01:00
flash_stm32f2x.c
flash_stm32f4x.c
flash_stm32f7x.c
flash_stm32g0x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32g4x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32h7x.c
flash_stm32l4x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32l5x.c drivers: flash: fix uninitialised layout_size 2023-02-08 19:01:32 +09:00
flash_stm32wbx.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
jesd216.c
jesd216.h drivers: flash: stm32 ospi driver with read ID from octoflash 2022-11-22 14:26:57 +00:00
Kconfig drivers: flash: Introduce API function for flash extended operations 2023-03-14 11:17:13 +01:00
Kconfig.at45 drivers: flash: spi: Move to using select in Kconfig for SPI bus 2023-02-27 14:35:15 +01:00
Kconfig.b91
Kconfig.cadence_qspi_nor
Kconfig.cc13xx_cc26xx
Kconfig.esp32
Kconfig.gd32
Kconfig.gecko
Kconfig.it8xxx2 it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
Kconfig.lpc
Kconfig.mcux boards: arm: rtxxx: moving the instances FLASH_MCUX_FLEXSPI_XIP 2022-12-22 11:07:08 +01:00
Kconfig.nios2_qspi
Kconfig.nor drivers: flash: spi: Move to using select in Kconfig for SPI bus 2023-02-27 14:35:15 +01:00
Kconfig.nordic_qspi_nor
Kconfig.nrf drivers: flash: soc_flash_nrf: Account for ticker in timeout 2022-10-13 16:06:08 +09:00
Kconfig.rpi_pico drivers: flash: Add flash driver for rpi_pico series 2022-11-15 12:12:00 +00:00
Kconfig.rv32m1
Kconfig.sam
Kconfig.sam0 soc: atmel: add base support for C2x SOC 2022-11-04 16:03:01 +01:00
Kconfig.simulator
Kconfig.smartbond
Kconfig.stm32 drivers: flash: stm32: Remove useless Kconfig 2023-01-08 19:49:12 +01:00
Kconfig.stm32_ospi drivers: flash: stm32 octospi NOR flash with DMA on stm32u5x 2022-11-22 12:00:00 +00:00
Kconfig.stm32_qspi
Kconfig.xmc4xxx drivers: flash: Add xmc4xxx flash drivers 2022-10-03 13:56:49 +02:00
nrf_qspi_nor.c soc: arm: nordic_nrf: replace NRF_DT_CHECK_PIN_ASSIGNMENTS 2023-02-28 08:42:05 -08:00
soc_flash_b91.c include: add missing kernel.h include 2022-10-11 18:05:17 +02:00
soc_flash_cc13xx_cc26xx.c include: add missing zephyr/irq.h include 2022-10-20 22:52:09 +09:00
soc_flash_lpc.c
soc_flash_mcux.c
soc_flash_nios2_qspi.c
soc_flash_nrf_ticker.c
soc_flash_nrf.c all: Fix "#if IS_ENABLED(CONFIG_FOO)" occurrences 2022-12-21 10:09:23 +01:00
soc_flash_nrf.h drivers: flash: soc_flash_nrf: Account for ticker in timeout 2022-10-13 16:06:08 +09:00
soc_flash_rv32m1.c
soc_flash_xmc4xxx.c drivers: flash: soc_flash_xmc4xxx: Add missing kernel.h header 2022-10-20 15:41:39 +02:00
spi_flash_at45.c all: Fix "#if IS_ENABLED(CONFIG_FOO)" occurrences 2022-12-21 10:09:23 +01:00
spi_nor.c drivers: flash: spi_nor: Return EINVAL when erase out of range 2023-02-20 10:54:00 +01:00
spi_nor.h drivers: flash: stm32 qspi Enter 4-Byte Address Mode 2023-02-24 09:13:44 +01:00