This section describes the programming interface of the SPI DMA driver. 
|  | 
| typedef void(* | spi_dma_callback_t )(SPI_Type *base, spi_dma_handle_t *handle, status_t status, void *userData) | 
|  | SPI DMA callback called at the end of transfer.  More... 
 | 
|  | 
|  | 
| status_t | SPI_MasterTransferCreateHandleDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_dma_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle) | 
|  | Initialize the SPI master DMA handle.  More... 
 | 
|  | 
| status_t | SPI_MasterTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_transfer_t *xfer) | 
|  | Perform a non-blocking SPI transfer using DMA.  More... 
 | 
|  | 
| status_t | SPI_MasterHalfDuplexTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_half_duplex_transfer_t *xfer) | 
|  | Transfers a block of data using a DMA method.  More... 
 | 
|  | 
| static status_t | SPI_SlaveTransferCreateHandleDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_dma_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle) | 
|  | Initialize the SPI slave DMA handle.  More... 
 | 
|  | 
| static status_t | SPI_SlaveTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_transfer_t *xfer) | 
|  | Perform a non-blocking SPI transfer using DMA.  More... 
 | 
|  | 
| void | SPI_MasterTransferAbortDMA (SPI_Type *base, spi_dma_handle_t *handle) | 
|  | Abort a SPI transfer using DMA.  More... 
 | 
|  | 
| status_t | SPI_MasterTransferGetCountDMA (SPI_Type *base, spi_dma_handle_t *handle, size_t *count) | 
|  | Gets the master DMA transfer remaining bytes.  More... 
 | 
|  | 
| static void | SPI_SlaveTransferAbortDMA (SPI_Type *base, spi_dma_handle_t *handle) | 
|  | Abort a SPI transfer using DMA.  More... 
 | 
|  | 
| static status_t | SPI_SlaveTransferGetCountDMA (SPI_Type *base, spi_dma_handle_t *handle, size_t *count) | 
|  | Gets the slave DMA transfer remaining bytes.  More... 
 | 
|  | 
      
        
          | typedef void(* spi_dma_callback_t)(SPI_Type *base, spi_dma_handle_t *handle, status_t status, void *userData) | 
      
 
 
This function initializes the SPI master DMA handle which can be used for other SPI master transactional APIs. Usually, for a specified SPI instance, user need only call this API once to get the initialized handle.
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | SPI handle pointer. |  | callback | User callback function called at the end of a transfer. |  | userData | User data for callback. |  | txHandle | DMA handle pointer for SPI Tx, the handle shall be static allocated by users. |  | rxHandle | DMA handle pointer for SPI Rx, the handle shall be static allocated by users. |  
 
 
 
- Note
- This interface returned immediately after transfer initiates, users should call SPI_GetTransferStatus to poll the transfer status to check whether SPI transfer finished.
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | SPI DMA handle pointer. |  | xfer | Pointer to dma transfer structure. |  
 
- Return values
- 
  
    | kStatus_Success | Successfully start a transfer. |  | kStatus_InvalidArgument | Input argument is invalid. |  | kStatus_SPI_Busy | SPI is not idle, is running another transfer. |  
 
 
 
This function using polling way to do the first half transimission and using DMA way to do the srcond half transimission, the transfer mechanism is half-duplex. When do the second half transimission, code will return right away. When all data is transferred, the callback function is called.
- Parameters
- 
  
    | base | SPI base pointer |  | handle | A pointer to the spi_master_dma_handle_t structure which stores the transfer state. |  | transfer | A pointer to the spi_half_duplex_transfer_t structure. |  
 
- Returns
- status of status_t. 
 
 
This function initializes the SPI slave DMA handle which can be used for other SPI master transactional APIs. Usually, for a specified SPI instance, user need only call this API once to get the initialized handle.
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | SPI handle pointer. |  | callback | User callback function called at the end of a transfer. |  | userData | User data for callback. |  | txHandle | DMA handle pointer for SPI Tx, the handle shall be static allocated by users. |  | rxHandle | DMA handle pointer for SPI Rx, the handle shall be static allocated by users. |  
 
 
 
- Note
- This interface returned immediately after transfer initiates, users should call SPI_GetTransferStatus to poll the transfer status to check whether SPI transfer finished.
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | SPI DMA handle pointer. |  | xfer | Pointer to dma transfer structure. |  
 
- Return values
- 
  
    | kStatus_Success | Successfully start a transfer. |  | kStatus_InvalidArgument | Input argument is invalid. |  | kStatus_SPI_Busy | SPI is not idle, is running another transfer. |  
 
 
 
      
        
          | void SPI_MasterTransferAbortDMA | ( | SPI_Type * | base, | 
        
          |  |  | spi_dma_handle_t * | handle | 
        
          |  | ) |  |  | 
      
 
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | SPI DMA handle pointer. |  
 
 
 
      
        
          | status_t SPI_MasterTransferGetCountDMA | ( | SPI_Type * | base, | 
        
          |  |  | spi_dma_handle_t * | handle, | 
        
          |  |  | size_t * | count | 
        
          |  | ) |  |  | 
      
 
This function gets the master DMA transfer remaining bytes.
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | A pointer to the spi_dma_handle_t structure which stores the transfer state. |  | count | A number of bytes transferred by the non-blocking transaction. |  
 
- Returns
- status of status_t. 
 
 
  
  | 
        
          | static void SPI_SlaveTransferAbortDMA | ( | SPI_Type * | base, |  
          |  |  | spi_dma_handle_t * | handle |  
          |  | ) |  |  |  | inlinestatic | 
 
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | SPI DMA handle pointer. |  
 
 
 
  
  | 
        
          | static status_t SPI_SlaveTransferGetCountDMA | ( | SPI_Type * | base, |  
          |  |  | spi_dma_handle_t * | handle, |  
          |  |  | size_t * | count |  
          |  | ) |  |  |  | inlinestatic | 
 
This function gets the slave DMA transfer remaining bytes.
- Parameters
- 
  
    | base | SPI peripheral base address. |  | handle | A pointer to the spi_dma_handle_t structure which stores the transfer state. |  | count | A number of bytes transferred by the non-blocking transaction. |  
 
- Returns
- status of status_t.