RTEMS 6.1-rc2
Loading...
Searching...
No Matches
Data Structures
Spdif

Data Structures

struct  _spdif_config
 SPDIF user configuration structure. More...
 
struct  _spdif_transfer
 SPDIF transfer structure. More...
 
struct  _spdif_handle
 SPDIF handle structure. More...
 

Driver version

enum  {
  kStatus_SPDIF_RxDPLLLocked = MAKE_STATUS(kStatusGroup_SPDIF, 0) , kStatus_SPDIF_TxFIFOError = MAKE_STATUS(kStatusGroup_SPDIF, 1) , kStatus_SPDIF_TxFIFOResync = MAKE_STATUS(kStatusGroup_SPDIF, 2) , kStatus_SPDIF_RxCnew = MAKE_STATUS(kStatusGroup_SPDIF, 3) ,
  kStatus_SPDIF_ValidatyNoGood = MAKE_STATUS(kStatusGroup_SPDIF, 4) , kStatus_SPDIF_RxIllegalSymbol = MAKE_STATUS(kStatusGroup_SPDIF, 5) , kStatus_SPDIF_RxParityBitError = MAKE_STATUS(kStatusGroup_SPDIF, 6) , kStatus_SPDIF_UChannelOverrun = MAKE_STATUS(kStatusGroup_SPDIF, 7) ,
  kStatus_SPDIF_QChannelOverrun = MAKE_STATUS(kStatusGroup_SPDIF, 8) , kStatus_SPDIF_UQChannelSync = MAKE_STATUS(kStatusGroup_SPDIF, 9) , kStatus_SPDIF_UQChannelFrameError = MAKE_STATUS(kStatusGroup_SPDIF, 10) , kStatus_SPDIF_RxFIFOError = MAKE_STATUS(kStatusGroup_SPDIF, 11) ,
  kStatus_SPDIF_RxFIFOResync = MAKE_STATUS(kStatusGroup_SPDIF, 12) , kStatus_SPDIF_LockLoss = MAKE_STATUS(kStatusGroup_SPDIF, 13) , kStatus_SPDIF_TxIdle = MAKE_STATUS(kStatusGroup_SPDIF, 14) , kStatus_SPDIF_RxIdle = MAKE_STATUS(kStatusGroup_SPDIF, 15) ,
  kStatus_SPDIF_QueueFull = MAKE_STATUS(kStatusGroup_SPDIF, 16)
}
 SPDIF return status. More...
 
enum  _spdif_rxfull_select { kSPDIF_RxFull1Sample = 0x0u , kSPDIF_RxFull4Samples , kSPDIF_RxFull8Samples , kSPDIF_RxFull16Samples }
 SPDIF Rx FIFO full falg select, it decides when assert the rx full flag. More...
 
enum  _spdif_txempty_select { kSPDIF_TxEmpty0Sample = 0x0u , kSPDIF_TxEmpty4Samples , kSPDIF_TxEmpty8Samples , kSPDIF_TxEmpty12Samples }
 SPDIF tx FIFO EMPTY falg select, it decides when assert the tx empty flag. More...
 
enum  _spdif_uchannel_source { kSPDIF_NoUChannel = 0x0U , kSPDIF_UChannelFromRx = 0x1U , kSPDIF_UChannelFromTx = 0x3U }
 SPDIF U channel source. More...
 
enum  _spdif_gain_select {
  kSPDIF_GAIN_24 = 0x0U , kSPDIF_GAIN_16 , kSPDIF_GAIN_12 , kSPDIF_GAIN_8 ,
  kSPDIF_GAIN_6 , kSPDIF_GAIN_4 , kSPDIF_GAIN_3
}
 SPDIF clock gain. More...
 
enum  _spdif_tx_source { kSPDIF_txFromReceiver = 0x1U , kSPDIF_txNormal = 0x5U }
 SPDIF tx data source. More...
 
enum  _spdif_validity_config { kSPDIF_validityFlagAlwaysSet = 0x0U , kSPDIF_validityFlagAlwaysClear }
 SPDIF tx data source. More...
 
