Re: [net-next PATCH v7 16/16] dt-bindings: net: dsa: qca8k: convert to YAML schema

From: Rob Herring
Date: Tue Oct 19 2021 - 12:18:30 EST


On Mon, Oct 18, 2021 at 9:22 AM Ansuel Smith <ansuelsmth@xxxxxxxxx> wrote:
>
> On Mon, Oct 18, 2021 at 09:15:12AM -0500, Rob Herring wrote:
> > On Thu, Oct 14, 2021 at 12:39:21AM +0200, Ansuel Smith wrote:
> > > From: Matthew Hagan <mnhagan88@xxxxxxxxx>
> > >
> > > Convert the qca8k bindings to YAML format.
> > >
> > > Signed-off-by: Matthew Hagan <mnhagan88@xxxxxxxxx>
> > > Co-developed-by: Ansuel Smith <ansuelsmth@xxxxxxxxx>
> > > Signed-off-by: Ansuel Smith <ansuelsmth@xxxxxxxxx>
> > > ---
> > > .../devicetree/bindings/net/dsa/qca8k.txt | 245 ------------
> > > .../devicetree/bindings/net/dsa/qca8k.yaml | 362 ++++++++++++++++++
> > > 2 files changed, 362 insertions(+), 245 deletions(-)
> > > delete mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.txt
> > > create mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.yaml

> > > +patternProperties:
> > > + "^(ethernet-)?ports$":
> > > + type: object
> > > + properties:
> > > + '#address-cells':
> > > + const: 1
> > > + '#size-cells':
> > > + const: 0
> > > +
> > > + patternProperties:
> > > + "^(ethernet-)?port@[0-6]$":
> > > + type: object
> > > + description: Ethernet switch ports
> > > +
> > > + properties:
> > > + reg:
> > > + description: Port number
> > > +
> > > + label:
> > > + description:
> > > + Describes the label associated with this port, which will become
> > > + the netdev name
> > > + $ref: /schemas/types.yaml#/definitions/string
> > > +
> > > + link:
> > > + description:
> > > + Should be a list of phandles to other switch's DSA port. This
> > > + port is used as the outgoing port towards the phandle ports. The
> > > + full routing information must be given, not just the one hop
> > > + routes to neighbouring switches
> > > + $ref: /schemas/types.yaml#/definitions/phandle-array
> > > +
> > > + ethernet:
> > > + description:
> > > + Should be a phandle to a valid Ethernet device node. This host
> > > + device is what the switch port is connected to
> > > + $ref: /schemas/types.yaml#/definitions/phandle
> >
> > All of this is defined in dsa.yaml. Add a $ref to it and don't duplicate
> > it here.
> >
>
> The reason I redefined it is because I didn't manage to find a way on
> how to add additional bindings for the qca,sgmii... . Any hint about
> that?

The problem is we can't have a single schema for parent and child
nodes and then allow additional properties in a child node at least if
we want to make sure all child properties are defined.

The port part of dsa.yaml needs to be split out either to a separate
file or under '$defs' in the same file so that you can reference it
and add properties.

As a separate file, you can then do:

"^(ethernet-)?port@[0-9]+$":
$ref: dsa-port.yaml#
unevaluatedProperties: false
properties:
a-custom-prop: ...

>
> I tried with allOf but the make check still printed errors in the
> example with not valid binding about qca,sgmii.