Re: [PATCH 2/4] dt-bindings: net: dsa: document internal MDIO bus

Rob Herring
2023-08-21T17:44:26Z

On Sat, Aug 12, 2023 at 10:20:43PM +0300, Arınç ÜNAL wrote:
> I've realised there are more schemas that extend the mdio.yaml schema. This
> is the final state of this patch.
>
> dt-bindings: net: dsa: document internal MDIO bus
>
> Add the schema to document the internal MDIO bus. Require the phy-handle
> property on the non-CPU ports if the mdio property is being used.
>
> Define the mdio property on all of the schemas that refer to
> dsa.yaml#/$defs/ethernet-ports. Refer to dsa.yaml#/properties/mdio to point
> the human readers to the description on the dsa.yaml schema.
>
> Some of these schemas extend the mdio.yaml schema. The mdio.yaml schema is
> also being referred to through dsa.yaml#/$defs/ethernet-ports now which
> means we cannot disallow additional properties by 'unevaluatedProperties:
> false' on the dsa.yaml schema.
>
> ---
> .../bindings/net/dsa/arrow,xrs700x.yaml | 4 ++++
> .../devicetree/bindings/net/dsa/brcm,b53.yaml | 4 ++++
> .../devicetree/bindings/net/dsa/brcm,sf2.yaml | 4 ++++
> .../devicetree/bindings/net/dsa/dsa.yaml | 18 ++++++++++++++++++
> .../bindings/net/dsa/hirschmann,hellcreek.yaml | 4 ++++
> .../bindings/net/dsa/mediatek,mt7530.yaml | 4 ++++
> .../bindings/net/dsa/microchip,ksz.yaml | 4 ++++
> .../bindings/net/dsa/microchip,lan937x.yaml | 2 +-
> .../bindings/net/dsa/mscc,ocelot.yaml | 4 ++++
> .../bindings/net/dsa/nxp,sja1105.yaml | 4 ++++
> .../devicetree/bindings/net/dsa/qca8k.yaml | 2 +-
> .../devicetree/bindings/net/dsa/realtek.yaml | 2 +-
> .../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 2 +-
> 13 files changed, 54 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
> index 9565a740214629..f0229352e05694 100644
> --- a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
> @@ -29,6 +29,10 @@ properties:
> reg:
> maxItems: 1
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
> index 4c78c546343f5e..e14562b33bfb97 100644
> --- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
> @@ -65,6 +65,10 @@ properties:
> - brcm,bcm63268-switch
> - const: brcm,bcm63xx-switch
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
> index c745407f2f6853..1bf4317e038687 100644
> --- a/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
> @@ -90,6 +90,10 @@ properties:
> tags enabled (per-packet metadata)
> type: boolean
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> required:
> - reg
> - interrupts
> diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> index ec74a660bedaed..03ccedbc49dcc3 100644
> --- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml
> @@ -31,6 +31,24 @@ properties:
> (single device hanging off a CPU port) must not specify this property
> $ref: /schemas/types.yaml#/definitions/uint32-array
> + mdio:
> + description: The internal MDIO bus of the switch
> + $ref: /schemas/net/mdio.yaml#
> +
> +if:
> + required: [ mdio ]
> +then:
> + patternProperties:
> + "^(ethernet-)?ports$":
> + patternProperties:
> + "^(ethernet-)?port@[0-9]+$":
> + if:
> + not:
> + required: [ ethernet ]
> + then:
> + required:
> + - phy-handle
> +
> additionalProperties: true
> $defs:
> diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> index 4021b054f68446..32f17345825d4a 100644
> --- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
> @@ -67,6 +67,10 @@ properties:
> additionalProperties: false
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> index e532c6b795f4fc..293d1affe75451 100644
> --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> @@ -151,6 +151,10 @@ properties:
> ethsys.
> maxItems: 1
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> patternProperties:
> "^(ethernet-)?ports$":
> type: object
> diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
> index e51be1ac036237..01d11c642ecfd4 100644
> --- a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
> @@ -49,6 +49,10 @@ properties:
> Set if the output SYNCLKO clock should be disabled. Do not mix with
> microchip,synclko-125.
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> index 49af4b0d591695..15f24a1716cd44 100644
> --- a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
> @@ -32,7 +32,7 @@ properties:
> maxItems: 1
> mdio:
> - $ref: /schemas/net/mdio.yaml#
> + $ref: dsa.yaml#/properties/mdio
> unevaluatedProperties: false
> patternProperties:
> diff --git a/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml b/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
> index fe02d05196e4a6..d781b8c2324836 100644
> --- a/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
> @@ -73,6 +73,10 @@ properties:
> little-endian: true
> big-endian: true
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
> index 4d5f5cc6d031e2..82dda8fae8b16e 100644
> --- a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
> @@ -72,6 +72,10 @@ properties:
> - compatible
> - reg
> + mdio:
> + $ref: dsa.yaml#/properties/mdio
> + unevaluatedProperties: false
> +
> patternProperties:
> "^(ethernet-)?ports$":
> patternProperties:
> diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
> index df64eebebe1856..001b72bcd0746b 100644
> --- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
> @@ -60,7 +60,7 @@ properties:
> B68 on the QCA832x and B49 on the QCA833x.
> mdio:
> - $ref: /schemas/net/mdio.yaml#
> + $ref: dsa.yaml#/properties/mdio
> unevaluatedProperties: false

Just from a schema standpoint, this is pointless indirection as
dsa.yaml#/properties/mdio is just a reference to /schemas/net/mdio.yaml#.

As it seems an MDIO bus is not universal for DSA, it seems you'll be
dropping this change anyways.

Rob