# 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 PINCTRL
	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.