enum  {
  kSPDIF_RxDPLLLocked = SPDIF_SIE_LOCK_MASK , kSPDIF_TxFIFOError = SPDIF_SIE_TXUNOV_MASK , kSPDIF_TxFIFOResync = SPDIF_SIE_TXRESYN_MASK , kSPDIF_RxControlChannelChange = SPDIF_SIE_CNEW_MASK ,
  kSPDIF_ValidityFlagNoGood = SPDIF_SIE_VALNOGOOD_MASK , kSPDIF_RxIllegalSymbol = SPDIF_SIE_SYMERR_MASK , kSPDIF_RxParityBitError = SPDIF_SIE_BITERR_MASK , kSPDIF_UChannelReceiveRegisterFull = SPDIF_SIE_URXFUL_MASK ,
  kSPDIF_UChannelReceiveRegisterOverrun = SPDIF_SIE_URXOV_MASK , kSPDIF_QChannelReceiveRegisterFull = SPDIF_SIE_QRXFUL_MASK , kSPDIF_QChannelReceiveRegisterOverrun = SPDIF_SIE_QRXOV_MASK , kSPDIF_UQChannelSync = SPDIF_SIE_UQSYNC_MASK ,
  kSPDIF_UQChannelFrameError = SPDIF_SIE_UQERR_MASK , kSPDIF_RxFIFOError = SPDIF_SIE_RXFIFOUNOV_MASK , kSPDIF_RxFIFOResync = SPDIF_SIE_RXFIFORESYN_MASK , kSPDIF_LockLoss = SPDIF_SIE_LOCKLOSS_MASK ,
  kSPDIF_TxFIFOEmpty = SPDIF_SIE_TXEM_MASK , kSPDIF_RxFIFOFull = SPDIF_SIE_RXFIFOFUL_MASK , kSPDIF_AllInterrupt
}
 The SPDIF interrupt enable flag. More...
 
enum  { kSPDIF_RxDMAEnable = SPDIF_SCR_DMA_RX_EN_MASK , kSPDIF_TxDMAEnable = SPDIF_SCR_DMA_TX_EN_MASK }
 The DMA request sources. More...
 
typedef enum _spdif_rxfull_select spdif_rxfull_select_t
 SPDIF Rx FIFO full falg select, it decides when assert the rx full flag.
 
typedef enum _spdif_txempty_select spdif_txempty_select_t
 SPDIF tx FIFO EMPTY falg select, it decides when assert the tx empty flag.
 
typedef enum _spdif_uchannel_source spdif_uchannel_source_t
 SPDIF U channel source.
 
typedef enum _spdif_gain_select spdif_gain_select_t
 SPDIF clock gain.
 
typedef enum _spdif_tx_source spdif_tx_source_t
 SPDIF tx data source.
 
typedef enum _spdif_validity_config spdif_validity_config_t
 SPDIF tx data source.
 
typedef struct _spdif_config spdif_config_t
 SPDIF user configuration structure.
 
typedef struct _spdif_transfer spdif_transfer_t
 SPDIF transfer structure.
 
typedef struct _spdif_handle spdif_handle_t
 
typedef void(* spdif_transfer_callback_t) (SPDIF_Type *base, spdif_handle_t *handle, status_t status, void *userData)
 SPDIF transfer callback prototype.
 
#define FSL_SPDIF_DRIVER_VERSION   (MAKE_VERSION(2, 0, 6))
 
#define SPDIF_XFER_QUEUE_SIZE   (4U)
 SPDIF transfer queue size, user can refine it according to use case.
 

Initialization and deinitialization

void SPDIF_Init (SPDIF_Type *base, const spdif_config_t *config)
 Initializes the SPDIF peripheral.
 
void SPDIF_GetDefaultConfig (spdif_config_t *config)
 Sets the SPDIF configuration structure to default values.
 
void SPDIF_Deinit (SPDIF_Type *base)
 De-initializes the SPDIF peripheral.
 
uint32_t SPDIF_GetInstance (SPDIF_Type *base)
 Get the instance number for SPDIF.
 
void SPDIF_TxEnable (SPDIF_Type *base, bool enable)
 Enables/disables the SPDIF Tx.
 

Bus Operations

