# STM32 xSPI flash driver configuration options

# Copyright (c) 2024 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

DT_STM32_XSPI_1_HAS_DMA := $(dt_nodelabel_has_prop,xspi1,dmas)
DT_STM32_XSPI_2_HAS_DMA := $(dt_nodelabel_has_prop,xspi2,dmas)

config FLASH_STM32_XSPI
	bool "STM32 XSPI Flash driver"
	default y
	depends on DT_HAS_ST_STM32_XSPI_ENABLED && DT_HAS_ST_STM32_XSPI_NOR_ENABLED
	select USE_STM32_HAL_XSPI
	select USE_STM32_LL_DLYB
	select FLASH_HAS_DRIVER_ENABLED
	select FLASH_JESD216
	select FLASH_PAGE_LAYOUT
	select FLASH_HAS_PAGE_LAYOUT
	select DMA if $(DT_STM32_XSPI_1_HAS_DMA) || $(DT_STM32_XSPI_2_HAS_DMA)
	select USE_STM32_HAL_DMA if $(DT_STM32_XSPI_1_HAS_DMA) || \
					$(DT_STM32_XSPI_2_HAS_DMA)
	select USE_STM32_HAL_DMA_EX if SOC_SERIES_STM32H5X && \
					($(DT_STM32_XSPI_1_HAS_DMA) || \
					 $(DT_STM32_XSPI_2_HAS_DMA))
	help
	  Enable XSPI-NOR support on the STM32 family of processors.
