From: Kaustabh Chakraborty Date: Fri, 17 Oct 2025 15:21:32 +0000 (+0530) Subject: clk: exynos: add function for Samsung CMU ops->request X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4bee54fbfa9e5be4bb17435dc809b0002566f986;p=thirdparty%2Fu-boot.git clk: exynos: add function for Samsung CMU ops->request 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 Signed-off-by: Minkyu Kang --- diff --git a/drivers/clk/exynos/clk.c b/drivers/clk/exynos/clk.c index a3832981f90..a2c9f4851da 100644 --- a/drivers/clk/exynos/clk.c +++ b/drivers/clk/exynos/clk.c @@ -10,6 +10,19 @@ #include #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 e53dcc6a821..c25b7cb59d4 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 #include #include #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, \ } /**