void SPDIF_TxSetSampleRate (SPDIF_Type *base, uint32_t sampleRate_Hz, uint32_t sourceClockFreq_Hz)
 Configures the SPDIF Tx sample rate.
 
uint32_t SPDIF_GetRxSampleRate (SPDIF_Type *base, uint32_t clockSourceFreq_Hz)
 Configures the SPDIF Rx audio format.
 
void SPDIF_WriteBlocking (SPDIF_Type *base, uint8_t *buffer, uint32_t size)
 Sends data using a blocking method.
 
void SPDIF_ReadBlocking (SPDIF_Type *base, uint8_t *buffer, uint32_t size)
 Receives data using a blocking method.
 

Transactional

void SPDIF_TransferTxCreateHandle (SPDIF_Type *base, spdif_handle_t *handle, spdif_transfer_callback_t callback, void *userData)
 Initializes the SPDIF Tx handle.
 
void SPDIF_TransferRxCreateHandle (SPDIF_Type *base, spdif_handle_t *handle, spdif_transfer_callback_t callback, void *userData)
 Initializes the SPDIF Rx handle.
 
status_t SPDIF_TransferSendNonBlocking (SPDIF_Type *base, spdif_handle_t *handle, spdif_transfer_t *xfer)
 Performs an interrupt non-blocking send transfer on SPDIF.
 
status_t SPDIF_TransferReceiveNonBlocking (SPDIF_Type *base, spdif_handle_t *handle, spdif_transfer_t *xfer)
 Performs an interrupt non-blocking receive transfer on SPDIF.
 
status_t SPDIF_TransferGetSendCount (SPDIF_Type *base, spdif_handle_t *handle, size_t *count)
 Gets a set byte count.
 
status_t SPDIF_TransferGetReceiveCount (SPDIF_Type *base, spdif_handle_t *handle, size_t *count)
 Gets a received byte count.
 
void SPDIF_TransferAbortSend (SPDIF_Type *base, spdif_handle_t *handle)
 Aborts the current send.
 
void SPDIF_TransferAbortReceive (SPDIF_Type *base, spdif_handle_t *handle)
 Aborts the current IRQ receive.
 
void SPDIF_TransferTxHandleIRQ (SPDIF_Type *base, spdif_handle_t *handle)
 Tx interrupt handler.
 
void SPDIF_TransferRxHandleIRQ (SPDIF_Type *base, spdif_handle_t *handle)
 Tx interrupt handler.
 

Detailed Description

Macro Definition Documentation

◆ FSL_SPDIF_DRIVER_VERSION

#define FSL_SPDIF_DRIVER_VERSION   (MAKE_VERSION(2, 0, 6))

Version 2.0.6

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

SPDIF return status.

Enumerator
kStatus_SPDIF_RxDPLLLocked 

SPDIF Rx PLL locked.

kStatus_SPDIF_TxFIFOError 

SPDIF Tx FIFO error.

kStatus_SPDIF_TxFIFOResync 

SPDIF Tx left and right FIFO resync.

kStatus_SPDIF_RxCnew 

SPDIF Rx status channel value updated.

kStatus_SPDIF_ValidatyNoGood 

SPDIF validaty flag not good.

kStatus_SPDIF_RxIllegalSymbol 

SPDIF Rx receive illegal symbol.

kStatus_SPDIF_RxParityBitError 

SPDIF Rx parity bit error.

kStatus_SPDIF_UChannelOverrun 

SPDIF receive U channel overrun.

kStatus_SPDIF_QChannelOverrun 

SPDIF receive Q channel overrun.

kStatus_SPDIF_UQChannelSync 

SPDIF U/Q channel sync found.

kStatus_SPDIF_UQChannelFrameError 

SPDIF U/Q channel frame error.

kStatus_SPDIF_RxFIFOError 

SPDIF Rx FIFO error.

kStatus_SPDIF_RxFIFOResync 

SPDIF Rx left and right FIFO resync.

kStatus_SPDIF_LockLoss 

SPDIF Rx PLL clock lock loss.

kStatus_SPDIF_TxIdle 

SPDIF Tx is idle

kStatus_SPDIF_RxIdle 

SPDIF Rx is idle

kStatus_SPDIF_QueueFull 

