From 431f6cce118d22c98a65d20e9b512ecc31fc1c8e Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 28 Oct 2025 14:58:57 +0100 Subject: firmware: scmi: Fix up code comments Fix multiple instances of copy-paste errors. Fill in missing headers for CLOCK_GET_PERMISSIONS message and response. Signed-off-by: Marek Vasut Reviewed-by: Alice Guo Signed-off-by: Peng Fan --- include/scmi_protocols.h | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/scmi_protocols.h b/include/scmi_protocols.h index bb74a57f79a..bcd8e671149 100644 --- a/include/scmi_protocols.h +++ b/include/scmi_protocols.h @@ -399,7 +399,7 @@ int scmi_generic_protocol_version(struct udevice *dev, int scmi_base_protocol_version(struct udevice *dev, u32 *version); /** - * scmi_protocol_attrs - get protocol attributes + * scmi_base_protocol_attrs - get protocol attributes * @dev: SCMI protocol device * @num_agents: Number of SCMI agents * @num_protocols: Number of SCMI protocols @@ -414,7 +414,7 @@ int scmi_base_protocol_attrs(struct udevice *dev, u32 *num_agents, u32 *num_protocols); /** - * scmi_protocol_message_attrs - get message-specific attributes + * scmi_base_protocol_message_attrs - get message-specific attributes * @dev: SCMI protocol device * @message_id: SCMI message ID * @attributes: Message-specific attributes @@ -754,7 +754,7 @@ enum scmi_clock_message_id { #define SCMI_CLOCK_NAME_LENGTH_MAX 16 /** - * struct scmi_clk_get_nb_out - Response for SCMI_PROTOCOL_ATTRIBUTES command + * struct scmi_clk_protocol_attr_out - Response for SCMI_PROTOCOL_ATTRIBUTES command * @status: SCMI command status * @attributes: Attributes of the clock protocol, mainly number of clocks exposed */ @@ -772,7 +772,7 @@ struct scmi_clk_attribute_in { }; /** - * struct scmi_clk_get_nb_out - Response payload for SCMI_CLOCK_ATTRIBUTES command + * struct scmi_clk_attribute_out - Response payload for SCMI_CLOCK_ATTRIBUTES command * @status: SCMI command status * @attributes: clock attributes * @clock_name: name of the clock @@ -785,7 +785,7 @@ struct scmi_clk_attribute_out { }; /** - * struct scmi_clk_get_nb_out_v2 - Response payload for SCMI_CLOCK_ATTRIBUTES command + * struct scmi_clk_attribute_out_v2 - Response payload for SCMI_CLOCK_ATTRIBUTES command * Clock management Protocol 2.0 * @status: SCMI command status * @attributes: clock attributes @@ -818,7 +818,7 @@ struct scmi_clk_state_out { }; /** - * struct scmi_clk_state_in - Message payload for CLOCK_RATE_GET command + * struct scmi_clk_rate_get_in - Message payload for CLOCK_RATE_GET command * @clock_id: SCMI clock ID * @attributes: Attributes of the targets clock state */ @@ -839,7 +839,7 @@ struct scmi_clk_rate_get_out { }; /** - * struct scmi_clk_state_in - Message payload for CLOCK_RATE_SET command + * struct scmi_clk_rate_set_in - Message payload for CLOCK_RATE_SET command * @flags: Flags for the clock rate set request * @clock_id: SCMI clock ID * @rate_lsb: 32bit LSB of the clock rate in Hertz @@ -861,7 +861,7 @@ struct scmi_clk_rate_set_out { }; /** - * struct scmi_clk_parent_state_in - Message payload for CLOCK_PARENT_SET command + * struct scmi_clk_parent_set_in - Message payload for CLOCK_PARENT_SET command * @clock_id: SCMI clock ID * @parent_clk: SCMI clock ID */ @@ -879,6 +879,7 @@ struct scmi_clk_parent_set_out { }; /** + * struct scmi_clk_get_permissions_in - Message payload for CLOCK_GET_PERMISSIONS command * @clock_id: Identifier for the clock device. */ struct scmi_clk_get_permissions_in { @@ -886,6 +887,7 @@ struct scmi_clk_get_permissions_in { }; /** + * struct scmi_clk_get_permissions_out - Response payload for CLOCK_GET_PERMISSIONS command * @status: Negative 32-bit integers are used to return error status codes. * @permissions: Bit[31] Clock state control, Bit[30] Clock parent control, * Bit[29] Clock rate control, Bits[28:0] Reserved, must be zero. @@ -1082,7 +1084,7 @@ struct scmi_pin_config { }; /** - * struct scmi_pad_config_set_in - Message payload for PAD_CONFIG_SET command + * struct scmi_pinctrl_config_set_in - Message payload for PAD_CONFIG_SET command * @identifier: Identifier for the pin or group. * @function_id: Identifier for the function selected to be enabled * for the selected pin or group. This field is set to -- cgit v1.2.3 From 0619cb32030b1d78379f3181d3e1103bb86124fb Mon Sep 17 00:00:00 2001 From: Vinh Nguyen Date: Wed, 5 Nov 2025 04:42:26 +0100 Subject: firmware: scmi: Add clock v3.2 CONFIG_SET support SCMI v3.2 introduces a new clock CONFIG_SET message format that can optionally carry also OEM specific configuration values beside the usual clock enable/disable requests. Add support to use such new format when talking to a v3.2 compliant SCMI platform. Support existing enable/disable operations across different clock protocol versions: this patch still does not add protocol operations to support the new OEM specific optional configuration capabilities. No functional change for the SCMI drivers users of the related enable and disable clock operations. [Marek: Remodel after Linux e49e314a2cf7 ("firmware: arm_scmi: Add clock v3.2 CONFIG_SET support") Support both old < 2.1 and new >= 2.1 protocol versions. Update commit message based on Linux one] Signed-off-by: Vinh Nguyen Signed-off-by: Marek Vasut Reviewed-by: Alice Guo Signed-off-by: Peng Fan --- include/scmi_protocols.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/scmi_protocols.h b/include/scmi_protocols.h index bcd8e671149..ecab021b472 100644 --- a/include/scmi_protocols.h +++ b/include/scmi_protocols.h @@ -733,6 +733,7 @@ int scmi_pwd_name_get(struct udevice *dev, u32 domain_id, u8 **name); /* * SCMI Clock Protocol */ +#define CLOCK_PROTOCOL_VERSION_2_1 0x20001 #define CLOCK_PROTOCOL_VERSION_3_0 0x30000 enum scmi_clock_message_id { @@ -800,15 +801,27 @@ struct scmi_clk_attribute_out_v2 { }; /** - * struct scmi_clk_state_in - Message payload for CLOCK_CONFIG_SET command + * struct scmi_clk_state_in_v1 - Message payload for CLOCK_CONFIG_SET command for protocol < 2.1 * @clock_id: SCMI clock ID * @attributes: Attributes of the targets clock state */ -struct scmi_clk_state_in { +struct scmi_clk_state_in_v1 { u32 clock_id; u32 attributes; }; +/** + * struct scmi_clk_state_in_v2 - Message payload for CLOCK_CONFIG_SET command for protocol >= 2.1 + * @clock_id: SCMI clock ID + * @attributes: Attributes of the targets clock state + * @extended_config_val: Extended and OEM specific configuration + */ +struct scmi_clk_state_in_v2 { + u32 clock_id; + u32 attributes; + u32 extended_config_val; +}; + /** * struct scmi_clk_state_out - Response payload for CLOCK_CONFIG_SET command * @status: SCMI command status -- cgit v1.2.3