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 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
flash_cadence_qspi_nor_ll.h drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_cadence_qspi_nor.c drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_esp32.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
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 drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
flash_gd32.h drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
flash_gecko.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
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 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
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 drivers: flash: sam: Fix driver support 2022-08-11 07:41:09 -05:00
flash_shell.c flash: flash_shell: Fix check_arr size 2023-02-20 19:41:17 +09:00
flash_simulator.c drivers: s/DT_CHILD(DT_DRV_INST(n), ...)/DT_INST_CHILD(n, ...) 2022-09-06 08:45:25 -07:00
flash_smartbond.c drivers: flash: Add driver for smartbond 2022-08-31 20:32:03 +02:00
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 drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f1x.c drivers: flash: stm32: Use consistent log priorities 2023-01-09 19:19:49 +01:00
flash_stm32f2x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f4x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f7x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
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 devices: constify device pointers initialized at compile time 2022-08-22 17:08:26 +02:00
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 drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
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 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.cadence_qspi_nor drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
Kconfig.cc13xx_cc26xx drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.esp32 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.gd32 drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
Kconfig.gecko drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.it8xxx2 it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
Kconfig.lpc drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP 2022-08-25 08:26:53 -05:00
Kconfig.mcux boards: arm: rtxxx: moving the instances FLASH_MCUX_FLEXSPI_XIP 2022-12-22 11:07:08 +01:00
Kconfig.nios2_qspi flash: nios2_qspi: Convert driver to be devicetree based 2022-08-12 08:11:42 -04:00
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 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
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 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.sam drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.sam0 soc: atmel: add base support for C2x SOC 2022-11-04 16:03:01 +01:00
Kconfig.simulator drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.smartbond drivers: flash: Add driver for smartbond 2022-08-31 20:32:03 +02:00
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 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
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 drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP 2022-08-25 08:26:53 -05:00
soc_flash_mcux.c flash: nxp: enabling lpc55s36's FMC 2022-08-25 10:24:41 -05:00
soc_flash_nios2_qspi.c flash: nios2_qspi: Convert driver to be devicetree based 2022-08-12 08:11:42 -04:00
soc_flash_nrf_ticker.c drivers: flash: nrf: Fix ticker stop user id value 2022-09-05 17:36:48 +02:00
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 drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
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