Re: [PATCH v2 05/91] clk: bcm: rpi: Allow the driver to be probed by DT

From: Nicolas Saenz Julienne
Date: Thu Apr 30 2020 - 12:19:53 EST


On Fri, 2020-04-24 at 17:33 +0200, Maxime Ripard wrote:
> The current firmware clock driver for the RaspberryPi can only be probed by
> manually registering an associated platform_device.
>
> While this works fine for cpufreq where the device gets attached a clkdev
> lookup, it would be tedious to maintain a table of all the devices using
> one of the clocks exposed by the firmware.
>
> Since the DT on the other hand is the perfect place to store those
> associations, make the firmware clocks driver probe-able through the device
> tree so that we can represent it as a node.
>
> Cc: Michael Turquette <mturquette@xxxxxxxxxxxx>
> Cc: Stephen Boyd <sboyd@xxxxxxxxxx>
> Cc: linux-clk@xxxxxxxxxxxxxxx
> Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx>
> ---
> drivers/clk/bcm/clk-raspberrypi.c | 20 +++++++++++++++++---
> 1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-
> raspberrypi.c
> index 1654fd0eedc9..aedeaaf2f66b 100644
> --- a/drivers/clk/bcm/clk-raspberrypi.c
> +++ b/drivers/clk/bcm/clk-raspberrypi.c
> @@ -255,15 +255,22 @@ static int raspberrypi_clk_probe(struct platform_device
> *pdev)
> struct raspberrypi_clk *rpi;
> int ret;
>
> - firmware_node = of_find_compatible_node(NULL, NULL,
> - "raspberrypi,bcm2835-firmware");
> + /*
> + * We can be probed either through the an old-fashioned
> + * platform device registration or through a DT node that is a
> + * child of the firmware node. Handle both cases.
> + */
> + if (dev->of_node)
> + firmware_node = of_get_parent(dev->of_node);
> + else
> + firmware_node = of_find_compatible_node(NULL, NULL,
> + "raspberrypi,bcm2835-
> firmware");
> if (!firmware_node) {
> dev_err(dev, "Missing firmware node\n");
> return -ENOENT;
> }
>
> firmware = rpi_firmware_get(firmware_node);
> - of_node_put(firmware_node);

Why remove this? I think it's still needed after your changes.

Regards,
Nicolas

Attachment: signature.asc
Description: This is a digitally signed message part