Commit d01e0e98 authored by Serge Semin's avatar Serge Semin Committed by Paolo Abeni
Browse files

dt-bindings: net: dwmac: Validate PBL for all IP-cores



Indeed the maximum DMA burst length can be programmed not only for DW
xGMACs, Allwinner EMACs and Spear SoC GMAC, but in accordance with
[1, 2, 3] for Generic DW *MAC IP-cores. Moreover the STMMAC driver parses
the property and then apply the configuration for all supported DW MAC
devices. All of that makes the property being available for all IP-cores
the bindings supports. Let's make sure the PBL-related properties are
validated for all of them by the common DW *MAC DT schema.

[1] DesignWare Cores Ethernet MAC Universal Databook, Revision 3.73a,
    October 2013, p.378.

[2] DesignWare Cores Ethernet Quality-of-Service Databook, Revision 5.10a,
    December 2017, p.1223.

[3] DesignWare Cores XGMAC - 10G Ethernet MAC Databook, Revision 2.11a,
    September 2015, p.469-473.

Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240628154515.8783-1-fancer.lancer@gmail.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 2a01a889
Loading
Loading
Loading
Loading
+26 −54
Original line number Diff line number Diff line
@@ -436,6 +436,32 @@ properties:
    description:
      Use Address-Aligned Beats

  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,fixed-burst:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
@@ -566,60 +592,6 @@ dependencies:

allOf:
  - $ref: ethernet-controller.yaml#
  - 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

    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.

  - if:
      properties:
        compatible: