RTEMS 6.1-rc7
Loading...
Searching...
No Matches
fsl_flexio_spi_edma.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_EDMA_H_
9#define _FSL_FLEXIO_SPI_EDMA_H_
10
11#include "fsl_flexio_spi.h"
12#include "fsl_edma.h"
13
19/*******************************************************************************
20 * Definitions
21 ******************************************************************************/
22
26#define FSL_FLEXIO_SPI_EDMA_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;
51 uint8_t nbytes;
57 void *userData;
58};
59
60/*******************************************************************************
61 * APIs
62 ******************************************************************************/
63#if defined(__cplusplus)
64extern "C" {
65#endif
66
92 void *userData,
93 edma_handle_t *txHandle,
94 edma_handle_t *rxHandle);
95
113
121
131 size_t *count);
132
145static inline void FLEXIO_SPI_SlaveTransferCreateHandleEDMA(FLEXIO_SPI_Type *base,
148 void *userData,
149 edma_handle_t *txHandle,
150 edma_handle_t *rxHandle)
151{
152 (void)FLEXIO_SPI_MasterTransferCreateHandleEDMA(base, handle, callback, userData, txHandle, rxHandle);
153}
154
172
179static inline void FLEXIO_SPI_SlaveTransferAbortEDMA(FLEXIO_SPI_Type *base, flexio_spi_slave_edma_handle_t *handle)
180{
182}
183
191static inline status_t FLEXIO_SPI_SlaveTransferGetCountEDMA(FLEXIO_SPI_Type *base,
193 size_t *count)
194{
195 return FLEXIO_SPI_MasterTransferGetCountEDMA(base, handle, count);
196}
197
200#if defined(__cplusplus)
201}
202#endif
203
207#endif
void FLEXIO_SPI_MasterTransferAbortEDMA(FLEXIO_SPI_Type *base, flexio_spi_master_edma_handle_t *handle)
Aborts a FlexIO SPI transfer using eDMA.
Definition: fsl_flexio_spi_edma.c:465
status_t FLEXIO_SPI_MasterTransferEDMA(FLEXIO_SPI_Type *base, flexio_spi_master_edma_handle_t *handle, flexio_spi_transfer_t *xfer)
Performs a non-blocking FlexIO SPI transfer using eDMA.
Definition: fsl_flexio_spi_edma.c:356
void(* flexio_spi_slave_edma_transfer_callback_t)(FLEXIO_SPI_Type *base, flexio_spi_slave_edma_handle_t *handle, status_t status, void *userData)
FlexIO SPI slave callback for finished transmit.
Definition: fsl_flexio_spi_edma.h:42
status_t FLEXIO_SPI_MasterTransferCreateHandleEDMA(FLEXIO_SPI_Type *base, flexio_spi_master_edma_handle_t *handle, flexio_spi_master_edma_transfer_callback_t callback, void *userData, edma_handle_t *txHandle, edma_handle_t *rxHandle)
Initializes the FlexIO SPI master eDMA handle.
Definition: fsl_flexio_spi_edma.c:290
void(* flexio_spi_master_edma_transfer_callback_t)(FLEXIO_SPI_Type *base, flexio_spi_master_edma_handle_t *handle, status_t status, void *userData)
FlexIO SPI master callback for finished transmit.
Definition: fsl_flexio_spi_edma.h:36
flexio_spi_master_edma_handle_t flexio_spi_slave_edma_handle_t
Slave handle is the same with master handle.
Definition: fsl_flexio_spi_edma.h:33
status_t FLEXIO_SPI_MasterTransferGetCountEDMA(FLEXIO_SPI_Type *base, flexio_spi_master_edma_handle_t *handle, size_t *count)
Gets the number of bytes transferred so far using FlexIO SPI master eDMA.
Definition: fsl_flexio_spi_edma.c:432
status_t FLEXIO_SPI_SlaveTransferEDMA(FLEXIO_SPI_Type *base, flexio_spi_slave_edma_handle_t *handle, flexio_spi_transfer_t *xfer)
Performs a non-blocking FlexIO SPI transfer using eDMA.
Definition: fsl_flexio_spi_edma.c:495
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:225
eDMA transfer handle structure
Definition: fsl_edma.h:244
FlexIO SPI eDMA transfer handle, users should not touch the content of the handle.
Definition: fsl_flexio_spi_edma.h:49
uint8_t nbytes
Definition: fsl_flexio_spi_edma.h:51
bool txInProgress
Definition: fsl_flexio_spi_edma.h:52
void * userData
Definition: fsl_flexio_spi_edma.h:57
flexio_spi_master_edma_transfer_callback_t callback
Definition: fsl_flexio_spi_edma.h:56
bool rxInProgress
Definition: fsl_flexio_spi_edma.h:53
edma_handle_t * txHandle
Definition: fsl_flexio_spi_edma.h:54
size_t transferSize
Definition: fsl_flexio_spi_edma.h:50
edma_handle_t * rxHandle
Definition: fsl_flexio_spi_edma.h:55
Define FlexIO SPI transfer structure.
Definition: fsl_flexio_spi.h:154
Define FlexIO SPI access structure typedef.
Definition: fsl_flexio_spi.h:114