123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- #ifndef NRF_PWR_MGMT_H__
- #define NRF_PWR_MGMT_H__
- #include <stdbool.h>
- #include <stdint.h>
- #include <sdk_errors.h>
- #include "nrf_section_iter.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum
- {
- NRF_PWR_MGMT_SHUTDOWN_GOTO_SYSOFF,
-
- NRF_PWR_MGMT_SHUTDOWN_STAY_IN_SYSOFF,
-
-
- NRF_PWR_MGMT_SHUTDOWN_GOTO_DFU,
-
- NRF_PWR_MGMT_SHUTDOWN_RESET,
-
- NRF_PWR_MGMT_SHUTDOWN_CONTINUE
-
-
- } nrf_pwr_mgmt_shutdown_t;
- typedef enum
- {
- NRF_PWR_MGMT_EVT_PREPARE_WAKEUP = NRF_PWR_MGMT_SHUTDOWN_GOTO_SYSOFF,
-
- NRF_PWR_MGMT_EVT_PREPARE_SYSOFF = NRF_PWR_MGMT_SHUTDOWN_STAY_IN_SYSOFF,
-
- NRF_PWR_MGMT_EVT_PREPARE_DFU = NRF_PWR_MGMT_SHUTDOWN_GOTO_DFU,
-
- NRF_PWR_MGMT_EVT_PREPARE_RESET = NRF_PWR_MGMT_SHUTDOWN_RESET,
-
- } nrf_pwr_mgmt_evt_t;
- typedef bool (*nrf_pwr_mgmt_shutdown_handler_t)(nrf_pwr_mgmt_evt_t event);
- #define NRF_PWR_MGMT_HANDLER_REGISTER(_handler, _priority) \
- STATIC_ASSERT(_priority < NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT); \
- \
- NRF_SECTION_SET_ITEM_REGISTER(pwr_mgmt_data, _priority, \
- static nrf_pwr_mgmt_shutdown_handler_t const CONCAT_2(_handler, _handler_function)) = (_handler)
- ret_code_t nrf_pwr_mgmt_init(void);
- void nrf_pwr_mgmt_run(void);
- void nrf_pwr_mgmt_feed(void);
- void nrf_pwr_mgmt_shutdown(nrf_pwr_mgmt_shutdown_t shutdown_type);
- #ifdef __cplusplus
- }
- #endif
- #endif
|