SPDIF queue full

◆ anonymous enum

anonymous enum

The SPDIF interrupt enable flag.

Enumerator
kSPDIF_RxDPLLLocked 

SPDIF DPLL locked

kSPDIF_TxFIFOError 

Tx FIFO underrun or overrun

kSPDIF_TxFIFOResync 

Tx FIFO left and right channel resync

kSPDIF_RxControlChannelChange 

SPDIF Rx control channel value changed

kSPDIF_ValidityFlagNoGood 

SPDIF validity flag no good

kSPDIF_RxIllegalSymbol 

SPDIF receiver found illegal symbol

kSPDIF_RxParityBitError 

SPDIF receiver found parity bit error

kSPDIF_UChannelReceiveRegisterFull 

SPDIF U channel revceive register full

kSPDIF_UChannelReceiveRegisterOverrun 

SPDIF U channel receive register overrun

kSPDIF_QChannelReceiveRegisterFull 

SPDIF Q channel receive reigster full

kSPDIF_QChannelReceiveRegisterOverrun 

SPDIF Q channel receive register overrun

kSPDIF_UQChannelSync 

SPDIF U/Q channel sync found

kSPDIF_UQChannelFrameError 

SPDIF U/Q channel frame error

kSPDIF_RxFIFOError 

SPDIF Rx FIFO underrun/overrun

kSPDIF_RxFIFOResync 

SPDIF Rx left and right FIFO resync

kSPDIF_LockLoss 

SPDIF receiver loss of lock

kSPDIF_TxFIFOEmpty 

SPDIF Tx FIFO empty

kSPDIF_RxFIFOFull 

SPDIF Rx FIFO full

kSPDIF_AllInterrupt 

all interrupt

◆ anonymous enum

anonymous enum

The DMA request sources.

Enumerator
kSPDIF_RxDMAEnable 

Rx FIFO full

kSPDIF_TxDMAEnable 

Tx FIFO empty

◆ _spdif_gain_select

SPDIF clock gain.

Enumerator
kSPDIF_GAIN_24 

Gain select is 24

kSPDIF_GAIN_16 

Gain select is 16

kSPDIF_GAIN_12 

Gain select is 12

kSPDIF_GAIN_8 

Gain select is 8

kSPDIF_GAIN_6 

Gain select is 6

kSPDIF_GAIN_4 

Gain select is 4

kSPDIF_GAIN_3 

Gain select is 3

◆ _spdif_rxfull_select

SPDIF Rx FIFO full falg select, it decides when assert the rx full flag.

Enumerator
kSPDIF_RxFull1Sample 

Rx full at least 1 sample in left and right FIFO

kSPDIF_RxFull4Samples 

Rx full at least 4 sample in left and right FIFO

kSPDIF_RxFull8Samples 

Rx full at least 8 sample in left and right FIFO

kSPDIF_RxFull16Samples 

Rx full at least 16 sample in left and right FIFO

◆ _spdif_tx_source

SPDIF tx data source.

Enumerator
kSPDIF_txFromReceiver 

Tx data directly through SPDIF receiver

kSPDIF_txNormal 

Normal operation, data from processor

◆ _spdif_txempty_select

SPDIF tx FIFO EMPTY falg select, it decides when assert the tx empty flag.

Enumerator
kSPDIF_TxEmpty0Sample 

Tx empty at most 0 sample in left and right FIFO

kSPDIF_TxEmpty4Samples 

Tx empty at most 4 sample in left and right FIFO

kSPDIF_TxEmpty8Samples 

Tx empty at most 8 sample in left and right FIFO

kSPDIF_TxEmpty12Samples 

Tx empty at most 12 sample in left and right FIFO

◆ _spdif_uchannel_source

SPDIF U channel source.

Enumerator
kSPDIF_NoUChannel 

No embedded U channel

kSPDIF_UChannelFromRx 

U channel from receiver, it is CD mode

kSPDIF_UChannelFromTx 

U channel from on chip tx

◆ _spdif_validity_config

SPDIF tx data source.

Enumerator
kSPDIF_validityFlagAlwaysSet 

Outgoing validity flags always set

