Hi Chris, On Tue, Sep 18, 2018 at 5:04 PM Chris Brandt <Chris.Brandt@xxxxxxxxxxx> wrote: > On Tuesday, September 18, 2018, Geert Uytterhoeven wrote: > > Then the early init from CLK_OF_DECLARE() will just register the > > early clocks, and cpg_mssr_probe() can take care of the remaining parts? > > What is not clear to me is what goes in DT???? > > I will have this in .dtsi for cpg_mssr_probe(): > > cpg: clock-controller@fcfe0020 { > compatible = "renesas,r7s9210-cpg-mssr"; > reg = <0xfcfe0010 0x455>; /* ----------- FCFE0010 - FCFE0465 */ > clocks = <&extal_clk>; > clock-names = "extal"; > > > But, I also need /something/ for CLK_OF_DECLARE(). > That means a second DT node (which means 2 different devices, 2 > different drivers) > > 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. Please have a look at e.g. "mediatek,mt2712-topckgen". 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