xref: /linux/Documentation/devicetree/bindings/net/dsa/dsa.yaml (revision 34f7c6e7d4396090692a09789db231e12cb4762b)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/dsa/dsa.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Ethernet Switch Device Tree Bindings
8
9maintainers:
10  - Andrew Lunn <andrew@lunn.ch>
11  - Florian Fainelli <f.fainelli@gmail.com>
12  - Vivien Didelot <vivien.didelot@gmail.com>
13
14description:
15  This binding represents Ethernet Switches which have a dedicated CPU
16  port. That port is usually connected to an Ethernet Controller of the
17  SoC. Such setups are typical for embedded devices.
18
19select: false
20
21properties:
22  $nodename:
23    pattern: "^(ethernet-)?switch(@.*)?$"
24
25  dsa,member:
26    minItems: 2
27    maxItems: 2
28    description:
29      A two element list indicates which DSA cluster, and position within the
30      cluster a switch takes. <0 0> is cluster 0, switch 0. <0 1> is cluster 0,
31      switch 1. <1 0> is cluster 1, switch 0. A switch not part of any cluster
32      (single device hanging off a CPU port) must not specify this property
33    $ref: /schemas/types.yaml#/definitions/uint32-array
34
35patternProperties:
36  "^(ethernet-)?ports$":
37    type: object
38    properties:
39      '#address-cells':
40        const: 1
41      '#size-cells':
42        const: 0
43
44    patternProperties:
45      "^(ethernet-)?port@[0-9]+$":
46        type: object
47        description: Ethernet switch ports
48
49        $ref: dsa-port.yaml#
50
51        unevaluatedProperties: false
52
53oneOf:
54  - required:
55      - ports
56  - required:
57      - ethernet-ports
58
59additionalProperties: true
60
61...
62