diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-06-18 14:45:34 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-06-18 14:45:34 +0000 |
commit | bfd033e8d48306e431481ba6d43fa36f2125f785 (patch) | |
tree | 14f0f20818529c9779cfebbf76828dc19231aac8 /nuttx/arch/arm/src/stm32/stm32_idle.c | |
parent | 9c8afa0fd9e51de419fca55a158e01953839d68f (diff) | |
download | px4-nuttx-bfd033e8d48306e431481ba6d43fa36f2125f785.tar.gz px4-nuttx-bfd033e8d48306e431481ba6d43fa36f2125f785.tar.bz2 px4-nuttx-bfd033e8d48306e431481ba6d43fa36f2125f785.zip |
STM32 power management update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4848 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/stm32/stm32_idle.c')
-rw-r--r-- | nuttx/arch/arm/src/stm32/stm32_idle.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_idle.c b/nuttx/arch/arm/src/stm32/stm32_idle.c index b5fd9fcb3..791a79429 100644 --- a/nuttx/arch/arm/src/stm32/stm32_idle.c +++ b/nuttx/arch/arm/src/stm32/stm32_idle.c @@ -45,6 +45,7 @@ #include <arch/irq.h> +#include "stm32_pm.h" #include "up_internal.h" /**************************************************************************** @@ -98,7 +99,8 @@ static void up_idlepm(void) flags = irqsave(); /* Perform board-specific, state-dependent logic here */ - /* <-- ADD CODE HERE --> */ + + llvdbg("newstate= %d oldstate=%d\n", newstate, oldstate); /* Then force the global state change */ @@ -115,6 +117,29 @@ static void up_idlepm(void) oldstate = newstate; } + + /* MCU-specific power management logic */ + + switch (newstate) + { + case PM_NORMAL: + break; + + case PM_IDLE: + break; + + case PM_STANDBY: + stm32_pmstop(true); + break; + + case PM_SLEEP: + (void)stm32_pmstandby(); + break; + + default: + break; + } + irqrestore(flags); } } |