RTEMS 6.1-rc5
Loading...
Searching...
No Matches
Data Structures
Flexio_i2s

Data Structures

struct  _flexio_i2s_type
 Define FlexIO I2S access structure typedef. More...
 
struct  _flexio_i2s_config
 FlexIO I2S configure structure. More...
 
struct  _flexio_i2s_format
 FlexIO I2S audio format, FlexIO I2S only support the same format in Tx and Rx. More...
 
struct  _flexio_i2s_transfer
 Define FlexIO I2S transfer structure. More...
 
struct  _flexio_i2s_handle
 Define FlexIO I2S handle structure. More...
 

Driver version

enum  {
  kStatus_FLEXIO_I2S_Idle = MAKE_STATUS(kStatusGroup_FLEXIO_I2S, 0) , kStatus_FLEXIO_I2S_TxBusy = MAKE_STATUS(kStatusGroup_FLEXIO_I2S, 1) , kStatus_FLEXIO_I2S_RxBusy = MAKE_STATUS(kStatusGroup_FLEXIO_I2S, 2) , kStatus_FLEXIO_I2S_Error = MAKE_STATUS(kStatusGroup_FLEXIO_I2S, 3) ,
  kStatus_FLEXIO_I2S_QueueFull = MAKE_STATUS(kStatusGroup_FLEXIO_I2S, 4) , kStatus_FLEXIO_I2S_Timeout
}
 FlexIO I2S transfer status. More...
 
enum  _flexio_i2s_master_slave { kFLEXIO_I2S_Master = 0x0U , kFLEXIO_I2S_Slave = 0x1U }
 Master or slave mode. More...
 
enum  { kFLEXIO_I2S_TxDataRegEmptyInterruptEnable = 0x1U , kFLEXIO_I2S_RxDataRegFullInterruptEnable = 0x2U }
 _flexio_i2s_interrupt_enable Define FlexIO FlexIO I2S interrupt mask. More...
 
enum  { kFLEXIO_I2S_TxDataRegEmptyFlag = 0x1U , kFLEXIO_I2S_RxDataRegFullFlag = 0x2U }
 _flexio_i2s_status_flags Define FlexIO FlexIO I2S status mask. More...
 
enum  _flexio_i2s_sample_rate {
  kFLEXIO_I2S_SampleRate8KHz = 8000U , kFLEXIO_I2S_SampleRate11025Hz = 11025U , kFLEXIO_I2S_SampleRate12KHz = 12000U , kFLEXIO_I2S_SampleRate16KHz = 16000U ,
  kFLEXIO_I2S_SampleRate22050Hz = 22050U , kFLEXIO_I2S_SampleRate24KHz = 24000U , kFLEXIO_I2S_SampleRate32KHz = 32000U , kFLEXIO_I2S_SampleRate44100Hz = 44100U ,
  kFLEXIO_I2S_SampleRate48KHz = 48000U , kFLEXIO_I2S_SampleRate96KHz = 96000U
}
 Audio sample rate. More...
 
enum  _flexio_i2s_word_width { kFLEXIO_I2S_WordWidth8bits = 8U , kFLEXIO_I2S_WordWidth16bits = 16U , kFLEXIO_I2S_WordWidth24bits = 24U , kFLEXIO_I2S_WordWidth32bits = 32U }
 Audio word width. More...
 
typedef struct _flexio_i2s_type FLEXIO_I2S_Type
 Define FlexIO I2S access structure typedef.
 
typedef enum _flexio_i2s_master_slave flexio_i2s_master_slave_t
 Master or slave mode.
 
typedef struct _flexio_i2s_config flexio_i2s_config_t
 FlexIO I2S configure structure.
 
typedef struct _flexio_i2s_format flexio_i2s_format_t
 FlexIO I2S audio format, FlexIO I2S only support the same format in Tx and Rx.
 
typedef enum _flexio_i2s_sample_rate flexio_i2s_sample_rate_t
 Audio sample rate.
 
typedef enum _flexio_i2s_word_width flexio_i2s_word_width_t
 Audio word width.
 
