Re: [PATCH v4 4/6] dt-bindings: net: dsa: mediatek,mt7530: define port binding per switch

From: Krzysztof Kozlowski
Date: Thu Aug 25 2022 - 02:33:19 EST


On 23/08/2022 15:29, Arınç ÜNAL wrote:
>
>
> On 23.08.2022 13:47, Krzysztof Kozlowski wrote:
>> On 20/08/2022 11:07, Arınç ÜNAL wrote:
>>> Define DSA port binding per switch model as each switch model requires
>>> different values for certain properties.
>>>
>>> Define reg property on $defs as it's the same for all switch models.
>>>
>>> Remove unnecessary lines as they are already included from the referred
>>> dsa.yaml.
>>>
>>> Signed-off-by: Arınç ÜNAL <arinc.unal@xxxxxxxxxx>
>>> ---
>>> .../bindings/net/dsa/mediatek,mt7530.yaml | 56 +++++++++++--------
>>> 1 file changed, 34 insertions(+), 22 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
>>> index 657e162a1c01..7c4374e16f96 100644
>>> --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
>>> +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
>>> @@ -130,38 +130,47 @@ properties:
>>> ethsys.
>>> maxItems: 1
>>>
>>> -patternProperties:
>>> - "^(ethernet-)?ports$":
>>> - type: object
>>> -
>>> - patternProperties:
>>> - "^(ethernet-)?port@[0-9]+$":
>>> - type: object
>>> - description: Ethernet switch ports
>>
>> Again, I don't understand why do you remove definitions of these nodes
>> from top-level properties. I explained what I expect in previous
>> discussion and I am confused to hear "this cannot be done".
>
> I agree it can be done, but the binding is done with less lines the
> current way.
>
> I would need to add more lines than just for creating the node structure
> since dsa.yaml is not referred.
>
> Then, I would have to create the node structure again for the dsa-port
> checks.

I understand you can create binding more concise, but not necessarily
more readable. The easiest to grasp is to define all the nodes in
top-level and customize them in allOf:if:then. This was actually also
needed for earlier dtschema with additionalProperties:false. You keep
defining properties in allOf:if:then, even though they are all
applicable to all variants. That's unusual and even if it reduces the
lines does not make it easier to grasp.


Best regards,
Krzysztof