![]()  | 
  
    MCUXpresso SDK API Reference Manual
    Rev 2.16.000
    
   NXP Semiconductors 
   | 
 
Data Structures | |
| struct | _flexio_i2s_edma_handle | 
| FlexIO I2S DMA transfer handle, users should not touch the content of the handle.  More... | |
Typedefs | |
| typedef void(* | flexio_i2s_edma_callback_t )(FLEXIO_I2S_Type *base, flexio_i2s_edma_handle_t *handle, status_t status, void *userData) | 
| FlexIO I2S eDMA transfer callback function for finish and error.  | |
Driver version | |
| #define | FSL_FLEXIO_I2S_EDMA_DRIVER_VERSION (MAKE_VERSION(2, 1, 8)) | 
| FlexIO I2S EDMA driver version 2.1.8.  More... | |
| struct _flexio_i2s_edma_handle | 
Data Fields | |
| edma_handle_t * | dmaHandle | 
| DMA handler for FlexIO I2S send.  | |
| uint8_t | bytesPerFrame | 
| Bytes in a frame.  | |
| uint8_t | nbytes | 
| eDMA minor byte transfer count initially configured.  More... | |
| uint32_t | state | 
| Internal state for FlexIO I2S eDMA transfer.  | |
| flexio_i2s_edma_callback_t | callback | 
| Callback for users while transfer finish or error occurred.  | |
| void * | userData | 
| User callback parameter.  | |
| edma_tcd_t | tcd [FLEXIO_I2S_XFER_QUEUE_SIZE+1U] | 
| TCD pool for eDMA transfer.  More... | |
| flexio_i2s_transfer_t | queue [FLEXIO_I2S_XFER_QUEUE_SIZE] | 
| Transfer queue storing queued transfer.  More... | |
| size_t | transferSize [FLEXIO_I2S_XFER_QUEUE_SIZE] | 
| Data bytes need to transfer.  | |
| volatile uint8_t | queueUser | 
| Index for user to queue transfer.  More... | |
| volatile uint8_t | queueDriver | 
| Index for driver to get the transfer data and size.  | |
| uint8_t _flexio_i2s_edma_handle::nbytes | 
| edma_tcd_t _flexio_i2s_edma_handle::tcd[FLEXIO_I2S_XFER_QUEUE_SIZE+1U] | 
| flexio_i2s_transfer_t _flexio_i2s_edma_handle::queue[FLEXIO_I2S_XFER_QUEUE_SIZE] | 
| volatile uint8_t _flexio_i2s_edma_handle::queueUser | 
| #define FSL_FLEXIO_I2S_EDMA_DRIVER_VERSION (MAKE_VERSION(2, 1, 8)) | 
| void FLEXIO_I2S_TransferTxCreateHandleEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| flexio_i2s_edma_callback_t | callback, | ||
| void * | userData, | ||
| edma_handle_t * | dmaHandle | ||
| ) | 
This function initializes the FlexIO I2S master DMA handle which can be used for other FlexIO I2S master transactional APIs. Usually, for a specified FlexIO I2S instance, call this API once to get the initialized handle.
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S eDMA handle pointer. | 
| callback | FlexIO I2S eDMA callback function called while finished a block. | 
| userData | User parameter for callback. | 
| dmaHandle | eDMA handle for FlexIO I2S. This handle is a static value allocated by users. | 
| void FLEXIO_I2S_TransferRxCreateHandleEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| flexio_i2s_edma_callback_t | callback, | ||
| void * | userData, | ||
| edma_handle_t * | dmaHandle | ||
| ) | 
This function initializes the FlexIO I2S slave DMA handle which can be used for other FlexIO I2S master transactional APIs. Usually, for a specified FlexIO I2S instance, call this API once to get the initialized handle.
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S eDMA handle pointer. | 
| callback | FlexIO I2S eDMA callback function called while finished a block. | 
| userData | User parameter for callback. | 
| dmaHandle | eDMA handle for FlexIO I2S. This handle is a static value allocated by users. | 
| void FLEXIO_I2S_TransferSetFormatEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| flexio_i2s_format_t * | format, | ||
| uint32_t | srcClock_Hz | ||
| ) | 
Audio format can be changed in run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred. This function also sets the eDMA parameter according to format.
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S eDMA handle pointer | 
| format | Pointer to FlexIO I2S audio data format structure. | 
| srcClock_Hz | FlexIO I2S clock source frequency in Hz, it should be 0 while in slave mode. | 
| status_t FLEXIO_I2S_TransferSendEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| flexio_i2s_transfer_t * | xfer | ||
| ) | 
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S DMA handle pointer. | 
| xfer | Pointer to DMA transfer structure. | 
| kStatus_Success | Start a FlexIO I2S eDMA send successfully. | 
| kStatus_InvalidArgument | The input arguments is invalid. | 
| kStatus_TxBusy | FlexIO I2S is busy sending data. | 
| status_t FLEXIO_I2S_TransferReceiveEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| flexio_i2s_transfer_t * | xfer | ||
| ) | 
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S DMA handle pointer. | 
| xfer | Pointer to DMA transfer structure. | 
| kStatus_Success | Start a FlexIO I2S eDMA receive successfully. | 
| kStatus_InvalidArgument | The input arguments is invalid. | 
| kStatus_RxBusy | FlexIO I2S is busy receiving data. | 
| void FLEXIO_I2S_TransferAbortSendEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle | ||
| ) | 
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S DMA handle pointer. | 
| void FLEXIO_I2S_TransferAbortReceiveEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle | ||
| ) | 
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S DMA handle pointer. | 
| status_t FLEXIO_I2S_TransferGetSendCountEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| size_t * | count | ||
| ) | 
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S DMA handle pointer. | 
| count | Bytes sent. | 
| kStatus_Success | Succeed get the transfer count. | 
| kStatus_NoTransferInProgress | There is not a non-blocking transaction currently in progress. | 
| status_t FLEXIO_I2S_TransferGetReceiveCountEDMA | ( | FLEXIO_I2S_Type * | base, | 
| flexio_i2s_edma_handle_t * | handle, | ||
| size_t * | count | ||
| ) | 
| base | FlexIO I2S peripheral base address. | 
| handle | FlexIO I2S DMA handle pointer. | 
| count | Bytes received. | 
| kStatus_Success | Succeed get the transfer count. | 
| kStatus_NoTransferInProgress | There is not a non-blocking transaction currently in progress. |