From: Marek Vasut Date: Sun, 23 Mar 2025 15:58:33 +0000 (+0100) Subject: clk: clk-mux: Resolve parent clock by name X-Git-Tag: v2025.07-rc1~18^2~15^2~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3070d30df12f7b17551a51942324cd86332b0cbe;p=thirdparty%2Fu-boot.git clk: clk-mux: Resolve parent clock by name 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 --- diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c index e2331a07840..d7411f8f282 100644 --- a/drivers/clk/clk-mux.c +++ b/drivers/clk/clk-mux.c @@ -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);