On Sun, Mar 23, 2025 at 04:58:29PM +0100, Marek Vasut wrote: >Add clk_resolve_parent_clk() to resolve parent clock udevice name >based on clock-names DT property. This is used in SoC clock drivers >to look up the clock name in clock tables, which matches a clock >name in DT clock-names property, and convert it into udevice name >which is used by U-Boot clock framework to look up parent clock in >e.g. clk_register() using uclass_get_device_by_name(UCLASS_CLK, >parent_name, &parent); > >Pass struct udevice pointer through the various iMX clock drivers.
Thanks for the effort. Acked-by: Peng Fan <peng....@nxp.com> BTW: this could only fix partial of the current clk code. The current clock framework is kind of a bit mess. There is more issue is not support multiple clk provider, name should be unique. I was thinking to drop using device for clk, following linux clk driver to use a clk_hw structure for each clk. Regards, Peng > >Marek Vasut (24): > clk: Add clk_resolve_parent_clk() > clk: clk-mux: Fold clk_register_mux() > clk: clk-mux: Use struct udevice instead of struct device > clk: clk-mux: Resolve parent clock by name > clk: imx: Pass struct udevice into imx_clk_mux*() > clk: imx: Pass struct udevice to clk_register_mux() > clk: clk-gate: Use struct udevice instead of struct device > clk: clk-gate: Resolve parent clock by name > clk: imx: gate2: Use struct udevice instead of struct device > clk: imx: gate2: Resolve parent clock by name > clk: imx: Pass struct udevice into imx_clk_gate*() > clk: imx: Pass struct udevice to clk_register_gate*() > clk: clk-composite: Use struct udevice instead of struct device > clk: clk-composite: Resolve parent clock by name > clk: imx: Pass struct udevice into imx_clk_composite*() > clk: imx: Convert clock-osc-* back to osc_* > clk: imx: Pass struct udevice into imx_clk_pllv3*() > clk: imx: pllv3: Resolve parent clock by name > clk: clk-divider: Use struct udevice instead of struct device > clk: imx: Pass struct udevice into imx_clk_divider*() > clk: clk-divider: Resolve parent clock by name > clk: clk-fixed-factor: Use struct udevice instead of struct device > clk: clk-fixed-factor: Resolve parent clock by name > clk: imx: Pass struct udevice into imx_clk_fixed_factor*() > > drivers/clk/clk-composite.c | 4 +- > drivers/clk/clk-divider.c | 7 +- > drivers/clk/clk-fixed-factor.c | 6 +- > drivers/clk/clk-gate.c | 5 +- > drivers/clk/clk-mux.c | 47 +--- > drivers/clk/clk-uclass.c | 18 ++ > drivers/clk/imx/clk-composite-8m.c | 4 +- > drivers/clk/imx/clk-gate2.c | 5 +- > drivers/clk/imx/clk-imx6q.c | 80 +++---- > drivers/clk/imx/clk-imx8mm.c | 254 +++++++++++---------- > drivers/clk/imx/clk-imx8mn.c | 246 ++++++++++---------- > drivers/clk/imx/clk-imx8mp.c | 348 ++++++++++++++--------------- > drivers/clk/imx/clk-imx8mq.c | 226 +++++++++---------- > drivers/clk/imx/clk-imx93.c | 8 +- > drivers/clk/imx/clk-imxrt1020.c | 42 ++-- > drivers/clk/imx/clk-imxrt1050.c | 78 +++---- > drivers/clk/imx/clk-imxrt1170.c | 30 +-- > drivers/clk/imx/clk-pllv3.c | 9 +- > drivers/clk/imx/clk.h | 116 +++++----- > include/clk.h | 9 + > include/linux/clk-provider.h | 10 +- > 21 files changed, 783 insertions(+), 769 deletions(-) > >--- >Cc: Adam Ford <aford...@gmail.com> >Cc: Christoph Niedermaier <cniederma...@dh-electronics.com> >Cc: Dong Aisheng <aisheng.d...@nxp.com> >Cc: Fabio Estevam <feste...@denx.de> >Cc: Hou Zhiqiang <zhiqiang....@nxp.com> >Cc: Michael Trimarchi <mich...@amarulasolutions.com> >Cc: Peng Fan <peng....@nxp.com> >Cc: Tim Harvey <thar...@gateworks.com> >Cc: Tom Rini <tr...@konsulko.com> >Cc: u-boot@lists.denx.de >Cc: uboot-...@nxp.com > >-- >2.47.2 >