| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/net/ethernet-switch.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Generic Ethernet Switch |
| |
| maintainers: |
| - Andrew Lunn <andrew@lunn.ch> |
| - Florian Fainelli <f.fainelli@gmail.com> |
| - Vladimir Oltean <olteanv@gmail.com> |
| |
| description: |
| Ethernet switches are multi-port Ethernet controllers. Each port has |
| its own number and is represented as its own Ethernet controller. |
| The minimum required functionality is to pass packets to software. |
| They may or may not be able to forward packets automonously between |
| ports. |
| |
| select: false |
| |
| allOf: |
| # This condition is here to satisfy the case where certain device |
| # nodes have to preserve non-standard names because of |
| # backward-compatibility with boot loaders inspecting certain |
| # node names. |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - marvell,turris-mox-mv88e6085 |
| - marvell,turris-mox-mv88e6190 |
| then: |
| properties: |
| $nodename: |
| pattern: "switch[0-3]@[0-3]+$" |
| else: |
| properties: |
| $nodename: |
| pattern: "^(ethernet-)?switch(@.*)?$" |
| |
| patternProperties: |
| "^(ethernet-)?ports$": |
| type: object |
| unevaluatedProperties: false |
| |
| properties: |
| '#address-cells': |
| const: 1 |
| '#size-cells': |
| const: 0 |
| |
| patternProperties: |
| "^(ethernet-)?port@[0-9a-f]+$": |
| type: object |
| description: Ethernet switch ports |
| |
| required: |
| - "#address-cells" |
| - "#size-cells" |
| |
| oneOf: |
| - required: |
| - ports |
| - required: |
| - ethernet-ports |
| |
| additionalProperties: true |
| |
| $defs: |
| ethernet-ports: |
| description: An ethernet switch without any extra port properties |
| $ref: '#' |
| |
| patternProperties: |
| "^(ethernet-)?ports$": |
| patternProperties: |
| "^(ethernet-)?port@[0-9a-f]+$": |
| description: Ethernet switch ports |
| $ref: ethernet-switch-port.yaml# |
| unevaluatedProperties: false |
| |
| ... |