diff options
author | AKASHI Takahiro <takahiro.akashi@linaro.org> | 2023-10-11 19:06:58 +0900 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-10-13 16:59:23 -0400 |
commit | 55de62baa1119e8a88e9bfc78705ebff498b0e88 (patch) | |
tree | 83bd5dcae231007d6d998073635dc023d01893eb /include | |
parent | bb8079ae386fdf06f8f2c5162639c8e7460ba379 (diff) | |
download | u-boot-55de62baa1119e8a88e9bfc78705ebff498b0e88.zip u-boot-55de62baa1119e8a88e9bfc78705ebff498b0e88.tar.gz u-boot-55de62baa1119e8a88e9bfc78705ebff498b0e88.tar.bz2 |
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')
-rw-r--r-- | include/scmi_agent-uclass.h | 15 | ||||
-rw-r--r-- | include/scmi_agent.h | 14 |
2 files changed, 28 insertions, 1 deletions
diff --git a/include/scmi_agent-uclass.h b/include/scmi_agent-uclass.h index eee46c8..258aa0f 100644 --- a/include/scmi_agent-uclass.h +++ b/include/scmi_agent-uclass.h @@ -5,11 +5,24 @@ #ifndef _SCMI_AGENT_UCLASS_H #define _SCMI_AGENT_UCLASS_H -struct udevice; +#include <dm/device.h> + struct scmi_msg; struct scmi_channel; /** + * struct scmi_agent_priv - private data maintained by agent instance + * @clock_dev: SCMI clock protocol device + * @resetdom_dev: SCMI reset domain protocol device + * @voltagedom_dev: SCMI voltage domain protocol device + */ +struct scmi_agent_priv { + struct udevice *clock_dev; + struct udevice *resetdom_dev; + struct udevice *voltagedom_dev; +}; + +/** * struct scmi_transport_ops - The functions that a SCMI transport layer must implement. */ struct scmi_agent_ops { diff --git a/include/scmi_agent.h b/include/scmi_agent.h index 5778920..755986d 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 |