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        properties:
50          reg:
51            description: Port number
52
53          label:
54            description:
55              Describes the label associated with this port, which will become
56              the netdev name
57            $ref: /schemas/types.yaml#/definitions/string
58
59          link:
60            description:
61              Should be a list of phandles to other switch's DSA port. This
62              port is used as the outgoing port towards the phandle ports. The
63              full routing information must be given, not just the one hop
64              routes to neighbouring switches
65            $ref: /schemas/types.yaml#/definitions/phandle-array
66
67          ethernet:
68            description:
69              Should be a phandle to a valid Ethernet device node.  This host
70              device is what the switch port is connected to
71            $ref: /schemas/types.yaml#/definitions/phandle
72
73          dsa-tag-protocol:
74            description:
75              Instead of the default, the switch will use this tag protocol if
76              possible. Useful when a device supports multiple protocols and
77              the default is incompatible with the Ethernet device.
78            enum:
79              - dsa
80              - edsa
81              - ocelot
82              - ocelot-8021q
83              - seville
84
85          phy-handle: true
86
87          phy-mode: true
88
89          fixed-link: true
90
91          mac-address: true
92
93          sfp: true
94
95          managed: true
96
97        required:
98          - reg
99
100        additionalProperties: false
101
102oneOf:
103  - required:
104      - ports
105  - required:
106      - ethernet-ports
107
108additionalProperties: true
109
110...
111