Re: [PATCH v2 4/7] dt-bindings: net: dsa: mediatek,mt7530: define port binding per compatible
From: Arınç ÜNAL <hidden>
Date: 2022-08-20 07:35:09
Also in:
linux-arm-kernel, linux-devicetree, linux-mediatek, lkml
On 19.08.2022 15:43, Krzysztof Kozlowski wrote:
On 13/08/2022 18:44, Arınç ÜNAL wrote:quoted
Define DSA port binding under each compatible device as each device requires different values for certain properties. Signed-off-by: Arınç ÜNAL <redacted> --- .../bindings/net/dsa/mediatek,mt7530.yaml | 116 +++++++++++++----- 1 file changed, 87 insertions(+), 29 deletions(-)diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml index cc87f48d4d07..ff51a2f6875f 100644 --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml@@ -130,35 +130,6 @@ properties: ethsys. maxItems: 1 -patternProperties: - "^(ethernet-)?ports$": - type: object - - patternProperties: - "^(ethernet-)?port@[0-9]+$": - type: object - description: Ethernet switch ports -my comments from v1 apply here None of the reasons you said force you to define properties in some allOf:if:then subblock. These force you to constrain the properties in allOf:if:then, but not define.quoted
I can split patternProperties to two sections, but I can't directly define the reg property like you put above.Of course you can and original bindings were doing it. Let me ask specific questions (yes, no): 1. Are ethernet-ports and ethernet-port present in each variant? 2. Is dsa-port.yaml applicable to each variant? (looks like that - three compatibles, three all:if:then) 3. If reg appearing in each variant? 4. If above is true, if reg is maximum one item in each variant?
All yes.
Looking at your patch, I think answer is 4x yes, which means you can define them in one place and constrain in allOf:if:then, just like all other schemas, because this one is not different.
If I understand correctly, I do this already with v3. Properties are defined under the constructed node. Accepted values for properties are constrained under if:then. Arınç