[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <gr7rgy7cptnpj2rkeufhgqkve4ytqddpts6gdekeszoq7znwf2@ivyjpaiyxruk>
Date: Wed, 26 Jun 2024 18:05:45 +0300
From: Serge Semin <fancer.lancer@...il.com>
To: "Rob Herring (Arm)" <robh@...nel.org>
Cc: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>, Lorenzo Bianconi <lorenzo@...nel.org>,
Felix Fietkau <nbd@....name>, Alexandre Torgue <alexandre.torgue@...s.st.com>,
Giuseppe Cavallaro <peppe.cavallaro@...com>, Jose Abreu <joabreu@...opsys.com>, netdev@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-mediatek@...ts.infradead.org
Subject: Re: [PATCH net-next] dt-bindings: net: Define properties at top-level
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@...nel.org>
> ---
> .../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
>
>
View attachment "0001-dt-bindings-net-dwmac-Validate-PBL-for-all-IP-cores.patch" of type "text/x-patch" (4632 bytes)
Powered by blists - more mailing lists