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

From: Arınç ÜNAL
Date: Thu Aug 25 2022 - 04:07:34 EST


On 25.08.2022 09:33, Krzysztof Kozlowski wrote:
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.

Understood. Will send v6 with respect to this.

Arınç