From 2c5a9a5cbfd26ddd4c3f40dab0cd62d7ebf793c8 Mon Sep 17 00:00:00 2001 From: Hauke Petersen Date: Fri, 13 Jan 2017 12:28:17 +0100 Subject: [PATCH] cpu/kinetis: unified PM implementation --- cpu/{k60 => kinetis_common}/Makefile.features | 0 cpu/kinetis_common/periph/pm.c | 15 ++++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) rename cpu/{k60 => kinetis_common}/Makefile.features (100%) diff --git a/cpu/k60/Makefile.features b/cpu/kinetis_common/Makefile.features similarity index 100% rename from cpu/k60/Makefile.features rename to cpu/kinetis_common/Makefile.features diff --git a/cpu/kinetis_common/periph/pm.c b/cpu/kinetis_common/periph/pm.c index 8d99696bd9..f73ec7b67c 100644 --- a/cpu/kinetis_common/periph/pm.c +++ b/cpu/kinetis_common/periph/pm.c @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 Kaspar Schleiser * 2014 Eistec AB + * 2017 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level @@ -24,17 +25,17 @@ #define ENABLE_DEBUG (0) #include "debug.h" - +/** + * @note The current PM implementation is very much simplified down to only + * using the 'WAIT' mode. This implementation must be further expanded + * to make use of the available and more efficient (deep) sleep modes + * of the Kinetis CPUs. + */ void pm_set(unsigned mode) { switch (mode) { case 0: - SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; + cortexm_sleep(0); break; } - - /* Executes a device DSB (Data Synchronization Barrier) */ - __DSB(); - /* Enter standby mode */ - __WFI(); }