[PATCH net-next 11/16] dt-bindings: net: dwmac: Add MTL Rx Queue properties constraints

From: Serge Semin
Date: Mon Mar 13 2023 - 18:53:40 EST


Currently none of the MTL Rx Queues QoS-related DT-properties have been
equipped with the proper constraints. Meanwhile they can be specified at
least based on the corresponding CSR field sizes or the DW (x|xG)MAC
IP-core synthesize parameter constraints. Let's do that:
+ snps,rx-queues-to-use - number of Rx queues to utilise is limited with a
number of available queues. DW MAC/GMAC: no queues, DW Eth QoS: <= 8, DW
xGMAC: <= 12.
+ snps,map-to-dma-channel - DMA channel ID is limited with a number of
available DMA-channels. DW MAC/GMAC: <= 3, DW Eth QoS: <= 8, DW xGMAC: <=
16.
+ snps,priority - bitfield of the USP (user Priority) values of the tagged
packets is limited with the corresponding CSR field width or a maximum
possible VLAN tag PRI field value (it's 7). DW MAC/GMAC: no queues, DW Eth
QoS: 0xff, DW xGMAC: 0xff.

Since the constraints vary for different IP-cores and the DT-schema is
common for all of them the least restrictive values are chosen. The info
above can be used for the IP-core specific DT-schemas if anybody ever is
bothered with one to create.

Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
---
.../devicetree/bindings/net/snps,dwmac.yaml | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index f24718a8d184..e5662b1498b7 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -115,6 +115,10 @@ properties:
snps,rx-queues-to-use:
$ref: /schemas/types.yaml#/definitions/uint32
description: number of RX queues to be used in the driver
+ default: 1
+ minimum: 1
+ maximum: 12
+
snps,rx-sched-sp:
type: boolean
description: Strict priority
@@ -135,7 +139,7 @@ properties:
properties:
snps,rx-sched-sp: false
patternProperties:
- "^queue[0-9]$":
+ "^queue([0-9]|1[0-1])$":
description: Each subnode represents a queue.
type: object
properties:
@@ -148,6 +152,9 @@ properties:
snps,map-to-dma-channel:
$ref: /schemas/types.yaml#/definitions/uint32
description: DMA channel id to map
+ minimum: 0
+ maximum: 15
+
snps,route-avcp:
type: boolean
description: AV Untagged Control packets
@@ -166,6 +173,9 @@ properties:
snps,priority:
$ref: /schemas/types.yaml#/definitions/uint32
description: Bitmask of the tagged frames priorities assigned to the queue
+ minimum: 0
+ maximum: 0xFF
+
allOf:
- if:
required:
--
2.39.2