kSPDIF_validityFlagAlwaysClear 

Outgoing validity flags always clear

Function Documentation

◆ SPDIF_Deinit()

void SPDIF_Deinit ( SPDIF_Type base)

De-initializes the SPDIF peripheral.

This API gates the SPDIF clock. The SPDIF module can't operate unless SPDIF_Init is called to enable the clock.

Parameters
baseSPDIF base pointer

brief De-initializes the SPDIF peripheral.

This API gates the SPDIF clock. The SPDIF module can't operate unless SPDIF_Init is called to enable the clock.

param base SPDIF base pointer

◆ SPDIF_GetDefaultConfig()

void SPDIF_GetDefaultConfig ( spdif_config_t config)

Sets the SPDIF configuration structure to default values.

This API initializes the configuration structure for use in SPDIF_Init. The initialized structure can remain unchanged in SPDIF_Init, or it can be modified before calling SPDIF_Init. This is an example.

void SPDIF_GetDefaultConfig(spdif_config_t *config)
Sets the SPDIF configuration structure to default values.
Definition: fsl_spdif.c:156
SPDIF user configuration structure.
Definition: fsl_spdif.h:142
Definition: deflate.c:114
Parameters
configpointer to master configuration structure

brief Sets the SPDIF configuration structure to default values.

This API initializes the configuration structure for use in SPDIF_Init. The initialized structure can remain unchanged in SPDIF_Init, or it can be modified before calling SPDIF_Init. This is an example. code spdif_config_t config; SPDIF_GetDefaultConfig(&config); endcode

param config pointer to master configuration structure

◆ SPDIF_GetInstance()

uint32_t SPDIF_GetInstance ( SPDIF_Type base)

Get the instance number for SPDIF.

Parameters
baseSPDIF base pointer.

◆ SPDIF_GetRxSampleRate()

uint32_t SPDIF_GetRxSampleRate ( SPDIF_Type base,
uint32_t  clockSourceFreq_Hz 
)

Configures the SPDIF Rx audio format.

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

Parameters
baseSPDIF base pointer.
clockSourceFreq_HzSPDIF system clock frequency in hz.

brief Configures the SPDIF Rx audio format.

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

param base SPDIF base pointer. param clockSourceFreq_Hz SPDIF system clock frequency in hz.

◆ SPDIF_Init()

void SPDIF_Init ( SPDIF_Type base,
const spdif_config_t config 
)

Initializes the SPDIF peripheral.

Ungates the SPDIF clock, resets the module, and configures SPDIF with a configuration structure. The configuration structure can be custom filled or set with default values by SPDIF_GetDefaultConfig().

Note
This API should be called at the beginning of the application to use the SPDIF driver. Otherwise, accessing the SPDIF module can cause a hard fault because the clock is not enabled.
Parameters
baseSPDIF base pointer
configSPDIF configuration structure.

brief Initializes the SPDIF peripheral.

Ungates the SPDIF clock, resets the module, and configures SPDIF with a configuration structure. The configuration structure can be custom filled or set with default values by SPDIF_GetDefaultConfig().

note This API should be called at the beginning of the application to use the SPDIF driver. Otherwise, accessing the SPDIF module can cause a hard fault because the clock is not enabled.

param base SPDIF base pointer param config SPDIF configuration structure.

◆ SPDIF_ReadBlocking()

void SPDIF_ReadBlocking ( SPDIF_Type base,
uint8_t *  buffer,
uint32_t  size 
)

Receives data using a blocking method.

Note
This function blocks by polling until data is ready to be sent.
Parameters
baseSPDIF base pointer.
bufferPointer to the data to be read.
sizeBytes to be read.

brief Receives data using a blocking method.

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

param base SPDIF base pointer. param buffer Pointer to the data to be read. param size Bytes to be read.

◆ SPDIF_TransferAbortReceive()

void SPDIF_TransferAbortReceive ( SPDIF_Type base,
spdif_handle_t handle 
)

Aborts the current IRQ receive.

Note
This API can be called when an interrupt non-blocking transfer initiates to abort the transfer early.
Parameters
baseSPDIF base pointer
handlePointer to the spdif_handle_t structure which stores the transfer state.

