# STM32 Quad SPI flash driver configuration options

# Copyright (c) 2020 Piotr Mienkowski
# Copyright (c) 2020 Linaro Limited
# SPDX-License-Identifier: Apache-2.0

DT_STM32_QUADSPI_HAS_DMA := $(dt_nodelabel_has_prop,quadspi,dmas)

config FLASH_STM32_QSPI
	bool "STM32 Quad SPI Flash driver"
	default y
	depends on DT_HAS_ST_STM32_QSPI_NOR_ENABLED
	select USE_STM32_HAL_QSPI
	select USE_STM32_HAL_MDMA if SOC_SERIES_STM32H7X
	select FLASH_HAS_DRIVER_ENABLED
	select FLASH_JESD216
	select FLASH_HAS_PAGE_LAYOUT
	select FLASH_HAS_EXPLICIT_ERASE
	select PINCTRL
	select DMA if $(DT_STM32_QUADSPI_HAS_DMA)
	select USE_STM32_HAL_DMA if $(DT_STM32_QUADSPI_HAS_DMA)
	help
	  Enable QSPI-NOR support on the STM32 family of processors.
