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 #define LPM_MODE_MAX_SUPPORTED LPM_MODE_DEEP_SLEEP 59 #define LPM_DOMAIN_NONE 0 60 #define LPM_DOMAIN_SERIAL PRCM_DOMAIN_SERIAL 61 #define LPM_DOMAIN_PERIPH PRCM_DOMAIN_PERIPH 63 typedef struct lpm_registered_module {
64 struct lpm_registered_module *next;
65 uint8_t (*request_max_pm)(void);
66 void (*shutdown)(uint8_t mode);
69 } lpm_registered_module_t;
92 #define LPM_MODULE(n, m, s, w, l) static lpm_registered_module_t n = \ 115 void lpm_shutdown(uint32_t wakeup_pin, uint32_t io_pull, uint32_t wake_on);
void lpm_shutdown(uint32_t wakeup_pin, uint32_t io_pull, uint32_t wake_on)
Put the chip in shutdown power mode.
void lpm_sleep(void)
Enter sleep mode.
void lpm_drop()
Drop the cortex to sleep / deep sleep and shut down peripherals.
void lpm_init()
Initialise the low-power mode management module.
void lpm_pin_set_default_state(uint32_t ioid)
Sets an IOID to a default state.
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.