[PATCH 4/6] clk: exynos: add function for Samsung CMU ops->request
    Kaustabh Chakraborty 
    kauschluss at disroot.org
       
    Fri Oct 17 17:21:32 CEST 2025
    
    
  
The request function performs a simple check if the clock with the
provided ID is present or not. This is done with a simple call to
clk_get_by_id(). A non-zero return value indicates that the requested
clock is not available.
In some cases, clk->dev points to the clock bank device instead of
the clock device. This pointer is therefore overwritten in order to
reference to the correct device instance.
Signed-off-by: Kaustabh Chakraborty <kauschluss at disroot.org>
---
 drivers/clk/exynos/clk.c | 13 +++++++++++++
 drivers/clk/exynos/clk.h |  4 ++++
 2 files changed, 17 insertions(+)
diff --git a/drivers/clk/exynos/clk.c b/drivers/clk/exynos/clk.c
index a3832981f9005334cf8e07b0feee89d7da7577e9..a2c9f4851daf3dbb0c04f8a1b1414b0db543664e 100644
--- a/drivers/clk/exynos/clk.c
+++ b/drivers/clk/exynos/clk.c
@@ -10,6 +10,19 @@
 #include <dm.h>
 #include "clk.h"
 
+int samsung_clk_request(struct clk *clk)
+{
+	struct clk *c;
+	int ret;
+
+	ret = clk_get_by_id(clk->id, &c);
+	if (ret)
+		return ret;
+
+	clk->dev = c->dev;
+	return 0;
+}
+
 static void
 samsung_clk_register_fixed_rate(struct udevice *dev, void __iomem *base,
 				unsigned int cmu_id,
diff --git a/drivers/clk/exynos/clk.h b/drivers/clk/exynos/clk.h
index e53dcc6a821a4d11ce0ca3f2086aa9e425ff88c7..c25b7cb59d4f2792d395c7a67e40fd0be8fc46da 100644
--- a/drivers/clk/exynos/clk.h
+++ b/drivers/clk/exynos/clk.h
@@ -9,10 +9,13 @@
 #ifndef __EXYNOS_CLK_H
 #define __EXYNOS_CLK_H
 
+#include <clk.h>
 #include <errno.h>
 #include <linux/clk-provider.h>
 #include "clk-pll.h"
 
+int samsung_clk_request(struct clk *clk);
+
 #define _SAMSUNG_CLK_OPS(_name, _cmu)					\
 static int _name##_of_xlate(struct clk *clk,				\
 			    struct ofnode_phandle_args *args)		\
@@ -37,6 +40,7 @@ static const struct clk_ops _name##_clk_ops = {				\
 	.enable = ccf_clk_enable,					\
 	.disable = ccf_clk_disable,					\
 	.of_xlate = _name##_of_xlate,					\
+	.request = samsung_clk_request,					\
 }
 
 /**
-- 
2.51.0
    
    
More information about the U-Boot
mailing list