Hi Geert, On Tuesday, September 18, 2018 1, Geert Uytterhoeven wrote: > > What do you see the .dtsi and .dts looking like? > > The part using CLK_OF_DECLARE() is not a platform driver. It does not > operate on a device (struct platform_device), but on a device node > (struct > device_node). Hence it would match against the same DT node, but map it > using of_iomap(). So you just need the existing "renesas,r7s9210-cpg- > mssr" > node. So...I tried that...and it doesn't work. Basically, this: CLK_OF_DECLARE(cpg_mstp_early_clks, "renesas,r7s9210-cpg-mssr", rza2_cpg_mssr_early_init); But, what happens is that rza2_cpg_mssr_early_init gets called because it find a match against "renesas,r7s9210-cpg-mssr". But later after cpg_mssr_init gets call, cpg_mssr_probe never gets called. I assume that is because device "renesas,r7s9210-cpg-mssr" has already been matched to a driver. > Please have a look at e.g. "mediatek,mt2712-topckgen". One thing I don't understand is that in the early init, it registers a of_clk_add_provider. But then later in the probe, it register of_clk_add_provider again (on the same DT node). I guess you can do that???? So I see what the mediatek is doing, but I can't seem to reproduce it. I must be missing something. Chris