typedef struct _flexio_i2s_transfer flexio_i2s_transfer_t
 Define FlexIO I2S transfer structure.
 
typedef struct _flexio_i2s_handle flexio_i2s_handle_t
 
typedef void(* flexio_i2s_callback_t) (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, status_t status, void *userData)
 FlexIO I2S xfer callback prototype.
 
#define FSL_FLEXIO_I2S_DRIVER_VERSION   (MAKE_VERSION(2, 2, 0))
 FlexIO I2S driver version 2.2.0.
 
#define I2S_RETRY_TIMES   0U /* Define to zero means keep waiting until the flag is assert/deassert. */
 Retry times for waiting flag.
 
#define FLEXIO_I2S_XFER_QUEUE_SIZE   (4U)
 FlexIO I2S transfer queue size, user can refine it according to use case.
 

Initialization and deinitialization

void FLEXIO_I2S_Init (FLEXIO_I2S_Type *base, const flexio_i2s_config_t *config)
 Initializes the FlexIO I2S.
 
void FLEXIO_I2S_GetDefaultConfig (flexio_i2s_config_t *config)
 Sets the FlexIO I2S configuration structure to default values.
 
void FLEXIO_I2S_Deinit (FLEXIO_I2S_Type *base)
 De-initializes the FlexIO I2S.
 

Status

uint32_t FLEXIO_I2S_GetStatusFlags (FLEXIO_I2S_Type *base)
 Gets the FlexIO I2S status flags.
 

Interrupts

void FLEXIO_I2S_EnableInterrupts (FLEXIO_I2S_Type *base, uint32_t mask)
 Enables the FlexIO I2S interrupt.
 
void FLEXIO_I2S_DisableInterrupts (FLEXIO_I2S_Type *base, uint32_t mask)
 Disables the FlexIO I2S interrupt.
 

Bus Operations

void FLEXIO_I2S_MasterSetFormat (FLEXIO_I2S_Type *base, flexio_i2s_format_t *format, uint32_t srcClock_Hz)
 Configures the FlexIO I2S audio format in master mode.
 
void FLEXIO_I2S_SlaveSetFormat (FLEXIO_I2S_Type *base, flexio_i2s_format_t *format)
 Configures the FlexIO I2S audio format in slave mode.
 
status_t FLEXIO_I2S_WriteBlocking (FLEXIO_I2S_Type *base, uint8_t bitWidth, uint8_t *txData, size_t size)
 Sends data using a blocking method.
 
status_t FLEXIO_I2S_ReadBlocking (FLEXIO_I2S_Type *base, uint8_t bitWidth, uint8_t *rxData, size_t size)
 Receives a piece of data using a blocking method.
 

Transactional

void FLEXIO_I2S_TransferTxCreateHandle (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, flexio_i2s_callback_t callback, void *userData)
 Initializes the FlexIO I2S handle.
 
void FLEXIO_I2S_TransferSetFormat (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, flexio_i2s_format_t *format, uint32_t srcClock_Hz)
 Configures the FlexIO I2S audio format.
 
void FLEXIO_I2S_TransferRxCreateHandle (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, flexio_i2s_callback_t callback, void *userData)
 Initializes the FlexIO I2S receive handle.
 
status_t FLEXIO_I2S_TransferSendNonBlocking (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, flexio_i2s_transfer_t *xfer)
 Performs an interrupt non-blocking send transfer on FlexIO I2S.
 
status_t FLEXIO_I2S_TransferReceiveNonBlocking (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, flexio_i2s_transfer_t *xfer)
 Performs an interrupt non-blocking receive transfer on FlexIO I2S.
 
void FLEXIO_I2S_TransferAbortSend (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle)
 Aborts the current send.
 
void FLEXIO_I2S_TransferAbortReceive (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle)
 Aborts the current receive.
 
status_t FLEXIO_I2S_TransferGetSendCount (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, size_t *count)
 Gets the remaining bytes to be sent.
 
