1# Copyright (c) 2019, Nordic Semiconductor ASA
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig NORDIC_QSPI_NOR
5	bool "QSPI NOR Flash"
6	default y
7	depends on DT_HAS_NORDIC_QSPI_NOR_ENABLED
8	select FLASH_HAS_DRIVER_ENABLED
9	select FLASH_HAS_PAGE_LAYOUT
10	select FLASH_HAS_EXPLICIT_ERASE
11	select NRFX_QSPI
12	select FLASH_JESD216
13	select PINCTRL
14	help
15	  Enable support for nrfx QSPI driver with EasyDMA.
16
17if NORDIC_QSPI_NOR
18
19config NORDIC_QSPI_NOR_INIT_PRIORITY
20	int "Init priority"
21	default 41
22	help
23	  Device driver initialization priority.
24
25config NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE
26	int "Page size to use for FLASH_LAYOUT feature"
27	default 65536
28	help
29	  When CONFIG_FLASH_PAGE_LAYOUT is used this driver will support
30	  that API.  By default the page size corresponds to the block
31	  size (65536).  Other option include the sector size (4096).
32
33config NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE
34	int "Size of a stack-based buffer to handle writes not supported by QSPI"
35	default 4
36	help
37	  The QSPI peripheral uses DMA and can only write data that is read
38	  from a word-aligned location in RAM. A non-zero value here enables
39	  a stack buffer to be used for any source data that does not meet
40	  these restrictions. Such data will be copied into this buffer to
41	  allow the write to proceed. Multiple transfers will be initiated
42	  if the data is larger than the configured size.
43	  Must be a multiple of 4. When set to 0, the feature is disabled.
44
45config NORDIC_QSPI_NOR_XIP
46	bool "XIP (eXecute in place)"
47	depends on SOC_NRF5340_CPUAPP
48	help
49	  Enable setting up the QSPI NOR driver to allow for execution of code
50	  stored in QSPI XIP region. Note that for this functionality to work,
51	  the QSPI NOR init priority must be set so that no XIP code in the
52	  QSPI NOR flash chip is executed until the driver has been setup.
53	  This will also disable power management for the QSPI NOR flash chip.
54
55config NORDIC_QSPI_NOR_TIMEOUT_MS
56	int "Timeout for QSPI operations (ms)"
57	default 500
58	help
59	  The QSPI peripheral operation timeout in milliseconds.
60	  Primarily intended for long running operations such as
61	  a flash sector erase. The 500 ms default allows for
62	  most typical NOR flash chips to erase a sector.
63
64endif # NORDIC_QSPI_NOR
65