Re: [PATCH 3/7] dt-bindings: net: dsa: mediatek,mt7530: add port bindings for MT7988

From: Arınç ÜNAL
Date: Fri Apr 07 2023 - 05:47:08 EST


On 7.04.2023 12:07, Krzysztof Kozlowski wrote:
On 06/04/2023 21:18, Arınç ÜNAL wrote:
On 6.04.2023 22:07, Krzysztof Kozlowski wrote:
On 06/04/2023 10:01, arinc9.unal@xxxxxxxxx wrote:
From: Arınç ÜNAL <arinc.unal@xxxxxxxxxx>

The switch on MT7988 has got only port 6 as a CPU port. The only phy-mode
to be used is internal. Add this.

Some bindings are incorrect for this switch now, so move them to more
specific places.

Address the incorrect information of which ports can be used as a user
port. Any port can be used as a user port.

Signed-off-by: Arınç ÜNAL <arinc.unal@xxxxxxxxxx>
---
.../bindings/net/dsa/mediatek,mt7530.yaml | 63 ++++++++++++++-----
1 file changed, 46 insertions(+), 17 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 7045a98d9593..605888ce2bc6 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -160,22 +160,6 @@ patternProperties:
"^(ethernet-)?port@[0-9]+$":
type: object
- properties:
- reg:
- description:
- Port address described must be 5 or 6 for CPU port and from 0 to 5
- for user ports.
-
- allOf:
- - if:
- required: [ ethernet ]
- then:
- properties:
- reg:
- enum:
- - 5
- - 6
-

I have doubts that the binding is still maintainable/reviewable. First,
why do you need all above patterns after removal of entire contents?

The 'type: object' item is still globally used. I'd have to define that
on each definitions, I suppose?

Doesn't it come from dsa.yaml/dsa-port.yaml schema?

It comes from dsa.yaml#/$defs/ethernet-ports which this schema already refers to. I'll remove the patterns above.

Though 'type: object' is not there for "^(ethernet-)?port@[0-9]+$". I think I should add it there as the dsa-port.yaml schema defines the properties of the DSA switch port object. So the value matching the "^(ethernet-)?port@[0-9]+$" regular expression is expected to be an object conforming to the structure defined in dsa-port.yaml.

Does that make sense?




Second, amount of if-then-if-then located in existing blocks (not
top-level) is quite big. I counted if-then-using defs, where defs has
patternProps-patternProps-if-then-if-then-properties.... OMG. :)

Yup, not much to do if we want to keep the information. I'm still
maintaining this though. ¯\_(ツ)_/¯

Maybe it should be split into few bindings sharing common part.

Agreed, I think it makes sense to split this to MT7530, MT7531, and MT7988. I will do this after this series.

Arınç