18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/net/dsa/dsa.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Ethernet Switch Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Andrew Lunn <andrew@lunn.ch>
118c2ecf20Sopenharmony_ci  - Florian Fainelli <f.fainelli@gmail.com>
128c2ecf20Sopenharmony_ci  - Vivien Didelot <vivien.didelot@gmail.com>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_cidescription:
158c2ecf20Sopenharmony_ci  This binding represents Ethernet Switches which have a dedicated CPU
168c2ecf20Sopenharmony_ci  port. That port is usually connected to an Ethernet Controller of the
178c2ecf20Sopenharmony_ci  SoC. Such setups are typical for embedded devices.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciselect: false
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciproperties:
228c2ecf20Sopenharmony_ci  $nodename:
238c2ecf20Sopenharmony_ci    pattern: "^switch(@.*)?$"
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  dsa,member:
268c2ecf20Sopenharmony_ci    minItems: 2
278c2ecf20Sopenharmony_ci    maxItems: 2
288c2ecf20Sopenharmony_ci    description:
298c2ecf20Sopenharmony_ci      A two element list indicates which DSA cluster, and position within the
308c2ecf20Sopenharmony_ci      cluster a switch takes. <0 0> is cluster 0, switch 0. <0 1> is cluster 0,
318c2ecf20Sopenharmony_ci      switch 1. <1 0> is cluster 1, switch 0. A switch not part of any cluster
328c2ecf20Sopenharmony_ci      (single device hanging off a CPU port) must not specify this property
338c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32-array
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_cipatternProperties:
368c2ecf20Sopenharmony_ci  "^(ethernet-)?ports$":
378c2ecf20Sopenharmony_ci    type: object
388c2ecf20Sopenharmony_ci    properties:
398c2ecf20Sopenharmony_ci      '#address-cells':
408c2ecf20Sopenharmony_ci        const: 1
418c2ecf20Sopenharmony_ci      '#size-cells':
428c2ecf20Sopenharmony_ci        const: 0
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci    patternProperties:
458c2ecf20Sopenharmony_ci      "^(ethernet-)?port@[0-9]+$":
468c2ecf20Sopenharmony_ci        type: object
478c2ecf20Sopenharmony_ci        description: Ethernet switch ports
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci        properties:
508c2ecf20Sopenharmony_ci          reg:
518c2ecf20Sopenharmony_ci            description: Port number
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci          label:
548c2ecf20Sopenharmony_ci            description:
558c2ecf20Sopenharmony_ci              Describes the label associated with this port, which will become
568c2ecf20Sopenharmony_ci              the netdev name
578c2ecf20Sopenharmony_ci            $ref: /schemas/types.yaml#definitions/string
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci          link:
608c2ecf20Sopenharmony_ci            description:
618c2ecf20Sopenharmony_ci              Should be a list of phandles to other switch's DSA port. This
628c2ecf20Sopenharmony_ci              port is used as the outgoing port towards the phandle ports. The
638c2ecf20Sopenharmony_ci              full routing information must be given, not just the one hop
648c2ecf20Sopenharmony_ci              routes to neighbouring switches
658c2ecf20Sopenharmony_ci            $ref: /schemas/types.yaml#definitions/phandle-array
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci          ethernet:
688c2ecf20Sopenharmony_ci            description:
698c2ecf20Sopenharmony_ci              Should be a phandle to a valid Ethernet device node.  This host
708c2ecf20Sopenharmony_ci              device is what the switch port is connected to
718c2ecf20Sopenharmony_ci            $ref: /schemas/types.yaml#definitions/phandle
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci          phy-handle: true
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci          phy-mode: true
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci          fixed-link: true
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci          mac-address: true
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci        required:
828c2ecf20Sopenharmony_ci          - reg
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci        additionalProperties: false
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_cioneOf:
878c2ecf20Sopenharmony_ci  - required:
888c2ecf20Sopenharmony_ci      - ports
898c2ecf20Sopenharmony_ci  - required:
908c2ecf20Sopenharmony_ci      - ethernet-ports
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciadditionalProperties: true
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci...
95