This device driver supports ISSI is25w/lx032/64 series flash. Only extended SPI mode(1s-1s-1s, 1s-8s-8s, 1s-1s-8s) is implemented. Signed-off-by: Swift Tian <swift.tian@ambiq.com>
91 lines
2.4 KiB
Plaintext
91 lines
2.4 KiB
Plaintext
# Copyright (c) 2025 Ambiq Micro Inc. <www.ambiq.com>
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "MSPI flash device driver"
|
|
|
|
config FLASH_MSPI
|
|
bool
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
select MSPI
|
|
help
|
|
MSPI flash drivers are enabled.
|
|
|
|
config FLASH_MSPI_EMUL_DEVICE
|
|
bool "MSPI flash device emulator"
|
|
default y
|
|
depends on DT_HAS_ZEPHYR_MSPI_EMUL_FLASH_ENABLED
|
|
select FLASH_MSPI
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_EXPLICIT_ERASE
|
|
|
|
config FLASH_MSPI_ATXP032
|
|
bool "MSPI ATXP032 driver"
|
|
default y
|
|
depends on DT_HAS_MSPI_ATXP032_ENABLED
|
|
select FLASH_MSPI
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_EXPLICIT_ERASE
|
|
select FLASH_JESD216
|
|
select MSPI_AMBIQ_CONTROLLER if SOC_FAMILY_AMBIQ
|
|
|
|
config FLASH_MSPI_IS25XX0XX
|
|
bool "MSPI IS25L/WX064/032 driver"
|
|
default y
|
|
depends on DT_HAS_MSPI_IS25XX0XX_ENABLED
|
|
select FLASH_MSPI
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_EXPLICIT_ERASE
|
|
select FLASH_JESD216
|
|
select MSPI_AMBIQ_CONTROLLER if SOC_FAMILY_AMBIQ
|
|
|
|
menuconfig FLASH_MSPI_NOR
|
|
bool "Generic MSPI NOR Flash"
|
|
default y
|
|
depends on DT_HAS_JEDEC_MSPI_NOR_ENABLED
|
|
select FLASH_MSPI
|
|
select FLASH_HAS_EXPLICIT_ERASE
|
|
select FLASH_JESD216
|
|
select GPIO if $(dt_compat_any_has_prop,$(DT_COMPAT_JEDEC_MSPI_NOR),reset-gpios)
|
|
|
|
if FLASH_MSPI_NOR
|
|
|
|
config FLASH_MSPI_NOR_LAYOUT_PAGE_SIZE
|
|
int "Page size to use for FLASH_LAYOUT feature"
|
|
depends on FLASH_PAGE_LAYOUT
|
|
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.
|
|
|
|
endif # FLASH_MSPI_NOR
|
|
|
|
endmenu
|
|
|
|
if FLASH_MSPI
|
|
|
|
config FLASH_MSPI_HANDLE_CACHE
|
|
bool "Turn on cache handling in flash peripheral drivers"
|
|
default y
|
|
depends on CACHE_MANAGEMENT && DCACHE
|
|
help
|
|
Disable this if cache has been handled in upper layers.
|
|
|
|
config FLASH_MSPI_RANGE_HANDLE_CACHE_SIZE
|
|
int "Threshold to do cache handling by range or in full, size in bytes"
|
|
default SOC_AMBIQ_DCACHE_SIZE if SOC_SERIES_APOLLO5X
|
|
default 0
|
|
help
|
|
If size is larger than this number, it is uneconomical to handle cache in range.
|
|
However, this is a number by experience and could be platform specific.
|
|
|
|
config FLASH_MSPI_XIP_READ
|
|
bool "Turn on XIP read in flash_read"
|
|
depends on MSPI_XIP
|
|
help
|
|
Enable this for those controllers that supports XIP and wishes to
|
|
flash_read using XIP.
|
|
|
|
endif # FLASH_MSPI
|