status_t FLEXIO_I2S_TransferGetReceiveCount (FLEXIO_I2S_Type *base, flexio_i2s_handle_t *handle, size_t *count)
 Gets the remaining bytes to be received.
 
void FLEXIO_I2S_TransferTxHandleIRQ (void *i2sBase, void *i2sHandle)
 Tx interrupt handler.
 
void FLEXIO_I2S_TransferRxHandleIRQ (void *i2sBase, void *i2sHandle)
 Rx interrupt handler.
 

Detailed Description

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

FlexIO I2S transfer status.

Enumerator
kStatus_FLEXIO_I2S_Idle 

FlexIO I2S is in idle state

kStatus_FLEXIO_I2S_TxBusy 

FlexIO I2S Tx is busy

kStatus_FLEXIO_I2S_RxBusy 

FlexIO I2S Tx is busy

kStatus_FLEXIO_I2S_Error 

FlexIO I2S error occurred

kStatus_FLEXIO_I2S_QueueFull 

FlexIO I2S transfer queue is full.

kStatus_FLEXIO_I2S_Timeout 

FlexIO I2S timeout polling status flags.

◆ anonymous enum

anonymous enum

_flexio_i2s_interrupt_enable Define FlexIO FlexIO I2S interrupt mask.

Enumerator
kFLEXIO_I2S_TxDataRegEmptyInterruptEnable 

Transmit buffer empty interrupt enable.

kFLEXIO_I2S_RxDataRegFullInterruptEnable 

Receive buffer full interrupt enable.

◆ anonymous enum

anonymous enum

_flexio_i2s_status_flags Define FlexIO FlexIO I2S status mask.

Enumerator
kFLEXIO_I2S_TxDataRegEmptyFlag 

Transmit buffer empty flag.

kFLEXIO_I2S_RxDataRegFullFlag 

Receive buffer full flag.

◆ _flexio_i2s_master_slave

Master or slave mode.

Enumerator
kFLEXIO_I2S_Master 

Master mode

kFLEXIO_I2S_Slave 

Slave mode

◆ _flexio_i2s_sample_rate

Audio sample rate.

Enumerator
kFLEXIO_I2S_SampleRate8KHz 

Sample rate 8000Hz

kFLEXIO_I2S_SampleRate11025Hz 

Sample rate 11025Hz

kFLEXIO_I2S_SampleRate12KHz 

Sample rate 12000Hz

kFLEXIO_I2S_SampleRate16KHz 

Sample rate 16000Hz

kFLEXIO_I2S_SampleRate22050Hz 

Sample rate 22050Hz

kFLEXIO_I2S_SampleRate24KHz 

Sample rate 24000Hz

kFLEXIO_I2S_SampleRate32KHz 

Sample rate 32000Hz

kFLEXIO_I2S_SampleRate44100Hz 

Sample rate 44100Hz

kFLEXIO_I2S_SampleRate48KHz 

Sample rate 48000Hz

kFLEXIO_I2S_SampleRate96KHz 

Sample rate 96000Hz

◆ _flexio_i2s_word_width

Audio word width.

Enumerator
kFLEXIO_I2S_WordWidth8bits 

Audio data width 8 bits

kFLEXIO_I2S_WordWidth16bits 

Audio data width 16 bits

kFLEXIO_I2S_WordWidth24bits 

Audio data width 24 bits

kFLEXIO_I2S_WordWidth32bits 

Audio data width 32 bits

Function Documentation

◆ FLEXIO_I2S_Deinit()

void FLEXIO_I2S_Deinit ( FLEXIO_I2S_Type base)

De-initializes the FlexIO I2S.

Calling this API resets the FlexIO I2S shifter and timer config. After calling this API, call the FLEXO_I2S_Init to use the FlexIO I2S module.

Parameters
baseFlexIO I2S base pointer

brief De-initializes the FlexIO I2S.

Calling this API resets the FlexIO I2S shifter and timer config. After calling this API, call the FLEXO_I2S_Init to use the FlexIO I2S module.

param base FlexIO I2S base pointer

◆ FLEXIO_I2S_DisableInterrupts()

