| # Copyright (c) 2018 Savoir-Faire Linux. |
| # Copyright (c) 2024 Nordic Semiconductor ASA |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menuconfig SPI_NOR |
| bool "SPI NOR Flash" |
| default y |
| depends on DT_HAS_JEDEC_SPI_NOR_ENABLED |
| select FLASH_HAS_DRIVER_ENABLED |
| select FLASH_HAS_EXPLICIT_ERASE |
| select FLASH_HAS_PAGE_LAYOUT |
| select FLASH_JESD216 |
| select FLASH_HAS_EX_OP |
| select SPI |
| |
| if SPI_NOR |
| |
| choice SPI_NOR_SFDP |
| prompt "Source for Serial Flash Discoverable Parameters" |
| default SPI_NOR_SFDP_MINIMAL |
| |
| config SPI_NOR_SFDP_MINIMAL |
| bool "Fixed flash configuration" |
| help |
| Synthesize a minimal configuration assuming 256 By page size (or as |
| set by the page-size devicetree property) and |
| standard 4 KiBy and 64 KiBy erase instructions. Requires the size and |
| jedec-id properties in the devicetree jedec,spi-nor node. |
| |
| config SPI_NOR_SFDP_DEVICETREE |
| bool "Basic Flash Parameters from devicetree node" |
| help |
| The JESD216 Basic Flash Parameters table must be provided in the |
| sfdp-bfp property in devicetree. The size and jedec-id properties are |
| also required. |
| |
| config SPI_NOR_SFDP_RUNTIME |
| bool "Read flash parameters at runtime" |
| help |
| Read all flash device characteristics from the device at runtime. |
| This option is the most flexible as it should provide functionality |
| for all supported JESD216-compatible devices. |
| |
| endchoice |
| |
| config SPI_NOR_INIT_PRIORITY |
| int "Init priority" |
| default 80 |
| help |
| Device driver initialization priority. |
| Device is connected to SPI bus, it has to |
| be initialized after SPI driver. |
| |
| config SPI_NOR_CS_WAIT_DELAY |
| int "Delay time in us" |
| default 0 |
| help |
| This is the wait delay (in us) to allow for CS switching to take effect |
| |
| config SPI_NOR_SLEEP_WHILE_WAITING_UNTIL_READY |
| bool "Sleep while waiting for flash operations to complete" |
| default y |
| help |
| Flash operations can take anywhere from 1ms to 240 seconds to |
| complete. Enabling this option adds a delay between polls on the |
| status register for slow operations. Disabling this option can |
| result in significant flash savings if this driver is the only user |
| of "k_sleep". This can be the case when building as a bootloader. |
| |
| config SPI_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 options include the 32K-byte erase size |
| (32768), the sector size (4096), or any non-zero multiple of the |
| sector size. |
| |
| config SPI_NOR_ACTIVE_DWELL_MS |
| int "Dwell period (ms) after last use to stay in active mode" |
| depends on PM_DEVICE_RUNTIME |
| default 10 |
| help |
| Flash accesses commonly occur in bursts, where entering and exiting DPD |
| mode between each access adds significantly to the total operation time. |
| This option controls how long to remain in active mode after each API |
| call, eliminating the active->idle->active transition sequence if another |
| transaction occurs before the dwell period expires. |
| |
| endif # SPI_NOR |