Hi Rob On Tue, Jun 25, 2024 at 03:54:41PM -0600, Rob Herring (Arm) wrote: > Convention is DT schemas should define all properties at the top-level > and not inside of if/then schemas. That minimizes the if/then schemas > and is more future proof. > > Signed-off-by: Rob Herring (Arm) <robh@xxxxxxxxxx> > --- > .../devicetree/bindings/net/mediatek,net.yaml | 28 +-- > .../devicetree/bindings/net/snps,dwmac.yaml | 167 +++++++++--------- For Synopsys DW MACs you can just move the PBL-properties constraints to the top-level schema part with no compatible-based conditional validation left. It's because the DMA PBL settings are available on all the DW MAC IP-cores (DW MAC, DW GMAC, DW QoS Eth, DW XGMAC, DW XLGMAC). Moreover the STMMAC driver responsible for the DW MAC device handling parses the pbl* properties for all IP-cores irrespective from the device compatible string. Alternatively you can just merge in the attached patch, which BTW you have already reviewed sometime ago. -Serge(y) > 2 files changed, 105 insertions(+), 90 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml > index 3202dc7967c5..686b5c2fae40 100644 > --- a/Documentation/devicetree/bindings/net/mediatek,net.yaml > +++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml > @@ -68,6 +68,17 @@ properties: > Phandle to the syscon node that handles the path from GMAC to > PHY variants. > > + mediatek,pcie-mirror: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle to the mediatek pcie-mirror controller. > + > + mediatek,pctl: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle to the syscon node that handles the ports slew rate and > + driver current. > + > mediatek,sgmiisys: > $ref: /schemas/types.yaml#/definitions/phandle-array > minItems: 1 > @@ -131,15 +142,12 @@ allOf: > > mediatek,infracfg: false > > - mediatek,pctl: > - $ref: /schemas/types.yaml#/definitions/phandle > - description: > - Phandle to the syscon node that handles the ports slew rate and > - driver current. > - > mediatek,wed: false > > mediatek,wed-pcie: false > + else: > + properties: > + mediatek,pctl: false > > - if: > properties: > @@ -201,12 +209,10 @@ allOf: > minItems: 1 > maxItems: 1 > > - mediatek,pcie-mirror: > - $ref: /schemas/types.yaml#/definitions/phandle > - description: > - Phandle to the mediatek pcie-mirror controller. > - > mediatek,wed-pcie: false > + else: > + properties: > + mediatek,pcie-mirror: false > > - if: > properties: > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > index 21cc27e75f50..023865b6f497 100644 > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > @@ -485,6 +485,38 @@ properties: > description: > Frequency division factor for MDC clock. > > + snps,pbl: > + description: > + Programmable Burst Length (tx and rx) > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8, 16, 32] > + > + snps,txpbl: > + description: > + Tx Programmable Burst Length. If set, DMA tx will use this value rather > + than snps,pbl. > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8, 16, 32] > + > + snps,rxpbl: > + description: > + Rx Programmable Burst Length. If set, DMA rx will use this value rather > + than snps,pbl. > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8, 16, 32] > + > + snps,no-pbl-x8: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core rev < 3.50, > + don\'t multiply the values by 4. > + > + snps,tso: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Enables the TSO feature otherwise it will be managed by MAC HW capability > + register. > + > mdio: > $ref: mdio.yaml# > unevaluatedProperties: false > @@ -568,95 +600,72 @@ allOf: > - if: > properties: > compatible: > - contains: > - enum: > - - allwinner,sun7i-a20-gmac > - - allwinner,sun8i-a83t-emac > - - allwinner,sun8i-h3-emac > - - allwinner,sun8i-r40-gmac > - - allwinner,sun8i-v3s-emac > - - allwinner,sun50i-a64-emac > - - ingenic,jz4775-mac > - - ingenic,x1000-mac > - - ingenic,x1600-mac > - - ingenic,x1830-mac > - - ingenic,x2000-mac > - - qcom,sa8775p-ethqos > - - qcom,sc8280xp-ethqos > - - snps,dwmac-3.50a > - - snps,dwmac-4.10a > - - snps,dwmac-4.20a > - - snps,dwmac-5.20 > - - snps,dwxgmac > - - snps,dwxgmac-2.10 > - - st,spear600-gmac > + not: > + contains: > + enum: > + - allwinner,sun7i-a20-gmac > + - allwinner,sun8i-a83t-emac > + - allwinner,sun8i-h3-emac > + - allwinner,sun8i-r40-gmac > + - allwinner,sun8i-v3s-emac > + - allwinner,sun50i-a64-emac > + - ingenic,jz4775-mac > + - ingenic,x1000-mac > + - ingenic,x1600-mac > + - ingenic,x1830-mac > + - ingenic,x2000-mac > + - qcom,sa8775p-ethqos > + - qcom,sc8280xp-ethqos > + - snps,dwmac-3.50a > + - snps,dwmac-4.10a > + - snps,dwmac-4.20a > + - snps,dwmac-5.20 > + - snps,dwxgmac > + - snps,dwxgmac-2.10 > + - st,spear600-gmac > > then: > properties: > - snps,pbl: > - description: > - Programmable Burst Length (tx and rx) > - $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2, 4, 8, 16, 32] > - > - snps,txpbl: > - description: > - Tx Programmable Burst Length. If set, DMA tx will use this > - value rather than snps,pbl. > - $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2, 4, 8, 16, 32] > - > - snps,rxpbl: > - description: > - Rx Programmable Burst Length. If set, DMA rx will use this > - value rather than snps,pbl. > - $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2, 4, 8, 16, 32] > - > - snps,no-pbl-x8: > - $ref: /schemas/types.yaml#/definitions/flag > - description: > - Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core > - rev < 3.50, don\'t multiply the values by 4. > + snps,pbl: false > + snps,txpbl: false > + snps,rxpbl: false > + snps,no-pbl-x8: false > > - if: > properties: > compatible: > - contains: > - enum: > - - allwinner,sun7i-a20-gmac > - - allwinner,sun8i-a83t-emac > - - allwinner,sun8i-h3-emac > - - allwinner,sun8i-r40-gmac > - - allwinner,sun8i-v3s-emac > - - allwinner,sun50i-a64-emac > - - loongson,ls2k-dwmac > - - loongson,ls7a-dwmac > - - ingenic,jz4775-mac > - - ingenic,x1000-mac > - - ingenic,x1600-mac > - - ingenic,x1830-mac > - - ingenic,x2000-mac > - - qcom,qcs404-ethqos > - - qcom,sa8775p-ethqos > - - qcom,sc8280xp-ethqos > - - qcom,sm8150-ethqos > - - snps,dwmac-4.00 > - - snps,dwmac-4.10a > - - snps,dwmac-4.20a > - - snps,dwmac-5.10a > - - snps,dwmac-5.20 > - - snps,dwxgmac > - - snps,dwxgmac-2.10 > - - st,spear600-gmac > + not: > + contains: > + enum: > + - allwinner,sun7i-a20-gmac > + - allwinner,sun8i-a83t-emac > + - allwinner,sun8i-h3-emac > + - allwinner,sun8i-r40-gmac > + - allwinner,sun8i-v3s-emac > + - allwinner,sun50i-a64-emac > + - loongson,ls2k-dwmac > + - loongson,ls7a-dwmac > + - ingenic,jz4775-mac > + - ingenic,x1000-mac > + - ingenic,x1600-mac > + - ingenic,x1830-mac > + - ingenic,x2000-mac > + - qcom,qcs404-ethqos > + - qcom,sa8775p-ethqos > + - qcom,sc8280xp-ethqos > + - qcom,sm8150-ethqos > + - snps,dwmac-4.00 > + - snps,dwmac-4.10a > + - snps,dwmac-4.20a > + - snps,dwmac-5.10a > + - snps,dwmac-5.20 > + - snps,dwxgmac > + - snps,dwxgmac-2.10 > + - st,spear600-gmac > > then: > properties: > - snps,tso: > - $ref: /schemas/types.yaml#/definitions/flag > - description: > - Enables the TSO feature otherwise it will be managed by > - MAC HW capability register. > + snps,tso: false > > additionalProperties: true > > -- > 2.43.0 > >