mbed

Fork of mbed-dev by mbed official

Revision:
181:96ed750bd169
Parent:
160:d5399cc887bb
diff -r b0033dcd6934 -r 96ed750bd169 targets/TARGET_Silicon_Labs/TARGET_EFM32/sleep.c
--- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/sleep.c	Thu Dec 07 14:01:42 2017 +0000
+++ b/targets/TARGET_Silicon_Labs/TARGET_EFM32/sleep.c	Wed Jan 17 15:23:54 2018 +0000
@@ -25,32 +25,15 @@
 #if DEVICE_SLEEP
 
 #include "sleep_api.h"
-#include "sleepmodes.h"
 #include "em_emu.h"
-#include "mbed_critical.h"
-
-uint32_t sleep_block_counter[NUM_SLEEP_MODES] = {0};
 
 /**
  * Sleep mode.
- * Enter the lowest possible sleep mode that is not blocked by ongoing activity.
+ * Stop the core clock using a WFI.
  */
 void hal_sleep(void)
 {
-    if (sleep_block_counter[0] > 0) {
-        /* Blocked everything below EM0, so just return */
-        return;
-    } else if (sleep_block_counter[1] > 0) {
-        /* Blocked everything below EM1, enter EM1 */
-        EMU_EnterEM1();
-    } else if (sleep_block_counter[2] > 0) {
-        /* Blocked everything below EM2, enter EM2 */
-        EMU_EnterEM2(true);
-    } else {
-        /* Blocked everything below EM3, enter EM3 */
-        EMU_EnterEM3(true);
-    } /* Never enter EM4, as mbed has no way of configuring EM4 wakeup */
-    return;
+    EMU_EnterEM1();
 }
 
 /**
@@ -69,35 +52,4 @@
     EMU_EnterEM2(true);
 }
 
-/** Block the microcontroller from sleeping below a certain mode
- *
- * This will block sleep() from entering an energy mode below the one given.
- * -- To be called by peripheral HAL's --
- *
- * After the peripheral is finished with the operation, it should call unblock with the same state
- *
- */
-void blockSleepMode(sleepstate_enum minimumMode)
-{
-    core_util_critical_section_enter();
-    sleep_block_counter[minimumMode]++;
-    core_util_critical_section_exit();
-}
-
-/** Unblock the microcontroller from sleeping below a certain mode
- *
- * This will unblock sleep() from entering an energy mode below the one given.
- * -- To be called by peripheral HAL's --
- *
- * This should be called after all transactions on a peripheral are done.
- */
-void unblockSleepMode(sleepstate_enum minimumMode)
-{
-    core_util_critical_section_enter();
-    if(sleep_block_counter[minimumMode] > 0) {
-        sleep_block_counter[minimumMode]--;
-    }
-    core_util_critical_section_exit();
-}
-
 #endif