aboutsummaryrefslogtreecommitdiff
path: root/include/scmi_agent.h
diff options
context:
space:
mode:
authorAKASHI Takahiro2023-10-11 19:06:58 +0900
committerTom Rini2023-10-13 16:59:23 -0400
commit55de62baa1119e8a88e9bfc78705ebff498b0e88 (patch)
tree83bd5dcae231007d6d998073635dc023d01893eb /include/scmi_agent.h
parentbb8079ae386fdf06f8f2c5162639c8e7460ba379 (diff)
firmware: scmi: framework for installing additional protocols
This framework allows SCMI protocols to be installed and bound to the agent so that the agent can manage and utilize them later. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
Diffstat (limited to 'include/scmi_agent.h')
-rw-r--r--include/scmi_agent.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/scmi_agent.h b/include/scmi_agent.h
index 577892029ff..755986d6c42 100644
--- a/include/scmi_agent.h
+++ b/include/scmi_agent.h
@@ -10,6 +10,7 @@
#ifndef SCMI_AGENT_H
#define SCMI_AGENT_H
+#include <scmi_protocols.h>
#include <asm/types.h>
struct udevice;
@@ -75,6 +76,19 @@ int devm_scmi_of_get_channel(struct udevice *dev);
int devm_scmi_process_msg(struct udevice *dev, struct scmi_msg *msg);
/**
+ * scmi_get_protocol() - get protocol instance
+ *
+ * @dev: SCMI agent device
+ * @id: SCMI protocol ID
+ *
+ * Obtain the device instance for given protocol ID, @id.
+ *
+ * Return: Pointer to the device if found, null otherwise
+ */
+struct udevice *scmi_get_protocol(struct udevice *dev,
+ enum scmi_std_protocol id);
+
+/**
* scmi_to_linux_errno() - Convert an SCMI error code into a Linux errno code
*
* @scmi_errno: SCMI error code value