Subject: Re: [PATCH 1/2] misc: lan966x_pci: Fix dtc warns 'missing or empty reg/ranges property'

From: Herve Codina <[email-masked]>
Date: Mon, 28 Oct 2024 18:43:43 +0100

Hi Rob,

On Mon, 28 Oct 2024 08:55:24 -0500
Rob Herring <[email-masked]> wrote:

> On Mon, Oct 28, 2024 at 7:24 AM Herve Codina <[email-masked]> wrote:
> >
> > dtc generates the following warnings when building the LAN966x device
> > tree overlay (lan966x_pci.dtso):
> >   Warning (simple_bus_reg): /fragment@0/__overlay__/pci-ep-bus@0/cpu_clk: missing or empty reg/ranges property
> >   Warning (simple_bus_reg): /fragment@0/__overlay__/pci-ep-bus@0/ddr_clk: missing or empty reg/ranges property
> >   Warning (simple_bus_reg): /fragment@0/__overlay__/pci-ep-bus@0/sys_clk: missing or empty reg/ranges property
> >
> > Indeed, related nodes are under the pci-ep-bus (simple-bus) which is not
> > correct.
> >
> > Put them outside this node.
> >
> > Reported-by: Stephen Rothwell <[email-masked]>
> > Closes: https://lore.kernel.org/all/[email-masked]/
> > Fixes: 185686beb464 ("misc: Add support for LAN966x PCI device")
> > Signed-off-by: Herve Codina <[email-masked]>
> > ---
> > The referenced commit is in the reset tree
> > ---
> >  drivers/misc/lan966x_pci.dtso | 36 +++++++++++++++++------------------
> >  1 file changed, 18 insertions(+), 18 deletions(-)
> >
> > diff --git a/drivers/misc/lan966x_pci.dtso b/drivers/misc/lan966x_pci.dtso
> > index 7282687df25f..5466d013da7d 100644
> > --- a/drivers/misc/lan966x_pci.dtso
> > +++ b/drivers/misc/lan966x_pci.dtso
> > @@ -19,6 +19,24 @@ __overlay__ {
> >                         #address-cells = <3>;
> >                         #size-cells = <2>;
> >
> > +                       cpu_clk: cpu_clk {  
> 
> Preferred node name is "clock-<freq-in-hz>"

I based the name on the lan966x.dtsi
https://elixir.bootlin.com/linux/v6.12-rc1/source/arch/arm/boot/dts/microchip/lan966x.dtsi#L38

Of course, I can rename the cpu_clk, ddr_clk and sys_clk nodes but this will create
a difference against lan966x.dtsi on some points that should be identical.

Let me know with that in mind if I need to rename those nodes in this series.

> 
> Also, as a general rule, don't use "_" in node names (and properties).
> 
> Isn't there a schema for the device which needs these nodes added to
> it? If not, there should be.
> 

No, there is no schema yet for this device.

How can we describe schema for this kind of devices that are using
device-tree overlays?
I mean, this overlay is applied on a PCI device DT node. This DT node is
computed at runtime. It is, in the end, available in the base DT before
applying the overlay.
The compatible string that could be used to check the dtso against schema
cannot be set in the overlay (at least not at the correct place in the
hierarchy) without causing a property memory leak at runtime. An overlay
cannot add a property in a base DT node without generating a memory leak
and so, we avoid adding such properties in the base DT from the overlay.

Is this missing schema blocking for this series ?

Best regards,
Hervé

-- 
Hervé Codina, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com