Message ID | 20220813154415.349091-5-arinc.unal@arinc9.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/7] dt-bindings: net: dsa: mediatek,mt7530: make trivial changes | expand |
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@arinc9.com> >> --- >> .../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. Arınç
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 - - unevaluatedProperties: false - - properties: - reg: - description: - Port address described must be 5 or 6 for CPU port and from 0 - to 5 for user ports. - - allOf: - - $ref: dsa-port.yaml# - - if: - properties: - label: - items: - - const: cpu - then: - required: - - reg - - phy-mode - required: - compatible - reg @@ -189,6 +160,35 @@ allOf: - core-supply - io-supply + patternProperties: + "^(ethernet-)?ports$": + type: object + + patternProperties: + "^(ethernet-)?port@[0-9]+$": + type: object + description: Ethernet switch ports + + unevaluatedProperties: false + + properties: + reg: + description: + Port address described must be 5 or 6 for CPU port and from + 0 to 5 for user ports. + + allOf: + - $ref: dsa-port.yaml# + - if: + properties: + label: + items: + - const: cpu + then: + required: + - reg + - phy-mode + - if: properties: compatible: @@ -198,6 +198,35 @@ allOf: properties: mediatek,mcm: false + patternProperties: + "^(ethernet-)?ports$": + type: object + + patternProperties: + "^(ethernet-)?port@[0-9]+$": + type: object + description: Ethernet switch ports + + unevaluatedProperties: false + + properties: + reg: + description: + Port address described must be 5 or 6 for CPU port and from + 0 to 5 for user ports. + + allOf: + - $ref: dsa-port.yaml# + - if: + properties: + label: + items: + - const: cpu + then: + required: + - reg + - phy-mode + - if: properties: compatible: @@ -207,6 +236,35 @@ allOf: required: - mediatek,mcm + patternProperties: + "^(ethernet-)?ports$": + type: object + + patternProperties: + "^(ethernet-)?port@[0-9]+$": + type: object + description: Ethernet switch ports + + unevaluatedProperties: false + + properties: + reg: + description: + Port address described must be 5 or 6 for CPU port and from + 0 to 5 for user ports. + + allOf: + - $ref: dsa-port.yaml# + - if: + properties: + label: + items: + - const: cpu + then: + required: + - reg + - phy-mode + unevaluatedProperties: false examples:
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@arinc9.com> --- .../bindings/net/dsa/mediatek,mt7530.yaml | 116 +++++++++++++----- 1 file changed, 87 insertions(+), 29 deletions(-)