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

Arınç ÜNAL
2023-08-13T12:59:24Z

On 13.08.2023 14:53, Vladimir Oltean wrote:
> On Sat, Aug 12, 2023 at 10:20:43PM +0300, Arınç ÜNAL wrote:
>> 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
>
> sja1105 does not support an "mdio" child property. I haven't checked the
> others. Don't add properties that aren't supported.

Adding the mdio property to the dsa.yaml schema will allow it on all of the
schemas that refer to dsa.yaml such as this one. This addition here is only
to disallow additional properties under the mdio property for this specific
schema.

That said, my understanding is that the internal MDIO bus exists on all of
the switches controlled by DSA. Whether each individual DSA subdriver
supports registering it does not matter in terms of documenting the
internal MDIO bus for all DSA switches.

SJA1110 uses the mdios property instead because it's got two internal mdio
buses, which is why I invalidate the mdio property for it. If SJA1105 has
also got two internal mdio buses, let me know.

>
>> +
>> patternProperties:
>> "^(ethernet-)?ports$":
>> patternProperties:
>>
>> The nxp,sja1105.yaml schema also needed some changes.
>>
>> dt-bindings: net: dsa: nxp,sja1105: improve internal MDIO bus bindings
>>
>> SJA1110 Ethernet Switch uses the mdios property for its internal MDIO bus.
>> Therefore, disallow the mdios property for SJA1105, and the mdio property
>> for SJA1110.
>>
>> Require the phy-handle property on the non-CPU ports if the mdios property
>> is being used.
>>
>> Refer to dsa.yaml#/properties/mdio to point the human readers to the
>> description on the dsa.yaml schema.
>>
>> ---
>> .../bindings/net/dsa/nxp,sja1105.yaml | 20 ++++++++++++++++++-
>> 1 file changed, 19 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
>> index 82dda8fae8b16e..7d92350f1065b2 100644
>> --- a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
>> +++ b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
>> @@ -52,7 +52,7 @@ properties:
>> patternProperties:
>> "^mdio@[0-1]$":
>> - $ref: /schemas/net/mdio.yaml#
>> + $ref: dsa.yaml#/properties/mdio
>> unevaluatedProperties: false
>> properties:
>> @@ -128,14 +128,32 @@ allOf:
>> then:
>> properties:
>> spi-cpol: false
>> + mdios: false
>> +
>> required:
>> - spi-cpha
>> else:
>> properties:
>> spi-cpha: false
>> + mdio: false
>> +
>> required:
>> - spi-cpol
>> + - if:
>> + required: [ mdios ]
>> + then:
>> + patternProperties:
>> + "^(ethernet-)?ports$":
>> + patternProperties:
>> + "^(ethernet-)?port@[0-9]+$":
>> + if:
>> + not:
>> + required: [ ethernet ]
>> + then:
>> + required:
>> + - phy-handle
>
> For sja1105, phylink-compatible bindings (phy-handle, fixed-link or managed)
> are required for all ports (user, dsa or cpu).
>
> Also, sja1105 does not populate the slave_mii_bus, so it never uses the
> fallback where ports implicitly connect to an internal PHY if no phylink
> bindings are present.

I'll handle these accordingly with your answer to my question above.

Arınç