1 /*
2  * Copyright (c) 2024 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef NRFS_INTERNAL_GDPWR_H
8 #define NRFS_INTERNAL_GDPWR_H
9 
10 #include <internal/services/nrfs_generic.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 /** @brief Power domain selection */
17 typedef enum __NRFS_PACKED {
18 	GDPWR_GD_FAST_ACTIVE_0,
19 	GDPWR_GD_FAST_ACTIVE_1,
20 	GDPWR_GD_FAST_MAIN,
21 	GDPWR_GD_SLOW_ACTIVE,
22 	GDPWR_GD_SLOW_MAIN
23 } gdpwr_power_domain_t;
24 
25 typedef enum __NRFS_PACKED {
26 	GDPWR_POWER_REQUEST_CLEAR,
27 	GDPWR_POWER_REQUEST_SET
28 } gdpwr_request_type_t;
29 
30 /** @brief Power domain data structure. */
31 typedef struct __NRFS_PACKED {
32 	gdpwr_power_domain_t power_domain;
33 	gdpwr_request_type_t request_type;
34 } nrfs_gdpwr_power_domain_data_t;
35 
36 /** @brief global domain power request structure. */
37 typedef struct __NRFS_PACKED {
38 	nrfs_hdr_t hdr;			   /**< Header of the message. */
39 	nrfs_ctx_t ctx;			   /**< Context of the message. */
40 	nrfs_gdpwr_power_domain_data_t data; /**< Data of the request. */
41 } nrfs_gdpwr_req_t;
42 
43 #ifdef __cplusplus
44 }
45 #endif
46 
47 #endif /* NRFS_INTERNAL_GDPWR_H */
48