Message ID | 20221127224734.885526-6-colin.foster@in-advantage.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | dt-binding preparation for ocelot switches | expand |
On 11/27/22 14:47, Colin Foster wrote: > The dsa.yaml binding contains duplicated bindings for address and size > cells, as well as the reference to dsa-port.yaml. Instead of duplicating > this information, remove the reference to dsa-port.yaml and include the > full reference to dsa.yaml. > > Signed-off-by: Colin Foster <colin.foster@in-advantage.com> > Suggested-by: Vladimir Oltean <olteanv@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
On Sun, Nov 27, 2022 at 02:47:29PM -0800, Colin Foster wrote: > The dsa.yaml binding contains duplicated bindings for address and size > cells, as well as the reference to dsa-port.yaml. Instead of duplicating > this information, remove the reference to dsa-port.yaml and include the > full reference to dsa.yaml. > > Signed-off-by: Colin Foster <colin.foster@in-advantage.com> > Suggested-by: Vladimir Oltean <olteanv@gmail.com> > --- > > v2 -> v3 > * Remove #address-cells and #size-cells from v2. The examples were > incorrect and fixed elsewhere. > * Remove erroneous unevaluatedProperties: true under Ethernet Port. > * Add back ref: dsa-port.yaml#. > > v1 -> v2 > * Add #address-cells and #size-cells to the switch layer. They aren't > part of dsa.yaml. > * Add unevaluatedProperties: true to the ethernet-port layer so it can > correctly read properties from dsa.yaml. > > --- > Documentation/devicetree/bindings/net/dsa/qca8k.yaml | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml > index 6fc9bc985726..93a9ddebcac8 100644 > --- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml > +++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml > @@ -66,20 +66,15 @@ properties: > With the legacy mapping the reg corresponding to the internal > mdio is the switch reg with an offset of -1. > > +$ref: "dsa.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 > - > $ref: dsa-port.yaml# So here you need 'unevaluatedProperties: false'. unevaluatedProperties only applies to the properties defined in a single node level, and child nodes properties from 2 schemas can't 'see' each other. IOW, what dsa.yaml has in child nodes has no effect on this node. > > properties: > @@ -116,7 +111,7 @@ required: > - compatible > - reg > > -additionalProperties: true > +unevaluatedProperties: false So this has no effect on anything within "^(ethernet-)?port@[0-6]$" and below. Rob
Hi Rob, On Thu, Dec 01, 2022 at 04:42:40PM -0600, Rob Herring wrote: > On Sun, Nov 27, 2022 at 02:47:29PM -0800, Colin Foster wrote: > > The dsa.yaml binding contains duplicated bindings for address and size > > cells, as well as the reference to dsa-port.yaml. Instead of duplicating > > this information, remove the reference to dsa-port.yaml and include the > > full reference to dsa.yaml. > > > > Signed-off-by: Colin Foster <colin.foster@in-advantage.com> > > Suggested-by: Vladimir Oltean <olteanv@gmail.com> > > --- > > > > v2 -> v3 > > * Remove #address-cells and #size-cells from v2. The examples were > > incorrect and fixed elsewhere. > > * Remove erroneous unevaluatedProperties: true under Ethernet Port. > > * Add back ref: dsa-port.yaml#. > > > > v1 -> v2 > > * Add #address-cells and #size-cells to the switch layer. They aren't > > part of dsa.yaml. > > * Add unevaluatedProperties: true to the ethernet-port layer so it can > > correctly read properties from dsa.yaml. > > > > --- > > Documentation/devicetree/bindings/net/dsa/qca8k.yaml | 11 +++-------- > > 1 file changed, 3 insertions(+), 8 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml > > index 6fc9bc985726..93a9ddebcac8 100644 > > --- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml > > +++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml > > @@ -66,20 +66,15 @@ properties: > > With the legacy mapping the reg corresponding to the internal > > mdio is the switch reg with an offset of -1. > > > > +$ref: "dsa.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 > > - > > $ref: dsa-port.yaml# > > So here you need 'unevaluatedProperties: false'. > > unevaluatedProperties only applies to the properties defined in a single > node level, and child nodes properties from 2 schemas can't 'see' each > other. IOW, what dsa.yaml has in child nodes has no effect on this node. I'm buttoning up v4 right now and removing this line deletion. unevaluatedProperties: false exists under the etherent-port node, just at the end of the properties list. Since the etherent-ports node in net/dsa/dsa.yaml has unevaluatedProperties: false, I understand that isn't necessary here. > > > > > properties: > > @@ -116,7 +111,7 @@ required: > > - compatible > > - reg > > > > -additionalProperties: true > > +unevaluatedProperties: false > > So this has no effect on anything within "^(ethernet-)?port@[0-6]$" and > below. > > Rob
diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml index 6fc9bc985726..93a9ddebcac8 100644 --- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml +++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml @@ -66,20 +66,15 @@ properties: With the legacy mapping the reg corresponding to the internal mdio is the switch reg with an offset of -1. +$ref: "dsa.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 - $ref: dsa-port.yaml# properties: @@ -116,7 +111,7 @@ required: - compatible - reg -additionalProperties: true +unevaluatedProperties: false examples: - |
The dsa.yaml binding contains duplicated bindings for address and size cells, as well as the reference to dsa-port.yaml. Instead of duplicating this information, remove the reference to dsa-port.yaml and include the full reference to dsa.yaml. Signed-off-by: Colin Foster <colin.foster@in-advantage.com> Suggested-by: Vladimir Oltean <olteanv@gmail.com> --- v2 -> v3 * Remove #address-cells and #size-cells from v2. The examples were incorrect and fixed elsewhere. * Remove erroneous unevaluatedProperties: true under Ethernet Port. * Add back ref: dsa-port.yaml#. v1 -> v2 * Add #address-cells and #size-cells to the switch layer. They aren't part of dsa.yaml. * Add unevaluatedProperties: true to the ethernet-port layer so it can correctly read properties from dsa.yaml. --- Documentation/devicetree/bindings/net/dsa/qca8k.yaml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)