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-port.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Generic DSA Switch Port
8
9maintainers:
10  - Andrew Lunn <andrew@lunn.ch>
11  - Florian Fainelli <f.fainelli@gmail.com>
12  - Vladimir Oltean <olteanv@gmail.com>
13
14description:
15  A DSA switch port is a component of a switch that manages one MAC, and can
16  pass Ethernet frames. It can act as a stanadard Ethernet switch port, or have
17  DSA-specific functionality.
18
19$ref: /schemas/net/ethernet-switch-port.yaml#
20
21properties:
22  reg:
23    items:
24      - description: Port number
25
26  label:
27    description:
28      Describes the label associated with this port, which will become
29      the netdev name
30    $ref: /schemas/types.yaml#/definitions/string
31
32  link:
33    description:
34      Should be a list of phandles to other switch's DSA port. This
35      port is used as the outgoing port towards the phandle ports. The
36      full routing information must be given, not just the one hop
37      routes to neighbouring switches
38    $ref: /schemas/types.yaml#/definitions/phandle-array
39    items:
40      maxItems: 1
41
42  ethernet:
43    description:
44      Should be a phandle to a valid Ethernet device node.  This host
45      device is what the switch port is connected to
46    $ref: /schemas/types.yaml#/definitions/phandle
47
48  dsa-tag-protocol:
49    description:
50      Instead of the default, the switch will use this tag protocol if
51      possible. Useful when a device supports multiple protocols and
52      the default is incompatible with the Ethernet device.
53    enum:
54      - dsa
55      - edsa
56      - ocelot
57      - ocelot-8021q
58      - rtl8_4
59      - rtl8_4t
60      - seville
61
62# CPU and DSA ports must have phylink-compatible link descriptions
63if:
64  oneOf:
65    - required: [ ethernet ]
66    - required: [ link ]
67then:
68  allOf:
69    - required:
70        - phy-mode
71    - oneOf:
72        - required:
73            - fixed-link
74        - required:
75            - phy-handle
76        - required:
77            - managed
78
79additionalProperties: true
80
81...
82