]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
clk: clk-mux: Resolve parent clock by name
authorMarek Vasut <marex@denx.de>
Sun, 23 Mar 2025 15:58:33 +0000 (16:58 +0100)
committerFabio Estevam <festevam@gmail.com>
Mon, 24 Mar 2025 11:51:34 +0000 (08:51 -0300)
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
drivers/clk/clk-mux.c

index e2331a0784019f0a274f6697aa3f53e1199c0ee5..d7411f8f2822290f102d257faca5c46a0419f80a 100644 (file)
@@ -113,6 +113,11 @@ int clk_mux_fetch_parent_index(struct clk *clk, struct clk *parent)
        for (i = 0; i < mux->num_parents; i++) {
                if (!strcmp(parent->dev->name, mux->parent_names[i]))
                        return i;
+               if (!strcmp(parent->dev->name,
+                           clk_resolve_parent_clk(clk->dev,
+                                                  mux->parent_names[i])))
+                       return i;
+
        }
 
        return -EINVAL;
@@ -207,7 +212,8 @@ struct clk *clk_register_mux(struct udevice *dev, const char *name,
         * for the corresponding clock (to do that define .set_parent() method).
         */
        ret = clk_register(clk, UBOOT_DM_CLK_CCF_MUX, name,
-                          parent_names[clk_mux_get_parent(clk)]);
+                          clk_resolve_parent_clk(dev,
+                               parent_names[clk_mux_get_parent(clk)]));
        if (ret) {
                kfree(mux);
                return ERR_PTR(ret);