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

menuconfig SPI_XMC4XXX
	bool "XMC4XX SPI driver"
	default y
	depends on DT_HAS_INFINEON_XMC4XXX_SPI_ENABLED
	select GPIO
	help
	  Enable XMC4XXX SPI driver.


if SPI_XMC4XXX

config SPI_XMC4XXX_INTERRUPT
	bool "XMC4XXX SPI interrupt mode"
	help
	  Enables interrupt support for XMC4XXX SPI driver.

config SPI_XMC4XXX_DMA
	bool "XMC4XXX SPI DMA support"
	select DMA
	help
	  Enables DMA for SPI transfers.

if SPI_XMC4XXX_DMA

config SPI_XMC4XXX_DMA_TIMEOUT_MSEC
	int "Timeout in milliseconds for an SPI transaction to complete if using DMA"
	default 1000
	help
	  Sets timeout in milliseconds for an SPI transaction to complete when using DMA.

endif # SPI_XMC4XXX_DMA

endif # SPI_XMC4XXX
