drivers: retained_mem: nrf: make ram_ctrl variant explicit

Updated retained_mem driver variant exposes vendor-specific API,
rather than executing implicitly during boot.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
This commit is contained in:
Nikodem Kastelik 2024-12-16 15:54:20 +01:00 committed by Benjamin Cabé
parent e501b54bad
commit 7e84571dcd
2 changed files with 38 additions and 3 deletions

View file

@ -6,6 +6,7 @@
#include <zephyr/devicetree.h> #include <zephyr/devicetree.h>
#include <zephyr/kernel.h> #include <zephyr/kernel.h>
#include <zephyr/drivers/retained_mem/nrf_retained_mem.h>
#include <helpers/nrfx_ram_ctrl.h> #include <helpers/nrfx_ram_ctrl.h>
@ -22,7 +23,7 @@ static const struct ret_mem_region ret_mem_regions[] = {
DT_FOREACH_STATUS_OKAY(zephyr_retained_ram, _BUILD_MEM_REGION) DT_FOREACH_STATUS_OKAY(zephyr_retained_ram, _BUILD_MEM_REGION)
}; };
static int retained_mem_nrf_init(void) int z_nrf_retained_mem_retention_apply(void)
{ {
const struct ret_mem_region *rmr; const struct ret_mem_region *rmr;
@ -33,5 +34,3 @@ static int retained_mem_nrf_init(void)
return 0; return 0;
} }
SYS_INIT(retained_mem_nrf_init, PRE_KERNEL_1, 0);

View file

@ -0,0 +1,36 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_NRF_RETAINED_MEM_H
#define ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_NRF_RETAINED_MEM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <zephyr/drivers/retained_mem.h>
#if defined(CONFIG_RETAINED_MEM_NRF_RAM_CTRL) || defined(__DOXYGEN__)
/** @brief Apply memory retention settings.
*
* Memory retention settings to apply are derived from devicetree configuration.
*
* @retval 0 if the retention settings were applied successfully.
* @retval -ENOTSUP if retention configuration is not present in devicetree.
*/
int z_nrf_retained_mem_retention_apply(void);
#else
static inline int z_nrf_retained_mem_retention_apply(void)
{
return -ENOTSUP;
}
#endif
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_NRF_RETAINED_MEM_H */