diff --git a/cpu/cc2538/Makefile.default b/cpu/cc2538/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/cc2538/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/cc2538/Makefile.dep b/cpu/cc2538/Makefile.dep index 39bdd75366..d8489f01b0 100644 --- a/cpu/cc2538/Makefile.dep +++ b/cpu/cc2538/Makefile.dep @@ -13,6 +13,4 @@ ifneq (,$(filter periph_uart_nonblocking,$(USEMODULE))) USEMODULE += tsrb endif -USEMODULE += pm_layered - include $(RIOTCPU)/cortexm_common/Makefile.dep diff --git a/cpu/efm32/Makefile.default b/cpu/efm32/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/efm32/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/efm32/Makefile.dep b/cpu/efm32/Makefile.dep index 2d83ee7ed5..b7f90bf5ae 100644 --- a/cpu/efm32/Makefile.dep +++ b/cpu/efm32/Makefile.dep @@ -13,9 +13,6 @@ endif # include Gecko SDK package USEPKG += gecko_sdk -# include layered power management -USEMODULE += pm_layered - ifneq (,$(filter efm32_coretemp,$(USEMODULE))) FEATURES_REQUIRED += periph_adc endif diff --git a/cpu/esp32/Makefile.default b/cpu/esp32/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/esp32/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/esp32/Makefile.dep b/cpu/esp32/Makefile.dep index 73630031f8..99a0fcb39c 100644 --- a/cpu/esp32/Makefile.dep +++ b/cpu/esp32/Makefile.dep @@ -5,7 +5,6 @@ include $(RIOTCPU)/esp_common/Makefile.dep USEMODULE += esp_idf_driver USEMODULE += esp_idf_esp32 USEMODULE += esp_idf_soc -USEMODULE += pm_layered ifneq (,$(filter newlib,$(USEMODULE))) USEMODULE += newlib_nano diff --git a/cpu/kinetis/Makefile.default b/cpu/kinetis/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/kinetis/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/kinetis/Makefile.dep b/cpu/kinetis/Makefile.dep index 4b4eba3a72..309c3ffd60 100644 --- a/cpu/kinetis/Makefile.dep +++ b/cpu/kinetis/Makefile.dep @@ -21,6 +21,5 @@ else ifneq (,$(filter periph_mcg_lite,$(FEATURES_USED))) endif USEMODULE += periph_wdog -USEMODULE += pm_layered include $(RIOTCPU)/cortexm_common/Makefile.dep diff --git a/cpu/lpc1768/Makefile.default b/cpu/lpc1768/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/lpc1768/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/lpc1768/Makefile.dep b/cpu/lpc1768/Makefile.dep index f0a929e7f1..849cc8d116 100644 --- a/cpu/lpc1768/Makefile.dep +++ b/cpu/lpc1768/Makefile.dep @@ -1,3 +1 @@ -USEMODULE += pm_layered - include $(RIOTCPU)/cortexm_common/Makefile.dep diff --git a/cpu/lpc23xx/Makefile.default b/cpu/lpc23xx/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/lpc23xx/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/lpc23xx/Makefile.dep b/cpu/lpc23xx/Makefile.dep index 2751e15f57..c72ba6ec12 100644 --- a/cpu/lpc23xx/Makefile.dep +++ b/cpu/lpc23xx/Makefile.dep @@ -1,7 +1,6 @@ USEMODULE += arm7_common USEMODULE += bitfield USEMODULE += periph -USEMODULE += pm_layered ifneq (,$(filter mci,$(USEMODULE))) USEMODULE += xtimer diff --git a/cpu/sam0_common/Makefile.default b/cpu/sam0_common/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/sam0_common/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/sam0_common/Makefile.dep b/cpu/sam0_common/Makefile.dep index 276bd6531c..13b8a500fc 100644 --- a/cpu/sam0_common/Makefile.dep +++ b/cpu/sam0_common/Makefile.dep @@ -6,9 +6,6 @@ ifneq (,$(filter periph_rtc periph_rtt,$(USEMODULE))) USEMODULE += periph_rtc_rtt endif -# All SAM0 based CPUs provide PM -USEMODULE += pm_layered - # include sam0 common periph drivers USEMODULE += sam0_common_periph diff --git a/cpu/samd21/Makefile.default b/cpu/samd21/Makefile.default new file mode 100644 index 0000000000..482f492884 --- /dev/null +++ b/cpu/samd21/Makefile.default @@ -0,0 +1 @@ +include $(RIOTCPU)/sam0_common/Makefile.default diff --git a/cpu/samd5x/Makefile.default b/cpu/samd5x/Makefile.default new file mode 100644 index 0000000000..482f492884 --- /dev/null +++ b/cpu/samd5x/Makefile.default @@ -0,0 +1 @@ +include $(RIOTCPU)/sam0_common/Makefile.default diff --git a/cpu/saml1x/Makefile.default b/cpu/saml1x/Makefile.default new file mode 100644 index 0000000000..482f492884 --- /dev/null +++ b/cpu/saml1x/Makefile.default @@ -0,0 +1 @@ +include $(RIOTCPU)/sam0_common/Makefile.default diff --git a/cpu/saml21/Makefile.default b/cpu/saml21/Makefile.default new file mode 100644 index 0000000000..482f492884 --- /dev/null +++ b/cpu/saml21/Makefile.default @@ -0,0 +1 @@ +include $(RIOTCPU)/sam0_common/Makefile.default diff --git a/cpu/stm32/Makefile.default b/cpu/stm32/Makefile.default new file mode 100644 index 0000000000..034f8c7848 --- /dev/null +++ b/cpu/stm32/Makefile.default @@ -0,0 +1 @@ +DEFAULT_MODULE += pm_layered diff --git a/cpu/stm32/Makefile.dep b/cpu/stm32/Makefile.dep index 63b3ec9af9..a8fc68c9eb 100644 --- a/cpu/stm32/Makefile.dep +++ b/cpu/stm32/Makefile.dep @@ -1,5 +1,4 @@ # All stm32 families provide pm support -USEMODULE += pm_layered # include stm32 common periph drivers, clock configurations and vectors USEMODULE += periph stm32_clk stm32_vectors diff --git a/sys/include/pm_layered.h b/sys/include/pm_layered.h index 4cba7ee6a0..cc4ab6ea1e 100644 --- a/sys/include/pm_layered.h +++ b/sys/include/pm_layered.h @@ -62,14 +62,22 @@ typedef union { * * @param[in] mode power mode to block */ +#ifdef MODULE_PM_LAYERED void pm_block(unsigned mode); +#else +static inline void pm_block(unsigned mode) { (void)mode; } +#endif /** * @brief Unblock a power mode * * @param[in] mode power mode to unblock */ +#ifdef MODULE_PM_LAYERED void pm_unblock(unsigned mode); +#else +static inline void pm_unblock(unsigned mode) { (void)mode; } +#endif /** * @brief Switches the MCU to a new power mode