From 526a7bb20d9da75aa6819a40d0de88ef9e47c4da Mon Sep 17 00:00:00 2001 From: Gerard Marull-Paretas Date: Thu, 20 Jul 2023 12:05:26 +0200 Subject: [PATCH] soc: arm: nordic_nrf: add support for poweroff Implement the z_sys_poweroff() hook and select HAS_POWEROFF. Signed-off-by: Gerard Marull-Paretas --- soc/arm/nordic_nrf/common/CMakeLists.txt | 1 + soc/arm/nordic_nrf/common/poweroff.c | 16 ++++++++++++++++ soc/arm/nordic_nrf/nrf51/Kconfig.series | 1 + soc/arm/nordic_nrf/nrf52/Kconfig.series | 1 + soc/arm/nordic_nrf/nrf53/Kconfig.soc | 1 + soc/arm/nordic_nrf/nrf91/Kconfig.series | 1 + 6 files changed, 21 insertions(+) create mode 100644 soc/arm/nordic_nrf/common/poweroff.c diff --git a/soc/arm/nordic_nrf/common/CMakeLists.txt b/soc/arm/nordic_nrf/common/CMakeLists.txt index 941ccaea039..eb074dd0548 100644 --- a/soc/arm/nordic_nrf/common/CMakeLists.txt +++ b/soc/arm/nordic_nrf/common/CMakeLists.txt @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 zephyr_library_sources_ifdef(CONFIG_SOC_FAMILY_NRF soc_nrf_common.S) +zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c) zephyr_include_directories(.) if (CONFIG_TFM_PARTITION_PLATFORM) diff --git a/soc/arm/nordic_nrf/common/poweroff.c b/soc/arm/nordic_nrf/common/poweroff.c new file mode 100644 index 00000000000..7474c94a74a --- /dev/null +++ b/soc/arm/nordic_nrf/common/poweroff.c @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2023 Nordic Semiconductor ASA + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +#include + +void z_sys_poweroff(void) +{ + nrf_power_system_off(NRF_POWER); + + CODE_UNREACHABLE; +} diff --git a/soc/arm/nordic_nrf/nrf51/Kconfig.series b/soc/arm/nordic_nrf/nrf51/Kconfig.series index 632ec5792fc..ac972be24a4 100644 --- a/soc/arm/nordic_nrf/nrf51/Kconfig.series +++ b/soc/arm/nordic_nrf/nrf51/Kconfig.series @@ -13,5 +13,6 @@ config SOC_SERIES_NRF51X select HAS_NRFX select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE select HAS_PM + select HAS_POWEROFF help Enable support for NRF51 MCU series diff --git a/soc/arm/nordic_nrf/nrf52/Kconfig.series b/soc/arm/nordic_nrf/nrf52/Kconfig.series index fc02e76a41b..184d9d87d93 100644 --- a/soc/arm/nordic_nrf/nrf52/Kconfig.series +++ b/soc/arm/nordic_nrf/nrf52/Kconfig.series @@ -16,5 +16,6 @@ config SOC_SERIES_NRF52X select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE select HAS_SWO select HAS_PM + select HAS_POWEROFF help Enable support for NRF52 MCU series diff --git a/soc/arm/nordic_nrf/nrf53/Kconfig.soc b/soc/arm/nordic_nrf/nrf53/Kconfig.soc index b72528e3aa3..33044a424f0 100644 --- a/soc/arm/nordic_nrf/nrf53/Kconfig.soc +++ b/soc/arm/nordic_nrf/nrf53/Kconfig.soc @@ -10,6 +10,7 @@ config SOC_NRF5340_CPUAPP select CPU_HAS_FPU select ARMV8_M_DSP select HAS_PM + select HAS_POWEROFF config SOC_NRF5340_CPUNET bool diff --git a/soc/arm/nordic_nrf/nrf91/Kconfig.series b/soc/arm/nordic_nrf/nrf91/Kconfig.series index 971855ef932..37312832bdb 100644 --- a/soc/arm/nordic_nrf/nrf91/Kconfig.series +++ b/soc/arm/nordic_nrf/nrf91/Kconfig.series @@ -17,5 +17,6 @@ config SOC_SERIES_NRF91X select HAS_NRFX select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE select HAS_PM + select HAS_POWEROFF help Enable support for NRF91 MCU series