1# Copyright (c) 2024 Ambiq Micro Inc. <www.ambiq.com>
2# SPDX-License-Identifier: Apache-2.0
3
4menu "MSPI flash device driver"
5
6config FLASH_MSPI
7	bool
8	select FLASH_HAS_DRIVER_ENABLED
9	select MSPI
10	help
11	  MSPI flash drivers are enabled.
12
13config FLASH_MSPI_EMUL_DEVICE
14	bool "MSPI flash device emulator"
15	default y
16	depends on DT_HAS_ZEPHYR_MSPI_EMUL_FLASH_ENABLED
17	select FLASH_MSPI
18	select FLASH_HAS_PAGE_LAYOUT
19	select FLASH_HAS_EXPLICIT_ERASE
20
21config FLASH_MSPI_ATXP032
22	bool "MSPI ATXP032 driver"
23	default y
24	depends on DT_HAS_MSPI_ATXP032_ENABLED
25	select FLASH_MSPI
26	select FLASH_HAS_PAGE_LAYOUT
27	select FLASH_HAS_EXPLICIT_ERASE
28	select FLASH_JESD216
29	select MSPI_AMBIQ_AP3 if SOC_SERIES_APOLLO3X
30
31menuconfig FLASH_MSPI_NOR
32	bool "Generic MSPI NOR Flash"
33	default y
34	depends on DT_HAS_JEDEC_MSPI_NOR_ENABLED
35	select FLASH_MSPI
36	select FLASH_HAS_EXPLICIT_ERASE
37	select FLASH_JESD216
38	select GPIO if $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),reset-gpios)
39
40if FLASH_MSPI_NOR
41
42config FLASH_MSPI_NOR_LAYOUT_PAGE_SIZE
43	int "Page size to use for FLASH_LAYOUT feature"
44	depends on FLASH_PAGE_LAYOUT
45	default 65536
46	help
47	  When CONFIG_FLASH_PAGE_LAYOUT is used, this driver will support that
48	  API. By default the page size corresponds to the block size (65536).
49	  Other options include the 32K-byte erase size (32768), the sector
50	  size (4096), or any non-zero multiple of the sector size.
51
52endif # FLASH_MSPI_NOR
53
54endmenu
55