S32 SDK
flexio_i2s_driver.h File Reference
#include <stddef.h>
#include <stdbool.h>
#include "device_registers.h"
#include "flexio_hal.h"
#include "flexio.h"
#include "edma_driver.h"

Go to the source code of this file.

Data Structures

struct  flexio_i2s_master_user_config_t
 Master configuration structure. More...
 
struct  flexio_i2s_slave_user_config_t
 Slave configuration structure. More...
 
struct  flexio_i2s_master_state_t
 Master internal context structure. More...
 

Typedefs

typedef flexio_i2s_master_state_t flexio_i2s_slave_state_t
 Slave internal context structure. More...
 

Functions

FLEXIO_I2S Driver
status_t FLEXIO_I2S_DRV_MasterInit (uint32_t instance, const flexio_i2s_master_user_config_t *userConfigPtr, flexio_i2s_master_state_t *master)
 Initialize the FLEXIO_I2S master mode driver. More...
 
status_t FLEXIO_I2S_DRV_MasterDeinit (flexio_i2s_master_state_t *master)
 De-initialize the FLEXIO_I2S master mode driver. More...
 
status_t FLEXIO_I2S_DRV_MasterSetConfig (flexio_i2s_master_state_t *master, uint32_t baudRate, uint8_t bitsWidth)
 Set the baud rate and bit width for any subsequent I2S communication. More...
 
status_t FLEXIO_I2S_DRV_MasterGetBaudRate (flexio_i2s_master_state_t *master, uint32_t *baudRate)
 Get the currently configured baud rate. More...
 
status_t FLEXIO_I2S_DRV_MasterSendData (flexio_i2s_master_state_t *master, const uint8_t *txBuff, uint32_t txSize)
 Perform a non-blocking send transaction on the I2S bus. More...
 
status_t FLEXIO_I2S_DRV_MasterSendDataBlocking (flexio_i2s_master_state_t *master, const uint8_t *txBuff, uint32_t txSize, uint32_t timeout)
 Perform a blocking send transaction on the I2S bus. More...
 
status_t FLEXIO_I2S_DRV_MasterReceiveData (flexio_i2s_master_state_t *master, uint8_t *rxBuff, uint32_t rxSize)
 Perform a non-blocking receive transaction on the I2S bus. More...
 
status_t FLEXIO_I2S_DRV_MasterReceiveDataBlocking (flexio_i2s_master_state_t *master, uint8_t *rxBuff, uint32_t rxSize, uint32_t timeout)
 Perform a blocking receive transaction on the I2S bus. More...
 
status_t FLEXIO_I2S_DRV_MasterTransferAbort (flexio_i2s_master_state_t *master)
 Aborts a non-blocking I2S master transaction. More...
 
status_t FLEXIO_I2S_DRV_MasterGetStatus (flexio_i2s_master_state_t *master, uint32_t *bytesRemaining)
 Get the status of the current non-blocking I2S master transaction. More...
 
status_t FLEXIO_I2S_DRV_MasterSetRxBuffer (flexio_i2s_master_state_t *master, uint8_t *rxBuff, uint32_t rxSize)
 Provide a buffer for receiving data. More...
 
status_t FLEXIO_I2S_DRV_MasterSetTxBuffer (flexio_i2s_master_state_t *master, const uint8_t *txBuff, uint32_t txSize)
 Provide a buffer for transmitting data. More...
 
status_t FLEXIO_I2S_DRV_SlaveInit (uint32_t instance, const flexio_i2s_slave_user_config_t *userConfigPtr, flexio_i2s_slave_state_t *slave)
 Initialize the FLEXIO_I2S slave mode driver. More...
 
static status_t FLEXIO_I2S_DRV_SlaveDeinit (flexio_i2s_slave_state_t *slave)
 De-initialize the FLEXIO_I2S slave mode driver. More...
 
status_t FLEXIO_I2S_DRV_SlaveSetConfig (flexio_i2s_slave_state_t *slave, uint8_t bitsWidth)
 Set the bit width for any subsequent I2S communication. More...
 
static status_t FLEXIO_I2S_DRV_SlaveSendData (flexio_i2s_slave_state_t *slave, const uint8_t *txBuff, uint32_t txSize)
 Perform a non-blocking send transaction on the I2S bus. More...
 
static status_t FLEXIO_I2S_DRV_SlaveSendDataBlocking (flexio_i2s_slave_state_t *slave, const uint8_t *txBuff, uint32_t txSize, uint32_t timeout)
 Perform a blocking send transaction on the I2S bus. More...
 
static status_t FLEXIO_I2S_DRV_SlaveReceiveData (flexio_i2s_slave_state_t *slave, uint8_t *rxBuff, uint32_t rxSize)
 Perform a non-blocking receive transaction on the I2S bus. More...
 
static status_t FLEXIO_I2S_DRV_SlaveReceiveDataBlocking (flexio_i2s_slave_state_t *slave, uint8_t *rxBuff, uint32_t rxSize, uint32_t timeout)
 Perform a blocking receive transaction on the I2S bus. More...
 
static status_t FLEXIO_I2S_DRV_SlaveTransferAbort (flexio_i2s_slave_state_t *slave)
 Aborts a non-blocking I2S slave transaction. More...
 
static status_t FLEXIO_I2S_DRV_SlaveGetStatus (flexio_i2s_slave_state_t *slave, uint32_t *bytesRemaining)
 Get the status of the current non-blocking I2S slave transaction. More...
 
static status_t FLEXIO_I2S_DRV_SlaveSetRxBuffer (flexio_i2s_slave_state_t *slave, uint8_t *rxBuff, uint32_t rxSize)
 Provide a buffer for receiving data. More...
 
static status_t FLEXIO_I2S_DRV_SlaveSetTxBuffer (flexio_i2s_slave_state_t *slave, const uint8_t *txBuff, uint32_t txSize)
 Provide a buffer for transmitting data. More...