09.09.2025 13:30, Dhruva Gole wrote:
On Aug 25, 2025 at 16:49:30 +0300, Maxim Kochetkov wrote:
19.08.2025 10:33, Kamlesh Gurudasani wrote:
Clock version 3.0 specified in ARM SCMI Platform design document
v3.2, adds extended_config_val parameter in CLOCK_CONFIG_SET.
The SCMI server with clock version 3.0 rejects the message if
they don't have this field.
Add support so that both SCMI server with clock version 2.0 and 3.0
can be handled.
Signed-off-by: Kamlesh Gurudasani <kaml...@ti.com>
---
drivers/clk/clk_scmi.c | 43 ++++++++++++++++++++++++++++++-------------
include/scmi_protocols.h | 6 ++++++
2 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
index 83ea7bb4286..b33cc05685d 100644
--- a/drivers/clk/clk_scmi.c
+++ b/drivers/clk/clk_scmi.c
@@ -131,19 +131,36 @@ static int scmi_clk_get_attibute(struct udevice *dev, int
clkid, char **name,
static int scmi_clk_gate(struct clk *clk, int enable)
{
- struct scmi_clk_state_in in = {
- .clock_id = clk_get_id(clk),
- .attributes = enable,
- };
+ struct scmi_clock_priv *priv = dev_get_priv(clk->dev);
struct scmi_clock_priv *priv = dev_get_priv(clk->dev->parent);
Could you elaborate?
I think clk->dev should be fine, similar to other instances in the same
file. Maybe I am missing something?
clk->dev points to hw clock device. It has no struct scmi_clock_priv
stored in priv data. So we have to step up to parent device to get SCMI
protocol device to get struct scmi_clock_priv to get protocol version
priv->version.