#include "fsl_common.h"
Go to the source code of this file.
Classes | |
struct | _sai_bit_clock |
sai bit clock configurations More... | |
struct | _sai_config |
SAI user configuration structure. More... | |
struct | _sai_frame_sync |
sai frame sync configurations More... | |
struct | _sai_handle |
SAI handle structure. More... | |
struct | _sai_serial_data |
sai serial data configurations More... | |
struct | _sai_transceiver |
sai transceiver configurations More... | |
struct | _sai_transfer |
SAI transfer structure. More... | |
struct | _sai_transfer_format |
sai transfer format More... | |
Functions | |
Initialization and deinitialization | |
void | SAI_Deinit (I2S_Type *base) |
De-initializes the SAI peripheral. More... | |
void | SAI_GetClassicI2SConfig (sai_transceiver_t *config, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get classic I2S mode configurations. More... | |
void | SAI_GetDSPConfig (sai_transceiver_t *config, sai_frame_sync_len_t frameSyncWidth, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get DSP mode configurations. More... | |
void | SAI_GetLeftJustifiedConfig (sai_transceiver_t *config, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get left justified mode configurations. More... | |
void | SAI_GetRightJustifiedConfig (sai_transceiver_t *config, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get right justified mode configurations. More... | |
void | SAI_GetTDMConfig (sai_transceiver_t *config, sai_frame_sync_len_t frameSyncWidth, sai_word_width_t bitWidth, uint32_t dataWordNum, uint32_t saiChannelMask) |
Get TDM mode configurations. More... | |
void | SAI_Init (I2S_Type *base) |
Initializes the SAI peripheral. More... | |
void | SAI_RxEnable (I2S_Type *base, bool enable) |
Enables/disables the SAI Rx. More... | |
void | SAI_RxGetDefaultConfig (sai_config_t *config) |
Sets the SAI Rx configuration structure to default values. More... | |
void | SAI_RxInit (I2S_Type *base, const sai_config_t *config) |
Initializes the SAI Rx peripheral. More... | |
void | SAI_RxReset (I2S_Type *base) |
Resets the SAI Rx. More... | |
void | SAI_RxSetBitclockConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_bit_clock_t *config) |
Receiver Bit clock configurations. More... | |
static void | SAI_RxSetBitClockDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Rx bit clock direction. More... | |
void | SAI_RxSetBitClockRate (I2S_Type *base, uint32_t sourceClockHz, uint32_t sampleRate, uint32_t bitWidth, uint32_t channelNumbers) |
Receiver bit clock rate configurations. More... | |
void | SAI_RxSetConfig (I2S_Type *base, sai_transceiver_t *config) |
SAI receiver configurations. More... | |
void | SAI_RxSetFrameSyncConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_frame_sync_t *config) |
SAI receiver Frame sync configurations. More... | |
static void | SAI_RxSetFrameSyncDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Rx frame sync direction. More... | |
void | SAI_RxSetSerialDataConfig (I2S_Type *base, sai_serial_data_t *config) |
SAI receiver Serial data configurations. More... | |
void | SAI_TxEnable (I2S_Type *base, bool enable) |
Enables/disables the SAI Tx. More... | |
void | SAI_TxGetDefaultConfig (sai_config_t *config) |
Sets the SAI Tx configuration structure to default values. More... | |
void | SAI_TxInit (I2S_Type *base, const sai_config_t *config) |
Initializes the SAI Tx peripheral. More... | |
void | SAI_TxReset (I2S_Type *base) |
Resets the SAI Tx. More... | |
void | SAI_TxSetBitclockConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_bit_clock_t *config) |
Transmitter Bit clock configurations. More... | |
static void | SAI_TxSetBitClockDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Rx bit clock direction. More... | |
void | SAI_TxSetBitClockRate (I2S_Type *base, uint32_t sourceClockHz, uint32_t sampleRate, uint32_t bitWidth, uint32_t channelNumbers) |
Transmitter bit clock rate configurations. More... | |
void | SAI_TxSetConfig (I2S_Type *base, sai_transceiver_t *config) |
SAI transmitter configurations. More... | |
void | SAI_TxSetFrameSyncConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_frame_sync_t *config) |
SAI transmitter Frame sync configurations. More... | |
static void | SAI_TxSetFrameSyncDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Tx frame sync direction. More... | |
void | SAI_TxSetSerialDataConfig (I2S_Type *base, sai_serial_data_t *config) |
SAI transmitter Serial data configurations. More... | |
Status | |
static void | SAI_RxClearStatusFlags (I2S_Type *base, uint32_t mask) |
Clears the SAI Rx status flag state. More... | |
static uint32_t | SAI_RxGetStatusFlag (I2S_Type *base) |
Gets the SAI Tx status flag state. More... | |
void | SAI_RxSetBitClockPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Rx data order. More... | |
void | SAI_RxSetChannelFIFOMask (I2S_Type *base, uint8_t mask) |
Set the Rx channel FIFO enable mask. More... | |
void | SAI_RxSetDataOrder (I2S_Type *base, sai_data_order_t order) |
Set the Rx data order. More... | |
void | SAI_RxSetFrameSyncPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Rx data order. More... | |
void | SAI_RxSoftwareReset (I2S_Type *base, sai_reset_type_t type) |
Do software reset or FIFO reset . More... | |
static void | SAI_TxClearStatusFlags (I2S_Type *base, uint32_t mask) |
Clears the SAI Tx status flag state. More... | |
static uint32_t | SAI_TxGetStatusFlag (I2S_Type *base) |
Gets the SAI Tx status flag state. More... | |
void | SAI_TxSetBitClockPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Tx data order. More... | |
void | SAI_TxSetChannelFIFOMask (I2S_Type *base, uint8_t mask) |
Set the Tx channel FIFO enable mask. More... | |
void | SAI_TxSetDataOrder (I2S_Type *base, sai_data_order_t order) |
Set the Tx data order. More... | |
void | SAI_TxSetFrameSyncPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Tx data order. More... | |
void | SAI_TxSoftwareReset (I2S_Type *base, sai_reset_type_t type) |
Do software reset or FIFO reset . More... | |
Interrupts | |
static void | SAI_RxDisableInterrupts (I2S_Type *base, uint32_t mask) |
Disables the SAI Rx interrupt requests. More... | |
static void | SAI_RxEnableInterrupts (I2S_Type *base, uint32_t mask) |
Enables the SAI Rx interrupt requests. More... | |
static void | SAI_TxDisableInterrupts (I2S_Type *base, uint32_t mask) |
Disables the SAI Tx interrupt requests. More... | |
static void | SAI_TxEnableInterrupts (I2S_Type *base, uint32_t mask) |
Enables the SAI Tx interrupt requests. More... | |
DMA Control | |
static void | SAI_RxEnableDMA (I2S_Type *base, uint32_t mask, bool enable) |
Enables/disables the SAI Rx DMA requests. More... | |
static uint32_t | SAI_RxGetDataRegisterAddress (I2S_Type *base, uint32_t channel) |
Gets the SAI Rx data register address. More... | |
static void | SAI_TxEnableDMA (I2S_Type *base, uint32_t mask, bool enable) |
Enables/disables the SAI Tx DMA requests. More... | |
static uint32_t | SAI_TxGetDataRegisterAddress (I2S_Type *base, uint32_t channel) |
Gets the SAI Tx data register address. More... | |
Bus Operations | |
void | SAI_ReadBlocking (I2S_Type *base, uint32_t channel, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Receives data using a blocking method. More... | |
static uint32_t | SAI_ReadData (I2S_Type *base, uint32_t channel) |
Reads data from the SAI FIFO. More... | |
void | SAI_ReadMultiChannelBlocking (I2S_Type *base, uint32_t channel, uint32_t channelMask, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Receives multi channel data using a blocking method. More... | |
void | SAI_RxSetFormat (I2S_Type *base, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Rx audio format. More... | |
void | SAI_TxSetFormat (I2S_Type *base, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Tx audio format. More... | |
void | SAI_WriteBlocking (I2S_Type *base, uint32_t channel, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Sends data using a blocking method. More... | |
static void | SAI_WriteData (I2S_Type *base, uint32_t channel, uint32_t data) |
Writes data into SAI FIFO. More... | |
void | SAI_WriteMultiChannelBlocking (I2S_Type *base, uint32_t channel, uint32_t channelMask, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Sends data to multi channel using a blocking method. More... | |
Transactional | |
void | SAI_TransferAbortReceive (I2S_Type *base, sai_handle_t *handle) |
Aborts the current IRQ receive. More... | |
void | SAI_TransferAbortSend (I2S_Type *base, sai_handle_t *handle) |
Aborts the current send. More... | |
status_t | SAI_TransferGetReceiveCount (I2S_Type *base, sai_handle_t *handle, size_t *count) |
Gets a received byte count. More... | |
status_t | SAI_TransferGetSendCount (I2S_Type *base, sai_handle_t *handle, size_t *count) |
Gets a set byte count. More... | |
status_t | SAI_TransferReceiveNonBlocking (I2S_Type *base, sai_handle_t *handle, sai_transfer_t *xfer) |
Performs an interrupt non-blocking receive transfer on SAI. More... | |
void | SAI_TransferRxCreateHandle (I2S_Type *base, sai_handle_t *handle, sai_transfer_callback_t callback, void *userData) |
Initializes the SAI Rx handle. More... | |
void | SAI_TransferRxHandleIRQ (I2S_Type *base, sai_handle_t *handle) |
Tx interrupt handler. More... | |
void | SAI_TransferRxSetConfig (I2S_Type *base, sai_handle_t *handle, sai_transceiver_t *config) |
SAI receiver transfer configurations. More... | |
status_t | SAI_TransferRxSetFormat (I2S_Type *base, sai_handle_t *handle, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Rx audio format. More... | |
status_t | SAI_TransferSendNonBlocking (I2S_Type *base, sai_handle_t *handle, sai_transfer_t *xfer) |
Performs an interrupt non-blocking send transfer on SAI. More... | |
void | SAI_TransferTerminateReceive (I2S_Type *base, sai_handle_t *handle) |
Terminate all SAI receive. More... | |
void | SAI_TransferTerminateSend (I2S_Type *base, sai_handle_t *handle) |
Terminate all SAI send. More... | |
void | SAI_TransferTxCreateHandle (I2S_Type *base, sai_handle_t *handle, sai_transfer_callback_t callback, void *userData) |
Initializes the SAI Tx handle. More... | |
void | SAI_TransferTxHandleIRQ (I2S_Type *base, sai_handle_t *handle) |
Tx interrupt handler. More... | |
void | SAI_TransferTxSetConfig (I2S_Type *base, sai_handle_t *handle, sai_transceiver_t *config) |
SAI transmitter transfer configurations. More... | |
status_t | SAI_TransferTxSetFormat (I2S_Type *base, sai_handle_t *handle, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Tx audio format. More... | |