mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-29 00:11:16 +01:00
cpu: k60: add periph/pm support
This commit is contained in:
parent
db823679aa
commit
662bec002a
1
cpu/k60/Makefile.features
Normal file
1
cpu/k60/Makefile.features
Normal file
@ -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
|
||||
|
||||
40
cpu/kinetis_common/periph/pm.c
Normal file
40
cpu/kinetis_common/periph/pm.c
Normal file
@ -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…
x
Reference in New Issue
Block a user