General-Purpose Input-Output#

Modules#

sl_gpio_t

Typedefs#

typedef void(*

GPIO interrupt callback function pointer.

Functions#

STATIC __INLINE sl_status_t
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.

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.

sl_status_t
sl_gpio_driver_get_pin_mode(sl_gpio_t *gpio, sl_gpio_mode_t *mode)

Get the GPIO pin status.

sl_status_t
STATIC __INLINE sl_status_t
sl_gpio_driver_set_pin(sl_gpio_t *gpio)

Set a single pin in GPIO configuration register to 1.

STATIC __INLINE sl_status_t
sl_gpio_driver_clear_pin(sl_gpio_t *gpio)

Set a single pin in GPIO configuration register to 0.

STATIC __INLINE sl_status_t
sl_gpio_driver_toggle_pin(sl_gpio_t *gpio)

Toggle a single pin in GPIO port register.

STATIC __INLINE sl_status_t
sl_gpio_driver_get_pin(sl_gpio_t *gpio, uint8_t *pin_value)

Read the pad value for a single pin in a GPIO 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.

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.

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.

STATIC __INLINE uint8_t

Get the current setting for a pin in a GPIO configuration register.

STATIC __INLINE sl_status_t
sl_gpio_driver_set_port_output_value(sl_gpio_port_t port, uint32_t val, uint32_t mask)
STATIC __INLINE sl_status_t
sl_gpio_driver_set_slew_rate(sl_gpio_port_t port, uint32_t slewrate, uint32_t slewrate_alt)
STATIC __INLINE uint32_t
sl_gpio_driver_get_port_input(sl_gpio_port_t port)
STATIC __INLINE sl_status_t
sl_gpio_driver_toggle_port_output(sl_gpio_port_t port, uint32_t pins)
STATIC __INLINE sl_status_t
STATIC __INLINE sl_status_t
STATIC __INLINE sl_status_t
STATIC __INLINE uint32_t
STATIC __INLINE uint32_t
STATIC __INLINE uint32_t
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.

uint8_t
sl_si91x_gpio_driver_get_pin_direction(uint8_t port, uint8_t pin)

Get the direction GPIO.

sl_status_t

Enable the receiver bit in the PAD configuration register.

sl_status_t

Disable the receiver bit in the PAD configuration register.

sl_status_t

Select the pad(0 to 21).

sl_status_t
sl_si91x_gpio_driver_select_pad_driver_strength(uint8_t gpio_num, sl_si91x_gpio_driver_strength_select_t strength)

Select drive strength of a GPIO pin.

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.

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 of the group interrupt.

sl_status_t
sl_si91x_gpio_driver_clear_group_interrupt(sl_si91x_group_interrupt_t group_interrupt)

Clear the 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 group interrupt status.

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 wake up the 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 group interrupts.

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 polarity of group interrupt.

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 of group interrupt.

uint8_t
sl_si91x_gpio_driver_get_group_interrupt_level_edge(uint8_t port, sl_si91x_group_interrupt_t group_interrupt)

Get the level/edge event of group interrupt.

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 of group interrupt.

sl_status_t
sl_si91x_gpio_driver_unmask_group_interrupt(uint8_t port, sl_si91x_group_interrupt_t group_interrupt)

Unmask the group interrupts.

sl_status_t
sl_si91x_gpio_driver_mask_group_interrupt(uint8_t port, sl_si91x_group_interrupt_t group_interrupt)

Mask the group interrupts.

sl_status_t
sl_si91x_gpio_driver_disable_clock(sl_si91x_gpio_select_clock_t clock)

Disable HP/ULP GPIO clock.

sl_status_t
sl_si91x_gpio_driver_enable_clock(sl_si91x_gpio_select_clock_t clock)

Enable HP/ULP GPIO clock.

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 ULP 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 group interrupts.

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 group interrupts.

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.

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.

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.

sl_status_t

Disable the receiver bit for ULP.

sl_status_t

Enable the receiver bit for ULP.

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 GPIO pin interrupt.

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).

sl_status_t
sl_si91x_gpio_driver_select_uulp_npss_receiver(uint8_t pin, sl_si91x_gpio_receiver_t receiver)

Enable/disable NPSS GPIO receiver.

