General-Purpose Input-Output#
Introduction#
The GPIO (General Purpose Input/Output) driver provides a comprehensive set of functions to configure and control the GPIO pins. The GPIO pins can be used for various purposes such as reading digital signals, controlling external devices, generating interrupts, etc. The GPIO driver simplifies the process of interacting with GPIO pins, making it easier to integrate GPIO functionality into the application.
Configuration#
To configure the GPIO driver, identify the GPIO instance and pins you want to configure. Set the direction of each pin as either input or output. Then, if needed, set the drive strength for the pins to ensure they can handle the required current. Set the GPIO mux/mode and pad selection, if needed. Configure any interrupt settings, such as trigger type (level or edge) and interrupt polarity (high or low). If interrupts are used, register the appropriate callback functions to handle them.
Additionally, make sure to enable the GPIO clock for the selected instance to ensure the GPIO peripheral operates correctly.
These steps are necessary for the GPIO pins to function correctly and trigger interrupts as required by the application. The respective APIs for the same functionality will change depending on the GPIO in use (i.e., Ultra Ultra Low Power (UULP), Ultra Low Power (ULP), or High Power (HP)).
Usage#
For UULP GPIOs, common functions include:
To set the pin MUX mode, sl_si91x_gpio_driver_set_uulp_npss_pin_mux can be used. For enabling or disabling the input buffer, use sl_si91x_gpio_driver_select_uulp_npss_receiver. Additionally, set pin direction with sl_si91x_gpio_driver_set_uulp_npss_direction. Also, use sl_gpio_set_pin to set the pin value. For configuring UULP pin interrupts, use sl_gpio_configure_pin_interrupt.
For ULP GPIOs, some of the common functions include:
With sl_si91x_gpio_driver_select_ulp_pad_slew_rate, set the slew rate for ULP GPIO pins. With sl_si91x_gpio_driver_select_ulp_pad_driver_strength choose the drive strength. To manage the receiver, sl_si91x_gpio_driver_enable_ulp_pad_receiver and for disabling and enabling the receiver sl_si91x_gpio_driver_enable_ulp_pad_receiver can be used, respectively. For configuring ULP pin interrupts, sl_gpio_configure_pin_interrupt can be used to set up pin interrupts with defined trigger types (level/edge). For configuring ULP group interrupts, sl_si91x_gpio_driver_configure_ulp_group_interrupt, more than '1' gpio pin can be considered for group interrupts.
For HP GPIOs, some of the common functions include:
To configure a GPIO pin, first, use sl_si91x_gpio_driver_set_pin_direction to set its direction. To enable the receiver for reading the pin status, use sl_si91x_gpio_driver_enable_pad_receiver. For selecting the pad, use sl_si91x_gpio_driver_enable_pad_selection. To configure group interrupts for the MCU HP instance, use sl_si91x_gpio_driver_configure_group_interrupt. Make sure to enable the clock for HP or ULP instances, using sl_si91x_gpio_driver_enable_clock. To configure HP pin, use interrupts sl_gpio_configure_pin_interrupt.
There is also an alternate API for configuring GPIO pin straight forward (without configuring mode, direction, pad, clock, and so on, using separate APIs), by providing information to structure members. See sl_gpio_set_configuration.
Other APIs can be referred to in the API Documentation.
Modules#
Typedefs#
GPIO interrupt callback function pointer.
Functions#
Clears one or more pending GPIO interrupts.
Configures the GPIO pin interrupt.
Configures the GPIO group interrupts for HP and ULP instances.
Sets the pin mode for a GPIO pin in HP (or) ULP instance.
Gets the pin mode (alternate function) of a GPIO for either HP instance (or) ULP instance as per the port number.
Initializes the GPIO driver.
De-Initializes the GPIO driver.
Unregisters GPIO driver.
Validates the port and pin of a GPIO.
Sets a single pin in the GPIO configuration register to 1.
Clears a single pin in the GPIO configuration register.
Toggles a single pin in the GPIO port register.
Reads the pin value for a single pin in a GPIO port.
Sets the bits of the GPIO data out register.
Sets the bits in the configuration register for a port to 0.
Gets the current setting for a GPIO configuration register.
Gets the current setting for a pin in a GPIO configuration register.
Sets the GPIO port configuration register.
Sets the slewrate for pins on an HP instance GPIO port.
Reads the port value for GPIO.
Toggles the selected pin values in the GPIO port register.
Enables the selected GPIO pin interrupt with the configured interrupt type (Level or Edge).
Disables the selected GPIO pin interrupt with the configured interrupt type (Level or Edge).
Sets the selected GPIO pin interrupt with the configured interrupt type (Level or Edge).
Gets the pending GPIO interrupts.
Gets the enabled GPIO interrupts.
Gets the enabled and pending GPIO interrupt flags.
Configuration of the GPIO based on port and pin.
Set the direction for a GPIO pin.
Get the direction of a selected GPIO pin.
Enable the receiver enable bit in the PAD configuration register for reading the GPIO pin status.
Disable the receiver enable bit in the PAD configuration register.
Enable the pad selection bit in the PAD selection register.
Enable the host pad selection bit in the PAD selection register.
Select the drive strength for an HP instance GPIO pin.
Select the driver disabled state control for an HP instance GPIO pin.
Select AND/OR type of the group interrupt.
Clear the selected group interrupt status value.
Get the current status of the selected group interrupt.
Configure the group interrupt as a wake-up source across sleep wakeups.
Configure the MCU HP instance group interrupts with trigger type (level/edge), polarity (high/low), interrupt type (and/or) and register the callback function for interrupts.
Get the configured polarity of group interrupt.
Configure the polarity to a selected group interrupt which decides the active value of the pin to be considered for group interrupt generation.
Get the configured level/edge event for the selected group interrupt.
Set the level/edge event for the selected group interrupt.
Unmask the selected group interrupt to enable interrupt clearing upon generation.
Mask the selected group interrupt.
Disable the clock for either the HP or ULP instance of the GPIO Peripheral.
Enable the clock for either the HP or ULP instance of the GPIO peripheral.
Enable the selected group interrupts for either the HP or ULP instance of the GPIO peripheral.
Disable the selected group interrupts for either the HP or ULP instance of the GPIO peripheral.
Select the slew rate for the ULP instance of the GPIO peripheral.
Select the drive strength for the ULP instance of the GPIO peripheral.
Select the driver-disabled state control for the ULP instance of the GPIO peripheral.
Disable the receiver enable bit for the ULP instance of the GPIO peripheral.
Enable the receiver enable bit for the ULP instance of the GPIO peripheral.
Configure the MCU ULP instance pin interrupts with the trigger type (level/edge) and register the callback function for interrupts.
Set the NPSS GPIO pin MUX (mode) to the selected mode.
Enable/disable the NPSS GPIO Input Buffer.
Set the direction for the selected NPSS GPIO.
Get the direction of the selected NPSS GPIO.
Control(set or clear) the NPSS GPIO pin value.
Read the status of the selected NPSS GPIO pin value.
Select the NPSS GPIO polarity for generating the interrupt.
Set the NPSS GPIO interrupt as a wake-up source across sleep wakeups.
Clear the UULP NPSS GPIO Interrupt as a wake up source.
Mask the selected NPSS GPIO interrupt.
Unmask the selected NPSS GPIO interrupt.
Clear the selected NPSS GPIO interrupt.
Get the current status of all the NPSS GPIO interrupt status.
Get the selected ULP instance GPIO pin interrupt status.
Clear the selected ULP instance GPIO pin interrupts.
Clear the selected ULP instance group interrupt.
Configure the UULP GPIO pin interrupt with interrupt type level or edge and registers callback function for interrupts.
Configure the MCU ULP instance group interrupts with trigger type (level/edge), polarity (high/low), interrupt type (and/or) and register the callback function for interrupts.
Toggle the selected UULP pin status.
Configure the UULP GPIO pin mode, receiver enable, direction and polarity settings.
Get the release, SQA, and development version numbers of the GPIO peripheral.
Macros#
GPIO output maximum value.
Maximum number of group interrupts.
Maximum number of GPIO ports.
Maximum number of UULP interrupts.
Maximum ULP mode.
Maximum number of M4 GPIO pin interrupts.
Port D maximum(0-9) number of GPIO pins.
Port E maximum(0-11) number of GPIO pins.
Port F maximum(0-4) number of GPIO pins.
Maximum number of ULP interrupts.
Maximum M4 GPIO mode.
GPIO pin maximum(0-63) value for SL_GPIO_PORT_A of HP instance.
GPIO pin maximum(0-15) value for SL_GPIO_PORT_B, SL_GPIO_PORT_C of HP instance.
GPIO flags maximum value.
GPIO PAD selection number.
Refers to port for UULP instance.
Refers to maximum no. of pins port can support.
Typedef Documentation#
sl_gpio_irq_callback_t#
typedef void(* sl_gpio_irq_callback_t) (uint32_t flag) )(uint32_t flag)
GPIO interrupt callback function pointer.
84
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
Function Documentation#
sl_gpio_driver_clear_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_clear_interrupts (uint32_t flags)
Clears one or more pending GPIO interrupts.
[in] | flags | Bitwise logic OR of GPIO interrupt sources to clear. |
This function clears the specified GPIO interrupt sources. The flags
parameter is a bitwise OR of the interrupt sources to be cleared.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance to enable pad selection.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance to enable pad receiver.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
109
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_configure_interrupt#
sl_status_t sl_gpio_driver_configure_interrupt (sl_gpio_t * gpio, uint32_t int_no, sl_gpio_interrupt_flag_t flags, sl_gpio_irq_callback_t gpio_callback, uint32_t * avl_intr_no)
Configures the GPIO pin interrupt.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
[in] | int_no | Specifies the interrupt number to trigger (0 to 7). |
[in] | flags | Interrupt configuration flags of type sl_gpio_interrupt_flag_t. |
[in] | gpio_callback | IRQ callback function pointer of type sl_gpio_irq_callback_t. |
[out] | avl_intr_no | Pointer to the available interrupt number. If no interrupt is available, it returns SL_GPIO_INTERRUPT_UNAVAILABLE (0xFF). |
This function sets up a GPIO pin to trigger an interrupt. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration. The int_no
parameter specifies the interrupt number to trigger (ranging from 0 to 7). The flags
parameter contains the interrupt configuration flags of type sl_gpio_interrupt_flag_t. The gpio_callback
parameter is a pointer to the IRQ callback function of type sl_gpio_irq_callback_t. The avl_intr_no
parameter is an output pointer to the available interrupt number.
Pre-conditions:
sl_gpio_set_configuration() must be called to configure the GPIO.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_BUSY (0x00004) - Interrupt is busy and cannot carry out the requested operation.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
148
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_configure_group_interrupt#
sl_status_t sl_gpio_configure_group_interrupt (sl_si91x_gpio_group_interrupt_config_t * configuration, sl_gpio_irq_callback_t gpio_callback)
Configures the GPIO group interrupts for HP and ULP instances.
[in] | configuration | Pointer to the structure of type sl_si91x_gpio_group_interrupt_config_t |
[in] | gpio_callback | IRQ callback function pointer of type sl_gpio_irq_callback_t. |
This function sets up group interrupts for GPIO pins in both High Performance (HP) and Ultra Low Power (ULP) instances. The configuration
parameter is a pointer to a structure of type sl_si91x_gpio_group_interrupt_config_t, which contains the GPIO group interrupt configuration. The gpio_callback
parameter is a pointer to the IRQ callback function of type sl_gpio_irq_callback_t.
Pre-conditions:
sl_gpio_set_configuration() must be called to configure the GPIO.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_BUSY (0x00004) - Interrupt is busy and cannot carry out the requested operation.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pins are properly configured before calling this function.
181
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_set_pin_mode#
sl_status_t sl_gpio_driver_set_pin_mode (sl_gpio_t * gpio, sl_gpio_mode_t mode, uint32_t output_value)
Sets the pin mode for a GPIO pin in HP (or) ULP instance.
[in] | gpio | Pointer to the structure of type sl_gpio_t. Refer to the table below for a description of each port and pins available.
PORT_A can also be a single port to access all GPIO (0-57) pins available in the HP domain, instead of using PORT B, C, D. Pins (57-63) are reserved. | ||||||||||||||||||||||||||||||
[in] | mode | The desired pin mode. | ||||||||||||||||||||||||||||||
[in] | output_value | A value to set for the pin in the GPIO register. The GPIO setting is important for some input mode configurations. |
By default, mode-0 is set, and the GPIO pin acts as a normal GPIO. If a GPIO pin needs to be used for some alternate modes, the respective mode should be selected. For more information about modes present for different instances, refer to the PIN MUX section in the HRM.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_clock() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
229
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_pin_mode#
sl_status_t sl_gpio_driver_get_pin_mode (sl_gpio_t * gpio, sl_gpio_mode_t * mode)
Gets the pin mode (alternate function) of a GPIO for either HP instance (or) ULP instance as per the port number.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
[out] | mode | Pointer to a variable where the current pin mode will be stored. |
This function retrieves the current pin mode (alternate function) of a specified GPIO pin. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration. The mode
parameter is an output parameter that will hold the current pin mode after the function executes.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
259
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_init#
sl_status_t sl_gpio_driver_init (void )
Initializes the GPIO driver.
N/A |
This function initializes the GPIO driver by clearing all the interrupts for High Performance (HP), Ultra Low Power (ULP), and NPSS instances. It also sets all callback function pointers to NULL.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
Note
This function should be called before any other GPIO driver functions to ensure proper initialization.
275
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_deinit#
sl_status_t sl_gpio_driver_deinit (void )
De-Initializes the GPIO driver.
N/A |
This function de-initializes the GPIO driver by disabling the clocks for both High Performance (HP), Ultra Low Power (ULP) and Ultra Ulta Low Power (UULP) instances. It also sets all callback function pointers to NULL.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
Note
This function should be called to properly clean up the GPIO driver before the application exits or when the GPIO driver is no longer needed.
291
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_unregister#
sl_status_t sl_gpio_driver_unregister (sl_si91x_gpio_instances_t gpio_instance, sl_si91x_gpio_intr_t gpio_intr, uint8_t flag)
Unregisters GPIO driver.
[in] | gpio_instance | Instances of type sl_si91x_gpio_instances_t. |
[in] | gpio_intr | GPIO interrupts of type sl_si91x_gpio_intr_t. |
[in] | flag | GPIO interrupt flag. Maximum range is 8. |
This function unregisters the GPIO driver for a specified GPIO instance and interrupt. The gpio_instance
parameter specifies the GPIO instance of type sl_si91x_gpio_instances_t. The gpio_intr
parameter specifies the GPIO interrupt of type sl_si91x_gpio_intr_t. The flag
parameter specifies the GPIO interrupt flag, with a maximum range of 8.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
Note
Ensure that the GPIO instance and interrupt are properly configured before calling this function.
313
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_validation#
STATIC __INLINE sl_status_t sl_gpio_validation (sl_gpio_t * gpio)
Validates the port and pin of a GPIO.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
This function checks whether the specified port and pin in the GPIO structure are valid. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
Note
Ensure that the
gpio
structure is properly initialized before calling this function.
333
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_set_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_set_pin (sl_gpio_t * gpio)
Sets a single pin in the GPIO configuration register to 1.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
This function sets a specified GPIO pin to 1 in the GPIO configuration register. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
405
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_clear_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_clear_pin (sl_gpio_t * gpio)
Clears a single pin in the GPIO configuration register.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
This function clears (sets to 0) a specified GPIO pin in the GPIO configuration register. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
449
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_toggle_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_toggle_pin (sl_gpio_t * gpio)
Toggles a single pin in the GPIO port register.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
This function toggles the state of a specified GPIO pin in the GPIO port register. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
493
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_get_pin (sl_gpio_t * gpio, uint8_t * pin_value)
Reads the pin value for a single pin in a GPIO port.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
[out] | pin_value | Pointer to a variable where the GPIO pin value will be stored. |
This function reads the value of a specified GPIO pin. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration. The pin_value
parameter is an output parameter that will hold the value of the GPIO pin after the function executes.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
Note
Ensure that the GPIO clock is enabled and the pin is properly configured before calling this function.
539
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_set_port#
STATIC __INLINE sl_status_t sl_gpio_driver_set_port (sl_gpio_port_t port, uint32_t pins)
Sets the bits of the GPIO data out register.
[in] | port | The port to associate with the pin.
|
[in] | pins | The GPIO pins in the port that are set to 1 (0 to 65535 in decimal or 0xFFFF in hex). If we want to set pins (maximum of 0-15 pins) in a port, it can set all pins at a time. |
This function sets the specified GPIO pins to 1 in the GPIO data out register for a given port. The port
parameter specifies the port to associate with the pin. The pins
parameter specifies the GPIO pins in the port that are set to 1. The pins can be specified as a value between 0 and 65535 in decimal (or 0xFFFF in hex), allowing up to 16 pins (0-15) to be set at a time.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
Note
Ensure that the GPIO clock is enabled and the pins are properly configured before calling this function.
588
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_clear_port#
STATIC __INLINE sl_status_t sl_gpio_driver_clear_port (sl_gpio_port_t port, uint32_t pins)
Sets the bits in the configuration register for a port to 0.
[in] | port | The port to associate with the pin.
|
[in] | pins | The GPIO pins in the port that are set to 0 (0 to 65535 in decimal or 0xFFFF in hex). If we want to clear pins (maximum of 0-15 pins) in a port, it can clear all pins at a time. |
This function clears (sets to 0) the specified GPIO pins in the configuration register for a given port. The port
parameter specifies the port to associate with the pin. The pins
parameter specifies the GPIO pins in the port that are set to 0. The pins can be specified as a value between 1 and 65535 in decimal (or 0xFFFF in hex), allowing up to 16 pins (0-15) to be cleared at a time.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
Note
Ensure that the GPIO clock is enabled and the pins are properly configured before calling this function.
632
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_port_output#
STATIC __INLINE sl_status_t sl_gpio_driver_get_port_output (sl_gpio_port_t port, uint32_t * port_value)
Gets the current setting for a GPIO configuration register.
[in] | port | The port to associate with the pin.
|
[out] | port_value | Pointer to a variable where the GPIO port value will be stored. |
This function retrieves the current configuration settings for a specified GPIO port. The port
parameter specifies the port to associate with the pin. The port_value
parameter is an output parameter that will hold the current value of the GPIO port configuration register after the function executes.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
Note
Ensure that the GPIO clock is enabled and the pins are properly configured before calling this function.
674
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_pin_output#
STATIC __INLINE uint8_t sl_gpio_driver_get_pin_output (sl_gpio_t * gpio)
Gets the current setting for a pin in a GPIO configuration register.
[in] | gpio | Pointer to the structure of type sl_gpio_t. |
This function retrieves the current value of a specified GPIO pin. The gpio
parameter is a pointer to a structure of type sl_gpio_t, which contains the GPIO configuration.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
The GPIO pin value:
'0' - Low
'1' - High
709
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_set_port_output_value#
STATIC __INLINE sl_status_t sl_gpio_driver_set_port_output_value (sl_gpio_port_t port, uint32_t val, uint32_t mask)
Sets the GPIO port configuration register.
[in] | port | The port to associate with the pin.
|
[in] | val | Value to write to the port configuration register. |
[in] | mask | Mask indicating which bits to modify. |
This function sets the specified bits in the GPIO port configuration register for a given port. The port
parameter specifies the port to associate with the pin. The val
parameter specifies the value to write to the port configuration register. The mask
parameter indicates which bits to modify.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
755
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_set_slew_rate#
STATIC __INLINE sl_status_t sl_gpio_driver_set_slew_rate (sl_gpio_port_t port, uint32_t slewrate, uint32_t slewrate_alt)
Sets the slewrate for pins on an HP instance GPIO port.
[in] | port | The GPIO port to configure. |
[in] | slewrate | The slewrate to configure for the pins on this GPIO port. |
[in] | slewrate_alt | The slewrate to configure for the pins using alternate modes on this GPIO port. |
This function configures the slewrate for the pins on a specified HP instance GPIO port. The port
parameter specifies the GPIO port to configure. The slewrate
parameter specifies the slewrate for the pins on this GPIO port. The slewrate_alt
parameter specifies the slewrate for the pins using alternate modes on this GPIO port.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
788
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_port_input#
STATIC __INLINE uint32_t sl_gpio_driver_get_port_input (sl_gpio_port_t port)
Reads the port value for GPIO.
[in] | port | The port to associate with the pin.
|
This function reads the value of a specified GPIO port. The port
parameter specifies the port to associate with the pin.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
The GPIO pin value:
'0' - Low
'1' - High
824
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_toggle_port_output#
STATIC __INLINE sl_status_t sl_gpio_driver_toggle_port_output (sl_gpio_port_t port, uint32_t pins)
Toggles the selected pin values in the GPIO port register.
[in] | port | The port to associate with the pin.
|
[in] | pins | Port pins to toggle. Ranges from 0 to 65535 in decimal (or 0xFFFF in hex). |
This function toggles the specified GPIO pins in the port register. The port
parameter specifies the port to associate with the pin. The pins
parameter specifies the port pins to toggle, ranging from 0 to 65535 in decimal (or 0xFFFF in hex).
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_si91x_gpio_driver_enable_ulp_pad_receiver() must be called for ULP instance.
Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
863
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_enable_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_enable_interrupts (uint32_t flags)
Enables the selected GPIO pin interrupt with the configured interrupt type (Level or Edge).
[in] | flags | GPIO interrupt sources to enable. |
This function enables the interrupt for the selected GPIO pin with the specified interrupt type, which can be either level-triggered or edge-triggered. The flags
parameter specifies the GPIO interrupt sources to enable.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
895
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_disable_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_disable_interrupts (uint32_t flags)
Disables the selected GPIO pin interrupt with the configured interrupt type (Level or Edge).
[in] | flags | - GPIO interrupt sources to disable. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
914
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_set_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_set_interrupts (uint32_t flags)
Sets the selected GPIO pin interrupt with the configured interrupt type (Level or Edge).
[in] | flags | GPIO interrupt sources to set to pending. |
This function sets the interrupt for the selected GPIO pin with the specified interrupt type, which can be either level-triggered or edge-triggered. The flags
parameter specifies the GPIO interrupt sources to set to pending.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Status code indicating the result:
SL_STATUS_OK (0x0000) - Success.
940
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_pending_interrupts#
STATIC __INLINE uint32_t sl_gpio_driver_get_pending_interrupts (void )
Gets the pending GPIO interrupts.
N/A |
This function retrieves the numbers of the GPIO pins that have pending interrupts.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Pending GPIO pin interrupt numbers.
961
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_enabled_interrupts#
STATIC __INLINE uint32_t sl_gpio_driver_get_enabled_interrupts (void )
Gets the enabled GPIO interrupts.
N/A |
This function retrieves the numbers of the GPIO pins that have enabled interrupts.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Enabled GPIO pin interrupt numbers.
983
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_driver_get_enabled_pending_interrupts#
STATIC __INLINE uint32_t sl_gpio_driver_get_enabled_pending_interrupts (void )
Gets the enabled and pending GPIO interrupt flags.
N/A |
This function retrieves the flags for the enabled and pending GPIO interrupts.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock() must be called to enable the GPIO clock.
sl_si91x_gpio_driver_enable_pad_selection() must be called for HP instance.
sl_si91x_gpio_driver_enable_pad_receiver() must be called for HP instance.
sl_gpio_driver_set_pin_mode() must be called to set the pin mode.
sl_si91x_gpio_driver_set_pin_direction() must be called to set the pin direction.
Returns
Flags indicating the enabled and pending GPIO interrupts.
1005
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
sl_gpio_set_configuration#
sl_status_t sl_gpio_set_configuration (sl_si91x_gpio_pin_config_t pin_config)
Configuration of the GPIO based on port and pin.
[in] | pin_config | - Structure containing the configuration information. |
Port A,B,C,D are considered for HP instance, ULP PORT is considered for ULP instance UULP PORT is considered for UULP instance. The configuration of GPIO pin like which GPIO pin and port are to be passed through the structure. By default mode is taken as mode0, which is normal GPIO selection.
59
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_pin_direction#
sl_status_t sl_si91x_gpio_driver_set_pin_direction (uint8_t port, uint8_t pin, sl_si91x_gpio_direction_t direction)
Set the direction for a GPIO pin.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | pin | - The pin number on the port. HP instance has total 57 GPIO pins. Port A, B, C has 16 pins each. Port D has 9 pins. ULP instance has total 12 pins. |
[in] | direction | - Pin direction of type sl_si91x_gpio_direction_t (Direction of the GPIO pin enum).
|
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
85
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_pin_direction#
uint8_t sl_si91x_gpio_driver_get_pin_direction (uint8_t port, uint8_t pin)
Get the direction of a selected GPIO pin.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | pin | - The pin number on the port. HP instance has total 57 GPIO pins. Port A, B, C has 16 pins each. Port D has 9 pins. ULP instance has total 12 pins. |
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Returns
Returns the direction of the pin.
'0' - Output
'1' - Input
110
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_enable_pad_receiver#
sl_status_t sl_si91x_gpio_driver_enable_pad_receiver (uint8_t gpio_num)
Enable the receiver enable bit in the PAD configuration register for reading the GPIO pin status.
[in] | gpio_num | - GPIO pin number to be use. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
124
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_disable_pad_receiver#
sl_status_t sl_si91x_gpio_driver_disable_pad_receiver (uint8_t gpio_num)
Disable the receiver enable bit in the PAD configuration register.
[in] | gpio_num | - GPIO pin number to be use. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
138
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_enable_pad_selection#
sl_status_t sl_si91x_gpio_driver_enable_pad_selection (uint8_t gpio_padnum)
Enable the pad selection bit in the PAD selection register.
[in] | gpio_padnum | - PAD number to be used. |
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
150
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_enable_host_pad_selection#
sl_status_t sl_si91x_gpio_driver_enable_host_pad_selection (uint8_t gpio_num)
Enable the host pad selection bit in the PAD selection register.
[in] | gpio_num | - GPIO pin number(25-30) to be used. |
GPIO pin number(25 to 30) are valid for HOST PAD selection, referring to SL_GPIO_PORT_B, pins 9 to 14.
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
164
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_pad_driver_strength#
sl_status_t sl_si91x_gpio_driver_select_pad_driver_strength (uint8_t gpio_num, sl_si91x_gpio_driver_strength_select_t strength)
Select the drive strength for an HP instance GPIO pin.
[in] | gpio_num | - GPIO pin number to be use. |
[in] | strength | - Drive strength selector(E1,E2) of type sl_si91x_gpio_driver_strength_select_t (GPIO driver strength select). Possible values are
|
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argumen.t
186
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_pad_driver_disable_state#
sl_status_t sl_si91x_gpio_driver_select_pad_driver_disable_state (uint8_t gpio_num, sl_si91x_gpio_driver_disable_state_t disable_state)
Select the driver disabled state control for an HP instance GPIO pin.
[in] | gpio_num | - GPIO pin number to be use. |
[in] | disable_state | - Driver disable state of type sl_si91x_gpio_driver_disable_state_t. Possible values are |
Pre-conditions:
0, for HiZ (P1=0,P2=0)
1, for Pull-up (P1=0,P2=1)
2, for Pull-down (P1=1,P2=0)
3, for Repeater (P1=1,P2=1)
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
210
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_group_interrupt_and_or#
sl_status_t sl_si91x_gpio_driver_select_group_interrupt_and_or (uint8_t port, sl_si91x_group_interrupt_t group_interrupt, sl_si91x_gpio_and_or_t and_or)
Select AND/OR type of the group interrupt.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
[in] | and_or | - AND/OR of GPIO group interrupts of type sl_si91x_gpio_and_or_t (AND/OR of the GPIO group interrupt).
|
If multiple interrupts on same port (or) different are to be generated, then use this API. Example: Consider port A: pin 2,3 and port D: pin 1,2 for interrupt generation. Choose OR, any of the selected pin condition triggers the group interrupt generation Choose AND, all the selected pin conditions should match to trigger group interrupt generation
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use corresponding group interrupt configuration API for corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
246
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_clear_group_interrupt#
sl_status_t sl_si91x_gpio_driver_clear_group_interrupt (sl_si91x_group_interrupt_t group_interrupt)
Clear the selected group interrupt status value.
[in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument.
266
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_group_interrupt_status#
uint32_t sl_si91x_gpio_driver_get_group_interrupt_status (uint8_t port, sl_si91x_group_interrupt_t group_interrupt)
Get the current status of the selected group interrupt.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | group_interrupt | - Group interrupt number of type (0 to 1) sl_si91x_group_interrupt_t (GPIO group interrupts). |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Returns the group interrupt status register:
1, when interrupt is enabled
0, when interrupt is disabled
291
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_group_interrupt_wakeup#
sl_status_t sl_si91x_gpio_driver_select_group_interrupt_wakeup (uint8_t port, sl_si91x_group_interrupt_t group_interrupt, sl_si91x_gpio_wakeup_t flags)
Configure the group interrupt as a wake-up source across sleep wakeups.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
[in] | flags | - GPIO group interrupt wake up flag of type sl_si91x_gpio_wakeup_t (GPIO group interrupt wakeup flag).
|
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
310
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_configure_group_interrupt#
sl_status_t sl_si91x_gpio_driver_configure_group_interrupt (sl_si91x_gpio_group_interrupt_config_t * configuration, sl_gpio_irq_callback_t gpio_callback)
Configure the MCU HP instance group interrupts with trigger type (level/edge), polarity (high/low), interrupt type (and/or) and register the callback function for interrupts.
[in] | configuration | - configuration pointer to sl_si91x_gpio_group_interrupt_config_t structure |
[in] | gpio_callback | - IRQ function pointer |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
331
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_group_interrupt_polarity#
uint8_t sl_si91x_gpio_driver_get_group_interrupt_polarity (sl_si91x_group_interrupt_t group_interrupt, uint8_t port, uint8_t pin)
Get the configured polarity of group interrupt.
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | pin | - The pin number on the port. HP instance has total 57 GPIO pins. Port 0, 1, 2 has 16 pins each. Port 3 has 9 pins. ULP instance has total 12 pins. |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Returns group interrupt polarity:
1, when GPIO pin status is HIGH
0, when GPIO pin status is LOW
361
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_group_interrupt_polarity#
sl_status_t sl_si91x_gpio_driver_set_group_interrupt_polarity (sl_si91x_group_interrupt_t group_interrupt, uint8_t port, uint8_t pin, sl_si91x_gpio_polarity_t polarity)
Configure the polarity to a selected group interrupt which decides the active value of the pin to be considered for group interrupt generation.
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | pin | - The pin number on the port. HP instance has total 57 GPIO pins. Port A, B, C has 16 pins each. Port D has 9 pins. ULP instance has total 12 pins. |
[in] | polarity | - polarity of GPIO group interrupt of type sl_si91x_gpio_polarity_t (GPIO polarity enum)
|
'0' – group interrupt gets generated when gpio input pin status is LOW '1' – group interrupt gets generated when gpio input pin status is HIGH
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
400
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_group_interrupt_level_edge#
uint8_t sl_si91x_gpio_driver_get_group_interrupt_level_edge (uint8_t port, sl_si91x_group_interrupt_t group_interrupt)
Get the configured level/edge event for the selected group interrupt.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Returns group interrupt level_edge:
1, for Edge
0, for Level
428
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_group_interrupt_level_edge#
sl_status_t sl_si91x_gpio_driver_set_group_interrupt_level_edge (uint8_t port, sl_si91x_group_interrupt_t group_interrupt, sl_si91x_gpio_level_edge_t level_edge)
Set the level/edge event for the selected group interrupt.
[in] | port | - The port to associate with the pin.
|
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
[in] | level_edge | - GPIO level edge group interrupt of type sl_si91x_gpio_level_edge_t (GPIO level edge select):
|
'1' Triggers interrupt generation when configured edge is detected on pin. '0' Triggers interrupt generation when configured level is detected on pin.
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
460
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_unmask_group_interrupt#
sl_status_t sl_si91x_gpio_driver_unmask_group_interrupt (uint8_t port, sl_si91x_group_interrupt_t group_interrupt)
Unmask the selected group interrupt to enable interrupt clearing upon generation.
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
487
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_mask_group_interrupt#
sl_status_t sl_si91x_gpio_driver_mask_group_interrupt (uint8_t port, sl_si91x_group_interrupt_t group_interrupt)
Mask the selected group interrupt.
[in] | port | - The port to associate with the pin.
|
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts) |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
509
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_disable_clock#
sl_status_t sl_si91x_gpio_driver_disable_clock (sl_si91x_gpio_select_clock_t clock)
Disable the clock for either the HP or ULP instance of the GPIO Peripheral.
[in] | clock | - Selects M4 clock or ULP clock of type sl_si91x_gpio_select_clock_t (HP/ULP GPIO clock select)
|
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
523
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_enable_clock#
sl_status_t sl_si91x_gpio_driver_enable_clock (sl_si91x_gpio_select_clock_t clock)
Enable the clock for either the HP or ULP instance of the GPIO peripheral.
[in] | clock | - Selects M4 clock or ULP clock of type sl_si91x_gpio_select_clock_t (HP/ULP GPIO clock select):
|
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
537
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_enable_group_interrupt#
sl_status_t sl_si91x_gpio_driver_enable_group_interrupt (sl_si91x_group_interrupt_t group_interrupt, uint8_t port, uint8_t pin)
Enable the selected group interrupts for either the HP or ULP instance of the GPIO peripheral.
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
[in] | port | - The port to associate with the pin.
|
[in] | pin | - The pin number on the port. HP instance has total 57 GPIO pins. Port A, B, C has 16 pins each. Port D has 9 pins. ULP instance has total 12 pins. |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
566
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_disable_group_interrupt#
sl_status_t sl_si91x_gpio_driver_disable_group_interrupt (sl_si91x_group_interrupt_t group_interrupt, uint8_t port, uint8_t pin)
Disable the selected group interrupts for either the HP or ULP instance of the GPIO peripheral.
[in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts) |
[in] | port | - The port to associate with the pin. HP instance - PORT A,B,C,D ULP instance - ULP PORT |
[in] | pin | - The pin number on the port. HP instance has total 57 GPIO pins. Port A, B, C has 16 pins each. Port D has 9 pins. ULP instance has total 12 pins. |
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
599
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_ulp_pad_slew_rate#
sl_status_t sl_si91x_gpio_driver_select_ulp_pad_slew_rate (uint8_t gpio_num, sl_si91x_gpio_slew_rate_t slew_rate)
Select the slew rate for the ULP instance of the GPIO peripheral.
[in] | gpio_num | - GPIO pin number to be use. |
[in] | slew_rate | - Slew rate of type sl_si91x_gpio_slew_rate_t (GPIO slew rate select):
|
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
619
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_ulp_pad_driver_strength#
sl_status_t sl_si91x_gpio_driver_select_ulp_pad_driver_strength (uint8_t gpio_num, sl_si91x_gpio_driver_strength_select_t strength)
Select the drive strength for the ULP instance of the GPIO peripheral.
[in] | gpio_num | - GPIO pin number to be use. |
[in] | strength | - Drive strength selector(E1,E2) of type sl_si91x_gpio_driver_strength_select_t (GPIO driver strength select):
|
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
640
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_ulp_pad_driver_disable_state#
sl_status_t sl_si91x_gpio_driver_select_ulp_pad_driver_disable_state (uint8_t gpio_num, sl_si91x_gpio_driver_disable_state_t disable_state)
Select the driver-disabled state control for the ULP instance of the GPIO peripheral.
[in] | gpio_num | - GPIO pin number to be use. |
[in] | disable_state | - Driver disable state of type sl_si91x_gpio_driver_disable_state_t:
|
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
662
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_disable_ulp_pad_receiver#
sl_status_t sl_si91x_gpio_driver_disable_ulp_pad_receiver (uint8_t gpio_num)
Disable the receiver enable bit for the ULP instance of the GPIO peripheral.
[in] | gpio_num | - GPIO pin number to be used. |
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
676
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_enable_ulp_pad_receiver#
sl_status_t sl_si91x_gpio_driver_enable_ulp_pad_receiver (uint8_t gpio_num)
Enable the receiver enable bit for the ULP instance of the GPIO peripheral.
[in] | gpio_num | - GPIO pin number to be used. |
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
688
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_configure_ulp_pin_interrupt#
sl_status_t sl_si91x_gpio_driver_configure_ulp_pin_interrupt (uint8_t int_no, sl_si91x_gpio_interrupt_config_flag_t flags, sl_si91x_gpio_pin_ulp_t pin, sl_gpio_irq_callback_t gpio_callback)
Configure the MCU ULP instance pin interrupts with the trigger type (level/edge) and register the callback function for interrupts.
[in] | int_no | - The interrupt number to trigger. |
[in] | flags | - Interrupt configuration flags of type sl_si91x_gpio_interrupt_config_flag_t (GPIO Interrupt Configurations). |
[in] | pin | - GPIO pin number (0 to 11). |
[in] | gpio_callback | - IRQ function pointer. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer.
709
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_uulp_npss_pin_mux#
sl_status_t sl_si91x_gpio_driver_set_uulp_npss_pin_mux (uint8_t pin, sl_si91x_uulp_npss_mode_t mode)
Set the NPSS GPIO pin MUX (mode) to the selected mode.
[in] | pin | - NPSS GPIO pin number (0...4) of type sl_si91x_uulp_npss_mode_t (NPSS GPIO PIN MUX). |
[in] | mode | - NPSS GPIO MUX value (0 to 10). |
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
728
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_uulp_npss_receiver#
sl_status_t sl_si91x_gpio_driver_select_uulp_npss_receiver (uint8_t pin, sl_si91x_gpio_receiver_t receiver)
Enable/disable the NPSS GPIO Input Buffer.
[in] | pin | - NPSS GPIO pin number (0...4). |
[in] | receiver | - Enable/disable NPSS GPIO receiver of type sl_si91x_gpio_receiver_t (NPSS GPIO input buffer).
|
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
745
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_uulp_npss_direction#
sl_status_t sl_si91x_gpio_driver_set_uulp_npss_direction (uint8_t pin, sl_si91x_gpio_direction_t direction)
Set the direction for the selected NPSS GPIO.
[in] | pin | - NPSS GPIO pin number (0...4). |
[in] | direction | - Direction value (Input / Output) of type sl_si91x_gpio_direction_t (Direction of the GPIO pin enum):
|
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
764
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_uulp_npss_direction#
uint8_t sl_si91x_gpio_driver_get_uulp_npss_direction (uint8_t pin)
Get the direction of the selected NPSS GPIO.
[in] | pin | - NPSS GPIO pin number (0...4). |
Pre-conditions:
Returns
Returns the GPIO pin direction:
1, Input Direction
0, Output Direction
779
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_uulp_npss_pin_value#
sl_status_t sl_si91x_gpio_driver_set_uulp_npss_pin_value (uint8_t pin, sl_si91x_gpio_pin_value_t pin_value)
Control(set or clear) the NPSS GPIO pin value.
[in] | pin | - NPSS GPIO pin number (0...4) of type sl_si91x_gpio_pin_value_t (GPIO pin set/clear). |
[in] | pin_value | - NPSS GPIO pin value:
|
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
799
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_uulp_npss_pin#
uint8_t sl_si91x_gpio_driver_get_uulp_npss_pin (uint8_t pin)
Read the status of the selected NPSS GPIO pin value.
[in] | pin | - NPSS GPIO pin number (0...4). |
Pre-conditions:
Returns
Returns the pin logical state of pin:
'0' - Output
'1' - Input
815
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_select_uulp_npss_polarity#
sl_status_t sl_si91x_gpio_driver_select_uulp_npss_polarity (uint8_t pin, sl_si91x_gpio_polarity_t polarity)
Select the NPSS GPIO polarity for generating the interrupt.
[in] | pin | - NPSS GPIO pin number (0...4). |
[in] | polarity | - GPIO polarity sl_si91x_gpio_polarity_t (GPIO polarity enum):
|
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
832
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_uulp_npss_wakeup_interrupt#
sl_status_t sl_si91x_gpio_driver_set_uulp_npss_wakeup_interrupt (uint8_t npssgpio_interrupt)
Set the NPSS GPIO interrupt as a wake-up source across sleep wakeups.
[in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts. |
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
844
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_clear_uulp_npss_wakeup_interrupt#
sl_status_t sl_si91x_gpio_driver_clear_uulp_npss_wakeup_interrupt (uint8_t npssgpio_interrupt)
Clear the UULP NPSS GPIO Interrupt as a wake up source.
[in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts. |
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
856
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_mask_uulp_npss_interrupt#
sl_status_t sl_si91x_gpio_driver_mask_uulp_npss_interrupt (uint8_t npssgpio_interrupt)
Mask the selected NPSS GPIO interrupt.
[in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
872
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_unmask_uulp_npss_interrupt#
sl_status_t sl_si91x_gpio_driver_unmask_uulp_npss_interrupt (uint8_t npssgpio_interrupt)
Unmask the selected NPSS GPIO interrupt.
[in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
888
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_clear_uulp_interrupt#
sl_status_t sl_si91x_gpio_driver_clear_uulp_interrupt (uint8_t npssgpio_interrupt)
Clear the selected NPSS GPIO interrupt.
[in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts |
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
sl_si91x_gpio_configure_uulp_interrupt()
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
905
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_uulp_interrupt_status#
uint8_t sl_si91x_gpio_driver_get_uulp_interrupt_status (void )
Get the current status of all the NPSS GPIO interrupt status.
N/A |
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
sl_si91x_gpio_configure_uulp_interrupt()
Returns
Returns the UULP INTR status:
1, interrupt has been raised.
0, interrupt is masked or not raised.
922
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_ulp_interrupt_status#
uint32_t sl_si91x_gpio_driver_get_ulp_interrupt_status (uint32_t flags)
Get the selected ULP instance GPIO pin interrupt status.
[in] | flags | - ULP GPIO interrupt sources status. |
Pre-conditions:
sl_si91x_gpio_configure_ulp_pin_interrupt()
Returns
Returns the ULP INTR status: 1, interrupt has been raised 0, interrupt is masked or not raised
937
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_clear_ulp_interrupt#
sl_status_t sl_si91x_gpio_driver_clear_ulp_interrupt (uint32_t flags)
Clear the selected ULP instance GPIO pin interrupts.
[in] | flags | - ULP GPIO interrupt sources to clear. |
Pre-conditions:
sl_si91x_gpio_configure_ulp_pin_interrupt()
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
953
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_clear_ulp_group_interrupt#
sl_status_t sl_si91x_gpio_driver_clear_ulp_group_interrupt (sl_si91x_group_interrupt_t group_interrupt)
Clear the selected ULP instance group interrupt.
[in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t (GPIO group interrupts). |
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt()
Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
973
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_configure_uulp_interrupt#
sl_status_t sl_si91x_gpio_driver_configure_uulp_interrupt (sl_si91x_gpio_interrupt_config_flag_t flags, uint8_t npssgpio_interrupt, sl_gpio_irq_callback_t gpio_callback)
Configure the UULP GPIO pin interrupt with interrupt type level or edge and registers callback function for interrupts.
[in] | flags | - Interrupt configuration flags of type sl_si91x_gpio_interrupt_config_flag_t (GPIO Interrupt Configurations structure). |
[in] | npssgpio_interrupt | - NPSS GPIO input number (0 to 4). |
[in] | gpio_callback | - IRQ function pointer. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer.
993
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_configure_ulp_group_interrupt#
sl_status_t sl_si91x_gpio_driver_configure_ulp_group_interrupt (sl_si91x_gpio_group_interrupt_config_t * configuration, sl_gpio_irq_callback_t gpio_callback)
Configure the MCU ULP instance group interrupts with trigger type (level/edge), polarity (high/low), interrupt type (and/or) and register the callback function for interrupts.
[in] | configuration | - Configuration pointer to sl_si91x_gpio_group_interrupt_config_t structure. |
[in] | gpio_callback | - IRQ function pointer. |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
1013
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_toggle_uulp_npss_pin#
sl_status_t sl_si91x_gpio_driver_toggle_uulp_npss_pin (uint8_t pin)
Toggle the selected UULP pin status.
[in] | pin | - UULP pin number to toggle |
Pre-conditions:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument.
1029
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_set_uulp_pad_configuration#
sl_status_t sl_si91x_gpio_driver_set_uulp_pad_configuration (uulp_pad_config_t * pad_config)
Configure the UULP GPIO pin mode, receiver enable, direction and polarity settings.
[in] | pad_config | : PAD configuration pointer to uulp_pad_config_t structure |
Pre-condition:
Returns
Status code indicating the result:
SL_STATUS_OK (0X000) - Success.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer.
1041
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
sl_si91x_gpio_driver_get_version#
sl_si91x_gpio_version_t sl_si91x_gpio_driver_get_version (void )
Get the release, SQA, and development version numbers of the GPIO peripheral.
N/A |
Returns
Returns structure of type sl_si91x_gpio_vversion_t (the structure to hold the versions of peripheral API).
1047
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
Macro Definition Documentation#
GPIO_MAX_OUTPUT_VALUE#
#define GPIO_MAX_OUTPUT_VALUEValue:
1
GPIO output maximum value.
47
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
MAX_GROUP_INT#
#define MAX_GROUP_INTValue:
2
Maximum number of group interrupts.
48
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
GPIO_PORT_MAX_VALUE#
#define GPIO_PORT_MAX_VALUEValue:
5
Maximum number of GPIO ports.
49
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
MAX_UULP_INT#
#define MAX_UULP_INTValue:
5
Maximum number of UULP interrupts.
50
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
ULP_MAX_MODE#
#define ULP_MAX_MODEValue:
10
Maximum ULP mode.
51
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
GPIO_MAX_INTR_VALUE#
#define GPIO_MAX_INTR_VALUEValue:
8
Maximum number of M4 GPIO pin interrupts.
53
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
PORTD_PIN_MAX_VALUE#
#define PORTD_PIN_MAX_VALUEValue:
9
Port D maximum(0-9) number of GPIO pins.
54
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
ULP_PIN_MAX_VALUE#
#define ULP_PIN_MAX_VALUEValue:
11
Port E maximum(0-11) number of GPIO pins.
55
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
UULP_PIN_MAX_VALUE#
#define UULP_PIN_MAX_VALUEValue:
5
Port F maximum(0-4) number of GPIO pins.
56
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
MAX_ULP_INTR#
#define MAX_ULP_INTRValue:
8
Maximum number of ULP interrupts.
57
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
MAX_MODE#
#define MAX_MODEValue:
15
Maximum M4 GPIO mode.
58
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
PORTA_PIN_MAX_VALUE#
#define PORTA_PIN_MAX_VALUEValue:
57
GPIO pin maximum(0-63) value for SL_GPIO_PORT_A of HP instance.
59
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
PORT_PIN_MAX_VALUE#
#define PORT_PIN_MAX_VALUEValue:
15
GPIO pin maximum(0-15) value for SL_GPIO_PORT_B, SL_GPIO_PORT_C of HP instance.
60
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
GPIO_FLAGS_MAX_VALUE#
#define GPIO_FLAGS_MAX_VALUEValue:
0x0F
GPIO flags maximum value.
61
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
PAD_SELECT_9#
#define PAD_SELECT_9Value:
9
GPIO PAD selection number.
63
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
UULP_PORT#
#define UULP_PORTValue:
5
Refers to port for UULP instance.
64
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
GPIO_MAX_PORT_PINS#
#define GPIO_MAX_PORT_PINSValue:
0xFFFF
Refers to maximum no. of pins port can support.
65
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h