diff --git a/soc/arm/microchip_mec/mec1501/power.c b/soc/arm/microchip_mec/mec1501/power.c index af4f2abf01c..98029ba2023 100644 --- a/soc/arm/microchip_mec/mec1501/power.c +++ b/soc/arm/microchip_mec/mec1501/power.c @@ -101,7 +101,7 @@ static void z_power_soc_sleep(void) * For deep sleep pm_system_suspend has executed all the driver * power management call backs. */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { switch (info.state) { case PM_STATE_SUSPEND_TO_IDLE: @@ -123,7 +123,7 @@ void pm_power_state_set(struct pm_state_info info) * an ISR on wake except for faults. We re-enable interrupts by setting PRIMASK * to 0. */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { switch (info.state) { case PM_STATE_SUSPEND_TO_IDLE: diff --git a/soc/arm/nordic_nrf/nrf51/power.c b/soc/arm/nordic_nrf/nrf51/power.c index 7a43a8b214b..dd76e3b06e9 100644 --- a/soc/arm/nordic_nrf/nrf51/power.c +++ b/soc/arm/nordic_nrf/nrf51/power.c @@ -11,7 +11,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: @@ -24,7 +24,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: diff --git a/soc/arm/nordic_nrf/nrf52/power.c b/soc/arm/nordic_nrf/nrf52/power.c index 7a43a8b214b..dd76e3b06e9 100644 --- a/soc/arm/nordic_nrf/nrf52/power.c +++ b/soc/arm/nordic_nrf/nrf52/power.c @@ -11,7 +11,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: @@ -24,7 +24,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: diff --git a/soc/arm/nordic_nrf/nrf53/power.c b/soc/arm/nordic_nrf/nrf53/power.c index b709217289a..38ee3d439aa 100644 --- a/soc/arm/nordic_nrf/nrf53/power.c +++ b/soc/arm/nordic_nrf/nrf53/power.c @@ -13,7 +13,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: @@ -26,7 +26,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: diff --git a/soc/arm/nordic_nrf/nrf91/power.c b/soc/arm/nordic_nrf/nrf91/power.c index f0f52217274..a13631dd2ef 100644 --- a/soc/arm/nordic_nrf/nrf91/power.c +++ b/soc/arm/nordic_nrf/nrf91/power.c @@ -12,7 +12,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: @@ -25,7 +25,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { switch (info.state) { case PM_STATE_SOFT_OFF: diff --git a/soc/arm/nuvoton_npcx/common/power.c b/soc/arm/nuvoton_npcx/common/power.c index ae8929fb69c..a52d68f4051 100644 --- a/soc/arm/nuvoton_npcx/common/power.c +++ b/soc/arm/nuvoton_npcx/common/power.c @@ -165,7 +165,7 @@ static void npcx_power_enter_system_sleep(int slp_mode, int wk_mode) } /* Invoke when enter "Suspend/Low Power" mode. */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power state %u", info.state); @@ -194,7 +194,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle soc specific activity after exiting "Suspend/Low Power" mode. */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power state %u", info.state); diff --git a/soc/arm/nxp_imx/rt6xx/power.c b/soc/arm/nxp_imx/rt6xx/power.c index 9e08aaa94a7..1051453d269 100644 --- a/soc/arm/nxp_imx/rt6xx/power.c +++ b/soc/arm/nxp_imx/rt6xx/power.c @@ -22,7 +22,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); APP_DEEPSLEEP_RAM_APD, APP_DEEPSLEEP_RAM_PPD})) /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { /* FIXME: When this function is entered the Kernel has disabled * interrupts using BASEPRI register. This is incorrect as it prevents @@ -50,7 +50,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { ARG_UNUSED(info); diff --git a/soc/arm/silabs_exx32/common/soc_power.c b/soc/arm/silabs_exx32/common/soc_power.c index cacd7c55502..4f77d16745b 100644 --- a/soc/arm/silabs_exx32/common/soc_power.c +++ b/soc/arm/silabs_exx32/common/soc_power.c @@ -18,7 +18,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); */ /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { LOG_DBG("SoC entering power state %d", info.state); @@ -56,7 +56,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { ARG_UNUSED(info); } diff --git a/soc/arm/st_stm32/stm32l4/power.c b/soc/arm/st_stm32/stm32l4/power.c index 84fa2121335..1947e8c4eea 100644 --- a/soc/arm/st_stm32/stm32l4/power.c +++ b/soc/arm/st_stm32/stm32l4/power.c @@ -27,7 +27,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); #endif /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power state %u", info.state); @@ -73,7 +73,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power substate-id %u", info.state); diff --git a/soc/arm/st_stm32/stm32l5/power.c b/soc/arm/st_stm32/stm32l5/power.c index 58140b7bb40..40e7baffbcc 100644 --- a/soc/arm/st_stm32/stm32l5/power.c +++ b/soc/arm/st_stm32/stm32l5/power.c @@ -27,7 +27,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL); #endif /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power state %u", info.state); @@ -73,7 +73,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power substate-id %u", info.state); diff --git a/soc/arm/st_stm32/stm32wb/power.c b/soc/arm/st_stm32/stm32wb/power.c index 6d08ac2104d..3bf744d1cb3 100644 --- a/soc/arm/st_stm32/stm32wb/power.c +++ b/soc/arm/st_stm32/stm32wb/power.c @@ -37,7 +37,7 @@ static void switch_on_hsi(void) } /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { if (info.state != PM_STATE_SUSPEND_TO_IDLE) { LOG_DBG("Unsupported power state %u", info.state); @@ -102,7 +102,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { /* Implementation of STM32 AN5289 algorithm to enter/exit lowpower */ /* Release ENTRY_STOP_MODE semaphore */ diff --git a/soc/arm/ti_simplelink/cc13x2_cc26x2/power.c b/soc/arm/ti_simplelink/cc13x2_cc26x2/power.c index 59874db8782..06def28784c 100644 --- a/soc/arm/ti_simplelink/cc13x2_cc26x2/power.c +++ b/soc/arm/ti_simplelink/cc13x2_cc26x2/power.c @@ -56,7 +56,7 @@ extern PowerCC26X2_ModuleState PowerCC26X2_module; */ /* Invoke Low Power/System Off specific Tasks */ -void pm_power_state_set(struct pm_state_info info) +__weak void pm_power_state_set(struct pm_state_info info) { uint32_t modeVIMS; uint32_t constraints; @@ -118,7 +118,7 @@ void pm_power_state_set(struct pm_state_info info) } /* Handle SOC specific activity after Low Power Mode Exit */ -void pm_power_state_exit_post_ops(struct pm_state_info info) +__weak void pm_power_state_exit_post_ops(struct pm_state_info info) { /* * System is now in active mode. Reenable interrupts which were disabled diff --git a/tests/subsys/pm/power_mgmt/src/main.c b/tests/subsys/pm/power_mgmt/src/main.c index 9e751799159..d27610bee9d 100644 --- a/tests/subsys/pm/power_mgmt/src/main.c +++ b/tests/subsys/pm/power_mgmt/src/main.c @@ -26,11 +26,8 @@ static bool idle_entered; static const struct device *dev; static struct dummy_driver_api *api; -/* - * Weak power hook functions. Used on systems that have not implemented - * power management. - */ -__weak void pm_power_state_set(struct pm_state_info info) + +void pm_power_state_set(struct pm_state_info info) { /* at this point, notify_pm_state_entry() implemented in * this file has been called and set_pm should have been set @@ -51,7 +48,7 @@ __weak void pm_power_state_set(struct pm_state_info info) "Entering low power state with a wrong parameter"); } -__weak void pm_power_state_exit_post_ops(struct pm_state_info info) +void pm_power_state_exit_post_ops(struct pm_state_info info) { /* pm_system_suspend is entered with irq locked * unlock irq before leave pm_system_suspend