Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / net / ethernet-phy.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/net/ethernet-phy.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Ethernet PHY Common Properties
8
9 maintainers:
10   - Andrew Lunn <andrew@lunn.ch>
11   - Florian Fainelli <f.fainelli@gmail.com>
12   - Heiner Kallweit <hkallweit1@gmail.com>
13
14 # The dt-schema tools will generate a select statement first by using
15 # the compatible, and second by using the node name if any. In our
16 # case, the node name is the one we want to match on, while the
17 # compatible is optional.
18 select:
19   properties:
20     $nodename:
21       pattern: "^ethernet-phy(@[a-f0-9]+)?$"
22
23   required:
24     - $nodename
25
26 properties:
27   $nodename:
28     pattern: "^ethernet-phy(@[a-f0-9]+)?$"
29
30   compatible:
31     oneOf:
32       - const: ethernet-phy-ieee802.3-c22
33         description: PHYs that implement IEEE802.3 clause 22
34       - const: ethernet-phy-ieee802.3-c45
35         description: PHYs that implement IEEE802.3 clause 45
36       - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
37         description:
38           If the PHY reports an incorrect ID (or none at all) then the
39           compatible list may contain an entry with the correct PHY ID
40           in the above form.
41           The first group of digits is the 16 bit Phy Identifier 1
42           register, this is the chip vendor OUI bits 3:18. The
43           second group of digits is the Phy Identifier 2 register,
44           this is the chip vendor OUI bits 19:24, followed by 10
45           bits of a vendor specific ID.
46       - items:
47           - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
48           - const: ethernet-phy-ieee802.3-c22
49       - items:
50           - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
51           - const: ethernet-phy-ieee802.3-c45
52
53   reg:
54     minimum: 0
55     maximum: 31
56     description:
57       The ID number for the PHY.
58
59   interrupts:
60     maxItems: 1
61
62   max-speed:
63     enum:
64       - 10
65       - 100
66       - 1000
67       - 2500
68       - 5000
69       - 10000
70       - 20000
71       - 25000
72       - 40000
73       - 50000
74       - 56000
75       - 100000
76       - 200000
77     description:
78       Maximum PHY supported speed in Mbits / seconds.
79
80   phy-10base-t1l-2.4vpp:
81     description: |
82       tristate, request/disable 2.4 Vpp operating mode. The values are:
83       0: Disable 2.4 Vpp operating mode.
84       1: Request 2.4 Vpp operating mode from link partner.
85       Absence of this property will leave configuration to default values.
86     $ref: /schemas/types.yaml#/definitions/uint32
87     enum: [0, 1]
88
89   broken-turn-around:
90     $ref: /schemas/types.yaml#/definitions/flag
91     description:
92       If set, indicates the PHY device does not correctly release
93       the turn around line low at end of the control phase of the
94       MDIO transaction.
95
96   clocks:
97     maxItems: 1
98     description:
99       External clock connected to the PHY. If not specified it is assumed
100       that the PHY uses a fixed crystal or an internal oscillator.
101
102   enet-phy-lane-swap:
103     $ref: /schemas/types.yaml#/definitions/flag
104     description:
105       If set, indicates the PHY will swap the TX/RX lanes to
106       compensate for the board being designed with the lanes
107       swapped.
108
109   enet-phy-lane-no-swap:
110     $ref: /schemas/types.yaml#/definitions/flag
111     description:
112       If set, indicates that PHY will disable swap of the
113       TX/RX lanes. This property allows the PHY to work correctly after
114       e.g. wrong bootstrap configuration caused by issues in PCB
115       layout design.
116
117   eee-broken-100tx:
118     $ref: /schemas/types.yaml#/definitions/flag
119     description:
120       Mark the corresponding energy efficient ethernet mode as
121       broken and request the ethernet to stop advertising it.
122
123   eee-broken-1000t:
124     $ref: /schemas/types.yaml#/definitions/flag
125     description:
126       Mark the corresponding energy efficient ethernet mode as
127       broken and request the ethernet to stop advertising it.
128
129   eee-broken-10gt:
130     $ref: /schemas/types.yaml#/definitions/flag
131     description:
132       Mark the corresponding energy efficient ethernet mode as
133       broken and request the ethernet to stop advertising it.
134
135   eee-broken-1000kx:
136     $ref: /schemas/types.yaml#/definitions/flag
137     description:
138       Mark the corresponding energy efficient ethernet mode as
139       broken and request the ethernet to stop advertising it.
140
141   eee-broken-10gkx4:
142     $ref: /schemas/types.yaml#/definitions/flag
143     description:
144       Mark the corresponding energy efficient ethernet mode as
145       broken and request the ethernet to stop advertising it.
146
147   eee-broken-10gkr:
148     $ref: /schemas/types.yaml#/definitions/flag
149     description:
150       Mark the corresponding energy efficient ethernet mode as
151       broken and request the ethernet to stop advertising it.
152
153   pses:
154     $ref: /schemas/types.yaml#/definitions/phandle-array
155     maxItems: 1
156     description:
157       Specifies a reference to a node representing a Power Sourcing Equipment.
158
159   phy-is-integrated:
160     $ref: /schemas/types.yaml#/definitions/flag
161     description:
162       If set, indicates that the PHY is integrated into the same
163       physical package as the Ethernet MAC. If needed, muxers
164       should be configured to ensure the integrated PHY is
165       used. The absence of this property indicates the muxers
166       should be configured so that the external PHY is used.
167
168   resets:
169     maxItems: 1
170
171   reset-names:
172     const: phy
173
174   reset-gpios:
175     maxItems: 1
176     description:
177       The GPIO phandle and specifier for the PHY reset signal.
178
179   reset-assert-us:
180     description:
181       Delay after the reset was asserted in microseconds. If this
182       property is missing the delay will be skipped.
183
184   reset-deassert-us:
185     description:
186       Delay after the reset was deasserted in microseconds. If
187       this property is missing the delay will be skipped.
188
189   sfp:
190     $ref: /schemas/types.yaml#/definitions/phandle
191     description:
192       Specifies a reference to a node representing a SFP cage.
193
194   rx-internal-delay-ps:
195     description: |
196       RGMII Receive PHY Clock Delay defined in pico seconds.  This is used for
197       PHY's that have configurable RX internal delays.  If this property is
198       present then the PHY applies the RX delay.
199
200   tx-internal-delay-ps:
201     description: |
202       RGMII Transmit PHY Clock Delay defined in pico seconds.  This is used for
203       PHY's that have configurable TX internal delays. If this property is
204       present then the PHY applies the TX delay.
205
206   leds:
207     type: object
208
209     properties:
210       '#address-cells':
211         const: 1
212
213       '#size-cells':
214         const: 0
215
216     patternProperties:
217       '^led@[a-f0-9]+$':
218         $ref: /schemas/leds/common.yaml#
219
220         properties:
221           reg:
222             maxItems: 1
223             description:
224               This define the LED index in the PHY or the MAC. It's really
225               driver dependent and required for ports that define multiple
226               LED for the same port.
227
228         required:
229           - reg
230
231         unevaluatedProperties: false
232
233     additionalProperties: false
234
235 required:
236   - reg
237
238 additionalProperties: true
239
240 examples:
241   - |
242     #include <dt-bindings/leds/common.h>
243
244     ethernet {
245         #address-cells = <1>;
246         #size-cells = <0>;
247
248         ethernet-phy@0 {
249             compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c45";
250             interrupt-parent = <&PIC>;
251             interrupts = <35 1>;
252             reg = <0>;
253
254             resets = <&rst 8>;
255             reset-names = "phy";
256             reset-gpios = <&gpio1 4 1>;
257             reset-assert-us = <1000>;
258             reset-deassert-us = <2000>;
259
260             leds {
261                 #address-cells = <1>;
262                 #size-cells = <0>;
263
264                 led@0 {
265                     reg = <0>;
266                     color = <LED_COLOR_ID_WHITE>;
267                     function = LED_FUNCTION_LAN;
268                     default-state = "keep";
269                 };
270             };
271         };
272     };