SDIO Secondary#
Modules#
Enumerations#
Typedefs#
Functions#
Initializes the SDIO secondary.
Trigger sequence to send data from the SDIO secondary in non-blocking mode to the host/primary device.
Receive data on the SDIO secondary in non-blocking mode from the host/primary device using DMA.
Register the SDIO secondary user callback function.
Unregister the SDIO secondary user callback function.
Register the SDIO secondary DMA user callback function.
Unregister the SDIO secondary DMA user callback function.
Get the SDIO Secondary Driver version.
Initializes the SDIO Secondary at peripheral layer.
Enable the SDIO interrupts.
Disable the SDIO interrupts.
Set the interrupts i.e., unmask according to the flags passed in the parameter.
Clear the interrupts i.e., mask according to the flags passed in the parameter.
Get the pending function interrupt.
Get all the enabled interrupts in function1.
Get all the enabled interrupts in function1 and pending interrupts.
To get block count for the last received CMD53.
To get the length of each for the last received CMD53.
To set no of blocks to be transferred This API is used when transferring the data from secondary to primary in block mode.
Macros#
Events for HIF irq handler.
SDIO Write FIFO Data Register.
SDIO Read FIFO Data Register.
Enumeration Documentation#
sl_sdio_slave_rx_intr_status_t#
sl_sdio_slave_rx_intr_status_t
Enumerator | |
---|---|
HOST_INTR_NOT_RECEIVED | |
HOST_INTR_RECEIVED | |
HOST_INTR_NOT_RECEIVED | |
HOST_INTR_RECEIVED |
Typedef Documentation#
sl_sdio_secondary_callback_t#
typedef void(* sl_sdio_secondary_callback_t) (uint8_t events) )(uint8_t events)
sl_sdio_secondary_gpdma_callback_t#
typedef void(* sl_sdio_secondary_gpdma_callback_t) (uint8_t dma_ch) )(uint8_t dma_ch)
Function Documentation#
sl_si91x_sdio_secondary_init#
sl_status_t sl_si91x_sdio_secondary_init (void )
Initializes the SDIO secondary.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
By default, the SDIO pin access with TA, this API gives the pin access to M4, selects the SDIO mode and enable the SDIO primary interrupts.
Returns
none
sl_si91x_sdio_secondary_send#
void sl_si91x_sdio_secondary_send (uint8_t num_of_blocks, uint8_t * data_buf)
Trigger sequence to send data from the SDIO secondary in non-blocking mode to the host/primary device.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | num_of_blocks | Number of blocks to be sent |
uint8_t * | [in] | data_buf | Reference of the Source buffer |
This API accepts the num of blocks i.e., one block will have block length (1 to 1024) bytes and a pointer to the data buffer to be transffered.
Returns
none
sl_si91x_sdio_secondary_receive#
void sl_si91x_sdio_secondary_receive (uint8_t * data_buf)
Receive data on the SDIO secondary in non-blocking mode from the host/primary device using DMA.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t * | [in] | data_buf | Reference of the Destination buffer in which data will receive |
Returns
none
sl_si91x_sdio_secondary_register_event_callback#
sl_status_t sl_si91x_sdio_secondary_register_event_callback (sl_sdio_secondary_callback_t callback_event, uint32_t flag)
Register the SDIO secondary user callback function.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_sdio_secondary_callback_t | [in] | callback_event | Pointer to the function which needs to be called at the time of interrupt |
uint32_t | [in] | flag | Interrupt flag to be registered |
Pre-conditions:
Returns
status 0 if successful, else error code as follow SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_BUSY (0x0004) - Driver is busy
sl_si91x_sdio_secondary_unregister_event_callback#
void sl_si91x_sdio_secondary_unregister_event_callback (uint32_t flag)
Unregister the SDIO secondary user callback function.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flag | Interrupt flag to be unregistered |
Returns
none
sl_si91x_sdio_secondary_gpdma_register_event_callback#
sl_status_t sl_si91x_sdio_secondary_gpdma_register_event_callback (sl_sdio_secondary_gpdma_callback_t callback_event)
Register the SDIO secondary DMA user callback function.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_sdio_secondary_gpdma_callback_t | [in] | callback_event | Pointer to the function which needs to be called at the time of interrupt |
Pre-conditions:
Returns
status 0 if successful, else error code as follow SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_BUSY (0x0004) - Driver is busy
sl_si91x_sdio_secondary_gpdma_unregister_event_callback#
void sl_si91x_sdio_secondary_gpdma_unregister_event_callback (void )
Unregister the SDIO secondary DMA user callback function.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
none
sl_si91x_sdio_secondary_get_version#
sl_sdio_secondary_version_t sl_si91x_sdio_secondary_get_version (void )
Get the SDIO Secondary Driver version.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
This function is used to know the SDIO Secondary Driver version.
Returns
sl_sdio_secondary_version_t type version
sl_si91x_sdio_secondary_peripheral_init#
void sl_si91x_sdio_secondary_peripheral_init (void )
Initializes the SDIO Secondary at peripheral layer.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
This API initializes the SDIO secondary, by default SDIO pin access with TA this API gives the pin access to M4, selects the SDIO mode and enable the sdio primary interrupts
Returns
none
sl_si91x_sdio_secondary_enable_interrupts#
__STATIC_INLINE void sl_si91x_sdio_secondary_enable_interrupts (uint32_t flags)
Enable the SDIO interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | Interrupt Flag which need to be enabled Different interrupts flag which can be enabled are, SL_SDIO_WR_INT_EN SL_SDIO_RD_INT_EN SL_SDIO_CSA_INT_EN SL_SDIO_CMD52_INT_EN SL_SDIO_PWR_LEV_INT_EN SL_SDIO_CRC_ERR_INT_EN SL_SDIO_ABORT_INT_EN SL_SDIO_TOUT_INT_EN |
Returns
none
sl_si91x_sdio_secondary_disable_interrupts#
__STATIC_INLINE void sl_si91x_sdio_secondary_disable_interrupts (uint32_t flags)
Disable the SDIO interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | Interrupt Flag which need to be disabled Different interrupts flags which can be disabled are, SL_SDIO_WR_INT_EN SL_SDIO_RD_INT_EN SL_SDIO_CSA_INT_EN SL_SDIO_CMD52_INT_EN SL_SDIO_PWR_LEV_INT_EN SL_SDIO_CRC_ERR_INT_EN SL_SDIO_ABORT_INT_EN SL_SDIO_TOUT_INT_EN |
Returns
none
sl_si91x_sdio_secondary_set_interrupts#
__INLINE void sl_si91x_sdio_secondary_set_interrupts (uint32_t flags)
Set the interrupts i.e., unmask according to the flags passed in the parameter.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | Interrupt flags which needs to be set. Different interrupts flags which need to be set, SL_SDIO_WR_INT_UNMSK SL_SDIO_RD_INT_UNMSK SL_SDIO_CSA_INT_UNMSK SL_SDIO_CMD52_INT_UNMSK SL_SDIO_PWR_LEV_INT_UNMSK SL_SDIO_CRC_ERR_INT_UNMSK SL_SDIO_ABORT_INT_UNMSK SL_SDIO_TOUT_INT_UNMSK |
Returns
none
sl_si91x_sdio_secondary_clear_interrupts#
__INLINE void sl_si91x_sdio_secondary_clear_interrupts (uint32_t flags)
Clear the interrupts i.e., mask according to the flags passed in the parameter.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | Interrupt flags which needs to be masked. SL_SDIO_WR_INT_MSK SL_SDIO_RD_INT_MSK SL_SDIO_CSA_INT_MSK SL_SDIO_CMD52_INT_MSK SL_SDIO_PWR_LEV_INT_MSK SL_SDIO_CRC_ERR_INT_MSK SL_SDIO_ABORT_INT_MSK SL_SDIO_TOUT_INT_MSK |
Returns
none
sl_si91x_sdio_secondary_get_pending_interrupts#
__INLINE uint32_t sl_si91x_sdio_secondary_get_pending_interrupts (void )
Get the pending function interrupt.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
Return the pending interrupt status
sl_si91x_sdio_secondary_get_enabled_interrupts#
__INLINE uint32_t sl_si91x_sdio_secondary_get_enabled_interrupts (void )
Get all the enabled interrupts in function1.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
No of interrupts enabled
sl_si91x_sdio_secondary_get_enabled_pending_interrupts#
__INLINE uint32_t sl_si91x_sdio_secondary_get_enabled_pending_interrupts (void )
Get all the enabled interrupts in function1 and pending interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
No of interrupts enabled
sl_si91x_sdio_secondary_get_block_cnt#
__INLINE uint32_t sl_si91x_sdio_secondary_get_block_cnt (void )
To get block count for the last received CMD53.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
No of block counts
sl_si91x_sdio_secondary_get_block_len#
__INLINE uint32_t sl_si91x_sdio_secondary_get_block_len (void )
To get the length of each for the last received CMD53.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
Length of each block
sl_si91x_sdio_secondary_set_tx_blocks#
__INLINE void sl_si91x_sdio_secondary_set_tx_blocks (uint8_t no_of_blocks)
To set no of blocks to be transferred This API is used when transferring the data from secondary to primary in block mode.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | no_of_blocks | no of blocks to be transfered |
Returns
none