brief Aborts the current IRQ receive.

note This API can be called when an interrupt non-blocking transfer initiates to abort the transfer early.

param base SPDIF base pointer param handle Pointer to the spdif_handle_t structure which stores the transfer state.

◆ SPDIF_TransferAbortSend()

void SPDIF_TransferAbortSend ( SPDIF_Type base,
spdif_handle_t handle 
)

Aborts the current send.

Note
This API can be called any time when an interrupt non-blocking transfer initiates to abort the transfer early.
Parameters
baseSPDIF base pointer.
handlePointer to the spdif_handle_t structure which stores the transfer state.

brief Aborts the current send.

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

param base SPDIF base pointer. param handle Pointer to the spdif_handle_t structure which stores the transfer state.

◆ SPDIF_TransferGetReceiveCount()

status_t SPDIF_TransferGetReceiveCount ( SPDIF_Type base,
spdif_handle_t handle,
size_t *  count 
)

Gets a received byte count.

Parameters
baseSPDIF base pointer.
handlePointer to the spdif_handle_t structure which stores the transfer state.
countBytes count received.
Return values
kStatus_SuccessSucceed get the transfer count.
kStatus_NoTransferInProgressThere is not a non-blocking transaction currently in progress.

brief Gets a received byte count.

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

◆ SPDIF_TransferGetSendCount()

status_t SPDIF_TransferGetSendCount ( SPDIF_Type base,
spdif_handle_t handle,
size_t *  count 
)

Gets a set byte count.

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

brief Gets a set byte count.

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

◆ SPDIF_TransferReceiveNonBlocking()

status_t SPDIF_TransferReceiveNonBlocking ( SPDIF_Type base,
spdif_handle_t handle,
spdif_transfer_t xfer 
)

Performs an interrupt non-blocking receive transfer on SPDIF.

Note
This API returns immediately after the transfer initiates. Call the SPDIF_RxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SPDIF_Busy, the transfer is finished.
Parameters
baseSPDIF base pointer
handlePointer to the spdif_handle_t structure which stores the transfer state.
xferPointer to the spdif_transfer_t structure.
Return values
kStatus_SuccessSuccessfully started the data receive.
kStatus_SPDIF_RxBusyPrevious receive still not finished.
kStatus_InvalidArgumentThe input parameter is invalid.

brief Performs an interrupt non-blocking receive transfer on SPDIF.

note This API returns immediately after the transfer initiates. Call the SPDIF_RxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SPDIF_Busy, the transfer is finished.

param base SPDIF base pointer param handle Pointer to the spdif_handle_t structure which stores the transfer state. param xfer Pointer to the spdif_transfer_t structure. retval kStatus_Success Successfully started the data receive. retval kStatus_SPDIF_RxBusy Previous receive still not finished. retval kStatus_InvalidArgument The input parameter is invalid.

◆ SPDIF_TransferRxCreateHandle()

void SPDIF_TransferRxCreateHandle ( SPDIF_Type base,
spdif_handle_t handle,
spdif_transfer_callback_t  callback,
void *  userData 
)

Initializes the SPDIF Rx handle.

This function initializes the Rx handle for the SPDIF Rx transactional APIs. Call this function once to get the handle initialized.

Parameters
baseSPDIF base pointer.
handleSPDIF handle pointer.
callbackPointer to the user callback function.
userDataUser parameter passed to the callback function.

brief Initializes the SPDIF Rx handle.

This function initializes the Rx handle for the SPDIF Rx transactional APIs. Call this function once to get the handle initialized.

param base SPDIF base pointer. param handle SPDIF handle pointer. param callback Pointer to the user callback function. param userData User parameter passed to the callback function.

◆ SPDIF_TransferRxHandleIRQ()

void SPDIF_TransferRxHandleIRQ ( SPDIF_Type base,
spdif_handle_t handle 
)

Tx interrupt handler.

Parameters
baseSPDIF base pointer.
handlePointer to the spdif_handle_t structure.

brief Tx interrupt handler.

param base SPDIF base pointer. param handle Pointer to the spdif_handle_t structure.

◆ SPDIF_TransferSendNonBlocking()

