RTEMS 6.1-rc7
Loading...
Searching...
No Matches
fsl_flexio_spi_dma.h
1/*
2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
3 * Copyright 2016-2020, 2022 NXP
4 * All rights reserved.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8#ifndef _FSL_FLEXIO_SPI_DMA_H_
9#define _FSL_FLEXIO_SPI_DMA_H_
10
11#include "fsl_flexio_spi.h"
12#include "fsl_dma.h"
13
19/*******************************************************************************
20 * Definitions
21 ******************************************************************************/
22
26#define FSL_FLEXIO_SPI_DMA_DRIVER_VERSION (MAKE_VERSION(2, 3, 0))
31
34
38 status_t status,
39 void *userData);
40
44 status_t status,
45 void *userData);
46
49{
50 size_t transferSize;
53 dma_handle_t *txHandle;
54 dma_handle_t *rxHandle;
56 void *userData;
57};
58
59/*******************************************************************************
60 * APIs
61 ******************************************************************************/
62#if defined(__cplusplus)
63extern "C" {
64#endif
65
90 void *userData,
91 dma_handle_t *txHandle,
92 dma_handle_t *rxHandle);
93
111
119
129 size_t *count);
130
143static inline void FLEXIO_SPI_SlaveTransferCreateHandleDMA(FLEXIO_SPI_Type *base,
146 void *userData,
147 dma_handle_t *txHandle,
148 dma_handle_t *rxHandle)
149{
150 (void)FLEXIO_SPI_MasterTransferCreateHandleDMA(base, handle, callback, userData, txHandle, rxHandle);
151}
152
170
177static inline void FLEXIO_SPI_SlaveTransferAbortDMA(FLEXIO_SPI_Type *base, flexio_spi_slave_dma_handle_t *handle)
178{
180}
181
189static inline status_t FLEXIO_SPI_SlaveTransferGetCountDMA(FLEXIO_SPI_Type *base,
191 size_t *count)
192{
193 return FLEXIO_SPI_MasterTransferGetCountDMA(base, handle, count);
194}
195
198#if defined(__cplusplus)
199}
200#endif
201
205#endif
status_t FLEXIO_SPI_MasterTransferCreateHandleDMA(FLEXIO_SPI_Type *base, flexio_spi_master_dma_handle_t *handle, flexio_spi_master_dma_transfer_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle)
Initializes the FLEXO SPI master DMA handle.
status_t FLEXIO_SPI_SlaveTransferDMA(FLEXIO_SPI_Type *base, flexio_spi_slave_dma_handle_t *handle, flexio_spi_transfer_t *xfer)
Performs a non-blocking FlexIO SPI transfer using DMA.
void(* flexio_spi_master_dma_transfer_callback_t)(FLEXIO_SPI_Type *base, flexio_spi_master_dma_handle_t *handle, status_t status, void *userData)
FlexIO SPI master callback for finished transmit.
Definition: fsl_flexio_spi_dma.h:36
flexio_spi_master_dma_handle_t flexio_spi_slave_dma_handle_t
Slave handle is the same with master handle.
Definition: fsl_flexio_spi_dma.h:33
status_t FLEXIO_SPI_MasterTransferDMA(FLEXIO_SPI_Type *base, flexio_spi_master_dma_handle_t *handle, flexio_spi_transfer_t *xfer)
Performs a non-blocking FlexIO SPI transfer using DMA.
void FLEXIO_SPI_MasterTransferAbortDMA(FLEXIO_SPI_Type *base, flexio_spi_master_dma_handle_t *handle)
Aborts a FlexIO SPI transfer using DMA.
void(* flexio_spi_slave_dma_transfer_callback_t)(FLEXIO_SPI_Type *base, flexio_spi_slave_dma_handle_t *handle, status_t status, void *userData)
FlexIO SPI slave callback for finished transmit.
Definition: fsl_flexio_spi_dma.h:42
status_t FLEXIO_SPI_MasterTransferGetCountDMA(FLEXIO_SPI_Type *base, flexio_spi_master_dma_handle_t *handle, size_t *count)
Gets the remaining bytes for FlexIO SPI DMA transfer.
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:225
FlexIO SPI DMA transfer handle, users should not touch the content of the handle.
Definition: fsl_flexio_spi_dma.h:49
dma_handle_t * rxHandle
Definition: fsl_flexio_spi_dma.h:54
bool rxInProgress
Definition: fsl_flexio_spi_dma.h:52
flexio_spi_master_dma_transfer_callback_t callback
Definition: fsl_flexio_spi_dma.h:55
bool txInProgress
Definition: fsl_flexio_spi_dma.h:51
dma_handle_t * txHandle
Definition: fsl_flexio_spi_dma.h:53
size_t transferSize
Definition: fsl_flexio_spi_dma.h:50
void * userData
Definition: fsl_flexio_spi_dma.h:56
Define FlexIO SPI transfer structure.
Definition: fsl_flexio_spi.h:154
Define FlexIO SPI access structure typedef.
Definition: fsl_flexio_spi.h:114