[PATCH] dt-bindings: net: Add missing properties used in examples

Rob Herring robh at kernel.org
Tue Dec 7 08:29:21 PST 2021


On Tue, Dec 7, 2021 at 2:33 AM Thierry Reding <thierry.reding at gmail.com> wrote:
>
> On Mon, Dec 06, 2021 at 11:41:52AM -0600, Rob Herring wrote:
> > With 'unevaluatedProperties' support implemented, the following warnings
> > are generated in the net bindings:
> >
> > Documentation/devicetree/bindings/net/actions,owl-emac.example.dt.yaml: ethernet at b0310000: Unevaluated properties are not allowed ('mdio' was unexpected)
> > Documentation/devicetree/bindings/net/intel,dwmac-plat.example.dt.yaml: ethernet at 3a000000: Unevaluated properties are not allowed ('snps,pbl', 'mdio0' were unexpected)
> > Documentation/devicetree/bindings/net/qca,ar71xx.example.dt.yaml: ethernet at 19000000: Unevaluated properties are not allowed ('qca,ethcfg' was unexpected)
> > Documentation/devicetree/bindings/net/qca,ar71xx.example.dt.yaml: ethernet at 1a000000: Unevaluated properties are not allowed ('mdio' was unexpected)
> > Documentation/devicetree/bindings/net/stm32-dwmac.example.dt.yaml: ethernet at 40028000: Unevaluated properties are not allowed ('reg-names', 'snps,pbl' were unexpected)
> > Documentation/devicetree/bindings/net/ti,cpsw-switch.example.dt.yaml: mdio at 1000: Unevaluated properties are not allowed ('clocks', 'clock-names' were unexpected)
> > Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.example.dt.yaml: mdio at f00: Unevaluated properties are not allowed ('clocks', 'clock-names' were unexpected)
> >
> > Add the missing properties/nodes as necessary.
> >
> > Cc: "David S. Miller" <davem at davemloft.net>
> > Cc: Jakub Kicinski <kuba at kernel.org>
> > Cc: "Andreas Färber" <afaerber at suse.de>
> > Cc: Manivannan Sadhasivam <mani at kernel.org>
> > Cc: Maxime Coquelin <mcoquelin.stm32 at gmail.com>
> > Cc: Alexandre Torgue <alexandre.torgue at foss.st.com>
> > Cc: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu at toshiba.co.jp>
> > Cc: Cristian Ciocaltea <cristian.ciocaltea at gmail.com>
> > Cc: "G. Jaya Kumaran" <vineetha.g.jaya.kumaran at intel.com>
> > Cc: Oleksij Rempel <o.rempel at pengutronix.de>
> > Cc: Christophe Roullier <christophe.roullier at foss.st.com>
> > Cc: Grygorii Strashko <grygorii.strashko at ti.com>
> > Cc: netdev at vger.kernel.org
> > Cc: linux-arm-kernel at lists.infradead.org
> > Cc: linux-actions at lists.infradead.org
> > Cc: linux-stm32 at st-md-mailman.stormreply.com
> > Signed-off-by: Rob Herring <robh at kernel.org>
> > ---
> >  .../devicetree/bindings/net/actions,owl-emac.yaml          | 3 +++
> >  .../devicetree/bindings/net/intel,dwmac-plat.yaml          | 2 +-
> >  Documentation/devicetree/bindings/net/qca,ar71xx.yaml      | 5 ++++-
> >  Documentation/devicetree/bindings/net/stm32-dwmac.yaml     | 6 ++++++
> >  Documentation/devicetree/bindings/net/ti,davinci-mdio.yaml | 7 +++++++
> >  .../devicetree/bindings/net/toshiba,visconti-dwmac.yaml    | 5 ++++-
> >  6 files changed, 25 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/net/actions,owl-emac.yaml b/Documentation/devicetree/bindings/net/actions,owl-emac.yaml
> > index 1626e0a821b0..e9c0d6360e74 100644
> > --- a/Documentation/devicetree/bindings/net/actions,owl-emac.yaml
> > +++ b/Documentation/devicetree/bindings/net/actions,owl-emac.yaml
> > @@ -51,6 +51,9 @@ properties:
> >      description:
> >        Phandle to the device containing custom config.
> >
> > +  mdio:
> > +    type: object
>
> In one of the conversions I've been working on, I've used this construct
> for the mdio node:
>
>         mdio:
>           $ref: mdio.yaml
>
> In the cases here this may not be necessary because we could also match
> on the compatible string, but for the example that I've been working on
> there is no compatible string for the MDIO bus, so that's not an option.

$nodename is also used to match if there's no compatible, so the above
is somewhat redundant (the schema will be applied twice). Matching on
the node name is useful where we don't have a specific schema in place
or if you want to validate DT files with just that schema, but that's
becoming less useful as we get schemas for everything.

Thinking about this some more, what we need for these is:

mdio:
  $ref: mdio.yaml
  unevaluatedProperties: false

Because mdio.yaml on its own is incomplete and allows for additional
properties. That ensures all the properties are documented and no
extra properties are present.

> On the other hand, it looks like the snps,dwmac-mdio that the examples
> here use don't end up including mdio.yaml, so no validation (or rather
> only very limited validation) will be performed on their properties and
> children.

There is more validation than you were thinking, but it also needs the
above added.

Rob



More information about the linux-arm-kernel mailing list