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. |
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. |
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. |
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. |
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. |
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. |
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. |
Typedef Documentation#
sl_gspi_signal_event_t#
typedef ARM_SPI_SignalEvent_t sl_gspi_signal_event_t
Renamed signal event structure.
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_clock_config_t * | 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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_instance_t | [in] | instance | GSPI Instance. |
sl_gspi_handle_t * | [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
sl_si91x_gspi_deinit#
sl_status_t sl_si91x_gspi_deinit (sl_gspi_handle_t gspi_handle)
Uninitialize the GSPI.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
sl_gspi_control_config_t * | [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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
void * | [in] | data | pointer to the variable that will store the received data |
uint32_t | [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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
const void * | [in] | data | const pointer to the variable that has data which needs to be sent |
uint32_t | [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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
const void * | [in] | data_out | const pointer to the variable that has data which needs to be sent |
void * | [in] | data_in | pointer to the variable that will store the received data |
uint32_t | [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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
boolean_t | [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)
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
sl_gspi_signal_event_t | [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
sl_si91x_gspi_unregister_event_callback#
void sl_si91x_gspi_unregister_event_callback (void )
Un-register the user callback function.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Pre-conditions:
Returns
none
sl_si91x_gspi_get_version#
sl_gspi_version_t sl_si91x_gspi_get_version (void )
Get the release, sqa, and dev version of GSPI.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
(sl_gspi_version_t) type structure
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
sl_gspi_status_t type structure
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [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
sl_si91x_gspi_get_tx_data_count#
uint32_t sl_si91x_gspi_get_tx_data_count (void )
Get the transmit data count of GSPI.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] | Pointer to the GSPI driver handle |
Pre-conditions:
sl_si91x_gspi_configure_power_mode
Returns
uint32_t value of the tx data count
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gspi_handle_t | [in] | gspi_handle | Pointer to the GSPI driver handle |
Returns
factor (int32_t) The value of the clock division factor
sl_si91x_gspi_get_frame_length#
uint32_t sl_si91x_gspi_get_frame_length (void )
Fetch the frame length, i.e., bit width.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
frame_length (uint32_t) The value of the frame length
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | number | Slave number |
For a single slave also, this API needs to be called before transferring the data
Returns
none