Power Manager#
Introduction#
The power manager is a platform-level software module that manages the system's power states. The power state requirements are set by the different software modules (drivers, stacks, application code, etc...). Power manager also offers a notification mechanism through which any piece of software module can be notified of power state transitions through callbacks.
Initialization
Power manager must be initialized before any call to power manager API. If sl_system is used, only sl_system_init() must be called, otherwise sl_si91x_power_manager_init() must be called manually.
Add and remove requirements
The driver/application can add and remove power state requirements, at runtime. Add requirement will change the power state, remove requirement function call will not have any effect for state transition. sl_si91x_power_manager_add_peripheral_requirement()
sl_si91x_power_manager_remove_peripheral_requirement()
Subscribe to events
It is possible to get notified when the system transitions from a power state to another power state. This can allow to do some operations depending on which level the system goes, such as saving/restoring context. sl_si91x_power_manager_subscribe_ps_transition_event()
sl_si91x_power_manager_unsubscribe_ps_transition_event()
Sleep
When the software has no more operation and only needs to wait for an event, the software must call sl_si91x_power_manager_sleep().
Query callback functions
Is OK to sleep
Between the time sl_si91x_power_manager_sleep() is called and the MCU goes to sleep, an ISR may occur and require the system to resume at that time instead of sleeping. So a callback is called in a critical section to validate that the MCU can go to sleep.
The function sl_si91x_power_manager_is_ok_to_sleep() will be generated automatically by Simplicity Studio's wizard. The function will look at multiple software modules from the SDK to make a decision. The application can contribute to the decision by defining the function `app_is_ok_to_sleep(). If any of the software modules (including the application via app_is_ok_to_sleep()) return false, the process of entering in sleep will be aborted.
Sleep on ISR exit
When the system enters sleep, the only way to wake it up is via an interrupt or exception. By default, power manager will assume that when an interrupt occurs and the corresponding ISR has been executed, the system must not go back to sleep. However, in the case where all the processing related to this interrupt is performed in the ISR, it is possible to go back to sleep by using this hook.
The function sl_si91x_power_manager_sleep_on_isr_exit() will be generated automatically by Simplicity Studio's wizard. The function will look at multiple software modules from the SDK to make a decision. The application can contribute to the decision by defining the function app_sleep_on_isr_exit(). The generated function will make a decision based on the value returned by the different software modules (including the application via app_sleep_on_isr_exit()):
SL_SI91X_POWER_MANAGER_ISR_IGNORE: if the software module did not cause the system wakeup and/or doesn't want to contribute to the decision.
SL_SI91X_POWER_MANAGER_ISR_SLEEP: if the software module did cause the system wakeup, but the system should go back to sleep.
SL_SI91X_POWER_MANAGER_ISR_WAKEUP: if the software module did cause the system wakeup, and the system should not go back to sleep.
If any software module returned SL_SI91X_POWER_MANAGER_ISR_SLEEP and none returned SL_SI91X_POWER_MANAGER_ISR_WAKEUP, the system will go back to sleep. Any other combination will cause the system not to go back to sleep.
Debugging feature
By installing power manager debug component and setting the configuration define SL_SI91X_POWER_MANAGER_DEBUG to 1, it is possible to record the requirements currently set and their owner. It is possible to print at any time a table that lists all the added requirements and their owner. This table can be printed by calling the function: sl_power_manager_debug_print_em_requirements().
Make sure to add the following define
#define CURRENT_MODULE_NAME // Module printable name here
to any application code source file that adds and removes requirements.
Configuration#
Power manager allows configuration of RAM retention, peripheral states, wakeup sources, and clock scaling.
Clock Scaling:
Clock can be configured as power-save or performance based on the user requirement. By default after the state change, the clock is configured as powersave. The below API is used to set the clock scaling. sl_si91x_power_manager_set_clock_scaling(); where mode can be either power-save or performance.
Peripheral States:
High power, ULPSS, and NPSS peripherals can be configured using the below APIs. It can be powered on or off based on user requirements. sl_si91x_power_manager_add_peripheral_requirement()sl_si91x_power_manager_remove_peripheral_requirement();
RAM retention:
Retains the RAM in low power state either by using size or RAM bank as input parameter. sl_si91x_power_manager_configure_ram_retention();
Wakeup source:
The wakeup sources can be configured using the below API. sl_si91x_power_manager_set_wakeup_sources();
Usage#
Initialization:
sl_si91x_power_manager_init(): Initializes the power manager service and sets the initial power state.
Peripheral requirements:
sl_si91x_power_manager_add_peripheral_requirement(): It turns on/off the peripheral power
sl_si91x_power_manager_remove_peripheral_requirement(): Removes the peripheral requirement.
Power State Transitions:
sl_si91x_power_manager_subscribe_ps_transition_event(): Registers a callback for a specific power state transition.
sl_si91x_power_manager_sleep(): Puts the device into sleep mode.
sl_si91x_power_manager_unsubscribe_ps_transition_event(): Unregisters the callback for the power state transition.
De-initialization:
sl_si91x_power_manager_deinit(): De-initializes the power manager service.
Usage Example
#define EM_EVENT_MASK_ALL (SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS4
| SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS4
| SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS3
| SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS3
| SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS2
| SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS2
| SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_SLEEP)
static void power_manager_app(void)
{
sl_status_t status;
sl_power_manager_ps_transition_event_handle_t handle;
sl_power_manager_ps_transition_event_info_t info = { .event_mask = PS_EVENT_MASK, .on_event = transition_callback };
// Subscribe the state transition callback events, the ored value of flag and function pointer is passed in this API.
status = sl_si91x_power_manager_subscribe_ps_transition_event(&handle, &info);
if (status != SL_STATUS_OK) {
// If status is not OK, return with the error code.
return;
}
// Configuring the RAM retention used for sleep-wakeup.
sl_power_ram_retention_config_t config;
config.configure_ram_banks = true;
config.m4ss_ram_banks = SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_8 | SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_9 | SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_10;
config.ulpss_ram_banks = SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_2 | SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_3;
// RAM retention modes are configured and passed into this API.
status = sl_si91x_power_manager_configure_ram_retention(&config);
if (status != SL_STATUS_OK) {
// If status is not OK, return with the error code.
return;
}
// Change state to PS2
sl_si91x_power_manager_add_ps_requirement(SL_SI91X_POWER_MANAGER_PS2);
// CODE BLOCK //
// Change state to PS4
// Removed PS2 requirement as it is no longer required.
sl_si91x_power_manager_remove_ps_requirement(SL_SI91X_POWER_MANAGER_PS2);
sl_si91x_power_manager_add_ps_requirement(SL_SI91X_POWER_MANAGER_PS2);
// SLEEP_WAKEUP
// Initialize wakeup source
// Replace the wakeup source peripheral macro defined in sl_si91x_power_manager.h file
// It sets the below peripheral as wakeup source
sl_si91x_power_manager_set_wakeup_source(WAKEUP_SOURCE, true);
sl_si91x_power_manager_sleep();
}
Modules#
sl_power_ram_retention_config_t
sl_power_manager_ps_transition_event_info_t
sl_power_manager_ps_transition_event_handle_t
Enumerations#
Enumeration for the power states.
Enumeration for clock scaling parameters.
On ISR Exit Hook answer.
Typedefs#
Mask of all the event(s) to listen to.
Typedef for the user supplied callback function which is called when an power state transition occurs.
Functions#
Initialize the power manager service.
Disable interrupts.
Enable interrupts.
Adds requirement on power states.
Removes requirement on power states.
Configures the clock scaling.
Adds the peripheral requirement.
Removes the peripheral requirement.
Registers a callback to be called on given Power state transition(s).
Unregisters an event callback handle on Power State transition.
Transit to sleep mode and waits for the peripheral set as wakeup source to trigger and wakeup the m4 soc.
Transit to standby state and waits for the interrupt.
Configures the wakeup sources.
Retains the RAM in low power state either by using size or RAM bank as input parameter.
Returns the current power state.
Get the current requirements on all the power states.
De-initialize the power manager service.
Print a table that describes the current requirements on each power state and their owner.
Macros#
Event transition for entering PS4 state.
Event transition for leaving PS4 state.
Event transition for entering PS3 state.
Event transition for leaving PS3 state.
Event transition for entering PS2 state.
Event transition for leaving PS2 state.
Event transition for leaving PS1 state.
Event transition for leaving sleep state.
Event transition for leaving standby state.
Deep Sleep Timer based wakeup source.
Wireless based wakeup source.
GPIO based wakeup source.
Comparator based wakeup source.
Sysrtc based wakeup source.
ULP peripheral based wakeup source.
SDC (Sensor data collector) based wakeup source.
Alarm based wakeup source.
Second based wakeup source.
Milli second based wakeup source.
Watchdog interrupt based wakeup source.
M4SS EFUSE Power Gate.
M4SS RPDMA Power Gate.
M4SS SDIO SPI Power Gate.
M4SS QSPI and ICACHE Power Gate.
M4SS IID Power Gate.
M4SS M4 Debug Power Gate.
M4SS M4 Core Power Gate.
M4SS External ROM Power Gate.
ULP Miscellaneous Power Gate.
ULP Capacitive Touch Sensor Power Gate.
ULP UART Power Gate.
ULP SSI Power Gate.
ULP I2S Power Gate.
ULP I2C Power Gate.
ULP AUX Power Gate.
ULP IR Power Gate.
ULP UDMA Power Gate.
ULP FIM Power Gate.
NPSS MCU BFFS (Battery FF's) Power Gate.
NPSS MCU FSM Power Gate.
NPSS MCU RTC (Real Time Clock) Power Gate.
NPSS MCU WDT (Watchdog Timer) Power Gate.
NPSS MCU Process Sensor Power Gate.
NPSS MCU Temperature Sensor Power Gate.
NPSS MCU Storage 1 Power Gate.
NPSS MCU Storage 2 Power Gate.
NPSS MCU Storage 3 Power Gate.
NPSS Time Period Power Gate.
NPSS MCU APB Control Power Gate.
4 KB (Bank 1 of first 192k chunk)
4 KB (Bank 2 of first 192k chunk)
4 KB (Bank 3 of first 192k chunk)
4 KB (Bank 4 of first 192k chunk)
4 KB (Bank 5 of first 192k chunk)
32 KB (Bank 6-7 of first 192k chunk)
64 KB (Bank 9-11 of first 192k chunk)
64 KB (Bank 12-15 of first 192k chunk)
64 KB (Bank 1-4 of second 192k chunk)
64 KB (Bank 1-4 of third 192k chunk)
2 KB
2 KB
2 KB
2 KB
Enumeration Documentation#
sl_power_state_t#
sl_power_state_t
Enumeration for the power states.
Enumerator | |
---|---|
SL_SI91X_POWER_MANAGER_PS0 | PS0 Power State. |
SL_SI91X_POWER_MANAGER_PS1 | PS1 Power State. |
SL_SI91X_POWER_MANAGER_PS2 | PS2 Power State. |
SL_SI91X_POWER_MANAGER_PS3 | PS3 Power State. |
SL_SI91X_POWER_MANAGER_PS4 | PS4 Power State. |
SL_SI91X_POWER_MANAGER_SLEEP | Sleep. |
SL_SI91X_POWER_MANAGER_STANDBY | Standby. |
LAST_ENUM_POWER_STATE | Last enum for validation. |
163
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_clock_scaling_t#
sl_clock_scaling_t
Enumeration for clock scaling parameters.
Enumerator | |
---|---|
SL_SI91X_POWER_MANAGER_POWERSAVE | Minimum supported frequency in a power state. |
SL_SI91X_POWER_MANAGER_PERFORMANCE | Maximum supported frequency in a power state. |
LAST_ENUM_CLOCK_SCALING | Last enum for validation. |
175
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_on_isr_exit_t#
sl_si91x_power_manager_on_isr_exit_t
On ISR Exit Hook answer.
Enumerator | |
---|---|
SL_SI91X_POWER_MANAGER_ISR_IGNORE | The module did not trigger an ISR and it doesn't want to contribute to the decision. |
SL_SI91X_POWER_MANAGER_ISR_SLEEP | The module was the one that caused the system wakeup and the system SHOULD go back to sleep. |
SL_SI91X_POWER_MANAGER_ISR_WAKEUP | The module was the one that caused the system wakeup and the system MUST NOT go back to sleep. |
182
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
Typedef Documentation#
sl_power_manager_ps_transition_event_t#
typedef uint32_t sl_power_manager_ps_transition_event_t
Mask of all the event(s) to listen to.
192
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_power_manager_ps_transition_on_event_t#
typedef void(* sl_power_manager_ps_transition_on_event_t) (sl_power_state_t from, sl_power_state_t to) )(sl_power_state_t from, sl_power_state_t to)
Typedef for the user supplied callback function which is called when an power state transition occurs.
N/A | from | Power state we are leaving. |
N/A | to | Power state we are entering. |
201
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
Function Documentation#
sl_si91x_power_manager_init#
sl_status_t sl_si91x_power_manager_init (void )
Initialize the power manager service.
[in] |
Configures PS4 state with 100 MHz system clock.
Pre-conditions:
none
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_ALREADY_INITIALIZED (0x0012) Power Manager is already initialized.
270
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_core_entercritical#
__STATIC_INLINE void sl_si91x_power_manager_core_entercritical (void )
Disable interrupts.
N/A |
Disable all interrupts by setting PRIMASK. (Fault exception handlers will still be enabled).
278
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_core_exitcritical#
__STATIC_INLINE void sl_si91x_power_manager_core_exitcritical (void )
Enable interrupts.
N/A |
Enable interrupts by clearing PRIMASK.
288
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_add_ps_requirement#
__STATIC_INLINE sl_status_t sl_si91x_power_manager_add_ps_requirement (sl_power_state_t state)
Adds requirement on power states.
[in] | state | Power state to add requirement: sl_power_state_t
|
Default state for power manager is PS4. If any requirements are added then power manager switches to the state if it is a valid transition. Before transition from one state to another, make sure to remove requirements of previous states if any added. If any invalid state requirement is added then it returns SL_STATUS_INVALID_PARAMETER. If power manager service is not initialized then it returns SL_STATUS_NOT_INITIALIZED, to initialize call sl_si91x_power_manager_init. To get the requirements on all power states, call sl_si91x_power_manager_get_requirement_table. To know the current power state, use sl_si91x_power_manager_get_current_state.
Pre-conditions:
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
- SL_STATUS_OK (0x0000) Success. - SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized. - SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed.
325
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_remove_ps_requirement#
__STATIC_INLINE sl_status_t sl_si91x_power_manager_remove_ps_requirement (sl_power_state_t state)
Removes requirement on power states.
[in] | state | Power state to remove requirement: sl_power_state_t
|
Default state for power manager is PS4. Removing requirement will not impact on power state transitions. If the current state is PS4 and no other requirements are added, and PS4 requirement is removed then it returns SL_STATUS_INVALID_PARAMETER. If power manager service is not initialized then it returns SL_STATUS_NOT_INITIALIZED, to initialize call sl_si91x_power_manager_init. To get the requirements on all power states, call sl_si91x_power_manager_get_requirement_table. To know the current power state, use sl_si91x_power_manager_get_current_state.
Pre-conditions:
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized.
SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed.
379
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_set_clock_scaling#
sl_status_t sl_si91x_power_manager_set_clock_scaling (sl_clock_scaling_t mode)
Configures the clock scaling.
[in] | mode | (sl_clock_scaling_t type enum) the clock scaling mode sl_clock_scaling_t |
PS4 and PS3 states are supported only. Possible values for clock scaling are:
POWERSAVE and PERFORMANCE
PS4 Performance: 180 MHz clock
PS4 Power-save: 100 MHz clock
PS3 Performance: 80 MHz clock
PS3 Power-save: 32 MHz clock
For PS2 state, 20 MHz clock is default.
If power manager service is not initialized then it returns SL_STATUS_NOT_INITIALIZED, to initialize call sl_si91x_power_manager_init.
Pre-conditions:
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
- SL_STATUS_OK (0x0000) Success. - SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized. - SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed. - SL_STATUS_INVALID_CONFIGURATION (0x0023) Invalid configuration of mode.
431
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_add_peripheral_requirement#
sl_status_t sl_si91x_power_manager_add_peripheral_requirement (sl_power_peripheral_t * peripheral)
Adds the peripheral requirement.
[in] | peripheral | structure for different peripherals sl_power_peripheral_t |
Power on the peripherals the valid peripherals passed in the structure. Structure member possible values: sl_power_peripheral_t
m4ss_peripheral -> Accepts masked value of m4ss peripherals.
ulpss_peripheral -> Accepts masked value of ulpss peripherals.
npss_peripheral -> Accepts masked value of npss peripherals. The values of enums can be combined by using 'OR' operator and then passed to the variable.
Pre-conditions:
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
- SL_STATUS_OK (0x0000) Success. - SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized. - SL_STATUS_INVALID_STATE (0x0002) Not a valid transition. - SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed.
459
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_remove_peripheral_requirement#
sl_status_t sl_si91x_power_manager_remove_peripheral_requirement (sl_power_peripheral_t * peripheral)
Removes the peripheral requirement.
[in] | peripheral | Structure for different peripherals sl_power_peripheral_t |
Power off the peripherals the valid peripherals passed in the structure. Structure member possible values: sl_power_peripheral_t
m4ss_peripheral -> Accepts masked value of m4ss peripherals.
ulpss_peripheral -> Accepts masked value of ulpss peripherals.
npss_peripheral -> Accepts masked value of npss peripherals. The values of enums can be combined by using 'OR' operator and then passed to the variable.
Pre-conditions:
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
- SL_STATUS_OK (0x0000) Success. - SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized. - SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed.
485
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_subscribe_ps_transition_event#
sl_status_t sl_si91x_power_manager_subscribe_ps_transition_event (sl_power_manager_ps_transition_event_handle_t * event_handle, const sl_power_manager_ps_transition_event_info_t * event_info)
Registers a callback to be called on given Power state transition(s).
[in] | event_handle | Event handle (no initialization needed). |
[in] | event_info | Event info structure that contains the event mask and the callback that must be called. |
If power manager service is not initialized then it returns SL_STATUS_NOT_INITIALIZED, to initialize call sl_si91x_power_manager_init.
Pre-conditions:
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized.
SL_STATUS_NULL_POINTER (0x0022) Null Pointer is passed.
Note
Adding and removing power state transition requirement(s) from a callback on a transition event is not supported.
The parameters passed must be persistent, meaning that they need to survive until the callback fires.
An ASSERT is thrown if the handle is not found.
Usage example:
#define PS_EVENT_MASK ( SL_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS4 \
| SL_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS4 \
| SL_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS3 \
| SL_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS3 \
| SL_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS2 \
| SL_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS2 \
| SL_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS0 \
| SL_POWER_MANAGER_EVENT_TRANSITION_LEAVING_SLEEP)
sl_power_manager_ps_transition_event_handle_t handle;
sl_power_manager_ps_transition_event_info_t info = { .event_mask = PS_EVENT_MASK,
.on_event = transition_callback };
void transition_callback(sl_power_state_t from, sl_power_state_t to)
{
[...]
}
void main(void)
{
sl_status_t status;
status = sl_si91x_power_manager_init();
// Validate the status
status = sl_si91x_power_manager_subscribe_ps_transition_event(&handle, &info);
// Validate the status
}
546
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_unsubscribe_ps_transition_event#
sl_status_t sl_si91x_power_manager_unsubscribe_ps_transition_event (sl_power_manager_ps_transition_event_handle_t * event_handle, const sl_power_manager_ps_transition_event_info_t * event_info)
Unregisters an event callback handle on Power State transition.
[in] | event_handle | Event handle which must be unregistered (must have been registered previously). |
[in] | event_info | Event info structure that contains the event mask and the callback that must be called. |
If power manager service is not initialized then it returns SL_STATUS_NOT_INITIALIZED, to initialize call sl_si91x_power_manager_init.
Pre-conditions:
sl_si91x_power_manager_subscribe_ps_transition
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized.
SL_STATUS_NULL_POINTER (0x0022) Null Pointer is passed.
Note
An ASSERT is thrown if the handle is not found.
576
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_sleep#
sl_status_t sl_si91x_power_manager_sleep (void )
Transit to sleep mode and waits for the peripheral set as wakeup source to trigger and wakeup the m4 soc.
N/A |
It supports PS4, PS3 and PS2 only, it cannot enter sleep mode from any other active states. If any error is there, it returns the error code and does not transit to sleep mode.
Note
This function expects and call a callback with the following signature:
boolean_t sl_si91x_power_manager_is_ok_to_sleep(void)
. This function can be used to cancel a sleep action and handle the possible race condition where an ISR that would cause a wakeup is triggered right after the decision to call sl_si91x_power_manager_sleep() has been made.
This function also expects and call a callback with the following signature: boolean_t sl_si91x_power_manager_isr_wakeup(void)
after wakeup from sleep. The possible return values are
SL_SI91X_POWER_MANAGER_ISR_IGNORE
SL_SI91X_POWER_MANAGER_ISR_SLEEP
SL_SI91X_POWER_MANAGER_ISR_WAKEUP Note
It can end up in infinite sleep-wakeup loop if continuously SL_SI91X_POWER_MANAGER_ISR_SLEEP return value is passed.
Pre-conditions:
sl_si91x_power_manager_subscribe_ps_transition
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized.
SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed.
SL_STATUS_INVALID_STATE (0x0002) Not a valid transition.
625
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_standby#
void sl_si91x_power_manager_standby (void )
Transit to standby state and waits for the interrupt.
N/A |
Standby transition is possible from PS4, PS3, PS2 state only. Transition from sleep, PS1 or PS0 is not supported.
Pre-conditions:
sl_si91x_power_manager_subscribe_ps_transition
Returns
The following values are returned:
none
643
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_set_wakeup_sources#
sl_status_t sl_si91x_power_manager_set_wakeup_sources (uint32_t source, boolean_t add)
Configures the wakeup sources.
[in] | source | (sl_power_wakeup_sources_t type enum) Wakeup sources sl_power_wakeup_sources_t |
[in] | add | (boolean_t) true enables and false disables wakeup source |
One or many wakeup sources can be configured by using 'OR' operation. The initialization of the peripheral configured as wakeup source needs to be performed by user. Power Manager only sets it as a wakeup source.
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized.
SL_STATUS_INVALID_PARAMETER (0x0021) Invalid Parameter is passed.
673
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_configure_ram_retention#
sl_status_t sl_si91x_power_manager_configure_ram_retention (sl_power_ram_retention_config_t * config)
Retains the RAM in low power state either by using size or RAM bank as input parameter.
[in] | config | Structure for the parameters of RAM retention sl_power_ram_retention_config_t. |
Structure member possible values: sl_power_ram_retention_config_t
configure_ram_banks -> Boolean to switch between RAM Bank retentions. Either by size or by RAM bank number.
(Enable -> Use RAM Bank Number).
(Disable -> Use Size).
m4ss_ram_size_kb -> Retains m4ss RAM banks according to the size.
less than 320 KB (Enter 100 for 100 KB).
ulpss_ram_size_kb -> Retains ulpss RAM banks according to the size.
less than 8 KB (Enter 5 for 5 KB).
ram_bank_number -> Retains the m4ss and ulpss RAM Bank using bank number
Pre-conditions:
sl_si91x_power_manager_subscribe_ps_transition
Returns
The following values are returned:
status SL_STATUS_OK on success, else error code.
SL_STATUS_OK (0x0000) Success.
SL_STATUS_NOT_INITIALIZED (0x0011) Power Manager is not initialized.
SL_STATUS_NULL_POINTER (0x0022) Null Pointer is passed.
711
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_get_current_state#
sl_power_state_t sl_si91x_power_manager_get_current_state (void )
Returns the current power state.
[in] |
Possible return values:
2 : SL_POWER_MANAGER_PS2, ///< PS2 Power State
3 : SL_POWER_MANAGER_PS3, ///< PS3 Power State
4 : SL_POWER_MANAGER_PS4, ///< PS4 Power State
Returns
The following values are returned:
sl_power_state_t enum value indicating current power state
728
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_get_requirement_table#
uint8_t * sl_si91x_power_manager_get_requirement_table (void )
Get the current requirements on all the power states.
[in] |
It returns 5 values starting from PS0 to PS4.
Pre-conditions:
Returns
The following values are returned:
Pointer to the uint8_t type array which contains 5 elements
Usage example:
void main()
{
uint8_t *requirement_table;
sl_si91x_power_manager_init();
requirement_table = sl_si91x_power_manager_get_requirement_table();
DEBUGOUT("PS4: %d, PS3: %d, PS2: %d, PS1: %d, PS0: %d",
-
requirement_table[4],
-
requirement_table[3],
-
requirement_table[2],
-
requirement_table[1],
-
requirement_table[0]);
-
}
764
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_deinit#
void sl_si91x_power_manager_deinit (void )
De-initialize the power manager service.
[in] |
It clears all the power requirements and callback event subscriptions. If power manager service is not initialized then it returns SL_STATUS_NOT_INITIALIZED, to initialize call sl_si91x_power_manager_init.
Pre-conditions:
Returns
The following values are returned:
none
779
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_get_lowest_ps#
sl_power_state_t sl_si91x_get_lowest_ps (void )
N/A |
787
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_is_ok_to_sleep#
boolean_t sl_si91x_power_manager_is_ok_to_sleep (void )
N/A |
792
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sl_si91x_power_manager_debug_print_ps_requirements#
void sl_si91x_power_manager_debug_print_ps_requirements (void )
Print a table that describes the current requirements on each power state and their owner.
N/A |
51
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager_debug.h
Macro Definition Documentation#
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS4#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS4Value:
(1 << 0)
Event transition for entering PS4 state.
65
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS4#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS4Value:
(1 << 1)
Event transition for leaving PS4 state.
66
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS3#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS3Value:
(1 << 2)
Event transition for entering PS3 state.
67
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS3#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS3Value:
(1 << 3)
Event transition for leaving PS3 state.
68
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS2#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_ENTERING_PS2Value:
(1 << 4)
Event transition for entering PS2 state.
69
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS2#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS2Value:
(1 << 5)
Event transition for leaving PS2 state.
70
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS1#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_PS1Value:
(1 << 6)
Event transition for leaving PS1 state.
71
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_SLEEP#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_SLEEPValue:
(1 << 7)
Event transition for leaving sleep state.
72
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_STANDBY#
#define SL_SI91X_POWER_MANAGER_EVENT_TRANSITION_LEAVING_STANDBYValue:
(1 << 8)
Event transition for leaving standby state.
73
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_DST_WAKEUP#
#define SL_SI91X_POWER_MANAGER_DST_WAKEUPValue:
DST_BASED_WAKEUP
Deep Sleep Timer based wakeup source.
76
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_WIRELESS_WAKEUP#
#define SL_SI91X_POWER_MANAGER_WIRELESS_WAKEUPValue:
WIRELESS_BASED_WAKEUP
Wireless based wakeup source.
77
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_GPIO_WAKEUP#
#define SL_SI91X_POWER_MANAGER_GPIO_WAKEUPValue:
GPIO_BASED_WAKEUP
GPIO based wakeup source.
78
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_COMPARATOR_WAKEUP#
#define SL_SI91X_POWER_MANAGER_COMPARATOR_WAKEUPValue:
COMPR_BASED_WAKEUP
Comparator based wakeup source.
79
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_SYSRTC_WAKEUP#
#define SL_SI91X_POWER_MANAGER_SYSRTC_WAKEUPValue:
SYSRTC_BASED_WAKEUP
Sysrtc based wakeup source.
80
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_WAKEUP#
#define SL_SI91X_POWER_MANAGER_ULPSS_WAKEUPValue:
ULPSS_BASED_WAKEUP
ULP peripheral based wakeup source.
81
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_SDCSS_WAKEUP#
#define SL_SI91X_POWER_MANAGER_SDCSS_WAKEUPValue:
SDCSS_BASED_WAKEUP
SDC (Sensor data collector) based wakeup source.
82
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ALARM_WAKEUP#
#define SL_SI91X_POWER_MANAGER_ALARM_WAKEUPValue:
ALARM_BASED_WAKEUP
Alarm based wakeup source.
83
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_SEC_WAKEUP#
#define SL_SI91X_POWER_MANAGER_SEC_WAKEUPValue:
SEC_BASED_WAKEUP
Second based wakeup source.
84
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_MSEC_WAKEUP#
#define SL_SI91X_POWER_MANAGER_MSEC_WAKEUPValue:
MSEC_BASED_WAKEUP
Milli second based wakeup source.
85
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_WDT_WAKEUP#
#define SL_SI91X_POWER_MANAGER_WDT_WAKEUPValue:
WDT_INTR_BASED_WAKEUP
Watchdog interrupt based wakeup source.
86
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_EFUSE#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_EFUSEValue:
M4SS_PWRGATE_ULP_EFUSE_PERI
M4SS EFUSE Power Gate.
89
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_RPDMA#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_RPDMAValue:
M4SS_PWRGATE_ULP_RPDMA
M4SS RPDMA Power Gate.
90
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_SDIO_SPI#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_SDIO_SPIValue:
M4SS_PWRGATE_ULP_SDIO_SPI
M4SS SDIO SPI Power Gate.
91
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_QSPI#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_QSPIValue:
M4SS_PWRGATE_ULP_QSPI_ICACHE
M4SS QSPI and ICACHE Power Gate.
92
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_IID#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_IIDValue:
M4SS_PWRGATE_ULP_IID
M4SS IID Power Gate.
93
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_M4_DEBUG#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_M4_DEBUGValue:
M4SS_PWRGATE_ULP_M4_DEBUG_FPU
M4SS M4 Debug Power Gate.
94
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_M4_CORE#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_M4_COREValue:
M4SS_PWRGATE_ULP_M4_CORE
M4SS M4 Core Power Gate.
95
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_PG_EXTERNAL_ROM#
#define SL_SI91X_POWER_MANAGER_M4SS_PG_EXTERNAL_ROMValue:
M4SS_PWRGATE_ULP_EXT_ROM
M4SS External ROM Power Gate.
96
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_MISC#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_MISCValue:
ULPSS_PWRGATE_ULP_MISC
ULP Miscellaneous Power Gate.
99
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_CAP#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_CAPValue:
ULPSS_PWRGATE_ULP_CAP
ULP Capacitive Touch Sensor Power Gate.
100
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_UART#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_UARTValue:
ULPSS_PWRGATE_ULP_UART
ULP UART Power Gate.
101
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_SSI#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_SSIValue:
ULPSS_PWRGATE_ULP_SSI
ULP SSI Power Gate.
102
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_I2S#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_I2SValue:
ULPSS_PWRGATE_ULP_I2S
ULP I2S Power Gate.
103
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_I2C#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_I2CValue:
ULPSS_PWRGATE_ULP_I2C
ULP I2C Power Gate.
104
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_AUX#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_AUXValue:
ULPSS_PWRGATE_ULP_AUX
ULP AUX Power Gate.
105
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_IR#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_IRValue:
ULPSS_PWRGATE_ULP_IR
ULP IR Power Gate.
106
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_UDMA#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_UDMAValue:
ULPSS_PWRGATE_ULP_UDMA
ULP UDMA Power Gate.
107
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_PG_FIM#
#define SL_SI91X_POWER_MANAGER_ULPSS_PG_FIMValue:
ULPSS_PWRGATE_ULP_FIM
ULP FIM Power Gate.
108
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUBFFS#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUBFFSValue:
SLPSS_PWRGATE_ULP_MCUBFFS
NPSS MCU BFFS (Battery FF's) Power Gate.
111
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUFSM#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUFSMValue:
SLPSS_PWRGATE_ULP_MCUFSM
NPSS MCU FSM Power Gate.
112
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCURTC#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCURTCValue:
SLPSS_PWRGATE_ULP_MCURTC
NPSS MCU RTC (Real Time Clock) Power Gate.
113
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUWDT#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUWDTValue:
SLPSS_PWRGATE_ULP_MCUWDT
NPSS MCU WDT (Watchdog Timer) Power Gate.
114
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUPS#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUPSValue:
SLPSS_PWRGATE_ULP_MCUPS
NPSS MCU Process Sensor Power Gate.
115
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUTS#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUTSValue:
SLPSS_PWRGATE_ULP_MCUTS
NPSS MCU Temperature Sensor Power Gate.
116
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUSTORE1#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUSTORE1Value:
SLPSS_PWRGATE_ULP_MCUSTORE1
NPSS MCU Storage 1 Power Gate.
117
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUSTORE2#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUSTORE2Value:
SLPSS_PWRGATE_ULP_MCUSTORE2
NPSS MCU Storage 2 Power Gate.
118
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_MCUSTORE3#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_MCUSTORE3Value:
SLPSS_PWRGATE_ULP_MCUSTORE3
NPSS MCU Storage 3 Power Gate.
119
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_TIMEPERIOD#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_TIMEPERIODValue:
SLPSS_PWRGATE_ULP_TIMEPERIOD
NPSS Time Period Power Gate.
120
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_NPSS_PG_NWPAPB_MCU_CTRL#
#define SL_SI91X_POWER_MANAGER_NPSS_PG_NWPAPB_MCU_CTRLValue:
SLPSS_PWRGATE_ULP_NWPAPB_MCU_CTRL
NPSS MCU APB Control Power Gate.
121
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_1#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_1Value:
RAM_BANK_0
4 KB (Bank 1 of first 192k chunk)
125
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_2#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_2Value:
RAM_BANK_1
4 KB (Bank 2 of first 192k chunk)
126
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_3#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_3Value:
RAM_BANK_2
4 KB (Bank 3 of first 192k chunk)
127
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_4#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_4Value:
RAM_BANK_3
4 KB (Bank 4 of first 192k chunk)
128
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_5#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_5Value:
RAM_BANK_4
4 KB (Bank 5 of first 192k chunk)
129
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_6#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_6Value:
RAM_BANK_5
32 KB (Bank 6-7 of first 192k chunk)
130
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_7#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_7Value:
RAM_BANK_6
64 KB (Bank 9-11 of first 192k chunk)
131
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_8#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_8Value:
RAM_BANK_7
64 KB (Bank 12-15 of first 192k chunk)
132
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_9#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_9Value:
RAM_BANK_8
64 KB (Bank 1-4 of second 192k chunk)
133
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_10#
#define SL_SI91X_POWER_MANAGER_M4SS_RAM_BANK_10Value:
RAM_BANK_9
64 KB (Bank 1-4 of third 192k chunk)
134
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_1#
#define SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_1Value:
ULPSS_2K_BANK_0
2 KB
135
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_2#
#define SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_2Value:
ULPSS_2K_BANK_1
2 KB
136
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_3#
#define SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_3Value:
ULPSS_2K_BANK_2
2 KB
137
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_4#
#define SL_SI91X_POWER_MANAGER_ULPSS_RAM_BANK_4Value:
ULPSS_2K_BANK_3
2 KB
138
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_CORE_ENTER_CRITICAL#
#define SL_SI91X_POWER_MANAGER_CORE_ENTER_CRITICALValue:
sl_si91x_power_manager_core_entercritical()
140
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
SL_SI91X_POWER_MANAGER_CORE_EXIT_CRITICAL#
#define SL_SI91X_POWER_MANAGER_CORE_EXIT_CRITICALValue:
sl_si91x_power_manager_core_exitcritical()
141
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h
sli_si91x_power_manager_debug_log_ps_requirement#
#define sli_si91x_power_manager_debug_log_ps_requirementValue:
(em, add, name)
250
of file components/device/silabs/si91x/mcu/drivers/service/power_manager/inc/sl_si91x_power_manager.h