void FLEXIO_I2S_DisableInterrupts ( FLEXIO_I2S_Type base,
uint32_t  mask 
)

Disables the FlexIO I2S interrupt.

This function enables the FlexIO UART interrupt.

Parameters
basepointer to FLEXIO_I2S_Type structure
maskinterrupt source

brief Disables the FlexIO I2S interrupt.

This function enables the FlexIO UART interrupt.

param base pointer to FLEXIO_I2S_Type structure param mask interrupt source

◆ FLEXIO_I2S_EnableInterrupts()

void FLEXIO_I2S_EnableInterrupts ( FLEXIO_I2S_Type base,
uint32_t  mask 
)

Enables the FlexIO I2S interrupt.

This function enables the FlexIO UART interrupt.

Parameters
basePointer to FLEXIO_I2S_Type structure
maskinterrupt source

brief Enables the FlexIO I2S interrupt.

This function enables the FlexIO UART interrupt.

param base Pointer to FLEXIO_I2S_Type structure param mask interrupt source

◆ FLEXIO_I2S_GetDefaultConfig()

void FLEXIO_I2S_GetDefaultConfig ( flexio_i2s_config_t config)

Sets the FlexIO I2S configuration structure to default values.

The purpose of this API is to get the configuration structure initialized for use in FLEXIO_I2S_Init(). Users may use the initialized structure unchanged in FLEXIO_I2S_Init() or modify some fields of the structure before calling FLEXIO_I2S_Init().

Parameters
configpointer to master configuration structure

brief Sets the FlexIO I2S configuration structure to default values.

The purpose of this API is to get the configuration structure initialized for use in FLEXIO_I2S_Init(). Users may use the initialized structure unchanged in FLEXIO_I2S_Init() or modify some fields of the structure before calling FLEXIO_I2S_Init().

param config pointer to master configuration structure

◆ FLEXIO_I2S_GetStatusFlags()

uint32_t FLEXIO_I2S_GetStatusFlags ( FLEXIO_I2S_Type base)

Gets the FlexIO I2S status flags.

Parameters
basePointer to FLEXIO_I2S_Type structure
Returns
Status flag, which are ORed by the enumerators in the _flexio_i2s_status_flags.

brief Gets the FlexIO I2S status flags.

param base Pointer to FLEXIO_I2S_Type structure return Status flag, which are ORed by the enumerators in the _flexio_i2s_status_flags.

◆ FLEXIO_I2S_Init()

void FLEXIO_I2S_Init ( FLEXIO_I2S_Type base,
const flexio_i2s_config_t config 
)

Initializes the FlexIO I2S.

This API configures FlexIO pins and shifter to I2S and configures the FlexIO I2S with a configuration structure. The configuration structure can be filled by the user, or be set with default values by FLEXIO_I2S_GetDefaultConfig().

Note
This API should be called at the beginning of the application to use the FlexIO I2S driver. Otherwise, any access to the FlexIO I2S module can cause hard fault because the clock is not enabled.
Parameters
baseFlexIO I2S base pointer
configFlexIO I2S configure structure.

brief Initializes the FlexIO I2S.

This API configures FlexIO pins and shifter to I2S and configures the FlexIO I2S with a configuration structure. The configuration structure can be filled by the user, or be set with default values by FLEXIO_I2S_GetDefaultConfig().

note This API should be called at the beginning of the application to use the FlexIO I2S driver. Otherwise, any access to the FlexIO I2S module can cause hard fault because the clock is not enabled.

param base FlexIO I2S base pointer param config FlexIO I2S configure structure.

◆ FLEXIO_I2S_MasterSetFormat()

void FLEXIO_I2S_MasterSetFormat ( FLEXIO_I2S_Type base,
flexio_i2s_format_t format,
uint32_t  srcClock_Hz 
)

Configures the FlexIO I2S audio format in master mode.

Audio format can be changed in run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred.

Parameters
basePointer to FLEXIO_I2S_Type structure
formatPointer to FlexIO I2S audio data format structure.
srcClock_HzI2S master clock source frequency in Hz.

