General-Purpose Input/Output (GPIO) Retention and Wake-Up Configuration#

The SiWG917 provides mechanisms to retain General-Purpose Input/Output (GPIO) states and configure wake-up sources across various low-power modes.

This ensures that essential I/O functionality — such as wake-up triggers, status monitoring, and peripheral signaling — remains active even when most of the System-on-Chip (SoC) is powered down.

This section explains GPIO retention, wake-up source configuration, and best practices for low-power applications.

GPIO Retention Overview#

When transitioning between different power states (Active → Sleep / Active → Standby / Active → Shutdown), GPIOs that belong to certain power domains can retain their logical state even after transitioning to low power states.

Domain-Based Retention Capability#

GPIO Domain

Power Domain

Retention Capability

Typical Use

High-Performance (HP) GPIO

IO_VDD_1 / 2 / 3

No

High-performance, disabled in low-power states

Ultra-Low-Power (ULP) GPIO

ULP_IO_VDD

Partial

Retained in low-power active states (PS2 ACTIVE and PS1)

Ultra-Ultra-Low-Power (UULP) GPIO GPIO

UULP_VBATT_1

Yes

Retained across all states (Domain is always on)

Note:

  • Only UULP GPIOs can retain both their logic state and configuration during transitions into Sleep, Standby, or Shutdown modes.

  • After wake-up from Sleep mode, the SoC / HP GPIOs and ULP GPIOs must be reconfigured to restore their intended functionality.

GPIO Wake-Up Configuration#

GPIOs belonging to the UULP domain can be configured as wake-up sources for Sleep, Standby, or Shutdown modes.

The wake-up event can be triggered only by level transitions on the input pin.

Supported Wake-Up Trigger Types#

  • Level High

  • Level Low

Notes:

  • It is recommended to use the Universal Configurator (UC) available in Simplicity Studio to configure the UULP GPIOs as wake-up sources. This can be achieved through the PM Wakeup Source Configuration component, which internally uses the above APIs to set up the UULP GPIOs for wake-up functionality.

  • Multiple UULP GPIOs can be configured as wake-up sources simultaneously.

Wake-Up Event Handling#

Upon a valid wake-up event, the system transitions from a Sleep/Standby state back to the corresponding Active mode.

Once active, the registered callback function associated with the wake-up GPIO is executed.

Example: Wake-Up Callback Handler#

void uulp_gpio_wakeup_callback(void)
{
    /* Clear wake-up flag */
    sl_gpio_clear_interrupt_status(SL_SI91X_GPIO_UULP_PORT, SL_SI91X_GPIO_UULP_PIN_3);

    /* Perform wake-up specific tasks */
    system_resume_operations();
}

Tip:
After wake-up, verify which GPIO triggered the event using the GPIO status register, as multiple wake-up sources may be active.

Recommended Design Guidelines#

Design Aspect

Recommendation

Retention Strategy

Use UULP GPIOs for critical always-on control signals or state retention.

Wake-Up Control

Assign UULP GPIOs for external events such as button presses or sensor triggers.

Debouncing

Apply hardware or software debounce for mechanical switches used as wake-up sources.

Power Domains

Avoid using HP GPIOs in low-power paths, as they are powered off in PS2 and below.

System Resume

Reinitialize GPIOs and clear flags upon wake-up to prevent repeated triggers.

Summary#

  • UULP GPIOs are the primary means of maintaining connectivity and responsiveness in low-power modes.

  • ULP GPIOs retain function in PS2 active and PS1 states but are inactive during PS2 sleep.

  • Combining low power GPIO operation with event-driven wake-up maximizes both power efficiency and system responsiveness.