drivers: flash: add Nordic JEDEC QSPI NOR flash driver
Most JEDEC NOR flash devices uses not only typical SPI mode
(MISO,MOSI,SCK and CS), but also QSPI mode (IO0,IO1,IO2,IO3,SCK and CS).
QSPI mode uses more data lines and as a result provide higher
throughput. If this were not enough, Nordic chips provide
hardware acceleration for read/write/erase functions, what
gives significant performance boost.
It does a lot of things "behind the scene", i.e when user has written
some data to the flash and would like to read them back, it has to wait
until the flash is ready by reading WIP bit in Status Register.
This driver does it automatically.
Signed-off-by: Kamil Lazowski <Kamil.Lazowski@nordicsemi.no>
2019-12-19 20:33:37 +08:00
|
|
|
# Copyright (c) 2019, Nordic Semiconductor ASA
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
menuconfig NORDIC_QSPI_NOR
|
|
|
|
bool "QSPI NOR Flash"
|
|
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
|
|
select NRFX_QSPI
|
2020-12-30 02:11:29 +08:00
|
|
|
select FLASH_JESD216
|
drivers: flash: add Nordic JEDEC QSPI NOR flash driver
Most JEDEC NOR flash devices uses not only typical SPI mode
(MISO,MOSI,SCK and CS), but also QSPI mode (IO0,IO1,IO2,IO3,SCK and CS).
QSPI mode uses more data lines and as a result provide higher
throughput. If this were not enough, Nordic chips provide
hardware acceleration for read/write/erase functions, what
gives significant performance boost.
It does a lot of things "behind the scene", i.e when user has written
some data to the flash and would like to read them back, it has to wait
until the flash is ready by reading WIP bit in Status Register.
This driver does it automatically.
Signed-off-by: Kamil Lazowski <Kamil.Lazowski@nordicsemi.no>
2019-12-19 20:33:37 +08:00
|
|
|
depends on HAS_HW_NRF_QSPI
|
|
|
|
help
|
|
|
|
Enable support for nrfx QSPI driver with EasyDMA.
|
|
|
|
|
|
|
|
if NORDIC_QSPI_NOR
|
|
|
|
|
|
|
|
config NORDIC_QSPI_NOR_INIT_PRIORITY
|
|
|
|
int
|
|
|
|
default 80
|
|
|
|
help
|
|
|
|
Device driver initialization priority.
|
|
|
|
|
|
|
|
config NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE
|
|
|
|
int "Page size to use for FLASH_LAYOUT feature"
|
|
|
|
default 65536
|
|
|
|
help
|
|
|
|
When CONFIG_FLASH_PAGE_LAYOUT is used this driver will support
|
|
|
|
that API. By default the page size corresponds to the block
|
|
|
|
size (65536). Other option include the sector size (4096).
|
|
|
|
|
2020-06-05 01:15:02 +08:00
|
|
|
config NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE
|
|
|
|
int "Size of a stack-based buffer to support writes from NVMC"
|
|
|
|
default 0
|
|
|
|
help
|
|
|
|
The QSPI peripheral uses DMA and cannot write data that is
|
|
|
|
read from the internal flash. A non-zero value here enables
|
|
|
|
a stack buffer into which data is copied to allow the write
|
|
|
|
to proceed. Multiple transfers will be initiated if the
|
|
|
|
data is larger than the configured limit. Must be a
|
|
|
|
multiple of 4. The feature is disabled when set to 0.
|
|
|
|
|
drivers: flash: add Nordic JEDEC QSPI NOR flash driver
Most JEDEC NOR flash devices uses not only typical SPI mode
(MISO,MOSI,SCK and CS), but also QSPI mode (IO0,IO1,IO2,IO3,SCK and CS).
QSPI mode uses more data lines and as a result provide higher
throughput. If this were not enough, Nordic chips provide
hardware acceleration for read/write/erase functions, what
gives significant performance boost.
It does a lot of things "behind the scene", i.e when user has written
some data to the flash and would like to read them back, it has to wait
until the flash is ready by reading WIP bit in Status Register.
This driver does it automatically.
Signed-off-by: Kamil Lazowski <Kamil.Lazowski@nordicsemi.no>
2019-12-19 20:33:37 +08:00
|
|
|
endif # NORDIC_QSPI_NOR
|