aboutsummaryrefslogtreecommitdiff
path: root/include/linux/scmi_protocol.h
diff options
context:
space:
mode:
authorGravatar Cristian Marussi <cristian.marussi@arm.com> 2023-08-26 13:53:08 +0100
committerGravatar Sudeep Holla <sudeep.holla@arm.com> 2023-09-20 15:01:40 +0100
commit141b4fa0362569138653cf0165d92d48576db3fa (patch)
treef19d2321fd1360754cfbf8b3d858a30c9a9ec710 /include/linux/scmi_protocol.h
parentclk: scmi: Add support for .is_enabled clk_ops (diff)
downloadlinux-141b4fa0362569138653cf0165d92d48576db3fa.tar.gz
linux-141b4fa0362569138653cf0165d92d48576db3fa.tar.bz2
linux-141b4fa0362569138653cf0165d92d48576db3fa.zip
firmware: arm_scmi: Add clock OEM config clock operations
Expose a couple of new SCMI clock operations to get and set OEM specific clock configurations when talking to an SCMI v3.2 compliant. Issuing such requests against an SCMI platform server not supporting v3.2 extension for OEM specific clock configurations will fail. Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> Link: https://lore.kernel.org/r/20230826125308.462328-7-cristian.marussi@arm.com Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Diffstat (limited to 'include/linux/scmi_protocol.h')
-rw-r--r--include/linux/scmi_protocol.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index d11ca4286d57..e09ac428fa1b 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -81,6 +81,8 @@ struct scmi_protocol_handle;
* @enable: enables the specified clock
* @disable: disables the specified clock
* @state_get: get the status of the specified clock
+ * @config_oem_get: get the value of an OEM specific clock config
+ * @config_oem_set: set the value of an OEM specific clock config
*/
struct scmi_clk_proto_ops {
int (*count_get)(const struct scmi_protocol_handle *ph);
@@ -97,6 +99,11 @@ struct scmi_clk_proto_ops {
bool atomic);
int (*state_get)(const struct scmi_protocol_handle *ph, u32 clk_id,
bool *enabled, bool atomic);
+ int (*config_oem_get)(const struct scmi_protocol_handle *ph, u32 clk_id,
+ u8 oem_type, u32 *oem_val, u32 *attributes,
+ bool atomic);
+ int (*config_oem_set)(const struct scmi_protocol_handle *ph, u32 clk_id,
+ u8 oem_type, u32 oem_val, bool atomic);
};
/**