soc: arm: ti_simplelink: cc13x2_cc26x2: add support for sys_poweroff

Implement sys_poweroff() hooks, based on previous SOFT_OFF
implementation.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
This commit is contained in:
Gerard Marull-Paretas 2023-08-08 12:09:33 +02:00 committed by Carles Cufí
commit c315c9b97c
4 changed files with 21 additions and 10 deletions

View file

@ -5,7 +5,9 @@
zephyr_sources(soc.c)
zephyr_sources(ccfg.c)
zephyr_library_sources_ifdef(CONFIG_PM power.c)
zephyr_library_sources_ifdef(CONFIG_PM_DEVICE power.c)
if(CONFIG_PM OR CONFIG_POWEROFF)
zephyr_library_sources(power.c)
endif()
zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c)
zephyr_linker_sources_ifdef(CONFIG_HAS_TI_CCFG SECTIONS ccfg.ld)

View file

@ -16,5 +16,6 @@ config SOC_SERIES_CC13X2_CC26X2
select HAS_TI_CCFG
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_PM
select HAS_POWEROFF
help
Enable support for TI SimpleLink CC13x2 / CC26x2 SoCs

View file

@ -54,7 +54,6 @@ extern PowerCC26X2_ModuleState PowerCC26X2_module;
* Power state mapping:
* PM_STATE_SUSPEND_TO_IDLE: Idle
* PM_STATE_STANDBY: Standby
* PM_STATE_SUSPEND_TO_RAM | PM_STATE_SUSPEND_TO_DISK: Shutdown
*/
/* Invoke Low Power/System Off specific Tasks */
@ -106,13 +105,6 @@ void pm_state_set(enum pm_state state, uint8_t substate_id)
/* go to standby mode */
Power_sleep(PowerCC26XX_STANDBY);
break;
case PM_STATE_SUSPEND_TO_RAM:
__fallthrough;
case PM_STATE_SUSPEND_TO_DISK:
__fallthrough;
case PM_STATE_SOFT_OFF:
Power_shutdown(0, 0);
break;
default:
LOG_DBG("Unsupported power state %u", state);
break;

View file

@ -0,0 +1,16 @@
/*
* Copyright (c) 2023 Nordic Semiconductor ASA
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/sys/poweroff.h>
#include <zephyr/toolchain.h>
#include <ti/drivers/Power.h>
void z_sys_poweroff(void)
{
Power_shutdown(0, 0);
CODE_UNREACHABLE;
}