Skip to content

Commit ee2e2b8

Browse files
nika-nordicjukkar
authored andcommitted
[nrf fromlist] drivers: retained_mem: nrf: make ram_ctrl variant explicit
Updated retained_mem driver variant exposes vendor-specific API, rather than executing implicitly during boot. Upstream PR #: 82262 Signed-off-by: Nikodem Kastelik <[email protected]> (cherry picked from commit 0819c8e)
1 parent 826e8e9 commit ee2e2b8

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

drivers/retained_mem/retained_mem_nrf_ram_ctrl.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include <zephyr/devicetree.h>
88
#include <zephyr/kernel.h>
9+
#include <zephyr/drivers/retained_mem/nrf_retained_mem.h>
910

1011
#include <helpers/nrfx_ram_ctrl.h>
1112

@@ -22,7 +23,7 @@ static const struct ret_mem_region ret_mem_regions[] = {
2223
DT_FOREACH_STATUS_OKAY(zephyr_retained_ram, _BUILD_MEM_REGION)
2324
};
2425

25-
static int retained_mem_nrf_init(void)
26+
int z_nrf_retained_mem_retention_apply(void)
2627
{
2728
const struct ret_mem_region *rmr;
2829

@@ -33,5 +34,3 @@ static int retained_mem_nrf_init(void)
3334

3435
return 0;
3536
}
36-
37-
SYS_INIT(retained_mem_nrf_init, PRE_KERNEL_1, 0);
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright (c) 2024 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#ifndef ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_NRF_RETAINED_MEM_H
8+
#define ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_NRF_RETAINED_MEM_H
9+
10+
#ifdef __cplusplus
11+
extern "C" {
12+
#endif
13+
14+
#include <zephyr/drivers/retained_mem.h>
15+
16+
#if defined(CONFIG_RETAINED_MEM_NRF_RAM_CTRL) || defined(__DOXYGEN__)
17+
/** @brief Apply memory retention settings.
18+
*
19+
* Memory retention settings to apply are derived from devicetree configuration.
20+
*
21+
* @retval 0 if the retention settings were applied successfully.
22+
* @retval -ENOTSUP if retention configuration is not present in devicetree.
23+
*/
24+
int z_nrf_retained_mem_retention_apply(void);
25+
#else
26+
static inline int z_nrf_retained_mem_retention_apply(void)
27+
{
28+
return -ENOTSUP;
29+
}
30+
#endif
31+
32+
#ifdef __cplusplus
33+
}
34+
#endif
35+
36+
#endif /* ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_NRF_RETAINED_MEM_H */

0 commit comments

Comments
 (0)