34#ifndef _LOS_LOWPOWER_H
35#define _LOS_LOWPOWER_H
57#ifdef LOSCFG_KERNEL_DYN_FREQ
63typedef enum LOS_FREQ_MODE {
64 LOS_SYS_FREQ_SUPER = 0,
89extern VOID LOS_PowerMgrChangeFreq(LosFreqMode freq);
98#ifdef LOSCFG_KERNEL_DYN_FREQ
99 UINT32 (*changeFreq)(LosFreqMode freq);
101#if defined (LOSCFG_KERNEL_LIGHTSLEEP) || defined (LOSCFG_KERNEL_DEEPSLEEP)
104#ifdef LOSCFG_KERNEL_LIGHTSLEEP
107#ifdef LOSCFG_KERNEL_DEEPSLEEP
108#ifdef LOSCFG_LOWPOWER_SLEEP_USERCONFIG
115#ifdef LOSCFG_KERNEL_SMP
121#ifdef LOSCFG_KERNEL_RAM_SAVE
126#ifdef LOSCFG_LOWPOWER_SLEEP_WFI
140#ifdef LOSCFG_KERNEL_DYN_FREQ
141 #define SET_RUNOPS_CHANGEFREQ(hook) .changeFreq = hook,
143 #define SET_RUNOPS_CHANGEFREQ(hook)
145#if defined (LOSCFG_KERNEL_LIGHTSLEEP) || defined (LOSCFG_KERNEL_DEEPSLEEP)
146 #define SET_RUNOPS_GETSLEEPMODE(hook) .getSleepMode = hook,
148 #define SET_RUNOPS_GETSLEEPMODE(hook)
150#ifdef LOSCFG_KERNEL_LIGHTSLEEP
151 #define SET_RUNOPS_ENTERLIGHTSLEEP(hook) .enterLightSleep = hook,
153 #define SET_RUNOPS_ENTERLIGHTSLEEP(hook)
155#ifdef LOSCFG_KERNEL_DEEPSLEEP
156#ifdef LOSCFG_LOWPOWER_SLEEP_USERCONFIG
157 #define SET_RUNOPS_USERPRECONFIG(hook) .userPreConfig = hook,
158 #define SET_RUNOPS_USERPOSTCONFIG(hook) .userPostConfig = hook,
160 #define SET_RUNOPS_USERPRECONFIG(hook)
161 #define SET_RUNOPS_USERPOSTCONFIG(hook)
163 #define SET_RUNOPS_SYSTEMWAKEUP(hook) .systemWakeup = hook,
164 #define SET_RUNOPS_SUSPENDCONFIG(hook) .suspendConfig = hook,
165 #define SET_RUNOPS_RESUMECONFIG(hook) .resumeConfig = hook,
166#ifdef LOSCFG_KERNEL_SMP
167 #define SET_RUNOPS_OTHERCORERESUME(hook) .otherCoreResume = hook,
169 #define SET_RUNOPS_OTHERCORERESUME(hook)
171 #define SET_RUNOPS_ENTERDEEPSLEEP(hook) .enterDeepSleep = hook,
172 #define SET_RUNOPS_SETWAKEUPTIMER(hook) .setWakeUpTimer = hook,
173 #define SET_RUNOPS_WITHDRAWWAKEUPTIMER(hook) .withdrawWakeUpTimer = hook,
174#ifdef LOSCFG_KERNEL_RAM_SAVE
175 #define SET_RUNOPS_CONTEXTSAVE(hook) .contextSave = hook,
176 #define SET_RUNOPS_CONTEXTRESTORE(hook) .contextRestore = hook,
178 #define SET_RUNOPS_CONTEXTSAVE(hook)
179 #define SET_RUNOPS_CONTEXTRESTORE(hook)
182 #define SET_RUNOPS_SYSTEMWAKEUP(hook)
183 #define SET_RUNOPS_SUSPENDCONFIG(hook)
184 #define SET_RUNOPS_RESUMECONFIG(hook)
185 #define SET_RUNOPS_ENTERDEEPSLEEP(hook)
186 #define SET_RUNOPS_SETWAKEUPTIMER(hook)
187 #define SET_RUNOPS_WITHDRAWWAKEUPTIMER(hook)
189#ifdef LOSCFG_LOWPOWER_SLEEP_WFI
190 #define SET_RUNOPS_ENTERWFI(hook) .enterWFI = hook,
192 #define SET_RUNOPS_ENTERWFI(hook)
222#define LOS_ERRNO_LPM_INIT_NULL LOS_ERRNO_OS_ERROR(LOS_MOD_TSK, 0x01)
224#ifdef LOSCFG_LOWPOWER_SLEEP_VETO
268#ifdef LOSCFG_LOWPOWER_SLEEP_DEBUG
286extern VOID LOS_EnableLowPower(
VOID);
305extern VOID LOS_DisableLowPower(
VOID);
enum LOS_SLEEP_MODE LosSleepMode
UINT32 LOS_PowerMgrInit(const PowerMgrParameter *para)
Init the power manager framework.
UINT32 LOS_SleepTicksGet(void)
Get predicted sleep ticks.
LOS_SLEEP_MODE
Definition los_lowpower.h:50
@ LOS_SLEEP_LIGHT
Definition los_lowpower.h:52
@ LOS_SLEEP_DEEP
Definition los_lowpower.h:53
@ LOS_SLEEP_MAX
Definition los_lowpower.h:54
@ LOS_SLEEP_NORMAL
Definition los_lowpower.h:51
#define VOID
Definition los_typedef.h:88
unsigned int UINT32
Definition los_typedef.h:52
Definition los_lowpower.h:136
PowerMgrRunOps runOps
Definition los_lowpower.h:137
Definition los_lowpower.h:97