# STM32 Octo SPI flash driver configuration options

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

DT_COMPAT_ST_STM32_OSPI_NOR := st,stm32-ospi-nor

config FLASH_STM32_OSPI
	bool "STM32 Octo SPI Flash driver"
	depends on SOC_FAMILY_STM32
	default $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_OSPI_NOR))
	select USE_STM32_HAL_OSPI
	select USE_STM32_LL_DLYB  if SOC_SERIES_STM32U5X
	select FLASH_HAS_DRIVER_ENABLED
	select FLASH_JESD216
	select FLASH_PAGE_LAYOUT
	select FLASH_HAS_PAGE_LAYOUT
	help
	  Enable OSPI-NOR support on the STM32 family of processors.
