dcd9322d43
Implements the SPI RTIO API. Refactors many of the internal transfer functions to work on simple types to allow for both the RTIO and existing SPI API functions to co-exist. Removes the unneeded shift_master specialization. Either a polling or DMA transfer flow is used when used with RTIO as all operations are normalized. When SPI_RTIO is enabled the spi_transceive blocking call translates the request into an RTIO transaction placed in the queue of transactions the device is meant to do. Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
# Atmel SAM SPI
|
|
|
|
# Copyright (c) 2019 Gerson Fernando Budke
|
|
# Copyright (c) 2018 qianfan Zhao
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config SPI_SAM
|
|
bool "Atmel SAM series SPI driver"
|
|
default y
|
|
depends on DT_HAS_ATMEL_SAM_SPI_ENABLED
|
|
select GPIO
|
|
help
|
|
Enable support for the SAM SPI driver.
|
|
|
|
if SPI_SAM
|
|
config SPI_SAM_DMA
|
|
bool "SPI SAM DMA Support"
|
|
select DMA
|
|
help
|
|
Enable using DMA with SPI for SPI instances that enable dma channels in
|
|
their device tree node.
|
|
|
|
if SPI_RTIO
|
|
config SPI_SAM_RTIO_SQ_SIZE
|
|
int "Number of avialable 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_SAM
|