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 67 typedef 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 = \ 119 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.