35 #include "sai_hw_access.h"
46 #define SAI_CHANNEL_0 0x1
47 #define SAI_CHANNEL_1 0x2
48 #define SAI_CHANNEL_2 0x4
49 #define SAI_CHANNEL_3 0x8
109 uint8_t ChannelCount;
181 #if defined(__cplusplus)
331 const uint8_t* data[],
348 const uint8_t* data[],
362 uint32_t *countRemain);
417 uint32_t *countRemain);
437 #if defined(__cplusplus)
void(* sai_transfer_callback_t)(uint8_t channel, sai_report_type_t report, status_t status)
Sai callback function type for nonblock transfer, also called to report events (sai_report_type_t).
void SAI_DRV_AbortSending(uint32_t instNum)
Abort an ongoing transfer.
sai_transfer_type_t TransferType
void SAI_DRV_RxInit(uint32_t instNum, const sai_user_config_t *saiUserConfig, sai_state_t *StateAlloc)
Initialize the receiver of driver.
status_t SAI_DRV_GetSendingStatus(uint32_t instNum, uint32_t *countRemain)
Get status of a non-blocking transfer.
sai_master_clk_source_t
Select master clock.
sai_sync_mode_t
SAI run in sync or async mode.
uint32_t SAI_DRV_RxGetBitClockFreq(uint32_t instNum)
Return true bit clock frequency of receiver.
status_t SAI_DRV_ReceiveBlocking(uint32_t instNum, uint8_t *data[], uint32_t count, uint32_t timeout)
Receive a block of data, return when transfer complete.
void SAI_DRV_RxSetNextMaskWords(uint32_t instNum, uint16_t Words)
Set masked word index of subsequent frames for receiver.
void SAI_DRV_GetDefaultConfig(sai_user_config_t *uc)
Get default config structure for I2S standard. Init config structure for I2S interface: Interrupt mod...
sai_transfer_callback_t callback
sai_master_clk_source_t MasterClkSrc
Structure for internal use. This structure is used by the driver for its internal logic...
uint32_t SAI_DRV_RxGetBitClockDiv(uint32_t instNum)
Return true bit clock divisor of receiver.
#define SAI_MAX_CHANNEL_COUNT
void SAI_DRV_TxInit(uint32_t instNum, const sai_user_config_t *saiUserConfig, sai_state_t *StateAlloc)
Initialize the transmitter of driver.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
uint32_t SAI_DRV_TxGetBitClockDiv(uint32_t instNum)
Return true bit clock divisor of transmitter.
void SAI_DRV_AbortReceiving(uint32_t instNum)
Abort an ongoing transfer.
void SAI_DRV_RxDeinit(uint32_t instNum)
De-initialize receiver.
void SAI_DRV_Receive(uint32_t instNum, uint8_t *data[], uint32_t count)
Receive a block of data, return immidiately.
sai_mux_mode_t
Data mux line or mux memory.
void SAI_DRV_TxDeinit(uint32_t instNum)
De-initialize transmitter.
status_t SAI_DRV_SendBlocking(uint32_t instNum, const uint8_t *data[], uint32_t count, uint32_t timeout)
Send a block of data, return when transfer complete.
status_t SAI_DRV_GetReceivingStatus(uint32_t instNum, uint32_t *countRemain)
Get status of a non-blocking transfer.
sai_report_type_t
Report to enable.
uint32_t SAI_DRV_TxGetBitClockFreq(uint32_t instNum)
Return true bit clock frequency of transmitter.
sai_transfer_type_t
Transfer type.
void SAI_DRV_TxSetNextMaskWords(uint32_t instNum, uint16_t Words)
Set masked word index of subsequent frames for transmitter.
void SAI_DRV_Send(uint32_t instNum, const uint8_t *data[], uint32_t count)
Send a block of data, return immidiately.
sai_mask_mode_t
Data line state for masked word, or if data line is disabled.
Transmit or receive state.