[PATCH net-next 00/16] dt-bindings: net: dwmac: Extend clocks, props desc and constraints

From: Serge Semin
Date: Mon Mar 13 2023 - 18:52:17 EST


This patchset is the fourth one in the series of updates implemented in
the framework of activity to simplify the DW MAC/STMMAC driver code and
provide Baikal GMAC/X-GMAC support after all:

[1: In-review v1]: net: stmmac: Fixes bundle #1
Link: https://lore.kernel.org/netdev/20230313224237.28757-1-Sergey.Semin@xxxxxxxxxxxxxxxxxxxx/
[2: Stalled v1]: net: stmmac: Fixes bundle #2
Link: ---not submitted yet---
[3: Stalled v1]: net: stmmac: Fixes bundle #3
Link: ---not submitted yet---
+> [4: In-review v1]: dt-bindings: net: dwmac: Extend clocks, props desc and constraints
+> Link: ---you are looking at it---
[5: Stalled v1]: dt-bindings: net: dwmac: Fix MTL queues and AXI-bus props
Link: ---not submitted yet---
[6: Stalled v1]: net: stmmac: Generic platform res, props and DMA cleanups
Link: ---not submitted yet---
[7: Stalled v1]: net: stmmac: Generic platform rst, phy and clk cleanups
Link: ---not submitted yet---
[8: Stalled v1]: net: stmmac: Main driver code cleanups bundle #1
Link: ---not submitted yet---
[9: Stalled v1]: net: stmmac: Main driver code cleanups bundle #2
Link: ---not submitted yet---
[10: Stalled v1]: net: stmmac: DW MAC HW info init refactoring
Link: ---not submitted yet---
[11: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #1
Link: ---not submitted yet---
[12: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #2
Link: ---not submitted yet---
[13: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #3
Link: ---not submitted yet---
[14: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #4
Link: ---not submitted yet---
[15: Stalled v1]: net: stmmac: Unify/simplify HW-interface
Link: ---not submitted yet---
[16: Stalled v1]: net: stmmac: Norm/Enh/etc DMA descriptor init fixes
Link: ---not submitted yet---
[17: Stalled v1]: net: stmmac: Norm/Enh/etc DMA descriptor init cleanups
Link: ---not submitted yet---
[18: Stalled v1]: net: stmmac: Main driver code cleanups bundle #3
Link: ---not submitted yet---
[..: In-prep] to be continued (IRQ handling refactoring, SW-reset-less config,
generic GPIO support, ARP offload support,
In-band RGMII link state, etc)
[..: In-prep] to be continued (Baikal-{T,M,L,S} SoCs GMAC, X-GMAC and XPCS
support)

Please visit the next link for the detailed justification of the changes
series introduced in the list above:
Link: https://lore.kernel.org/netdev/20230313224237.28757-1-Sergey.Semin@xxxxxxxxxxxxxxxxxxxx/

Here is a short summary of what is introduced in this patchset.

The series starts with fixes of the PBL (Programmable DMA Burst length)
DT-property, which is supposed to be defined for each DW *MAC IP-core, but
not only for a Allwinner sun* and Ingenic GMAC and DW xGMAC. The number of
possible PBL values need to be also extended in accordance with the DW
*MAC manual. Then the TSO flag property should be also declared free of
the vendor-specific conditional schema, because the driver expects the
compatible string to have the IP-core version specified anyway and none of
the glue-drivers refer to the property directly. Moreover the original
Allwinner sunXi bindings file didn't have the TSO-related property
declared. So we can freely do that.

Then in order to improve the DT-bindings maintainability we suggest to
split up the generic DT-properties and generic DT-nodes schema leaving the
properties definition in the "snps,dwmac.yaml" file and moving the generic
DW *MAC DT-nodes bindings validation in the dedicated DT-schema
"snps,dwmac-generic.yaml".

We've found out that the DW MAC bindings don't provide a correct description
of the System/CSR clocks and a comprehensive enough description of the
clock-related "snps,clk-csr" property. So in order to have more
descriptive bindings we suggest to add a bit more details about the
App/CSR clocks and CSR-MDC divider property.

Then seeing the any DW MAC IP-core revision can be equipped with an
external Tx/Rx clock sources we suggest to add the "tx"/"rx" clocks
declaration into the generic DW MAC DT-schema.

Afterwards a set of the AXI-bus config property cleanups are introduced.
First we suggest to drop the "snps,axi-config" property description since
it duplicates the stmmac-axi-config sub-node DT-bindings. Second the
unevaluatedProperties property is replaced with additionalProperties as
more suitable for the "stmmac-axi-config" schema. Third the proper
constraints are added to the properties of the "stmmac-axi-config"
sub-node.

Then three patches concerning the MTL Tx/Rx queue configs go, which add
the sub-nodes properties constraints and fix the MTL Tx queue properties
description.

The next patch converts the DW MAC DT-bindings to using the "flag"
definition instead of the native boolean type for relevant properties.
It's done for the sake of the DT-schema unification.

The series is closed with the two patches concerning the MTL queue config
properties dependencies. First one provides a simpler construction for the
MTL queue properties inter-dependencies. The second one adds the
dependencies definition for the MTL Tx queue CBS-algo properties.

Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
Cc: Alexey Malahov <Alexey.Malahov@xxxxxxxxxxxxxxxxxxxx>
Cc: Pavel Parkhomenko <Pavel.Parkhomenko@xxxxxxxxxxxxxxxxxxxx>
Cc: Christian Marangi <ansuelsmth@xxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Biao Huang <biao.huang@xxxxxxxxxxxx>
Cc: Yang Yingliang <yangyingliang@xxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: netdev@xxxxxxxxxxxxxxx
Cc: linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

Serge Semin (16):
dt-bindings: net: dwmac: Validate PBL for all IP-cores
dt-bindings: net: dwmac: Extend number of PBL values
dt-bindings: net: dwmac: Fix the TSO property declaration
dt-bindings: net: dwmac: Detach Generic DW MAC bindings
dt-bindings: net: dwmac: Elaborate snps,clk-csr description
dt-bindings: net: dwmac: Elaborate stmmaceth/pclk clocks description
dt-bindings: net: dwmac: Add Tx/Rx clock sources
dt-bindings: net: dwmac: Drop prop names from snps,axi-config
description
dt-bindings: net: dwmac: Prohibit additional props in AXI-config
dt-bindings: net: dwmac: Add AXI-bus properties constraints
dt-bindings: net: dwmac: Add MTL Rx Queue properties constraints
dt-bindings: net: dwmac: Add MTL Tx Queue properties constraints
dt-bindings: net: dwmac: Fix MTL Tx Queue props description
dt-bindings: net: dwmac: Use flag definition instead of booleans
dt-bindings: net: dwmac: Simplify MTL queue props dependencies
dt-bindings: net: dwmac: Add MTL Tx queue CBS-algo props dependencies

.../bindings/net/snps,dwmac-generic.yaml | 155 +++++
.../devicetree/bindings/net/snps,dwmac.yaml | 586 +++++++-----------
MAINTAINERS | 1 +
3 files changed, 381 insertions(+), 361 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/snps,dwmac-generic.yaml

--
2.39.2