Subject: Re: [PATCH v3 net-next 04/10] dt-bindings: net: dsa: allow additional ethernet-port properties

From: Rob Herring <[email-masked]>
Date: Thu, 1 Dec 2022 16:33:09 -0600

On Mon, Nov 28, 2022 at 11:21:18PM -0800, Colin Foster wrote:
> On Mon, Nov 28, 2022 at 05:27:59PM -0600, Rob Herring wrote:
> > On Sun, Nov 27, 2022 at 02:47:28PM -0800, Colin Foster wrote:
> > > Explicitly allow additional properties for both the ethernet-port and
> > > ethernet-ports properties. This specifically will allow the qca8k.yaml
> > > binding to use shared properties.
> > > 
> > > Signed-off-by: Colin Foster <[email-masked]>
> > > ---
> > > 
> > > v2 -> v3
> > >   * No change
> > > 
> > > v1 -> v2
> > >   * New patch
> > > 
> > > ---
> > >  Documentation/devicetree/bindings/net/dsa/dsa.yaml | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > > index bd1f0f7c14a8..87475c2ab092 100644
> > > --- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > > +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> > > @@ -38,6 +38,8 @@ patternProperties:
> > >        '#size-cells':
> > >          const: 0
> > >  
> > > +    additionalProperties: true
> > > +
> > 
> > Where then do we restrict adding properties to ethernet-ports nodes?
> > 
> > >      patternProperties:
> > >        "^(ethernet-)?port@[0-9]+$":
> > >          type: object
> > > @@ -45,7 +47,7 @@ patternProperties:
> > >  
> > >          $ref: dsa-port.yaml#
> > >  
> > > -        unevaluatedProperties: false
> > > +        unevaluatedProperties: true
> > 
> > Same question for ethernet-port nodes.
> 
> For ethernet-port nodes, the qca8k has unevaluatedProperties: false. But
> the fact that you're asking this question means I probably misunderstood
> something...

The above is the case where you aren't adding extra properties (IIRC), 
so 'unevaluatedProperties: false' should be correct.

'unevaluatedProperties: true' is never correct in bindings. If you ref a
schema that sets it to true, you can't override it.

So qca8k, should reference dsa-port.yaml, define its extra properties 
and set 'unevaluatedProperties: false'.

> For the ethernet-ports node, I'm curious if my other follow-up answers
> that question where I realized dsa.yaml should, under the base
> definition, have additionalPrpoerties: false. But again, my guess is
> that isn't the case.

That one looks correct.

Rob