Re: [PATCH V3 1/3] clk: vc5: Allow Versaclock driver to support multiple instances

From: Geert Uytterhoeven
Date: Wed Jun 24 2020 - 03:34:29 EST


Hi Adam,

On Wed, Jun 3, 2020 at 5:44 PM Adam Ford <aford173@xxxxxxxxx> wrote:
> Currently, the Versaclock driver is only expecting one instance and
> uses hard-coded names for the various clock names. Unfortunately,
> this is a problem when there is more than one instance of the driver,
> because the subsequent instantiations of the driver use the identical
> name. Each clock after the fist fails to load, because the clock
> subsystem cannot handle two clocks with identical name.

Thanks for your patch, which is now commit f491276a51685987 ("clk: vc5:
Allow Versaclock driver to support multiple instances") in clk-next.

> This patch removes the hard-coded name arrays and uses kasprintf to
> assign clock names based on names of their respective node and parent
> node which gives each clock a unique identifying name.
>
> For a verasaclock node with a name like:
> versaclock5: versaclock_som@6a
>
> The updated clock names would appear like:
> versaclock_som.mux
> versaclock_som.out0_sel_i2cb
> versaclock_som.pfd
> versaclock_som.pll
> versaclock_som.fod3
> versaclock_som.out4
> versaclock_som.fod2
> versaclock_som.out3
> versaclock_som.fod1
> versaclock_som.out2
> versaclock_som.fod0
> versaclock_som.out1

I'm afraid this won't help, as all versaclock nodes should be named
"clock-controller@<unit-address>", as per DT generic node name
recommendations.
Incorporating the unit-address won't help, as you can have multiple
i2c buses in the system.
How do other drivers handle this?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds