Merge branch 'i2c/for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / net / ethernet-controller.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/net/ethernet-controller.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Ethernet Controller Generic Binding
8
9 maintainers:
10   - David S. Miller <davem@davemloft.net>
11
12 properties:
13   $nodename:
14     pattern: "^ethernet(@.*)?$"
15
16   local-mac-address:
17     description:
18       Specifies the MAC address that was assigned to the network device.
19     $ref: /schemas/types.yaml#definitions/uint8-array
20     items:
21       - minItems: 6
22         maxItems: 6
23
24   mac-address:
25     description:
26       Specifies the MAC address that was last used by the boot
27       program; should be used in cases where the MAC address assigned
28       to the device by the boot program is different from the
29       local-mac-address property.
30     $ref: /schemas/types.yaml#definitions/uint8-array
31     items:
32       - minItems: 6
33         maxItems: 6
34
35   max-frame-size:
36     $ref: /schemas/types.yaml#definitions/uint32
37     description:
38       Maximum transfer unit (IEEE defined MTU), rather than the
39       maximum frame size (there\'s contradiction in the Devicetree
40       Specification).
41
42   max-speed:
43     $ref: /schemas/types.yaml#definitions/uint32
44     description:
45       Specifies maximum speed in Mbit/s supported by the device.
46
47   nvmem-cells:
48     maxItems: 1
49     description:
50       Reference to an nvmem node for the MAC address
51
52   nvmem-cells-names:
53     const: mac-address
54
55   phy-connection-type:
56     description:
57       Operation mode of the PHY interface
58     enum:
59       # There is not a standard bus between the MAC and the PHY,
60       # something proprietary is being used to embed the PHY in the
61       # MAC.
62       - internal
63       - mii
64       - gmii
65       - sgmii
66       - qsgmii
67       - tbi
68       - rev-mii
69       - rmii
70
71       # RX and TX delays are added by the MAC when required
72       - rgmii
73
74       # RGMII with internal RX and TX delays provided by the PHY,
75       # the MAC should not add the RX or TX delays in this case
76       - rgmii-id
77
78       # RGMII with internal RX delay provided by the PHY, the MAC
79       # should not add an RX delay in this case
80       - rgmii-rxid
81
82       # RGMII with internal TX delay provided by the PHY, the MAC
83       # should not add an TX delay in this case
84       - rgmii-txid
85       - rtbi
86       - smii
87       - xgmii
88       - trgmii
89       - 1000base-x
90       - 2500base-x
91       - rxaui
92       - xaui
93
94       # 10GBASE-KR, XFI, SFI
95       - 10gbase-kr
96       - usxgmii
97
98   phy-mode:
99     $ref: "#/properties/phy-connection-type"
100
101   phy-handle:
102     $ref: /schemas/types.yaml#definitions/phandle
103     description:
104       Specifies a reference to a node representing a PHY device.
105
106   phy:
107     $ref: "#/properties/phy-handle"
108     deprecated: true
109
110   phy-device:
111     $ref: "#/properties/phy-handle"
112     deprecated: true
113
114   rx-fifo-depth:
115     $ref: /schemas/types.yaml#definitions/uint32
116     description:
117       The size of the controller\'s receive fifo in bytes. This is used
118       for components that can have configurable receive fifo sizes,
119       and is useful for determining certain configuration settings
120       such as flow control thresholds.
121
122   sfp:
123     $ref: /schemas/types.yaml#definitions/phandle
124     description:
125       Specifies a reference to a node representing a SFP cage.
126
127   tx-fifo-depth:
128     $ref: /schemas/types.yaml#definitions/uint32
129     description:
130       The size of the controller\'s transmit fifo in bytes. This
131       is used for components that can have configurable fifo sizes.
132
133   managed:
134     description:
135       Specifies the PHY management type. If auto is set and fixed-link
136       is not specified, it uses MDIO for management.
137     $ref: /schemas/types.yaml#definitions/string
138     default: auto
139     enum:
140       - auto
141       - in-band-status
142
143   fixed-link:
144     allOf:
145       - if:
146           type: array
147         then:
148           deprecated: true
149           minItems: 1
150           maxItems: 1
151           items:
152             items:
153               - minimum: 0
154                 maximum: 31
155                 description:
156                   Emulated PHY ID, choose any but unique to the all
157                   specified fixed-links
158
159               - enum: [0, 1]
160                 description:
161                   Duplex configuration. 0 for half duplex or 1 for
162                   full duplex
163
164               - enum: [10, 100, 1000]
165                 description:
166                   Link speed in Mbits/sec.
167
168               - enum: [0, 1]
169                 description:
170                   Pause configuration. 0 for no pause, 1 for pause
171
172               - enum: [0, 1]
173                 description:
174                   Asymmetric pause configuration. 0 for no asymmetric
175                   pause, 1 for asymmetric pause
176
177
178       - if:
179           type: object
180         then:
181           properties:
182             speed:
183               description:
184                 Link speed.
185               $ref: /schemas/types.yaml#definitions/uint32
186               enum: [10, 100, 1000]
187
188             full-duplex:
189               $ref: /schemas/types.yaml#definitions/flag
190               description:
191                 Indicates that full-duplex is used. When absent, half
192                 duplex is assumed.
193
194             asym-pause:
195               $ref: /schemas/types.yaml#definitions/flag
196               description:
197                 Indicates that asym_pause should be enabled.
198
199             link-gpios:
200               maxItems: 1
201               description:
202                 GPIO to determine if the link is up
203
204           required:
205             - speed
206
207 ...