cpu: k60: add periph/pm support

pr/spi.typo
Kaspar Schleiser 7 years ago
parent db823679aa
commit 662bec002a

@ -0,0 +1 @@
FEATURES_PROVIDED += periph_pm

@ -10,6 +10,9 @@ export UNDEF += $(BINDIR)/kinetis_common/fcfield.o
# include kinetis common periph drivers
export USEMODULE += kinetis_common_periph
#include layered power mode module
USEMODULE += pm_layered
# Define a recipe to build the watchdog disable binary, used when flashing
$(RIOTCPU)/kinetis_common/dist/wdog-disable.bin: $(RIOTCPU)/kinetis_common/dist/wdog-disable.s
$(AD)$(MAKE) -C $(RIOTCPU)/kinetis_common/dist/ $(notdir $@)

@ -239,6 +239,11 @@ enum {
*/
void gpio_init_port(gpio_t pin, uint32_t pcr);
/**
* @brief define number of usable power modes
*/
#define PM_NUM_MODES (1U)
#ifdef __cplusplus
}
#endif

@ -0,0 +1,40 @@
/*
* Copyright (C) 2016 Kaspar Schleiser <kaspar@schleiser.de>
* 2014 Eistec AB
*
* 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
* directory for more details.
*/
/**
* @ingroup cpu_kinetis_common
* @{
*
* @file
* @brief Implementation of the kernels power management interface
*
* @author Kaspar Schleiser <kaspar@schleiser.de>
*
* @}
*/
#include "periph/pm.h"
#define ENABLE_DEBUG (0)
#include "debug.h"
void pm_set(unsigned mode)
{
switch (mode) {
case 0:
SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;
break;
}
/* Executes a device DSB (Data Synchronization Barrier) */
__DSB();
/* Enter standby mode */
__WFI();
}
Loading…
Cancel
Save