# Kconfig - STM32 SPI driver configuration options

#
# Copyright (c) 2015-2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig SPI_STM32
	bool "STM32 MCU SPI controller driver"
	depends on SOC_FAMILY_STM32
	select USE_STM32_LL_SPI
	help
	  Enable SPI support on the STM32 family of processors.

if SPI_STM32

config SPI_STM32_HAS_FIFO
	bool
	depends on (SOC_SERIES_STM32L4X || SOC_SERIES_STM32F0X || \
	SOC_SERIES_STM32F3X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32MP1X || \
	SOC_SERIES_STM32WBX)
	default y

config SPI_STM32_INTERRUPT
	bool "STM32 MCU SPI Interrupt Support"
	help
	  Enable Interrupt support for the SPI Driver of STM32 family.

config SPI_STM32_USE_HW_SS
	bool "STM32 Hardware Slave Select support"
	default y
	help
	  Use Slave Select pin instead of software Slave Select.

endif # SPI_STM32