brief Configures the FlexIO I2S audio format in master mode.

Audio format can be changed in run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred.

param base Pointer to FLEXIO_I2S_Type structure param format Pointer to FlexIO I2S audio data format structure. param srcClock_Hz I2S master clock source frequency in Hz.

◆ FLEXIO_I2S_ReadBlocking()

status_t FLEXIO_I2S_ReadBlocking ( FLEXIO_I2S_Type base,
uint8_t  bitWidth,
uint8_t *  rxData,
size_t  size 
)

Receives a piece of data using a blocking method.

Note
This function blocks via polling until data is ready to be sent.
Parameters
baseFlexIO I2S base pointer
bitWidthHow many bits in a audio word, usually 8/16/24/32 bits.
rxDataPointer to the data to be read.
sizeBytes to be read.
Return values
kStatus_SuccessSuccessfully read data.
kStatus_FLEXIO_I2C_TimeoutTimeout polling status flags.

brief Receives a piece of data using a blocking method.

note This function blocks via polling until data is ready to be sent.

param base FlexIO I2S base pointer param bitWidth How many bits in a audio word, usually 8/16/24/32 bits. param rxData Pointer to the data to be read. param size Bytes to be read. retval kStatus_Success Successfully read data. retval kStatus_FLEXIO_I2C_Timeout Timeout polling status flags.

◆ FLEXIO_I2S_SlaveSetFormat()

void FLEXIO_I2S_SlaveSetFormat ( FLEXIO_I2S_Type base,
flexio_i2s_format_t format 
)

Configures the FlexIO I2S audio format in slave mode.

Audio format can be changed in run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred.

Parameters
basePointer to FLEXIO_I2S_Type structure
formatPointer to FlexIO I2S audio data format structure.

brief Configures the FlexIO I2S audio format in slave mode.

Audio format can be changed in run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred.

param base Pointer to FLEXIO_I2S_Type structure param format Pointer to FlexIO I2S audio data format structure.

◆ FLEXIO_I2S_TransferAbortReceive()

void FLEXIO_I2S_TransferAbortReceive ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle 
)

Aborts the current receive.

Note
This API can be called at any time when interrupt non-blocking transfer initiates to abort the transfer in a early time.
Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure which stores the transfer state

brief Aborts the current receive.

note This API can be called at any time when interrupt non-blocking transfer initiates to abort the transfer in a early time.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure which stores the transfer state

◆ FLEXIO_I2S_TransferAbortSend()

void FLEXIO_I2S_TransferAbortSend ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle 
)

Aborts the current send.

Note
This API can be called at any time when interrupt non-blocking transfer initiates to abort the transfer in a early time.
Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure which stores the transfer state

brief Aborts the current send.

note This API can be called at any time when interrupt non-blocking transfer initiates to abort the transfer in a early time.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure which stores the transfer state

◆ FLEXIO_I2S_TransferGetReceiveCount()

status_t FLEXIO_I2S_TransferGetReceiveCount ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
size_t *  count 
)

Gets the remaining bytes to be received.

Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure which stores the transfer state
countBytes recieved.
Returns
count Bytes received.
Return values
kStatus_SuccessSucceed get the transfer count.
kStatus_NoTransferInProgressThere is not a non-blocking transaction currently in progress.

brief Gets the remaining bytes to be received.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure which stores the transfer state return count Bytes received. retval kStatus_Success Succeed get the transfer count. retval kStatus_NoTransferInProgress There is not a non-blocking transaction currently in progress.

◆ FLEXIO_I2S_TransferGetSendCount()

status_t FLEXIO_I2S_TransferGetSendCount ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
size_t *  count 
)

Gets the remaining bytes to be sent.

Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure which stores the transfer state
countBytes sent.
Return values
kStatus_SuccessSucceed get the transfer count.
kStatus_NoTransferInProgressThere is not a non-blocking transaction currently in progress.

