hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/dsa.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
 
title: Ethernet Switch Device Tree Bindings
 
maintainers:
  - Andrew Lunn <andrew@lunn.ch>
  - Florian Fainelli <f.fainelli@gmail.com>
  - Vivien Didelot <vivien.didelot@gmail.com>
 
description:
  This binding represents Ethernet Switches which have a dedicated CPU
  port. That port is usually connected to an Ethernet Controller of the
  SoC. Such setups are typical for embedded devices.
 
select: false
 
properties:
  $nodename:
    pattern: "^switch(@.*)?$"
 
  dsa,member:
    minItems: 2
    maxItems: 2
    description:
      A two element list indicates which DSA cluster, and position within the
      cluster a switch takes. <0 0> is cluster 0, switch 0. <0 1> is cluster 0,
      switch 1. <1 0> is cluster 1, switch 0. A switch not part of any cluster
      (single device hanging off a CPU port) must not specify this property
    $ref: /schemas/types.yaml#/definitions/uint32-array
 
patternProperties:
  "^(ethernet-)?ports$":
    type: object
    properties:
      '#address-cells':
        const: 1
      '#size-cells':
        const: 0
 
    patternProperties:
      "^(ethernet-)?port@[0-9]+$":
        type: object
        description: Ethernet switch ports
 
        properties:
          reg:
            description: Port number
 
          label:
            description:
              Describes the label associated with this port, which will become
              the netdev name
            $ref: /schemas/types.yaml#definitions/string
 
          link:
            description:
              Should be a list of phandles to other switch's DSA port. This
              port is used as the outgoing port towards the phandle ports. The
              full routing information must be given, not just the one hop
              routes to neighbouring switches
            $ref: /schemas/types.yaml#definitions/phandle-array
 
          ethernet:
            description:
              Should be a phandle to a valid Ethernet device node.  This host
              device is what the switch port is connected to
            $ref: /schemas/types.yaml#definitions/phandle
 
          phy-handle: true
 
          phy-mode: true
 
          fixed-link: true
 
          mac-address: true
 
        required:
          - reg
 
        additionalProperties: false
 
oneOf:
  - required:
      - ports
  - required:
      - ethernet-ports
 
additionalProperties: true
 
...