Message ID | 20220427095653.91804-7-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
State | Awaiting Upstream, archived |
Headers | show |
Series | RZN1 DMA support | expand |
On Wed, Apr 27, 2022 at 11:57 AM Miquel Raynal <miquel.raynal@bootlin.com> wrote: > The clock controller device on r9a06g032 takes all the memory range that > is described as being a system controller. This range contains many > different (unrelated?) registers besides the ones belonging to the clock > controller, that can necessitate to be accessed from other peripherals. > > For instance, the dmamux registers are there. The dmamux "device" will > be described as a child node of the clock/system controller node, which > means we need the top device driver (the clock controller driver in this > case) to populate its children manually. In case of error when > populating the children, we do not fail the probe on purpose to keep the > clk driver up and running. > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > Acked-by: Stephen Boyd <sboyd@kernel.org> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org 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
diff --git a/drivers/clk/renesas/r9a06g032-clocks.c b/drivers/clk/renesas/r9a06g032-clocks.c index 052d99059981..69c0eb0eabd1 100644 --- a/drivers/clk/renesas/r9a06g032-clocks.c +++ b/drivers/clk/renesas/r9a06g032-clocks.c @@ -16,6 +16,7 @@ #include <linux/math64.h> #include <linux/of.h> #include <linux/of_address.h> +#include <linux/of_platform.h> #include <linux/platform_device.h> #include <linux/pm_clock.h> #include <linux/pm_domain.h> @@ -996,6 +997,10 @@ static int __init r9a06g032_clocks_probe(struct platform_device *pdev) sysctrl_priv = clocks; + error = of_platform_populate(np, NULL, NULL, dev); + if (error) + dev_err(dev, "Failed to populate children (%d)\n", error); + return 0; }