Merge tag 'imx-bindings-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/shawng...
[linux-block.git] / Documentation / devicetree / bindings / net / ethernet-controller.yaml
CommitLineData
9d3de3c5
MR
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
7title: Ethernet Controller Generic Binding
8
9maintainers:
10 - David S. Miller <davem@davemloft.net>
11
12properties:
13 $nodename:
14 pattern: "^ethernet(@.*)?$"
15
16 local-mac-address:
9d3de3c5
MR
17 description:
18 Specifies the MAC address that was assigned to the network device.
3d21a460
RH
19 $ref: /schemas/types.yaml#definitions/uint8-array
20 items:
21 - minItems: 6
22 maxItems: 6
9d3de3c5
MR
23
24 mac-address:
9d3de3c5
MR
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.
3d21a460
RH
30 $ref: /schemas/types.yaml#definitions/uint8-array
31 items:
32 - minItems: 6
33 maxItems: 6
9d3de3c5
MR
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:
5f53584c
MB
57 Specifies interface type between the Ethernet device and a physical
58 layer (PHY) device.
9d3de3c5
MR
59 enum:
60 # There is not a standard bus between the MAC and the PHY,
61 # something proprietary is being used to embed the PHY in the
62 # MAC.
63 - internal
64 - mii
65 - gmii
66 - sgmii
67 - qsgmii
68 - tbi
69 - rev-mii
70 - rmii
71
72 # RX and TX delays are added by the MAC when required
73 - rgmii
74
75 # RGMII with internal RX and TX delays provided by the PHY,
76 # the MAC should not add the RX or TX delays in this case
77 - rgmii-id
78
79 # RGMII with internal RX delay provided by the PHY, the MAC
80 # should not add an RX delay in this case
81 - rgmii-rxid
82
83 # RGMII with internal TX delay provided by the PHY, the MAC
84 # should not add an TX delay in this case
85 - rgmii-txid
86 - rtbi
87 - smii
88 - xgmii
89 - trgmii
90 - 1000base-x
91 - 2500base-x
92 - rxaui
93 - xaui
94
95 # 10GBASE-KR, XFI, SFI
96 - 10gbase-kr
97 - usxgmii
39d3f3ff 98 - 10gbase-r
9d3de3c5
MR
99
100 phy-mode:
101 $ref: "#/properties/phy-connection-type"
102
103 phy-handle:
104 $ref: /schemas/types.yaml#definitions/phandle
105 description:
106 Specifies a reference to a node representing a PHY device.
107
108 phy:
109 $ref: "#/properties/phy-handle"
110 deprecated: true
111
112 phy-device:
113 $ref: "#/properties/phy-handle"
114 deprecated: true
115
116 rx-fifo-depth:
117 $ref: /schemas/types.yaml#definitions/uint32
118 description:
119 The size of the controller\'s receive fifo in bytes. This is used
120 for components that can have configurable receive fifo sizes,
121 and is useful for determining certain configuration settings
122 such as flow control thresholds.
123
0024bad1
GU
124 rx-internal-delay-ps:
125 $ref: /schemas/types.yaml#/definitions/uint32
126 description: |
127 RGMII Receive Clock Delay defined in pico seconds.
128 This is used for controllers that have configurable RX internal delays.
129 If this property is present then the MAC applies the RX delay.
130
fb3d8bcd
RK
131 sfp:
132 $ref: /schemas/types.yaml#definitions/phandle
133 description:
134 Specifies a reference to a node representing a SFP cage.
135
9d3de3c5
MR
136 tx-fifo-depth:
137 $ref: /schemas/types.yaml#definitions/uint32
138 description:
139 The size of the controller\'s transmit fifo in bytes. This
140 is used for components that can have configurable fifo sizes.
141
0024bad1
GU
142 tx-internal-delay-ps:
143 $ref: /schemas/types.yaml#/definitions/uint32
144 description: |
145 RGMII Transmit Clock Delay defined in pico seconds.
146 This is used for controllers that have configurable TX internal delays.
147 If this property is present then the MAC applies the TX delay.
148
9d3de3c5 149 managed:
9d3de3c5
MR
150 description:
151 Specifies the PHY management type. If auto is set and fixed-link
152 is not specified, it uses MDIO for management.
3d21a460
RH
153 $ref: /schemas/types.yaml#definitions/string
154 default: auto
155 enum:
156 - auto
157 - in-band-status
9d3de3c5
MR
158
159 fixed-link:
160 allOf:
161 - if:
162 type: array
163 then:
164 deprecated: true
165 minItems: 1
166 maxItems: 1
167 items:
168 items:
169 - minimum: 0
170 maximum: 31
171 description:
172 Emulated PHY ID, choose any but unique to the all
173 specified fixed-links
174
175 - enum: [0, 1]
176 description:
177 Duplex configuration. 0 for half duplex or 1 for
178 full duplex
179
180 - enum: [10, 100, 1000]
181 description:
182 Link speed in Mbits/sec.
183
184 - enum: [0, 1]
185 description:
186 Pause configuration. 0 for no pause, 1 for pause
187
188 - enum: [0, 1]
189 description:
190 Asymmetric pause configuration. 0 for no asymmetric
191 pause, 1 for asymmetric pause
192
193
194 - if:
195 type: object
196 then:
197 properties:
198 speed:
9d3de3c5
MR
199 description:
200 Link speed.
3d21a460
RH
201 $ref: /schemas/types.yaml#definitions/uint32
202 enum: [10, 100, 1000]
9d3de3c5
MR
203
204 full-duplex:
205 $ref: /schemas/types.yaml#definitions/flag
206 description:
207 Indicates that full-duplex is used. When absent, half
208 duplex is assumed.
209
210 asym-pause:
211 $ref: /schemas/types.yaml#definitions/flag
212 description:
213 Indicates that asym_pause should be enabled.
214
215 link-gpios:
216 maxItems: 1
217 description:
218 GPIO to determine if the link is up
219
220 required:
221 - speed
222
6a0e321e
RH
223additionalProperties: true
224
9d3de3c5 225...