1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  *
7  * Description:
8  *      System Control and Management Interface (SCMI) Sensor
9  *      requester support.
10  */
11 
12 #ifndef MOD_SCMI_SENSOR_REQ_H
13 #define MOD_SCMI_SENSOR_REQ_H
14 
15 #include <fwk_id.h>
16 #include <fwk_macros.h>
17 
18 #include <stddef.h>
19 #include <stdint.h>
20 
21 /*!
22  * \addtogroup GroupModules Modules
23  * \{
24  */
25 
26 /*!
27  * \defgroup GroupSCMISensorRequester SCMI Sensor Protocol Requester
28  *
29  * \brief SCMI Sensor Protocol requester implementation.
30  *
31  * \{
32  */
33 
34 /*!
35  * \brief Sensor requester get value mode
36  */
37 enum scmi_sensor_req_async_flag {
38     SENSOR_REQ_SYNC = 0,
39     SENSOR_REQ_ASYNC,
40 };
41 
42 /*!
43  * \brief SCMI sensor requester configuration
44  */
45 struct scmi_sensor_req_config {
46     /*!
47      * \brief SCMI Service ID
48      *
49      * \details The service ID which corresponds to the required
50      *      channel in the transport layer.
51      */
52     fwk_id_t service_id;
53     /*!
54      * \brief SCMI Sensor ID
55      *
56      * \details This is the sensor ID exposed by SCMI on the platform side.
57      */
58     uint32_t scmi_sensor_id;
59     /*!
60      * \brief Sensor HAL identifier
61      *
62      * \details This the identifier for the HAL module that communicates
63      *      directly with this module within the same entity.
64      */
65     fwk_id_t sensor_hal_id;
66     /*!
67      * \brief Async flag
68      */
69     enum scmi_sensor_req_async_flag async_flag;
70 };
71 
72 /*!
73  * \}
74  */
75 
76 /*!
77  * \}
78  */
79 
80 #endif /* MOD_SCMI_SENSOR_REQ_H */
81