Hi Morimoto-san, On Wed, Nov 29, 2023 at 12:13 AM Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> wrote: > > > +static int __init cpg_mssr_reserved_init(struct cpg_mssr_priv *priv, > > > + const struct cpg_mssr_info *info) > > > +{ > > > + struct device_node *root = of_find_node_by_path("/soc"); > > > > 'root' is '/', so I find this slightly confusing. > (snip) > > > + * scif5: serial@e6f30000 { > > > + * ... > > > + * => clocks = <&cpg CPG_MOD 202>, > > > + * <&cpg CPG_CORE R8A7795_CLK_S3D1>, > > > + * <&scif_clk>; > > > + * ... > > > + * status = "reserved"; > > > + * }; > > > + */ > > > + for_each_reserved_child_of_node(root, node) { > > > > Don't you really want to find all reserved nodes in the DT rather than > > just child nodes of a single node? > > The all devices which we need to check (and ignore the clock) in this > driver is defined under /soc for now. "For now" is the right clause: all module clocks are inputs to on-SoC devices under the "soc" node. However, once the clock drivers become aware[1]* of programmable (core) clocks driving the real-time CPU cores not running Linux, you may need special handling for these, too. [1] On R-Car V3U, the clock driver already supports R8A779A0_CLK_ZR, but it is a fixed clock that cannot be disabled nor changed. 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