Generic SPI#
Modules#
Enumerations#
Enumeration for different GSPI callback events.
Enumeration for GSPI power state.
Enumeration for GSPI clock modes.
Enumeration for GSPI master modes.
Enumeration for GSPI slave select mode.
Enumeration for GSPI Master instance, enum for one member, future provision is provided.
Enumeration for GSPI Slave numbers.
Typedefs#
Renamed signal event structure.
Renamed status structure.
Renamed GSPI driver structure.
Created GSPI handle type.
Functions#
Set the clock for the GSPI peripheral, Configures the PLL clock and SOC clock with the value set by the user in the clock configuration structure.
Initialize the GSPI.
Uninitialize the GSPI.
Control and configure the GSPI.
Receive data from the slave device.
Send data to the slave device.
Send and receive data to the slave device simultaneously.
Set the main state, i.e., activate/de-activate the main.
Register the user callback function.
Un-register the user callback function.
Get the release, sqa, and dev version of GSPI.
Get the transfer status of GSPI.
Get data receive count of GSPI.
Get the transmit data count of GSPI.
Fetch the clock division factor.
Fetch the frame length, i.e., bit width.
Set the slave number in multi-slave operation.
Enumeration Documentation#
gspi_event_typedef_t#
gspi_event_typedef_t
Enumeration for different GSPI callback events.
Enumerator | |
---|---|
SL_GSPI_TRANSFER_COMPLETE | Transfer complete event. |
SL_GSPI_DATA_LOST | Data lost event. |
SL_GSPI_MODE_FAULT | Mode fault event. |
56
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_gspi_power_state_t#
sl_gspi_power_state_t
Enumeration for GSPI power state.
Enumerator | |
---|---|
SL_GSPI_POWER_OFF | Power mode OFF. |
SL_GSPI_LOW_POWER | Low power mode. |
SL_GSPI_FULL_POWER | Full power mode. |
SL_GSPI_POWER_MODE_LAST | Last member of enum for validation. |
63
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
clock_mode_typedef_t#
clock_mode_typedef_t
Enumeration for GSPI clock modes.
Enumerator | |
---|---|
SL_GSPI_MODE_0 | Mode 0 CPOL0_CPHA0. |
SL_GSPI_MODE_3 | Mode 1 CPOL1_CPHA1. |
71
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
master_mode_typedef_t#
master_mode_typedef_t
Enumeration for GSPI master modes.
Enumerator | |
---|---|
SL_GSPI_MASTER_INACTIVE | Master mode inactive. |
SL_GSPI_MASTER_ACTIVE | Master mode active. |
SL_GSPI_MASTER_MODE_LAST | Last member of enum for validation. |
77
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
slave_select_mode_typedef_t#
slave_select_mode_typedef_t
Enumeration for GSPI slave select mode.
Enumerator | |
---|---|
SL_GSPI_MASTER_UNUSED | Master unused mode. |
SL_GSPI_MASTER_SW | Master software mode. |
SL_GSPI_MASTER_HW_OUTPUT | Master hardware output mode. |
SL_GSPI_SLAVE_SELECT_MODE_LAST | Last member of enum for validation. |
84
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_gspi_instance_t#
sl_gspi_instance_t
Enumeration for GSPI Master instance, enum for one member, future provision is provided.
Enumerator | |
---|---|
SL_GSPI_MASTER | GSPI Master Instance. |
SL_GSPI_INSTANCE_LAST_ENUM | Last member of enum for validation. |
92
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_gspi_slave_number_t#
sl_gspi_slave_number_t
Enumeration for GSPI Slave numbers.
Enumerator | |
---|---|
GSPI_SLAVE_0 | Slave No. 1. |
GSPI_SLAVE_1 | Slave No. 2. |
GSPI_SLAVE_2 | Slave No. 2. |
GSPI_SLAVE_LAST_ENUM | Last member of enum for validation. |
98
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
Typedef Documentation#
sl_gspi_signal_event_t#
typedef ARM_SPI_SignalEvent_t sl_gspi_signal_event_t
Renamed signal event structure.
50
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_gspi_status_t#
typedef ARM_SPI_STATUS sl_gspi_status_t
Renamed status structure.
51
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_gspi_driver_t#
typedef ARM_DRIVER_SPI sl_gspi_driver_t
Renamed GSPI driver structure.
52
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_gspi_handle_t#
typedef const void* sl_gspi_handle_t
Created GSPI handle type.
53
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
Function Documentation#
sl_si91x_gspi_configure_clock#
sl_status_t sl_si91x_gspi_configure_clock (sl_gspi_clock_config_t * clock_configuration)
Set the clock for the GSPI peripheral, Configures the PLL clock and SOC clock with the value set by the user in the clock configuration structure.
N/A | clock_configuration | Pointer to the clock configuration structure sl_gspi_clock_config_t |
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_FAIL (0x0001) - The function has failed
SL_STATUS_NOT_INITIALIZED (0x0011) - Clock is not initialized
148
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_init#
sl_status_t sl_si91x_gspi_init (sl_gspi_instance_t instance, sl_gspi_handle_t * gspi_handle)
Initialize the GSPI.
[in] | instance | GSPI Instance. |
[in] | gspi_handle | Double Pointer to the GSPI driver handle |
If the DMA is enabled, it also initializes the DMA. Pass the address of the pointer for storing the GSPI master handle, which can be used in the future for other function calls.
Pre-conditions:
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_BUSY (0x0004) - Driver is busy
166
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_deinit#
sl_status_t sl_si91x_gspi_deinit (sl_gspi_handle_t gspi_handle)
Uninitialize the GSPI.
[in] | gspi_handle | Pointer to the GSPI driver handle |
If the DMA is enabled, it also uninitializes the DMA.
Pre-conditions:
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
180
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_set_configuration#
sl_status_t sl_si91x_gspi_set_configuration (sl_gspi_handle_t gspi_handle, sl_gspi_control_config_t * control_configuration)
Control and configure the GSPI.
[in] | gspi_handle | Pointer to the GSPI driver handle |
[in] | control_configuration | pointer to the configuration structure sl_gspi_control_config_t |
swap_read (enable/disable)
swap_write (enable/disable)
bit_width (8_bit/16_bit)
clock_mode (mode0/mode3)
slave_select_mode (hw_output/sw)
bitrate
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_FAIL (0x0001) - The function has failed
SL_STATUS_NOT_SUPPORTED (0x000F) - Parameter is not supported
SL_STATUS_BUSY (0x0004) - Driver is busy
SL_STATUS_INVALID_MODE (0x0024) - Slave select Mode is invalid
SL_STATUS_INVALID_TYPE (0x0026) - SPI frame format is not valid
SL_STATUS_INVALID_RANGE (0x0028) - Data bits (frame length) are not in range
210
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_receive_data#
sl_status_t sl_si91x_gspi_receive_data (sl_gspi_handle_t gspi_handle, void * data, uint32_t data_length)
Receive data from the slave device.
[in] | gspi_handle | Pointer to the GSPI driver handle |
[in] | data | pointer to the variable that will store the received data |
[in] | data_length | (uint32_t) number of data items to receive |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_FAIL (0x0001) - The function has failed
SL_STATUS_BUSY (0x0004) - Driver is busy
234
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_send_data#
sl_status_t sl_si91x_gspi_send_data (sl_gspi_handle_t gspi_handle, const void * data, uint32_t data_length)
Send data to the slave device.
[in] | gspi_handle | Pointer to the GSPI driver handle |
[in] | data | const pointer to the variable that has data which needs to be sent |
[in] | data_length | (uint32_t) number of data items to send |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_FAIL (0x0001) - The function has failed
SL_STATUS_BUSY (0x0004) - Driver is busy
257
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_transfer_data#
sl_status_t sl_si91x_gspi_transfer_data (sl_gspi_handle_t gspi_handle, const void * data_out, void * data_in, uint32_t data_length)
Send and receive data to the slave device simultaneously.
[in] | gspi_handle | Pointer to the GSPI driver handle |
[in] | data_out | const pointer to the variable that has data which needs to be sent |
[in] | data_in | pointer to the variable that will store the received data |
[in] | data_length | (uint32_t) number of data items to receive |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_FAIL (0x0001) - The function has failed
SL_STATUS_BUSY (0x0004) - Driver is busy
281
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_set_master_state#
sl_status_t sl_si91x_gspi_set_master_state (sl_gspi_handle_t gspi_handle, boolean_t value)
Set the main state, i.e., activate/de-activate the main.
[in] | gspi_handle | Pointer to the GSPI driver handle |
[in] | value | (boolean_t) Enable or Disable |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_BUSY (0x0004) - Driver is busy
SL_STATUS_INVALID_MODE (0x0024) - Mode is invalid (Fails to activate master)
303
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_register_event_callback#
sl_status_t sl_si91x_gspi_register_event_callback (sl_gspi_handle_t gspi_handle, sl_gspi_signal_event_t callback_event)
Register the user callback function.
[in] | gspi_handle | Pointer to the GSPI driver handle |
[in] | callback_event | Pointer to the function that needs to be called at the time of interrupt |
Returns
status
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_BUSY (0x0004) - Driver is busy
316
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_unregister_event_callback#
void sl_si91x_gspi_unregister_event_callback (void )
Un-register the user callback function.
[in] |
Pre-conditions:
Returns
none
328
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_get_version#
sl_gspi_version_t sl_si91x_gspi_get_version (void )
Get the release, sqa, and dev version of GSPI.
[in] |
Returns
(sl_gspi_version_t) type structure
337
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_get_status#
sl_gspi_status_t sl_si91x_gspi_get_status (sl_gspi_handle_t gspi_handle)
Get the transfer status of GSPI.
[in] | gspi_handle | Pointer to the GSPI driver handle |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
sl_gspi_status_t type structure
352
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_get_rx_data_count#
uint32_t sl_si91x_gspi_get_rx_data_count (sl_gspi_handle_t gspi_handle)
Get data receive count of GSPI.
[in] | gspi_handle | Pointer to the GSPI driver handle |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
uint32_t value of the RX data count
367
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_get_tx_data_count#
uint32_t sl_si91x_gspi_get_tx_data_count (void )
Get the transmit data count of GSPI.
[in] | Pointer to the GSPI driver handle |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
uint32_t value of the tx data count
382
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_get_clock_division_factor#
int32_t sl_si91x_gspi_get_clock_division_factor (sl_gspi_handle_t gspi_handle)
Fetch the clock division factor.
[in] | gspi_handle | Pointer to the GSPI driver handle |
Returns
factor (int32_t) The value of the clock division factor
391
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_get_frame_length#
uint32_t sl_si91x_gspi_get_frame_length (void )
Fetch the frame length, i.e., bit width.
[in] |
Returns
frame_length (uint32_t) The value of the frame length
400
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h
sl_si91x_gspi_set_slave_number#
__STATIC_INLINE sl_status_t sl_si91x_gspi_set_slave_number (uint8_t number)
Set the slave number in multi-slave operation.
[in] | number | Slave number |
For a single slave also, this API needs to be called before transferring the data
Returns
none
411
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_gspi.h