xref: /linux/Documentation/devicetree/bindings/net/dsa/dsa.yaml (revision bba2c3615bd6cfee7456d1130f2e6b01b3f4e9ba)
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
8
9maintainers:
10  - Andrew Lunn <andrew@lunn.ch>
11  - Florian Fainelli <f.fainelli@gmail.com>
12  - Vladimir Oltean <olteanv@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
21$ref: /schemas/net/ethernet-switch.yaml#
22
23properties:
24  dsa,member:
25    minItems: 2
26    maxItems: 2
27    description:
28      A two element list indicates which DSA cluster, and position within the
29      cluster a switch takes. <0 0> is cluster 0, switch 0. <0 1> is cluster 0,
30      switch 1. <1 0> is cluster 1, switch 0. A switch not part of any cluster
31      (single device hanging off a CPU port) does not usually need to specify
32      this property, and then it becomes cluster 0, switch 0. For a topology
33      aware switch, its switch index can be specified through this property,
34      even if it is not part of any cluster. Also, topology-unaware switches
35      must always be defined as index 0 of their cluster.
36    $ref: /schemas/types.yaml#/definitions/uint32-array
37
38additionalProperties: true
39
40$defs:
41  ethernet-ports:
42    description: A DSA switch without any extra port properties
43    $ref: '#'
44
45    patternProperties:
46      "^(ethernet-)?ports$":
47        patternProperties:
48          "^(ethernet-)?port@[0-9a-f]+$":
49            description: Ethernet switch ports
50            $ref: dsa-port.yaml#
51            unevaluatedProperties: false
52
53oneOf:
54  - required:
55      - ports
56  - required:
57      - ethernet-ports
58
59...
60