1# Copyright (c) 2025 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_CONTROLLER if SOC_FAMILY_AMBIQ 30 31config FLASH_MSPI_IS25XX0XX 32 bool "MSPI IS25L/WX064/032 driver" 33 default y 34 depends on DT_HAS_MSPI_IS25XX0XX_ENABLED 35 select FLASH_MSPI 36 select FLASH_HAS_PAGE_LAYOUT 37 select FLASH_HAS_EXPLICIT_ERASE 38 select FLASH_JESD216 39 select MSPI_AMBIQ_CONTROLLER if SOC_FAMILY_AMBIQ 40 41menuconfig FLASH_MSPI_NOR 42 bool "Generic MSPI NOR Flash" 43 default y 44 depends on DT_HAS_JEDEC_MSPI_NOR_ENABLED 45 select FLASH_MSPI 46 select FLASH_HAS_EXPLICIT_ERASE 47 select FLASH_JESD216 48 select GPIO if $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),reset-gpios) 49 50if FLASH_MSPI_NOR 51 52config FLASH_MSPI_NOR_LAYOUT_PAGE_SIZE 53 int "Page size to use for FLASH_LAYOUT feature" 54 depends on FLASH_PAGE_LAYOUT 55 default 65536 56 help 57 When CONFIG_FLASH_PAGE_LAYOUT is used, this driver will support that 58 API. By default the page size corresponds to the block size (65536). 59 Other options include the 32K-byte erase size (32768), the sector 60 size (4096), or any non-zero multiple of the sector size. 61 62endif # FLASH_MSPI_NOR 63 64endmenu 65 66if FLASH_MSPI 67 68config FLASH_MSPI_HANDLE_CACHE 69 bool "Turn on cache handling in flash peripheral drivers" 70 default y 71 depends on CACHE_MANAGEMENT && DCACHE 72 help 73 Disable this if cache has been handled in upper layers. 74 75config FLASH_MSPI_RANGE_HANDLE_CACHE_SIZE 76 int "Threshold to do cache handling by range or in full, size in bytes" 77 default SOC_AMBIQ_DCACHE_SIZE if SOC_SERIES_APOLLO5X 78 default 0 79 help 80 If size is larger than this number, it is uneconomical to handle cache in range. 81 However, this is a number by experience and could be platform specific. 82 83config FLASH_MSPI_XIP_READ 84 bool "Turn on XIP read in flash_read" 85 depends on MSPI_XIP 86 help 87 Enable this for those controllers that supports XIP and wishes to 88 flash_read using XIP. 89 90endif # FLASH_MSPI 91