sl_status_t
sl_si91x_gpio_driver_set_uulp_npss_direction(uint8_t pin, sl_si91x_gpio_direction_t direction)

Set the direction of the NPSS GPIO.

uint8_t

Get the direction of the NPSS GPIO.

sl_status_t
sl_si91x_gpio_driver_set_uulp_npss_pin_value(uint8_t pin, sl_si91x_gpio_pin_value_t pin_value)

Control the NPSS GPIO pin value.

uint8_t

Get the NPSS GPIO pin value.

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.

sl_status_t

Set the UULP NPSS GPIO to wake up interrupt.

sl_status_t

Clear the UULP NPSS GPIO to wake up interrupt.

sl_status_t

Mask the NPSS GPIO interrupt.

sl_status_t

Unmask the NPSS GPIO interrupt.

sl_status_t
sl_si91x_gpio_driver_clear_uulp_interrupt(uint8_t npssgpio_interrupt)

Clear the NPSS GPIO interrupt.

uint8_t

Get the NPSS GPIO interrupt status.

sl_status_t

Clear one or more pending ULP GPIO interrupts.

sl_status_t
sl_si91x_gpio_driver_clear_ulp_group_interrupt(sl_si91x_group_interrupt_t group_interrupt)

Clear the ULP group 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.

sl_status_t

Toggle the UULP pin.

sl_status_t

Indicate UULP GPIO PAD configuration.

sl_si91x_gpio_version_t

Get the release, SQA, and development version numbers of the GPIO peripheral.

Macros#

#define
GPIO_MAX_OUTPUT_VALUE 1
#define
MAX_GROUP_INT 2
#define
GPIO_PORT_MAX_VALUE 4
#define
MAX_UULP_INT 5
#define
ULP_MAX_MODE 10
#define
PRIORITY_7 7
#define
GPIO_MAX_INTR_VALUE 8
#define
PORTD_PIN_MAX_VALUE 8
#define
PORTE_PIN_MAX_VALUE 11
#define
MAX_ULP_INTR 12
#define
MAX_MODE 15
#define
PORT_PIN_MAX_VALUE 15
#define
GPIO_FLAGS_MAX_VALUE 0x0F
#define
PORTA 0
#define
PORTB 1
#define
PORTC 2
#define
PORTD 3
#define
PORTE 4

Typedef Documentation#

sl_gpio_irq_callback_t#

typedef void(* sl_gpio_irq_callback_t) (void) )(void)

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)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/Aflags

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.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

uint32_t[in]int_no

- The interrupt number to trigger.

sl_gpio_interrupt_flag_t[in]flags

- Interrupt configuration flags

sl_gpio_irq_callback_t[in]gpio_callback

- IRQ function pointer

uint32_t *[out]avl_intr_no

- Pointer to the available interrupt number. SL_GPIO_INTERRUPT_UNAVAILABLE (0xFF) no available interrupt

Returns

  • returns status 0 if successful, else error code. 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_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.

Parameters
TypeDirectionArgument NameDescription
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.

Returns

  • returns status 0 if successful, else error code. 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_get_pin_mode#

sl_status_t sl_gpio_driver_get_pin_mode (sl_gpio_t * gpio, sl_gpio_mode_t * mode)

Get the GPIO pin status.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

sl_gpio_mode_t *[in]mode

- The desired pin mode.

Returns

  • returns status 0 if successful, else error code. 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 )
Parameters
TypeDirectionArgument NameDescription
voidN/A

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.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

Returns

  • returns status 0 if successful, else error code. 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_clear_pin#

STATIC __INLINE sl_status_t sl_gpio_driver_clear_pin (sl_gpio_t * gpio)

Set a single pin in GPIO configuration register to 0.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

Returns

  • returns status 0 if successful, else error code. 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_toggle_pin#

STATIC __INLINE sl_status_t sl_gpio_driver_toggle_pin (sl_gpio_t * gpio)

Toggle a single pin in GPIO port register.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

Returns

  • returns status 0 if successful, else error code. 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_get_pin#

STATIC __INLINE sl_status_t sl_gpio_driver_get_pin (sl_gpio_t * gpio, uint8_t * pin_value)

Read the pad value for a single pin in a GPIO port.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

uint8_t *N/Apin_value

Returns

  • returns status 0 if successful, else error code. 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_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.

