34 lines
570 B
C
34 lines
570 B
C
|
|
#ifndef PT_PM_H
|
||
|
|
#define PT_PM_H
|
||
|
|
|
||
|
|
#include "pt_task.h"
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
PM_SLEEP_MODE_NONE,
|
||
|
|
PM_SLEEP_MODE_IDLE,
|
||
|
|
PM_SLEEP_MODE_LIGHT,
|
||
|
|
PM_SLEEP_MODE_DEEP,
|
||
|
|
PM_SLEEP_MODE_STANDBY,
|
||
|
|
PM_SLEEP_MODE_POWER_DOWN,
|
||
|
|
PM_SLEEP_MODE_MAX
|
||
|
|
} pm_mode_t;
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
void (*sleep)(pm_mode_t mode);
|
||
|
|
void (*wakeup)(void);
|
||
|
|
} pm_adapter_t;
|
||
|
|
|
||
|
|
extern void pt_pm_adapter_init(pm_adapter_t *adapter);
|
||
|
|
|
||
|
|
extern void pt_pm_init(void);
|
||
|
|
|
||
|
|
extern void pt_pm_request(pm_mode_t mode);
|
||
|
|
|
||
|
|
extern void pt_pm_release(pm_mode_t mode);
|
||
|
|
|
||
|
|
extern int pt_task_pm(void);
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|