clk: Provide struct clk for fixed rate clock (clk_fixed_rate.c)
[oweals/u-boot.git] / drivers / clk / clk_fixed_rate.c
index 50dbb136557c9de8228ddd397cd2893c1610bee6..1fdf8c4e540a7962297c53038a01916d33a3f11f 100644 (file)
@@ -8,6 +8,7 @@
 #include <dm.h>
 
 struct clk_fixed_rate {
+       struct clk clk;
        unsigned long fixed_rate;
 };
 
@@ -24,10 +25,14 @@ const struct clk_ops clk_fixed_rate_ops = {
 
 static int clk_fixed_rate_ofdata_to_platdata(struct udevice *dev)
 {
+       struct clk *clk = &to_clk_fixed_rate(dev)->clk;
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
        to_clk_fixed_rate(dev)->fixed_rate =
                dev_read_u32_default(dev, "clock-frequency", 0);
 #endif
+       /* Make fixed rate clock accessible from higher level struct clk */
+       dev->uclass_priv = clk;
+       clk->dev = dev;
 
        return 0;
 }