Parameters
TypeDirectionArgument NameDescription
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 are set to 1's.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
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 to clear.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
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 *N/Aport_value

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
sl_gpio_t *[in]gpio

- Pointer to the structure of type sl_gpio_t

Returns

  • The GPIO pin value '0' - Output '1' - Input


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)
Parameters
TypeDirectionArgument NameDescription
sl_gpio_port_tN/Aport
uint32_tN/Aval
uint32_tN/Amask

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)
Parameters
TypeDirectionArgument NameDescription
sl_gpio_port_tN/Aport
uint32_tN/Aslewrate
uint32_tN/Aslewrate_alt

sl_gpio_driver_get_port_input#

STATIC __INLINE uint32_t sl_gpio_driver_get_port_input (sl_gpio_port_t port)
Parameters
TypeDirectionArgument NameDescription
sl_gpio_port_tN/Aport

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)
Parameters
TypeDirectionArgument NameDescription
sl_gpio_port_tN/Aport
uint32_tN/Apins

sl_gpio_driver_enable_interrupts#

STATIC __INLINE sl_status_t sl_gpio_driver_enable_interrupts (uint32_t flags)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/Aflags

sl_gpio_driver_disable_interrupts#

STATIC __INLINE sl_status_t sl_gpio_driver_disable_interrupts (uint32_t flags)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/Aflags

sl_gpio_driver_set_interrupts#

STATIC __INLINE sl_status_t sl_gpio_driver_set_interrupts (uint32_t flags)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/Aflags

sl_gpio_driver_get_pending_interrupts#

STATIC __INLINE uint32_t sl_gpio_driver_get_pending_interrupts (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

sl_gpio_driver_get_enabled_interrupts#

STATIC __INLINE uint32_t sl_gpio_driver_get_enabled_interrupts (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

sl_gpio_driver_get_enabled_pending_interrupts#

STATIC __INLINE uint32_t sl_gpio_driver_get_enabled_pending_interrupts (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

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.

Parameters
TypeDirectionArgument NameDescription
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 '1' - Input

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 GPIO.

Parameters
TypeDirectionArgument NameDescription
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.

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 bit in the PAD configuration register.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO number to be use.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 bit in the PAD configuration register.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO number to be use.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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)

Select the pad(0 to 21).

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_padnum

- PAD number to be use

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 drive strength of a GPIO pin.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO 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) 1, for four_milli_amps (E1=0,E2=1) 2, for eight_milli_amps (E1=1,E2=0) 3, for twelve_milli_amps(E1=1,E2=1)

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO 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) 1, for Pull-up (P1=0,P2=1) 2, for Pull-down (P1=1,P2=0) 3, for Repeater (P1=1,P2=1)

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 of the group interrupt.

Parameters
TypeDirectionArgument NameDescription
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 '1' - OR

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 is fine for group interrupt generation Choose AND, all the selected pins are necessary for group interrupt generation

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 group interrupt status.

Parameters
TypeDirectionArgument NameDescription
sl_si91x_group_interrupt_t[in]group_interrupt

- Group interrupt number of type sl_si91x_group_interrupt_t

Returns

  • returns status 0 if successful, else error code. 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 group interrupt status.

Parameters
TypeDirectionArgument NameDescription
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

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 wake up the interrupt.

Parameters
TypeDirectionArgument NameDescription
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 '0' - disable

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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, gpio_callback)

Configure the MCU HP group interrupts.

Parameters
TypeDirectionArgument NameDescription
sl_si91x_gpio_group_interrupt_config_t *[in]configuration

- The port to associate with the pin. HP instance - PORT 0,1,2,3 ULP instance - PORT 4

sl_gpio_irq_callback_t[in]gpio_callback

- configuration pointer to sl_si91x_gpio_group_interrupt_config_t structure

[in]gpio_callback

- IRQ function pointer

Returns

  • returns status 0 if successful, else error code. 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 polarity of group interrupt.

Parameters
TypeDirectionArgument NameDescription
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.

Returns

  • returns group interrupt polarity 1, when GPIO pin status is '1' 0, when GPIO pin status is '0'


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 of group interrupt.

Parameters
TypeDirectionArgument NameDescription
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 pin status is '0'

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 level/edge event of group interrupt.

Parameters
TypeDirectionArgument NameDescription
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

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 of group interrupt.

