| # 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 | |
| ... |