brief Gets the remaining bytes to be sent.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure which stores the transfer state param count Bytes sent. retval kStatus_Success Succeed get the transfer count. retval kStatus_NoTransferInProgress There is not a non-blocking transaction currently in progress.

◆ FLEXIO_I2S_TransferReceiveNonBlocking()

status_t FLEXIO_I2S_TransferReceiveNonBlocking ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
flexio_i2s_transfer_t xfer 
)

Performs an interrupt non-blocking receive transfer on FlexIO I2S.

Note
The API returns immediately after transfer initiates. Call FLEXIO_I2S_GetRemainingBytes to poll the transfer status to check whether the transfer is finished. If the return status is 0, the transfer is finished.
Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure which stores the transfer state
xferPointer to flexio_i2s_transfer_t structure
Return values
kStatus_SuccessSuccessfully start the data receive.
kStatus_FLEXIO_I2S_RxBusyPrevious receive still not finished.
kStatus_InvalidArgumentThe input parameter is invalid.

brief Performs an interrupt non-blocking receive transfer on FlexIO I2S.

note The API returns immediately after transfer initiates. Call FLEXIO_I2S_GetRemainingBytes to poll the transfer status to check whether the transfer is finished. If the return status is 0, the transfer is finished.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure which stores the transfer state param xfer Pointer to flexio_i2s_transfer_t structure retval kStatus_Success Successfully start the data receive. retval kStatus_FLEXIO_I2S_RxBusy Previous receive still not finished. retval kStatus_InvalidArgument The input parameter is invalid.

◆ FLEXIO_I2S_TransferRxCreateHandle()

void FLEXIO_I2S_TransferRxCreateHandle ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
flexio_i2s_callback_t  callback,
void *  userData 
)

Initializes the FlexIO I2S receive handle.

This function initializes the FlexIO I2S handle which can be used for other FlexIO I2S transactional APIs. Call this API once to get the initialized handle.

Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure to store the transfer state.
callbackFlexIO I2S callback function, which is called while finished a block.
userDataUser parameter for the FlexIO I2S callback.

brief Initializes the FlexIO I2S receive handle.

This function initializes the FlexIO I2S handle which can be used for other FlexIO I2S transactional APIs. Call this API once to get the initialized handle.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure to store the transfer state. param callback FlexIO I2S callback function, which is called while finished a block. param userData User parameter for the FlexIO I2S callback.

◆ FLEXIO_I2S_TransferRxHandleIRQ()

void FLEXIO_I2S_TransferRxHandleIRQ ( void *  i2sBase,
void *  i2sHandle 
)

Rx interrupt handler.

Parameters
i2sBasePointer to FLEXIO_I2S_Type structure.
i2sHandlePointer to flexio_i2s_handle_t structure.

brief Rx interrupt handler.

param i2sBase Pointer to FLEXIO_I2S_Type structure. param i2sHandle Pointer to flexio_i2s_handle_t structure.

◆ FLEXIO_I2S_TransferSendNonBlocking()

status_t FLEXIO_I2S_TransferSendNonBlocking ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
flexio_i2s_transfer_t xfer 
)

Performs an interrupt non-blocking send transfer on FlexIO I2S.

Note
The API returns immediately after transfer initiates. Call FLEXIO_I2S_GetRemainingBytes to poll the transfer status and check whether the transfer is finished. If the return status is 0, the transfer is finished.
Parameters
basePointer to FLEXIO_I2S_Type structure.
handlePointer to flexio_i2s_handle_t structure which stores the transfer state
xferPointer to flexio_i2s_transfer_t structure
Return values
kStatus_SuccessSuccessfully start the data transmission.
kStatus_FLEXIO_I2S_TxBusyPrevious transmission still not finished, data not all written to TX register yet.
kStatus_InvalidArgumentThe input parameter is invalid.

brief Performs an interrupt non-blocking send transfer on FlexIO I2S.

note The API returns immediately after transfer initiates. Call FLEXIO_I2S_GetRemainingBytes to poll the transfer status and check whether the transfer is finished. If the return status is 0, the transfer is finished.

