1 /*
2  * Copyright (c) 2024 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef NRFS_INTERNAL_GDFS_H
8 #define NRFS_INTERNAL_GDFS_H
9 
10 #include <internal/services/nrfs_generic.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 enum __NRFS_PACKED gdfs_frequency_setting {
17 	GDFS_FREQ_HIGH		= 0,
18 	GDFS_FREQ_MEDHIGH	= 1,
19 	GDFS_FREQ_MEDLOW	= 2,
20 	GDFS_FREQ_LOW		= 3,
21 	GDFS_FREQ_COUNT
22 };
23 
24 /** @brief Global Domain Frequency Scaling service request data structure. */
25 typedef struct __NRFS_PACKED {
26 	enum gdfs_frequency_setting target_freq; /** Requested frequency oppoint. */
27 } nrfs_gdfs_req_data_t;
28 
29 /** @brief Global Domain Frequency Scaling frequency change request structure. */
30 typedef struct __NRFS_PACKED {
31 	nrfs_hdr_t hdr;		       /**< Header of the message. */
32 	nrfs_ctx_t ctx;		       /**< Context of the message. */
33 	nrfs_gdfs_req_data_t data; /**< Data of the request. */
34 } nrfs_gdfs_req_t;
35 
36 /** @brief Global Domain Frequency Scaling service notification 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_gdfs_rsp_t;
41 
42 #ifdef __cplusplus
43 }
44 #endif
45 
46 #endif /* NRFS_INTERNAL_GDFS_H */
47