xref: /linux/Documentation/devicetree/bindings/net/ethernet-phy.yaml (revision f42ceca226cadf2c27709499af8643acd4281cd7)
1d8704342SMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2d8704342SMaxime Ripard%YAML 1.2
3d8704342SMaxime Ripard---
4d8704342SMaxime Ripard$id: http://devicetree.org/schemas/net/ethernet-phy.yaml#
5d8704342SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6d8704342SMaxime Ripard
7d8704342SMaxime Ripardtitle: Ethernet PHY Generic Binding
8d8704342SMaxime Ripard
9d8704342SMaxime Ripardmaintainers:
10d8704342SMaxime Ripard  - Andrew Lunn <andrew@lunn.ch>
11d8704342SMaxime Ripard  - Florian Fainelli <f.fainelli@gmail.com>
12d8704342SMaxime Ripard  - Heiner Kallweit <hkallweit1@gmail.com>
13d8704342SMaxime Ripard
14d8704342SMaxime Ripard# The dt-schema tools will generate a select statement first by using
15d8704342SMaxime Ripard# the compatible, and second by using the node name if any. In our
16d8704342SMaxime Ripard# case, the node name is the one we want to match on, while the
17d8704342SMaxime Ripard# compatible is optional.
18d8704342SMaxime Ripardselect:
19d8704342SMaxime Ripard  properties:
20d8704342SMaxime Ripard    $nodename:
21d8704342SMaxime Ripard      pattern: "^ethernet-phy(@[a-f0-9]+)?$"
22d8704342SMaxime Ripard
23d8704342SMaxime Ripard  required:
24d8704342SMaxime Ripard    - $nodename
25d8704342SMaxime Ripard
26d8704342SMaxime Ripardproperties:
27d8704342SMaxime Ripard  $nodename:
28d8704342SMaxime Ripard    pattern: "^ethernet-phy(@[a-f0-9]+)?$"
29d8704342SMaxime Ripard
30d8704342SMaxime Ripard  compatible:
31d8704342SMaxime Ripard    oneOf:
32d8704342SMaxime Ripard      - const: ethernet-phy-ieee802.3-c22
33d8704342SMaxime Ripard        description: PHYs that implement IEEE802.3 clause 22
34d8704342SMaxime Ripard      - const: ethernet-phy-ieee802.3-c45
35d8704342SMaxime Ripard        description: PHYs that implement IEEE802.3 clause 45
36d8704342SMaxime Ripard      - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
37d8704342SMaxime Ripard        description:
38d8704342SMaxime Ripard          If the PHY reports an incorrect ID (or none at all) then the
39d8704342SMaxime Ripard          compatible list may contain an entry with the correct PHY ID
40d8704342SMaxime Ripard          in the above form.
41d8704342SMaxime Ripard          The first group of digits is the 16 bit Phy Identifier 1
42d8704342SMaxime Ripard          register, this is the chip vendor OUI bits 3:18. The
43d8704342SMaxime Ripard          second group of digits is the Phy Identifier 2 register,
44d8704342SMaxime Ripard          this is the chip vendor OUI bits 19:24, followed by 10
45d8704342SMaxime Ripard          bits of a vendor specific ID.
46d8704342SMaxime Ripard      - items:
47d8704342SMaxime Ripard          - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
48c8322754SJohan Jonker          - const: ethernet-phy-ieee802.3-c22
49c8322754SJohan Jonker      - items:
50c8322754SJohan Jonker          - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
51d8704342SMaxime Ripard          - const: ethernet-phy-ieee802.3-c45
52d8704342SMaxime Ripard
53d8704342SMaxime Ripard  reg:
54d8704342SMaxime Ripard    minimum: 0
55d8704342SMaxime Ripard    maximum: 31
56d8704342SMaxime Ripard    description:
57d8704342SMaxime Ripard      The ID number for the PHY.
58d8704342SMaxime Ripard
59d8704342SMaxime Ripard  interrupts:
60d8704342SMaxime Ripard    maxItems: 1
61d8704342SMaxime Ripard
62d8704342SMaxime Ripard  max-speed:
63d8704342SMaxime Ripard    enum:
64d8704342SMaxime Ripard      - 10
65d8704342SMaxime Ripard      - 100
66d8704342SMaxime Ripard      - 1000
67d8704342SMaxime Ripard      - 2500
68d8704342SMaxime Ripard      - 5000
69d8704342SMaxime Ripard      - 10000
70d8704342SMaxime Ripard      - 20000
71d8704342SMaxime Ripard      - 25000
72d8704342SMaxime Ripard      - 40000
73d8704342SMaxime Ripard      - 50000
74d8704342SMaxime Ripard      - 56000
75d8704342SMaxime Ripard      - 100000
76d8704342SMaxime Ripard      - 200000
77d8704342SMaxime Ripard    description:
78d8704342SMaxime Ripard      Maximum PHY supported speed in Mbits / seconds.
79d8704342SMaxime Ripard
80d8704342SMaxime Ripard  broken-turn-around:
81d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
82d8704342SMaxime Ripard    description:
83d8704342SMaxime Ripard      If set, indicates the PHY device does not correctly release
84*f42ceca2SFlorian Fainelli      the turn around line low at end of the control phase of the
85*f42ceca2SFlorian Fainelli      MDIO transaction.
86d8704342SMaxime Ripard
87d8704342SMaxime Ripard  enet-phy-lane-swap:
88d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
89d8704342SMaxime Ripard    description:
90d8704342SMaxime Ripard      If set, indicates the PHY will swap the TX/RX lanes to
91d8704342SMaxime Ripard      compensate for the board being designed with the lanes
92d8704342SMaxime Ripard      swapped.
93d8704342SMaxime Ripard
94d8704342SMaxime Ripard  eee-broken-100tx:
95d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
96d8704342SMaxime Ripard    description:
97d8704342SMaxime Ripard      Mark the corresponding energy efficient ethernet mode as
98d8704342SMaxime Ripard      broken and request the ethernet to stop advertising it.
99d8704342SMaxime Ripard
100d8704342SMaxime Ripard  eee-broken-1000t:
101d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
102d8704342SMaxime Ripard    description:
103d8704342SMaxime Ripard      Mark the corresponding energy efficient ethernet mode as
104d8704342SMaxime Ripard      broken and request the ethernet to stop advertising it.
105d8704342SMaxime Ripard
106d8704342SMaxime Ripard  eee-broken-10gt:
107d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
108d8704342SMaxime Ripard    description:
109d8704342SMaxime Ripard      Mark the corresponding energy efficient ethernet mode as
110d8704342SMaxime Ripard      broken and request the ethernet to stop advertising it.
111d8704342SMaxime Ripard
112d8704342SMaxime Ripard  eee-broken-1000kx:
113d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
114d8704342SMaxime Ripard    description:
115d8704342SMaxime Ripard      Mark the corresponding energy efficient ethernet mode as
116d8704342SMaxime Ripard      broken and request the ethernet to stop advertising it.
117d8704342SMaxime Ripard
118d8704342SMaxime Ripard  eee-broken-10gkx4:
119d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
120d8704342SMaxime Ripard    description:
121d8704342SMaxime Ripard      Mark the corresponding energy efficient ethernet mode as
122d8704342SMaxime Ripard      broken and request the ethernet to stop advertising it.
123d8704342SMaxime Ripard
124d8704342SMaxime Ripard  eee-broken-10gkr:
125d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
126d8704342SMaxime Ripard    description:
127d8704342SMaxime Ripard      Mark the corresponding energy efficient ethernet mode as
128d8704342SMaxime Ripard      broken and request the ethernet to stop advertising it.
129d8704342SMaxime Ripard
130d8704342SMaxime Ripard  phy-is-integrated:
131d8704342SMaxime Ripard    $ref: /schemas/types.yaml#definitions/flag
132d8704342SMaxime Ripard    description:
133d8704342SMaxime Ripard      If set, indicates that the PHY is integrated into the same
134d8704342SMaxime Ripard      physical package as the Ethernet MAC. If needed, muxers
135d8704342SMaxime Ripard      should be configured to ensure the integrated PHY is
136d8704342SMaxime Ripard      used. The absence of this property indicates the muxers
137d8704342SMaxime Ripard      should be configured so that the external PHY is used.
138d8704342SMaxime Ripard
139d8704342SMaxime Ripard  resets:
140d8704342SMaxime Ripard    maxItems: 1
141d8704342SMaxime Ripard
142d8704342SMaxime Ripard  reset-names:
143d8704342SMaxime Ripard    const: phy
144d8704342SMaxime Ripard
145d8704342SMaxime Ripard  reset-gpios:
146d8704342SMaxime Ripard    maxItems: 1
147d8704342SMaxime Ripard    description:
148d8704342SMaxime Ripard      The GPIO phandle and specifier for the PHY reset signal.
149d8704342SMaxime Ripard
150d8704342SMaxime Ripard  reset-assert-us:
151d8704342SMaxime Ripard    description:
152d8704342SMaxime Ripard      Delay after the reset was asserted in microseconds. If this
153d8704342SMaxime Ripard      property is missing the delay will be skipped.
154d8704342SMaxime Ripard
155d8704342SMaxime Ripard  reset-deassert-us:
156d8704342SMaxime Ripard    description:
157d8704342SMaxime Ripard      Delay after the reset was deasserted in microseconds. If
158d8704342SMaxime Ripard      this property is missing the delay will be skipped.
159d8704342SMaxime Ripard
160fb3d8bcdSRussell King  sfp:
161fb3d8bcdSRussell King    $ref: /schemas/types.yaml#definitions/phandle
162fb3d8bcdSRussell King    description:
163fb3d8bcdSRussell King      Specifies a reference to a node representing a SFP cage.
164fb3d8bcdSRussell King
165d8704342SMaxime Ripardrequired:
166d8704342SMaxime Ripard  - reg
167d8704342SMaxime Ripard
168d8704342SMaxime Ripardexamples:
169d8704342SMaxime Ripard  - |
170d8704342SMaxime Ripard    ethernet {
171d8704342SMaxime Ripard        #address-cells = <1>;
172d8704342SMaxime Ripard        #size-cells = <0>;
173d8704342SMaxime Ripard
174d8704342SMaxime Ripard        ethernet-phy@0 {
175d8704342SMaxime Ripard            compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c45";
176d8704342SMaxime Ripard            interrupt-parent = <&PIC>;
177d8704342SMaxime Ripard            interrupts = <35 1>;
178d8704342SMaxime Ripard            reg = <0>;
179d8704342SMaxime Ripard
180d8704342SMaxime Ripard            resets = <&rst 8>;
181d8704342SMaxime Ripard            reset-names = "phy";
182d8704342SMaxime Ripard            reset-gpios = <&gpio1 4 1>;
183d8704342SMaxime Ripard            reset-assert-us = <1000>;
184d8704342SMaxime Ripard            reset-deassert-us = <2000>;
185d8704342SMaxime Ripard        };
186d8704342SMaxime Ripard    };
187