status_t SPDIF_TransferSendNonBlocking ( SPDIF_Type base,
spdif_handle_t handle,
spdif_transfer_t xfer 
)

Performs an interrupt non-blocking send transfer on SPDIF.

Note
This API returns immediately after the transfer initiates. Call the SPDIF_TxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SPDIF_Busy, the transfer is finished.
Parameters
baseSPDIF base pointer.
handlePointer to the spdif_handle_t structure which stores the transfer state.
xferPointer to the spdif_transfer_t structure.
Return values
kStatus_SuccessSuccessfully started the data receive.
kStatus_SPDIF_TxBusyPrevious receive still not finished.
kStatus_InvalidArgumentThe input parameter is invalid.

brief Performs an interrupt non-blocking send transfer on SPDIF.

note This API returns immediately after the transfer initiates. Call the SPDIF_TxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SPDIF_Busy, the transfer is finished.

param base SPDIF base pointer. param handle Pointer to the spdif_handle_t structure which stores the transfer state. param xfer Pointer to the spdif_transfer_t structure. retval kStatus_Success Successfully started the data receive. retval kStatus_SPDIF_TxBusy Previous receive still not finished. retval kStatus_InvalidArgument The input parameter is invalid.

◆ SPDIF_TransferTxCreateHandle()

void SPDIF_TransferTxCreateHandle ( SPDIF_Type base,
spdif_handle_t handle,
spdif_transfer_callback_t  callback,
void *  userData 
)

Initializes the SPDIF Tx handle.

This function initializes the Tx handle for the SPDIF Tx transactional APIs. Call this function once to get the handle initialized.

Parameters
baseSPDIF base pointer
handleSPDIF handle pointer.
callbackPointer to the user callback function.
userDataUser parameter passed to the callback function

brief Initializes the SPDIF Tx handle.

This function initializes the Tx handle for the SPDIF Tx transactional APIs. Call this function once to get the handle initialized.

param base SPDIF base pointer param handle SPDIF handle pointer. param callback Pointer to the user callback function. param userData User parameter passed to the callback function

◆ SPDIF_TransferTxHandleIRQ()

void SPDIF_TransferTxHandleIRQ ( SPDIF_Type base,
spdif_handle_t handle 
)

Tx interrupt handler.

Parameters
baseSPDIF base pointer.
handlePointer to the spdif_handle_t structure.

brief Tx interrupt handler.

param base SPDIF base pointer. param handle Pointer to the spdif_handle_t structure.

◆ SPDIF_TxEnable()

void SPDIF_TxEnable ( SPDIF_Type base,
bool  enable 
)

Enables/disables the SPDIF Tx.

Parameters
baseSPDIF base pointer
enableTrue means enable SPDIF Tx, false means disable.

brief Enables/disables the SPDIF Tx.

param base SPDIF base pointer param enable True means enable SPDIF Tx, false means disable.

◆ SPDIF_TxSetSampleRate()

void SPDIF_TxSetSampleRate ( SPDIF_Type base,
uint32_t  sampleRate_Hz,
uint32_t  sourceClockFreq_Hz 
)

Configures the SPDIF Tx sample rate.

The audio format can be changed at run-time. This function configures the sample rate.

Parameters
baseSPDIF base pointer.
sampleRate_HzSPDIF sample rate frequency in Hz.
sourceClockFreq_HzSPDIF tx clock source frequency in Hz.

brief Configures the SPDIF Tx sample rate.

The audio format can be changed at run-time. This function configures the sample rate.

param base SPDIF base pointer. param sampleRate_Hz SPDIF sample rate frequency in Hz. param sourceClockFreq_Hz SPDIF tx clock source frequency in Hz.

◆ SPDIF_WriteBlocking()

void SPDIF_WriteBlocking ( SPDIF_Type base,
uint8_t *  buffer,
uint32_t  size 
)

Sends data using a blocking method.

Note
This function blocks by polling until data is ready to be sent.
Parameters
baseSPDIF base pointer.
bufferPointer to the data to be written.
sizeBytes to be written.

brief Sends data using a blocking method.

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

param base SPDIF base pointer. param buffer Pointer to the data to be written. param size Bytes to be written.