# MCUXpresso SDK SPI

# Copyright (c) 2018, NXP
# SPDX-License-Identifier: Apache-2.0

config SPI_MCUX_LPSPI
	bool "MCUX SPI driver"
	default y
	depends on DT_HAS_NXP_IMX_LPSPI_ENABLED
	depends on CLOCK_CONTROL
	select PINCTRL
	help
	  Enable support for mcux spi driver.

if SPI_MCUX_LPSPI
config SPI_MCUX_LPSPI_DMA
	bool "MCUX LPSPI SPI DMA Support"
	select DMA
	help
	  Enable the SPI DMA mode for SPI instances
	  that enable dma channels in their device tree node.

if SPI_RTIO
config SPI_MCUX_RTIO_SQ_SIZE
	int "number of available submission queue entries"
	default 8 # sensible default that covers most common spi transactions
	help
	  when rtio is use with spi each driver holds a context with which blocking
	  api calls use to perform spi transactions. this queue needs to be as deep
	  as the longest set of spi_buf_sets used, where normal spi operations are
	  used (equal length buffers). it may need to be slightly deeper where the
	  spi buffer sets for transmit/receive are not always matched equally in
	  length as these are transformed into normal transceives.
endif # SPI_RTIO

endif # SPI_MCUX_LPSPI
