52#define LPM_MODE_AWAKE 0
53#define LPM_MODE_SLEEP 1
54#define LPM_MODE_DEEP_SLEEP 2
55#define LPM_MODE_SHUTDOWN 3
57#ifndef LPM_MODE_MAX_SUPPORTED_CONF
58#define LPM_MODE_MAX_SUPPORTED LPM_MODE_DEEP_SLEEP
60#define LPM_MODE_MAX_SUPPORTED LPM_MODE_MAX_SUPPORTED_CONF
63#define LPM_DOMAIN_NONE 0
64#define LPM_DOMAIN_SERIAL PRCM_DOMAIN_SERIAL
65#define LPM_DOMAIN_PERIPH PRCM_DOMAIN_PERIPH
67typedef struct lpm_registered_module {
68 struct lpm_registered_module *next;
69 uint8_t (*request_max_pm)(void);
70 void (*shutdown)(uint8_t mode);
73} lpm_registered_module_t;
96#define LPM_MODULE(n, m, s, w, l) static lpm_registered_module_t n = \
119void lpm_shutdown(uint32_t wakeup_pin, uint32_t io_pull, uint32_t wake_on);
void lpm_pin_set_default_state(uint32_t ioid)
Sets an IOID to a default state.
void lpm_drop()
Drop the cortex to sleep / deep sleep and shut down peripherals.
void lpm_sleep(void)
Enter sleep mode.
void lpm_init()
Initialise the low-power mode management module.
void lpm_unregister_module(lpm_registered_module_t *module)
Unregister a module from LPM notifications.
void lpm_register_module(lpm_registered_module_t *module)
Register a module for LPM notifications.
void lpm_shutdown(uint32_t wakeup_pin, uint32_t io_pull, uint32_t wake_on)
Put the chip in shutdown power mode.