param base Pointer to FLEXIO_I2S_Type structure. param handle Pointer to flexio_i2s_handle_t structure which stores the transfer state param xfer Pointer to flexio_i2s_transfer_t structure retval kStatus_Success Successfully start the data transmission. retval kStatus_FLEXIO_I2S_TxBusy Previous transmission still not finished, data not all written to TX register yet. retval kStatus_InvalidArgument The input parameter is invalid.

◆ FLEXIO_I2S_TransferSetFormat()

void FLEXIO_I2S_TransferSetFormat ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
flexio_i2s_format_t format,
uint32_t  srcClock_Hz 
)

Configures the FlexIO I2S audio format.

Audio format can be changed at run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred.

Parameters
basePointer to FLEXIO_I2S_Type structure.
handleFlexIO I2S handle pointer.
formatPointer to audio data format structure.
srcClock_HzFlexIO I2S bit clock source frequency in Hz. This parameter should be 0 while in slave mode.

brief Configures the FlexIO I2S audio format.

Audio format can be changed at run-time of FlexIO I2S. This function configures the sample rate and audio data format to be transferred.

param base Pointer to FLEXIO_I2S_Type structure. param handle FlexIO I2S handle pointer. param format Pointer to audio data format structure. param srcClock_Hz FlexIO I2S bit clock source frequency in Hz. This parameter should be 0 while in slave mode.

◆ FLEXIO_I2S_TransferTxCreateHandle()

void FLEXIO_I2S_TransferTxCreateHandle ( FLEXIO_I2S_Type base,
flexio_i2s_handle_t handle,
flexio_i2s_callback_t  callback,
void *  userData 
)

Initializes the FlexIO I2S handle.

This function initializes the FlexIO I2S handle which can be used for other FlexIO I2S transactional APIs. Call this API once to get the initialized handle.

Parameters
basePointer to FLEXIO_I2S_Type structure
handlePointer to flexio_i2s_handle_t structure to store the transfer state.
callbackFlexIO I2S callback function, which is called while finished a block.
userDataUser parameter for the FlexIO I2S callback.

brief Initializes the FlexIO I2S handle.

This function initializes the FlexIO I2S handle which can be used for other FlexIO I2S transactional APIs. Call this API once to get the initialized handle.

param base Pointer to FLEXIO_I2S_Type structure param handle Pointer to flexio_i2s_handle_t structure to store the transfer state. param callback FlexIO I2S callback function, which is called while finished a block. param userData User parameter for the FlexIO I2S callback.

◆ FLEXIO_I2S_TransferTxHandleIRQ()

void FLEXIO_I2S_TransferTxHandleIRQ ( void *  i2sBase,
void *  i2sHandle 
)

Tx interrupt handler.

Parameters
i2sBasePointer to FLEXIO_I2S_Type structure.
i2sHandlePointer to flexio_i2s_handle_t structure

brief Tx interrupt handler.

param i2sBase Pointer to FLEXIO_I2S_Type structure. param i2sHandle Pointer to flexio_i2s_handle_t structure

◆ FLEXIO_I2S_WriteBlocking()

status_t FLEXIO_I2S_WriteBlocking ( FLEXIO_I2S_Type base,
uint8_t  bitWidth,
uint8_t *  txData,
size_t  size 
)

Sends data using a blocking method.

Note
This function blocks via polling until data is ready to be sent.
Parameters
baseFlexIO I2S base pointer.
bitWidthHow many bits in a audio word, usually 8/16/24/32 bits.
txDataPointer to the data to be written.
sizeBytes to be written.
Return values
kStatus_SuccessSuccessfully write data.
kStatus_FLEXIO_I2C_TimeoutTimeout polling status flags.

brief Sends data using a blocking method.

note This function blocks via polling until data is ready to be sent.

param base FlexIO I2S base pointer. param bitWidth How many bits in a audio word, usually 8/16/24/32 bits. param txData Pointer to the data to be written. param size Bytes to be written. retval kStatus_Success Successfully write data. retval kStatus_FLEXIO_I2C_Timeout Timeout polling status flags.