RTEMS 6.1-rc7
Loading...
Searching...
No Matches
fsl_flexio_i2s_dma.h
1/*
2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
3 * Copyright 2016-2019 NXP
4 * All rights reserved.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8#ifndef _FSL_FLEXIO_I2S_DMA_H_
9#define _FSL_FLEXIO_I2S_DMA_H_
10
11#include "fsl_flexio_i2s.h"
12#include "fsl_dma.h"
13
19/*******************************************************************************
20 * Definitions
21 ******************************************************************************/
22
26#define FSL_FLEXIO_I2S_DMA_DRIVER_VERSION (MAKE_VERSION(2, 1, 7))
30
34 status_t status,
35 void *userData);
36
39{
40 dma_handle_t *dmaHandle;
41 uint8_t bytesPerFrame;
42 uint32_t state;
44 void *userData;
47 volatile uint8_t queueUser;
48 volatile uint8_t queueDriver;
49};
50
51/*******************************************************************************
52 * APIs
53 ******************************************************************************/
54#if defined(__cplusplus)
55extern "C" {
56#endif
57
79 void *userData,
80 dma_handle_t *dmaHandle);
81
98 void *userData,
99 dma_handle_t *dmaHandle);
100
115 uint32_t srcClock_Hz);
116
133
150
158
166
177
188
191#if defined(__cplusplus)
192}
193#endif
194
198#endif
status_t FLEXIO_I2S_TransferGetSendCountDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, size_t *count)
Gets the remaining bytes to be sent.
void FLEXIO_I2S_TransferSetFormatDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, flexio_i2s_format_t *format, uint32_t srcClock_Hz)
Configures the FlexIO I2S Tx audio format.
void FLEXIO_I2S_TransferTxCreateHandleDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, flexio_i2s_dma_callback_t callback, void *userData, dma_handle_t *dmaHandle)
Initializes the FlexIO I2S DMA handle.
void(* flexio_i2s_dma_callback_t)(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, status_t status, void *userData)
FlexIO I2S DMA transfer callback function for finish and error.
Definition: fsl_flexio_i2s_dma.h:32
status_t FLEXIO_I2S_TransferGetReceiveCountDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, size_t *count)
Gets the remaining bytes to be received.
void FLEXIO_I2S_TransferRxCreateHandleDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, flexio_i2s_dma_callback_t callback, void *userData, dma_handle_t *dmaHandle)
Initializes the FlexIO I2S Rx DMA handle.
status_t FLEXIO_I2S_TransferSendDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, flexio_i2s_transfer_t *xfer)
Performs a non-blocking FlexIO I2S transfer using DMA.
status_t FLEXIO_I2S_TransferReceiveDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle, flexio_i2s_transfer_t *xfer)
Performs a non-blocking FlexIO I2S receive using DMA.
void FLEXIO_I2S_TransferAbortSendDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle)
Aborts a FlexIO I2S transfer using DMA.
void FLEXIO_I2S_TransferAbortReceiveDMA(FLEXIO_I2S_Type *base, flexio_i2s_dma_handle_t *handle)
Aborts a FlexIO I2S receive using DMA.
#define FLEXIO_I2S_XFER_QUEUE_SIZE
FlexIO I2S transfer queue size, user can refine it according to use case.
Definition: fsl_flexio_i2s.h:102
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:225
FlexIO I2S DMA transfer handle, users should not touch the content of the handle.
Definition: fsl_flexio_i2s_dma.h:39
volatile uint8_t queueUser
Definition: fsl_flexio_i2s_dma.h:47
void * userData
Definition: fsl_flexio_i2s_dma.h:44
uint32_t state
Definition: fsl_flexio_i2s_dma.h:42
dma_handle_t * dmaHandle
Definition: fsl_flexio_i2s_dma.h:40
size_t transferSize[FLEXIO_I2S_XFER_QUEUE_SIZE]
Definition: fsl_flexio_i2s_dma.h:46
flexio_i2s_transfer_t queue[FLEXIO_I2S_XFER_QUEUE_SIZE]
Definition: fsl_flexio_i2s_dma.h:45
volatile uint8_t queueDriver
Definition: fsl_flexio_i2s_dma.h:48
uint8_t bytesPerFrame
Definition: fsl_flexio_i2s_dma.h:41
flexio_i2s_dma_callback_t callback
Definition: fsl_flexio_i2s_dma.h:43
FlexIO I2S audio format, FlexIO I2S only support the same format in Tx and Rx.
Definition: fsl_flexio_i2s.h:96
Define FlexIO I2S transfer structure.
Definition: fsl_flexio_i2s.h:130
Define FlexIO I2S access structure typedef.
Definition: fsl_flexio_i2s.h:48
Definition: mknod-pack_dev.c:254