General-Purpose Input-Output#
Modules#
Typedefs#
GPIO interrupt callback function pointer.
Functions#
Clear one or more pending GPIO interrupts.
Configure the GPIO pin interrupt.
Set the pin mode for a GPIO pin.
Get the pin mode (alternate function) of a GPIO for either HP instance (or) ULP instance as per the port number.
Unregister GPIO driver.
Set a single pin in GPIO configuration register to 1.
Clear a single pin in the GPIO configuration register to 0.
Toggle a single pin in GPIO port register.
Read the pin value for a single pin in a GPIO port.
Set bits GPIO data out register to 1.
Set bits in configuration register for a port to 0.
Get the current setting for a GPIO configuration register.
Get the current setting for a pin in a GPIO configuration register.
Set the GPIO port configuration register.
Read the port value for GPIO.
Get the pending GPIO interrupts.
Get the enabled GPIO interrupts.
Get the enabled and pending GPIO interrupt flags.
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.
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#
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.
Function Documentation#
sl_gpio_driver_clear_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_clear_interrupts (uint32_t flags)
Clear one or more pending GPIO interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | - Bitwise logic OR of GPIO interrupt sources to clear. |
Pre-conditions:
Returns
returns status 0 SL_STATUS _OK (0X000) - Success
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)
Configure the GPIO pin interrupt.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
uint32_t | [in] | int_no | - Specifies the interrupt number to trigger (0 to 7). |
sl_gpio_interrupt_flag_t | [in] | flags | - Interrupt configuration flags sl_gpio_interrupt_flag_t |
sl_gpio_irq_callback_t | [in] | gpio_callback | - IRQ callback function pointer sl_gpio_irq_callback_t |
uint32_t * | [out] | avl_intr_no | - Pointer to the available interrupt number. SL_GPIO_INTERRUPT_UNAVAILABLE (0xFF) no available interrupt |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
Returns
The following values are returned:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
SL_STATUS_BUSY (0x0004) - Interrupt is busy and cannot carry out the requested operation
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)
Set the pin mode for a GPIO pin.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
sl_gpio_mode_t | [in] | mode | - The desired pin mode. |
uint32_t | [in] | output_value | - A value to set for the pin in the GPIO register. The GPIO setting is important for some input mode configurations. |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for corresponding GPIO instance.
Returns
The following values are returned:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_get_pin_mode#
sl_status_t sl_gpio_driver_get_pin_mode (sl_gpio_t * gpio, sl_gpio_mode_t * mode)
Get the pin mode (alternate function) of a GPIO for either HP instance (or) ULP instance as per the port number.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
sl_gpio_mode_t * | [out] | mode | - The desired pin mode. |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance. sl_gpio_driver_set_pin_mode();
Returns
The following values are returned:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_init#
sl_status_t sl_gpio_driver_init (void )
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
sl_gpio_driver_deinit#
sl_status_t sl_gpio_driver_deinit (void )
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
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)
Unregister GPIO driver.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_gpio_instances_t | [in] | gpio_instance | - Instances of type sl_si91x_gpio_instances_t |
sl_si91x_gpio_intr_t | [in] | gpio_intr | - GPIO interrupts of type sl_si91x_gpio_intr_t |
uint8_t | [in] | flag | - GPIO interrupt flag |
Returns
The following values are returned:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_set_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_set_pin (sl_gpio_t * gpio)
Set a single pin in GPIO configuration register to 1.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for corresponding GPIO instance.
Returns
The following values are returned:
SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_clear_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_clear_pin (sl_gpio_t * gpio)
Clear a single pin in the GPIO configuration register to 0.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(); for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_toggle_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_toggle_pin (sl_gpio_t * gpio)
Toggle a single pin in GPIO port register.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_get_pin#
STATIC __INLINE sl_status_t sl_gpio_driver_get_pin (sl_gpio_t * gpio, uint8_t * pin_value)
Read the pin value for a single pin in a GPIO port.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
uint8_t * | [out] | pin_value | - Gets the gpio pin value |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_set_port#
STATIC __INLINE sl_status_t sl_gpio_driver_set_port (sl_gpio_port_t port, uint32_t pins)
Set bits GPIO data out register to 1.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint32_t | [in] | pins | - The GPIO pins in a Port that are set to 1 (1 to 65535). |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_clear_port#
STATIC __INLINE sl_status_t sl_gpio_driver_clear_port (sl_gpio_port_t port, uint32_t pins)
Set bits in configuration register for a port to 0.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint32_t | [in] | pins | - The GPIO pins in a Port that are set to 0 (1 to 65535). |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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)
Get the current setting for a GPIO configuration register.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint32_t * | [out] | port_value | - Gets the gpio port value |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
sl_gpio_driver_get_pin_output#
STATIC __INLINE uint8_t sl_gpio_driver_get_pin_output (sl_gpio_t * gpio)
Get the current setting for a pin in a GPIO configuration register.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_t * | [in] | gpio | - Pointer to the structure of type sl_gpio_t |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Returns
The GPIO pin value '0' - Low '1' - High
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)
Set the GPIO port configuration register.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint32_t | [in] | val | - Value to write to the port configuration register. |
uint32_t | [in] | mask | - Mask indicating which bits to modify. |
Pre-conditions:
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 the corresponding pad receiver API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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)
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | N/A | port | |
uint32_t | N/A | slewrate | |
uint32_t | N/A | slewrate_alt |
sl_gpio_driver_get_port_input#
STATIC __INLINE uint32_t sl_gpio_driver_get_port_input (sl_gpio_port_t port)
Read the port value for GPIO.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
Pre-conditions:
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 the corresponding pad receiver API for the corresponding GPIO instance.
Returns
The GPIO pin value '0' - Low '1' - High
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)
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_gpio_port_t | N/A | port | |
uint32_t | N/A | pins |
sl_gpio_driver_enable_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_enable_interrupts (uint32_t flags)
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | N/A | flags |
sl_gpio_driver_disable_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_disable_interrupts (uint32_t flags)
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | N/A | flags |
sl_gpio_driver_set_interrupts#
STATIC __INLINE sl_status_t sl_gpio_driver_set_interrupts (uint32_t flags)
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | N/A | flags |
sl_gpio_driver_get_pending_interrupts#
STATIC __INLINE uint32_t sl_gpio_driver_get_pending_interrupts (void )
Get the pending GPIO interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Pre-conditions:
Returns
Pending GPIO Pin interrupt numbers.
sl_gpio_driver_get_enabled_interrupts#
STATIC __INLINE uint32_t sl_gpio_driver_get_enabled_interrupts (void )
Get the enabled GPIO interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Pre-conditions:
Returns
Enabled GPIO pin interrupt numbers.
sl_gpio_driver_get_enabled_pending_interrupts#
STATIC __INLINE uint32_t sl_gpio_driver_get_enabled_pending_interrupts (void )
Get the enabled and pending GPIO interrupt flags.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Pre-conditions:
Returns
Enabled GPIO pending interrupts.
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint8_t | [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. |
sl_si91x_gpio_direction_t | [in] | direction | - pin direction of type sl_si91x_gpio_direction_t '0' - Output
|
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint8_t | [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:
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_selection(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use. |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use. |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_padnum | - PAD number to be use |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use |
sl_si91x_gpio_driver_strength_select_t | [in] | strength | - Drive strength selector(E1,E2) of type sl_si91x_gpio_driver_strength_select_t possible values are 0, for two_milli_amps (E1=0,E2=0)
|
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use |
sl_si91x_gpio_driver_disable_state_t | [in] | disable_state | - driver disable state of type sl_si91x_gpio_driver_disable_state_t possible values are 0, for HiZ (P1=0,P2=0)
|
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t |
sl_si91x_gpio_and_or_t | [in] | and_or | - AND/OR of GPIO group interrupts of type sl_si91x_gpio_and_or_t '0' - AND
|
If multiple interrupts on same port (or) different are to be generated, then use this API. Example: Consider port 0: pin 2,3 and port 3: 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:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance
Use the corresponding pad receiver API for the corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt, for ULP instance
Use corresponding group interrupt configuration API for corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_group_interrupt_t | [in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - Group interrupt number of type (0 to 1) sl_si91x_group_interrupt_t |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t |
sl_si91x_gpio_wakeup_t | [in] | flags | - GPIO group interrupt wake up flag of type sl_si91x_gpio_wakeup_t '1' - enable
|
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_gpio_group_interrupt_config_t * | [in] | configuration | - configuration pointer to sl_si91x_gpio_group_interrupt_config_t structure |
sl_gpio_irq_callback_t | [in] | gpio_callback | - IRQ function pointer |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint8_t | [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:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint8_t | [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. |
sl_si91x_gpio_polarity_t | [in] | polarity | - polarity of GPIO group interrupt of type sl_si91x_gpio_polarity_t 1, group interrupt gets generated when GPIO pin status is '1'
|
'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:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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 status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
sl_si91x_gpio_level_edge_t | [in] | level_edge | - GPIO level edge group interrupt of type sl_si91x_gpio_level_edge_t 1, for Edge
|
'1' Triggers interrupt generation when configured edge is detected on pin '0' Triggers interrupt generation when configured level is detected on pin
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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 status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use corresponding pad receiver API for corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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 status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_gpio_select_clock_t | [in] | clock | - Selects M4 clock or ULP clock of type sl_si91x_gpio_select_clock_t 0, for M4 GPIO CLK
|
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_gpio_select_clock_t | [in] | clock | - Selects M4 clock or ULP clock of type sl_si91x_gpio_select_clock_t 0, for M4 GPIO CLK
|
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint8_t | [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:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance Use the corresponding pad receiver API for the corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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 status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_group_interrupt_t | [in] | group_interrupt | - GPIO group interrupt number of type sl_si91x_group_interrupt_t |
uint8_t | [in] | port | - The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4 |
uint8_t | [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:
Pre-conditions:
sl_si91x_gpio_driver_enable_clock, for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_pad_receiver(), for HP instance
Pre-conditions:
sl_si91x_gpio_driver_enable_ulp_pad_receiver(), for ULP instance
Use the corresponding pad receiver API for the corresponding GPIO instance.
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_configure_ulp_group_interrupt(), for HP instance
Pre-conditions:
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 status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use |
sl_si91x_gpio_slew_rate_t | [in] | slew_rate | - slew rate of type sl_si91x_gpio_slew_rate_t '0' - Slow
|
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use |
sl_si91x_gpio_driver_strength_select_t | [in] | strength | - Drive strength selector(E1,E2) of type sl_si91x_gpio_driver_strength_select_t 0, for two_milli_amps (E1=0,E2=0)
|
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be use |
sl_si91x_gpio_driver_disable_state_t | [in] | disable_state | - driver disable state of type sl_si91x_gpio_driver_disable_state_t 0, for HiZ (P1=0,P2=0)
|
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be used |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | gpio_num | - GPIO pin number to be used |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | int_no | - The interrupt number to trigger. |
sl_si91x_gpio_interrupt_config_flag_t | [in] | flags | - Interrupt configuration flags of type sl_si91x_gpio_interrupt_config_flag_t |
sl_si91x_gpio_pin_ulp_t | [in] | pin | - GPIO pin number (0 to 11) |
sl_gpio_irq_callback_t | [in] | gpio_callback | - IRQ function pointer |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - NPSS GPIO pin number(0...4) of type sl_si91x_uulp_npss_mode_t |
sl_si91x_uulp_npss_mode_t | [in] | mode | - NPSS GPIO MUX value (0 to 10) |
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - is NPSS GPIO pin number (0...4) |
sl_si91x_gpio_receiver_t | [in] | receiver | - is enable/disable NPSS GPIO receiver of type sl_si91x_gpio_receiver_t '1' - Enable
|
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - is NPSS GPIO pin number (0...4) |
sl_si91x_gpio_direction_t | [in] | direction | - is direction value (Input / Output) of type sl_si91x_gpio_direction_t '1' - Input Direction
|
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - is NPSS GPIO pin number(0...4) |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns the GPIO pin direction
1, Input Direction
0, Output Direction
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - is NPSS GPIO pin number (0...4) of type sl_si91x_gpio_pin_value_t |
sl_si91x_gpio_pin_value_t | [in] | pin_value | - is NPSS GPIO pin value '0' - Output
|
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - is NPSS GPIO pin number (0...4) |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns the pin logical state of pin '0' - Output
'1' - Input
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - is NPSS GPIO pin number (0...4) |
sl_si91x_gpio_polarity_t | [in] | polarity | - GPIO polarity sl_si91x_gpio_polarity_t '1' - High
|
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | npssgpio_interrupt | - OR'ed values of the NPSS GPIO interrupts |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_configure_uulp_interrupt()
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_configure_uulp_interrupt()
Returns
returns the UULP INTR status. 1, interrupt has been raised
0, interrupt is masked or not raised
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | : ULP GPIO interrupt sources status. |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
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
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | : ULP GPIO interrupt sources to clear. |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_configure_ulp_pin_interrupt()
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_group_interrupt_t | [in] | group_interrupt | - Group interrupt number of type sl_si91x_group_interrupt_t |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_driver_set_pin_direction()
sl_si91x_gpio_driver_configure_ulp_group_interrupt()
Use the corresponding group interrupt configuration API for the corresponding GPIO instance.
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_gpio_interrupt_config_flag_t | [in] | flags | - Interrupt configuration flags of type sl_si91x_gpio_interrupt_config_flag_t |
uint8_t | [in] | npssgpio_interrupt | - NPSS GPIO input number (0 to 4) |
sl_gpio_irq_callback_t | [in] | gpio_callback | - IRQ function pointer |
Pre-conditions:
Pre-conditions:
sl_si91x_gpio_set_uulp_pad_configuration()
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_si91x_gpio_group_interrupt_config_t * | [in] | configuration | - configuration pointer to sl_si91x_gpio_group_interrupt_config_t structure |
sl_gpio_irq_callback_t | [in] | gpio_callback | - IRQ function pointer |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t | [in] | pin | - UULP pin number to toggle |
Pre-conditions:
Pre-conditions:
Pre-conditions:
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
uulp_pad_config_t * | [in] | pad_config | : PAD configuration pointer to uulp_pad_config_t structure |
Pre-conditions:
Returns
returns status 0 if successful, else error code as follow. SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS _OK (0X000) - Success
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
returns structure of type sl_si91x_gpio_version_t