diff --git a/drivers/CAN.cpp b/drivers/CAN.cpp index b84d6082ce..a5e8e4266b 100644 --- a/drivers/CAN.cpp +++ b/drivers/CAN.cpp @@ -18,7 +18,7 @@ #if DEVICE_CAN #include "cmsis.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" namespace mbed { diff --git a/drivers/I2C.cpp b/drivers/I2C.cpp index c912e3f9e5..8be7a529fc 100644 --- a/drivers/I2C.cpp +++ b/drivers/I2C.cpp @@ -18,7 +18,7 @@ #if DEVICE_I2C #if DEVICE_I2C_ASYNCH -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #endif namespace mbed { diff --git a/drivers/PwmOut.h b/drivers/PwmOut.h index c94b8584fd..5f7bb478ae 100644 --- a/drivers/PwmOut.h +++ b/drivers/PwmOut.h @@ -21,7 +21,7 @@ #if defined (DEVICE_PWMOUT) || defined(DOXYGEN_ONLY) #include "hal/pwmout_api.h" #include "platform/mbed_critical.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" namespace mbed { /** \addtogroup drivers */ diff --git a/drivers/SPI.cpp b/drivers/SPI.cpp index e21922b258..7bb94018d1 100644 --- a/drivers/SPI.cpp +++ b/drivers/SPI.cpp @@ -17,7 +17,7 @@ #include "platform/mbed_critical.h" #if DEVICE_SPI_ASYNCH -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #endif #if DEVICE_SPI diff --git a/drivers/SerialBase.cpp b/drivers/SerialBase.cpp index 5ec47ff83a..ba5f9db3f2 100644 --- a/drivers/SerialBase.cpp +++ b/drivers/SerialBase.cpp @@ -16,7 +16,7 @@ #include "drivers/SerialBase.h" #include "platform/mbed_wait_api.h" #include "platform/mbed_critical.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #if DEVICE_SERIAL diff --git a/drivers/Ticker.h b/drivers/Ticker.h index 16d552ea7a..646f8261c8 100644 --- a/drivers/Ticker.h +++ b/drivers/Ticker.h @@ -20,7 +20,7 @@ #include "platform/Callback.h" #include "platform/mbed_toolchain.h" #include "platform/NonCopyable.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #include "hal/lp_ticker_api.h" #include "platform/mbed_critical.h" diff --git a/drivers/Timeout.h b/drivers/Timeout.h index 8d9a19327e..e3a92cc3be 100644 --- a/drivers/Timeout.h +++ b/drivers/Timeout.h @@ -18,7 +18,7 @@ #include "drivers/Ticker.h" #include "platform/NonCopyable.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" namespace mbed { /** \addtogroup drivers */ diff --git a/drivers/Timer.h b/drivers/Timer.h index a8758005d4..9fafad945a 100644 --- a/drivers/Timer.h +++ b/drivers/Timer.h @@ -19,7 +19,7 @@ #include "platform/platform.h" #include "hal/ticker_api.h" #include "platform/NonCopyable.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" namespace mbed { /** \addtogroup drivers */ diff --git a/features/nanostack/FEATURE_NANOSTACK/targets/TARGET_SL_RAIL/NanostackRfPhyEfr32.cpp b/features/nanostack/FEATURE_NANOSTACK/targets/TARGET_SL_RAIL/NanostackRfPhyEfr32.cpp index 75c3af2d9b..8418d2892c 100644 --- a/features/nanostack/FEATURE_NANOSTACK/targets/TARGET_SL_RAIL/NanostackRfPhyEfr32.cpp +++ b/features/nanostack/FEATURE_NANOSTACK/targets/TARGET_SL_RAIL/NanostackRfPhyEfr32.cpp @@ -18,7 +18,7 @@ #include #include "mbed.h" -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "ns_types.h" #include "platform/arm_hal_interrupt.h" #include "nanostack/platform/arm_hal_phy.h" diff --git a/hal/mbed_sleep_manager.c b/hal/mbed_sleep_manager.c index 58cf23a685..8efd7bcc8e 100644 --- a/hal/mbed_sleep_manager.c +++ b/hal/mbed_sleep_manager.c @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "mbed_critical.h" #include "sleep_api.h" #include "mbed_error.h" diff --git a/mbed.h b/mbed.h index 4a3d291ae3..1e6eec446c 100644 --- a/mbed.h +++ b/mbed.h @@ -82,7 +82,7 @@ #include "drivers/InterruptIn.h" #include "platform/mbed_wait_api.h" #include "hal/sleep_api.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #include "platform/mbed_rtc_time.h" #include "platform/mbed_poll.h" #include "platform/ATCmdParser.h" diff --git a/platform/DeepSleepLock.h b/platform/DeepSleepLock.h index 6b64022fc0..78fa962732 100644 --- a/platform/DeepSleepLock.h +++ b/platform/DeepSleepLock.h @@ -17,7 +17,7 @@ #define MBED_DEEPSLEEPLOCK_H #include -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #include "platform/mbed_critical.h" namespace mbed { diff --git a/platform/mbed_interface.c b/platform/mbed_interface.c index 84ab20cd8a..99c7c4891b 100644 --- a/platform/mbed_interface.c +++ b/platform/mbed_interface.c @@ -71,7 +71,8 @@ int mbed_interface_powerdown(void) { } } -// for backward compatibility +MBED_DEPRECATED_SINCE("mbed-os-5.9", "This function shouldn't be used in new code." + "For system reset funcionality use system_reset()") void mbed_reset(void) { mbed_interface_reset(); } diff --git a/platform/mbed_power_mgmt.h b/platform/mbed_power_mgmt.h new file mode 100644 index 0000000000..9efbaca411 --- /dev/null +++ b/platform/mbed_power_mgmt.h @@ -0,0 +1,185 @@ +/** \addtogroup platform */ +/** @{*/ +/** + * \defgroup platform_power_mgmt Power management functions + * @{ + */ + +/* mbed Microcontroller Library + * Copyright (c) 2006-2018 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBED_POWER_MGMT_H +#define MBED_POWER_MGMT_H + +#include "hal/sleep_api.h" +#include "mbed_toolchain.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** Sleep manager API + * The sleep manager provides API to automatically select sleep mode. + * + * There are two sleep modes: + * - sleep + * - deepsleep + * + * Use locking/unlocking deepsleep for drivers that depend on features that + * are not allowed (=disabled) during the deepsleep. For instance, high frequency + * clocks. + * + * Example: + * @code + * + * void driver::handler() + * { + * if (_sensor.get_event()) { + * // any event - we are finished, unlock the deepsleep + * sleep_manager_unlock_deep_sleep(); + * _callback(); + * } + * } + * + * int driver::measure(event_t event, callback_t& callback) + * { + * _callback = callback; + * sleep_manager_lock_deep_sleep(); + * // start async transaction, we are waiting for an event + * return _sensor.start(event, callback); + * } + * @endcode + */ + +/** Lock the deep sleep mode + * + * This locks the automatic deep mode selection. + * sleep_manager_sleep_auto() will ignore deepsleep mode if + * this function is invoked at least once (the internal counter is non-zero) + * + * Use this locking mechanism for interrupt driven API that are + * running in the background and deepsleep could affect their functionality + * + * The lock is a counter, can be locked up to USHRT_MAX + * This function is IRQ and thread safe + */ +void sleep_manager_lock_deep_sleep(void); + +/** Unlock the deep sleep mode + * + * Use unlocking in pair with sleep_manager_lock_deep_sleep(). + * + * The lock is a counter, should be equally unlocked as locked + * This function is IRQ and thread safe + */ +void sleep_manager_unlock_deep_sleep(void); + +/** Get the status of deep sleep allowance for a target + * + * @return true if a target can go to deepsleep, false otherwise + */ +bool sleep_manager_can_deep_sleep(void); + +/** Enter auto selected sleep mode. It chooses the sleep or deeepsleep modes based + * on the deepsleep locking counter + * + * This function is IRQ and thread safe + * + * @note + * If MBED_DEBUG is defined, only hal_sleep is allowed. This ensures the debugger + * to be active for debug modes. + * + */ +void sleep_manager_sleep_auto(void); + +/** Send the microcontroller to sleep + * + * @note This function can be a noop if not implemented by the platform. + * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined). + * @note This function will be a noop while uVisor is in use. + * @note This function will be a noop if the following conditions are met: + * - The RTOS is present + * - The processor turn off the Systick clock during sleep + * - The target does not implement tickless mode + * + * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the + * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates + * dynamic power used by the processor, memory systems and buses. The processor, peripheral and + * memory state are maintained, and the peripherals continue to work and can generate interrupts. + * + * The processor can be woken up by any internal peripheral interrupt or external pin interrupt. + * + * @note + * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. + * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be + * able to access the LocalFileSystem + */ +static inline void sleep(void) +{ +#if !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) +#if DEVICE_SLEEP +#if (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_STCLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS) + sleep_manager_sleep_auto(); +#endif /* (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_STCLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS) */ +#endif /* DEVICE_SLEEP */ +#endif /* !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) */ +} + +/** Send the microcontroller to deep sleep + * + * @note This function can be a noop if not implemented by the platform. + * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined) + * @note This function will be a noop while uVisor is in use. + * + * This processor is setup ready for deep sleep, and sent to sleep. This mode + * has the same sleep features as sleep plus it powers down peripherals and clocks. All state + * is still maintained. + * + * The processor can only be woken up by an external interrupt on a pin or a watchdog timer. + * + * @note + * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. + * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be + * able to access the LocalFileSystem + */ + +MBED_DEPRECATED_SINCE("mbed-os-5.6", "One entry point for an application, use sleep()") +static inline void deepsleep(void) +{ +#if !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) +#if DEVICE_SLEEP + sleep_manager_sleep_auto(); +#endif /* DEVICE_SLEEP */ +#endif /* !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) */ +} + +/** Resets the processor and most of the sub-system + * + * @note Does not affect the debug sub-system + */ +static inline void system_reset(void) +{ + NVIC_SystemReset(); +} + +#ifdef __cplusplus +} +#endif + +#endif + +/** @}*/ +/** @}*/ diff --git a/platform/mbed_sleep.h b/platform/mbed_sleep.h index 7473135681..c29549f331 100644 --- a/platform/mbed_sleep.h +++ b/platform/mbed_sleep.h @@ -1,177 +1,24 @@ - -/** \addtogroup platform */ -/** @{*/ -/** - * \defgroup platform_sleep Sleep functions - * @{ - */ - -/* mbed Microcontroller Library - * Copyright (c) 2006-2017 ARM Limited +/* + * Copyright (c) 2018, ARM Limited, All Rights Reserved + * SPDX-License-Identifier: Apache-2.0 * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef MBED_SLEEP_H -#define MBED_SLEEP_H -#include "hal/sleep_api.h" -#include "mbed_toolchain.h" -#include +#ifndef MBED_MBED_SLEEP_H +#define MBED_MBED_SLEEP_H -#ifdef __cplusplus -extern "C" { -#endif - -/** Sleep manager API - * The sleep manager provides API to automatically select sleep mode. - * - * There are two sleep modes: - * - sleep - * - deepsleep - * - * Use locking/unlocking deepsleep for drivers that depend on features that - * are not allowed (=disabled) during the deepsleep. For instance, high frequency - * clocks. - * - * Example: - * @code - * - * void driver::handler() - * { - * if (_sensor.get_event()) { - * // any event - we are finished, unlock the deepsleep - * sleep_manager_unlock_deep_sleep(); - * _callback(); - * } - * } - * - * int driver::measure(event_t event, callback_t& callback) - * { - * _callback = callback; - * sleep_manager_lock_deep_sleep(); - * // start async transaction, we are waiting for an event - * return _sensor.start(event, callback); - * } - * @endcode - */ - -/** Lock the deep sleep mode - * - * This locks the automatic deep mode selection. - * sleep_manager_sleep_auto() will ignore deepsleep mode if - * this function is invoked at least once (the internal counter is non-zero) - * - * Use this locking mechanism for interrupt driven API that are - * running in the background and deepsleep could affect their functionality - * - * The lock is a counter, can be locked up to USHRT_MAX - * This function is IRQ and thread safe - */ -void sleep_manager_lock_deep_sleep(void); - -/** Unlock the deep sleep mode - * - * Use unlocking in pair with sleep_manager_lock_deep_sleep(). - * - * The lock is a counter, should be equally unlocked as locked - * This function is IRQ and thread safe - */ -void sleep_manager_unlock_deep_sleep(void); - -/** Get the status of deep sleep allowance for a target - * - * @return true if a target can go to deepsleep, false otherwise - */ -bool sleep_manager_can_deep_sleep(void); - -/** Enter auto selected sleep mode. It chooses the sleep or deeepsleep modes based - * on the deepsleep locking counter - * - * This function is IRQ and thread safe - * - * @note - * If MBED_DEBUG is defined, only hal_sleep is allowed. This ensures the debugger - * to be active for debug modes. - * - */ -void sleep_manager_sleep_auto(void); - -/** Send the microcontroller to sleep - * - * @note This function can be a noop if not implemented by the platform. - * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined). - * @note This function will be a noop while uVisor is in use. - * @note This function will be a noop if the following conditions are met: - * - The RTOS is present - * - The processor turn off the Systick clock during sleep - * - The target does not implement tickless mode - * - * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the - * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates - * dynamic power used by the processor, memory systems and buses. The processor, peripheral and - * memory state are maintained, and the peripherals continue to work and can generate interrupts. - * - * The processor can be woken up by any internal peripheral interrupt or external pin interrupt. - * - * @note - * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. - * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be - * able to access the LocalFileSystem - */ -static inline void sleep(void) -{ -#if !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) -#if DEVICE_SLEEP -#if (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_STCLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS) - sleep_manager_sleep_auto(); -#endif /* (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_STCLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS) */ -#endif /* DEVICE_SLEEP */ -#endif /* !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) */ -} - -/** Send the microcontroller to deep sleep - * - * @note This function can be a noop if not implemented by the platform. - * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined) - * @note This function will be a noop while uVisor is in use. - * - * This processor is setup ready for deep sleep, and sent to sleep. This mode - * has the same sleep features as sleep plus it powers down peripherals and clocks. All state - * is still maintained. - * - * The processor can only be woken up by an external interrupt on a pin or a watchdog timer. - * - * @note - * The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored. - * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be - * able to access the LocalFileSystem - */ - -MBED_DEPRECATED_SINCE("mbed-os-5.6", "One entry point for an application, use sleep()") -static inline void deepsleep(void) -{ -#if !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) -#if DEVICE_SLEEP - sleep_manager_sleep_auto(); -#endif /* DEVICE_SLEEP */ -#endif /* !(defined(FEATURE_UVISOR) && defined(TARGET_UVISOR_SUPPORTED)) */ -} - -#ifdef __cplusplus -} -#endif +#warning mbed_sleep.h has been replaced by mbed_power_mgmt.h, please update to mbed_power_mgmt.h [since mbed-os-5.8] +#include "platform/mbed_power_mgmt.h" #endif - -/** @}*/ -/** @}*/ diff --git a/platform/mbed_wait_api_rtos.cpp b/platform/mbed_wait_api_rtos.cpp index d89b139cf2..3c082f2fe6 100644 --- a/platform/mbed_wait_api_rtos.cpp +++ b/platform/mbed_wait_api_rtos.cpp @@ -22,7 +22,7 @@ #include "hal/us_ticker_api.h" #include "rtos/rtos.h" #include "platform/mbed_critical.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" void wait(float s) { wait_us(s * 1000000.0f); diff --git a/platform/sleep.h b/platform/sleep.h index ac3e84b777..f900bcf6e3 100644 --- a/platform/sleep.h +++ b/platform/sleep.h @@ -18,7 +18,7 @@ #ifndef MBED_OLD_SLEEP_H #define MBED_OLD_SLEEP_H -#warning sleep.h has been replaced by mbed_sleep.h, please update to mbed_sleep.h [since mbed-os-5.3] -#include "platform/mbed_sleep.h" +#warning sleep.h has been replaced by mbed_power_mgmt.h, please update to mbed_power_mgmt.h [since mbed-os-5.8] +#include "platform/mbed_power_mgmt.h" #endif diff --git a/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp b/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp index 23830a8f5d..180f5489a3 100644 --- a/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp +++ b/rtos/TARGET_CORTEX/mbed_rtx_idle.cpp @@ -21,7 +21,7 @@ */ #include "rtos/rtos_idle.h" -#include "platform/mbed_sleep.h" +#include "platform/mbed_power_mgmt.h" #include "TimerEvent.h" #include "lp_ticker_api.h" #include "mbed_critical.h" diff --git a/targets/TARGET_Atmel/TARGET_SAM_CortexM4/drivers/pmc/sleep.c b/targets/TARGET_Atmel/TARGET_SAM_CortexM4/drivers/pmc/sleep.c index 87f1b4d1fe..0e79bf2d72 100644 --- a/targets/TARGET_Atmel/TARGET_SAM_CortexM4/drivers/pmc/sleep.c +++ b/targets/TARGET_Atmel/TARGET_SAM_CortexM4/drivers/pmc/sleep.c @@ -45,7 +45,7 @@ */ #include -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" /* SAM3 and SAM4 series */ #if (SAM3S || SAM3N || SAM3XA || SAM3U || SAM4S || SAM4E || SAM4N || SAM4C || \ diff --git a/targets/TARGET_NUVOTON/nu_timer.h b/targets/TARGET_NUVOTON/nu_timer.h index 08683370fc..7342fe92b5 100644 --- a/targets/TARGET_NUVOTON/nu_timer.h +++ b/targets/TARGET_NUVOTON/nu_timer.h @@ -20,7 +20,7 @@ #include #include #include "cmsis.h" -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "mbed_critical.h" #include "ticker_api.h" #include "us_ticker_api.h" diff --git a/targets/TARGET_ONSEMI/TARGET_NCS36510/sleep.c b/targets/TARGET_ONSEMI/TARGET_NCS36510/sleep.c index 31c9a5f720..41be2fea41 100644 --- a/targets/TARGET_ONSEMI/TARGET_NCS36510/sleep.c +++ b/targets/TARGET_ONSEMI/TARGET_NCS36510/sleep.c @@ -31,7 +31,7 @@ * */ #if DEVICE_SLEEP -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "sleep_api.h" #include "cmsis_nvic.h" diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/i2c_api.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/i2c_api.c index 608c5c7c2e..f9adc69bfc 100644 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/i2c_api.c +++ b/targets/TARGET_Silicon_Labs/TARGET_EFM32/i2c_api.c @@ -28,7 +28,7 @@ #if DEVICE_I2C #include "mbed_assert.h" -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "i2c_api.h" #include "PeripheralPins.h" #include "pinmap_function.h" diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/pwmout_api.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/pwmout_api.c index 5ad3b9714c..759c1533d3 100644 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/pwmout_api.c +++ b/targets/TARGET_Silicon_Labs/TARGET_EFM32/pwmout_api.c @@ -26,7 +26,7 @@ #if DEVICE_PWMOUT #include "mbed_assert.h" -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "pwmout_api.h" #include "pinmap.h" #include "PeripheralPins.h" diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/serial_api.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/serial_api.c index 987ee98375..3c4bc21945 100644 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/serial_api.c +++ b/targets/TARGET_Silicon_Labs/TARGET_EFM32/serial_api.c @@ -26,7 +26,7 @@ #if DEVICE_SERIAL #include "mbed_assert.h" -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "serial_api.h" #include "serial_api_HAL.h" #include diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c index e832536ed2..3a2c9df896 100644 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c +++ b/targets/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c @@ -26,7 +26,7 @@ #if DEVICE_SPI #include "mbed_assert.h" -#include "mbed_sleep.h" +#include "mbed_power_mgmt.h" #include "PeripheralPins.h" #include "pinmap.h" #include "pinmap_function.h"