Parameters
TypeDirectionArgument NameDescription
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 0, for Level

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 group interrupts.

Parameters
TypeDirectionArgument NameDescription
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

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 group interrupts.

Parameters
TypeDirectionArgument NameDescription
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

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 HP/ULP GPIO clock.

Parameters
TypeDirectionArgument NameDescription
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 1, for ULP GPIO CLK

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 HP/ULP GPIO clock.

Parameters
TypeDirectionArgument NameDescription
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 1, for ULP GPIO CLK

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is invalid argument 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 ULP group interrupt.

Parameters
TypeDirectionArgument NameDescription
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

Configure ULP GPIO group interrupts.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer SL_STATUS _OK (0X000) - Success

Returns

  • returns status 0 if successful, else error code. SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer 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 group interrupts.

Parameters
TypeDirectionArgument NameDescription
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.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 group interrupts.

Parameters
TypeDirectionArgument NameDescription
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.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO 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 '1' - Fast

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO 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) 1, for four_milli_amps (E1=0,E2=1) 2, for eight_milli_amps (E1=1,E2=0) 3, for twelve_milli_amps(E1=1,E2=1)

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO 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) 1, for Pull up (P1=0,P2=1) 2, for Pull down (P1=1,P2=0) 3, for Repeater (P1=1,P2=1)

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 bit for ULP.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO number to be used

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 bit for ULP.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]gpio_num

- GPIO number to be used

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 GPIO pin interrupt.

Parameters
TypeDirectionArgument NameDescription
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

sl_gpio_irq_callback_t[in]gpio_callback

- IRQ function pointer

Returns

  • returns status 0 if successful, else error code. 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_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).

Parameters
TypeDirectionArgument NameDescription
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

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 NPSS GPIO receiver.

Parameters
TypeDirectionArgument NameDescription
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 '0' - Disable

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 of the NPSS GPIO.

Parameters
TypeDirectionArgument NameDescription
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 '0' - Output Direction

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 NPSS GPIO.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]pin

- is NPSS GPIO pin number(0...4)

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 the NPSS GPIO pin value.

Parameters
TypeDirectionArgument NameDescription
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 '1' - Input

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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)

Get the NPSS GPIO pin value.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]pin

- is NPSS GPIO pin number (0...4)

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.

Parameters
TypeDirectionArgument NameDescription
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 '0' - Low

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 UULP NPSS GPIO to wake up interrupt.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]npssgpio_interrupt

- OR'ed values of the NPSS GPIO interrupts

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 to wake up interrupt.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]npssgpio_interrupt

- OR'ed values of the NPSS GPIO interrupts

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 NPSS GPIO interrupt.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]npssgpio_interrupt

- OR'ed values of the NPSS GPIO interrupts

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 NPSS GPIO interrupt.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]npssgpio_interrupt

- OR'ed values of the NPSS GPIO interrupts

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 NPSS GPIO interrupt.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]npssgpio_interrupt

- OR'ed values of the NPSS GPIO interrupts

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 NPSS GPIO interrupt status.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • returns the UULP 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 one or more pending ULP GPIO interrupts.

Parameters
TypeDirectionArgument NameDescription
uint32_t[in]flags

: ULP GPIO interrupt sources to clear.

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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 ULP group interrupt.

Parameters
TypeDirectionArgument NameDescription
sl_si91x_group_interrupt_t[in]group_interrupt

- Group interrupt number of type sl_si91x_group_interrupt_t

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
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

- OR'ed values of the NPSS GPIO interrupts

sl_gpio_irq_callback_t[in]gpio_callback

- IRQ function pointer

Returns

  • returns status 0 if successful, else error code. 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_si91x_gpio_driver_toggle_uulp_npss_pin#

sl_status_t sl_si91x_gpio_driver_toggle_uulp_npss_pin (uint8_t pin)

Toggle the UULP pin.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]pin

- UULP pin number to toggle

Returns

  • returns status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is 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)

Indicate UULP GPIO PAD configuration.

Parameters
TypeDirectionArgument NameDescription
uulp_pad_config_t *[in]pad_config

: PAD configuration pointer to uulp_pad_config_t structure

Returns

  • returns status 0 if successful, else error code. SL_STATUS_NULL_POINTER (0x0022) - The parameter is 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.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • returns structure of type sl_si91x_gpio_version_t