On 20/08/2022 10:34, Arınç ÜNAL wrote: > On 19.08.2022 15:43, Krzysztof Kozlowski wrote: >> On 13/08/2022 18:44, Arınç ÜNAL wrote: >>> Define DSA port binding under each compatible device as each device >>> requires different values for certain properties. >>> >>> Signed-off-by: Arınç ÜNAL <arinc.unal@xxxxxxxxxx> >>> --- >>> .../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. >> >> >>> 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. v4 doesn't do it. You removed there patternProperties - again. Best regards, Krzysztof