xref: /freebsd/sys/contrib/device-tree/Bindings/net/fsl,fec.yaml (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/net/fsl,fec.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Freescale Fast Ethernet Controller (FEC)
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Joakim Zhang <qiangqing.zhang@nxp.com>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel VadotallOf:
13354d7675SEmmanuel Vadot  - $ref: ethernet-controller.yaml#
14354d7675SEmmanuel Vadot
15354d7675SEmmanuel Vadotproperties:
16354d7675SEmmanuel Vadot  compatible:
17354d7675SEmmanuel Vadot    oneOf:
18354d7675SEmmanuel Vadot      - enum:
19354d7675SEmmanuel Vadot          - fsl,imx25-fec
20354d7675SEmmanuel Vadot          - fsl,imx27-fec
21354d7675SEmmanuel Vadot          - fsl,imx28-fec
22354d7675SEmmanuel Vadot          - fsl,imx6q-fec
23354d7675SEmmanuel Vadot          - fsl,mvf600-fec
24354d7675SEmmanuel Vadot      - items:
25354d7675SEmmanuel Vadot          - enum:
26354d7675SEmmanuel Vadot              - fsl,imx53-fec
27354d7675SEmmanuel Vadot              - fsl,imx6sl-fec
28354d7675SEmmanuel Vadot          - const: fsl,imx25-fec
29354d7675SEmmanuel Vadot      - items:
30354d7675SEmmanuel Vadot          - enum:
31354d7675SEmmanuel Vadot              - fsl,imx35-fec
32354d7675SEmmanuel Vadot              - fsl,imx51-fec
33354d7675SEmmanuel Vadot          - const: fsl,imx27-fec
34354d7675SEmmanuel Vadot      - items:
35354d7675SEmmanuel Vadot          - enum:
36354d7675SEmmanuel Vadot              - fsl,imx6ul-fec
37354d7675SEmmanuel Vadot              - fsl,imx6sx-fec
38354d7675SEmmanuel Vadot          - const: fsl,imx6q-fec
39354d7675SEmmanuel Vadot      - items:
40354d7675SEmmanuel Vadot          - enum:
41354d7675SEmmanuel Vadot              - fsl,imx7d-fec
42354d7675SEmmanuel Vadot          - const: fsl,imx6sx-fec
43354d7675SEmmanuel Vadot      - items:
44354d7675SEmmanuel Vadot          - const: fsl,imx8mq-fec
45354d7675SEmmanuel Vadot          - const: fsl,imx6sx-fec
46354d7675SEmmanuel Vadot      - items:
47354d7675SEmmanuel Vadot          - enum:
48354d7675SEmmanuel Vadot              - fsl,imx8mm-fec
49354d7675SEmmanuel Vadot              - fsl,imx8mn-fec
50354d7675SEmmanuel Vadot              - fsl,imx8mp-fec
51354d7675SEmmanuel Vadot          - const: fsl,imx8mq-fec
52354d7675SEmmanuel Vadot          - const: fsl,imx6sx-fec
53354d7675SEmmanuel Vadot      - items:
54354d7675SEmmanuel Vadot          - const: fsl,imx8qm-fec
55354d7675SEmmanuel Vadot          - const: fsl,imx6sx-fec
56354d7675SEmmanuel Vadot      - items:
57354d7675SEmmanuel Vadot          - enum:
58354d7675SEmmanuel Vadot              - fsl,imx8qxp-fec
59354d7675SEmmanuel Vadot          - const: fsl,imx8qm-fec
60354d7675SEmmanuel Vadot          - const: fsl,imx6sx-fec
61354d7675SEmmanuel Vadot
62354d7675SEmmanuel Vadot  reg:
63354d7675SEmmanuel Vadot    maxItems: 1
64354d7675SEmmanuel Vadot
65354d7675SEmmanuel Vadot  interrupts:
66354d7675SEmmanuel Vadot    minItems: 1
67354d7675SEmmanuel Vadot    maxItems: 4
68354d7675SEmmanuel Vadot
69354d7675SEmmanuel Vadot  interrupt-names:
70354d7675SEmmanuel Vadot    oneOf:
71354d7675SEmmanuel Vadot      - items:
72354d7675SEmmanuel Vadot          - const: int0
73354d7675SEmmanuel Vadot      - items:
74354d7675SEmmanuel Vadot          - const: int0
75354d7675SEmmanuel Vadot          - const: pps
76354d7675SEmmanuel Vadot      - items:
77354d7675SEmmanuel Vadot          - const: int0
78354d7675SEmmanuel Vadot          - const: int1
79354d7675SEmmanuel Vadot          - const: int2
80354d7675SEmmanuel Vadot      - items:
81354d7675SEmmanuel Vadot          - const: int0
82354d7675SEmmanuel Vadot          - const: int1
83354d7675SEmmanuel Vadot          - const: int2
84354d7675SEmmanuel Vadot          - const: pps
85354d7675SEmmanuel Vadot
86354d7675SEmmanuel Vadot  clocks:
87354d7675SEmmanuel Vadot    minItems: 2
88354d7675SEmmanuel Vadot    maxItems: 5
89354d7675SEmmanuel Vadot    description:
90354d7675SEmmanuel Vadot      The "ipg", for MAC ipg_clk_s, ipg_clk_mac_s that are for register accessing.
91354d7675SEmmanuel Vadot      The "ahb", for MAC ipg_clk, ipg_clk_mac that are bus clock.
92354d7675SEmmanuel Vadot      The "ptp"(option), for IEEE1588 timer clock that requires the clock.
93354d7675SEmmanuel Vadot      The "enet_clk_ref"(option), for MAC transmit/receiver reference clock like
94354d7675SEmmanuel Vadot      RGMII TXC clock or RMII reference clock. It depends on board design,
95354d7675SEmmanuel Vadot      the clock is required if RGMII TXC and RMII reference clock source from
96354d7675SEmmanuel Vadot      SOC internal PLL.
97354d7675SEmmanuel Vadot      The "enet_out"(option), output clock for external device, like supply clock
98354d7675SEmmanuel Vadot      for PHY. The clock is required if PHY clock source from SOC.
99354d7675SEmmanuel Vadot      The "enet_2x_txclk"(option), for RGMII sampling clock which fixed at 250Mhz.
100354d7675SEmmanuel Vadot      The clock is required if SoC RGMII enable clock delay.
101354d7675SEmmanuel Vadot
102354d7675SEmmanuel Vadot  clock-names:
103354d7675SEmmanuel Vadot    minItems: 2
104354d7675SEmmanuel Vadot    maxItems: 5
105354d7675SEmmanuel Vadot    items:
106354d7675SEmmanuel Vadot      enum:
107354d7675SEmmanuel Vadot        - ipg
108354d7675SEmmanuel Vadot        - ahb
109354d7675SEmmanuel Vadot        - ptp
110354d7675SEmmanuel Vadot        - enet_clk_ref
111354d7675SEmmanuel Vadot        - enet_out
112354d7675SEmmanuel Vadot        - enet_2x_txclk
113354d7675SEmmanuel Vadot
114354d7675SEmmanuel Vadot  phy-mode: true
115354d7675SEmmanuel Vadot
116354d7675SEmmanuel Vadot  phy-handle: true
117354d7675SEmmanuel Vadot
118354d7675SEmmanuel Vadot  fixed-link: true
119354d7675SEmmanuel Vadot
120354d7675SEmmanuel Vadot  local-mac-address: true
121354d7675SEmmanuel Vadot
122354d7675SEmmanuel Vadot  mac-address: true
123354d7675SEmmanuel Vadot
124354d7675SEmmanuel Vadot  tx-internal-delay-ps:
125354d7675SEmmanuel Vadot    enum: [0, 2000]
126354d7675SEmmanuel Vadot
127354d7675SEmmanuel Vadot  rx-internal-delay-ps:
128354d7675SEmmanuel Vadot    enum: [0, 2000]
129354d7675SEmmanuel Vadot
130354d7675SEmmanuel Vadot  phy-supply:
131354d7675SEmmanuel Vadot    description:
132354d7675SEmmanuel Vadot      Regulator that powers the Ethernet PHY.
133354d7675SEmmanuel Vadot
134354d7675SEmmanuel Vadot  fsl,num-tx-queues:
135354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
136354d7675SEmmanuel Vadot    description:
137354d7675SEmmanuel Vadot      The property is valid for enet-avb IP, which supports hw multi queues.
138354d7675SEmmanuel Vadot      Should specify the tx queue number, otherwise set tx queue number to 1.
139354d7675SEmmanuel Vadot    enum: [1, 2, 3]
140354d7675SEmmanuel Vadot
141354d7675SEmmanuel Vadot  fsl,num-rx-queues:
142354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
143354d7675SEmmanuel Vadot    description:
144354d7675SEmmanuel Vadot      The property is valid for enet-avb IP, which supports hw multi queues.
145354d7675SEmmanuel Vadot      Should specify the rx queue number, otherwise set rx queue number to 1.
146354d7675SEmmanuel Vadot    enum: [1, 2, 3]
147354d7675SEmmanuel Vadot
148354d7675SEmmanuel Vadot  fsl,magic-packet:
149354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
150354d7675SEmmanuel Vadot    description:
151354d7675SEmmanuel Vadot      If present, indicates that the hardware supports waking up via magic packet.
152354d7675SEmmanuel Vadot
153354d7675SEmmanuel Vadot  fsl,err006687-workaround-present:
154354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
155354d7675SEmmanuel Vadot    description:
156354d7675SEmmanuel Vadot      If present indicates that the system has the hardware workaround for
157354d7675SEmmanuel Vadot      ERR006687 applied and does not need a software workaround.
158354d7675SEmmanuel Vadot
159354d7675SEmmanuel Vadot  fsl,stop-mode:
160354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
161354d7675SEmmanuel Vadot    description:
162354d7675SEmmanuel Vadot      Register bits of stop mode control, the format is <&gpr req_gpr req_bit>.
163354d7675SEmmanuel Vadot      gpr is the phandle to general purpose register node.
164354d7675SEmmanuel Vadot      req_gpr is the gpr register offset for ENET stop request.
165354d7675SEmmanuel Vadot      req_bit is the gpr bit offset for ENET stop request.
166354d7675SEmmanuel Vadot
167354d7675SEmmanuel Vadot  mdio:
168*e67e8565SEmmanuel Vadot    $ref: mdio.yaml#
169*e67e8565SEmmanuel Vadot    unevaluatedProperties: false
170354d7675SEmmanuel Vadot    description:
171354d7675SEmmanuel Vadot      Specifies the mdio bus in the FEC, used as a container for phy nodes.
172354d7675SEmmanuel Vadot
173354d7675SEmmanuel Vadot  # Deprecated optional properties:
174354d7675SEmmanuel Vadot  # To avoid these, create a phy node according to ethernet-phy.yaml in the same
175354d7675SEmmanuel Vadot  # directory, and point the FEC's "phy-handle" property to it. Then use
176354d7675SEmmanuel Vadot  # the phy's reset binding, again described by ethernet-phy.yaml.
177354d7675SEmmanuel Vadot
178354d7675SEmmanuel Vadot  phy-reset-gpios:
179354d7675SEmmanuel Vadot    deprecated: true
180354d7675SEmmanuel Vadot    description:
181354d7675SEmmanuel Vadot      Should specify the gpio for phy reset.
182354d7675SEmmanuel Vadot
183354d7675SEmmanuel Vadot  phy-reset-duration:
184354d7675SEmmanuel Vadot    deprecated: true
185354d7675SEmmanuel Vadot    description:
186354d7675SEmmanuel Vadot      Reset duration in milliseconds.  Should present only if property
187354d7675SEmmanuel Vadot      "phy-reset-gpios" is available.  Missing the property will have the
188354d7675SEmmanuel Vadot      duration be 1 millisecond.  Numbers greater than 1000 are invalid
189354d7675SEmmanuel Vadot      and 1 millisecond will be used instead.
190354d7675SEmmanuel Vadot
191354d7675SEmmanuel Vadot  phy-reset-active-high:
192354d7675SEmmanuel Vadot    deprecated: true
193354d7675SEmmanuel Vadot    description:
194354d7675SEmmanuel Vadot      If present then the reset sequence using the GPIO specified in the
195354d7675SEmmanuel Vadot      "phy-reset-gpios" property is reversed (H=reset state, L=operation state).
196354d7675SEmmanuel Vadot
197354d7675SEmmanuel Vadot  phy-reset-post-delay:
198354d7675SEmmanuel Vadot    deprecated: true
199354d7675SEmmanuel Vadot    description:
200354d7675SEmmanuel Vadot      Post reset delay in milliseconds. If present then a delay of phy-reset-post-delay
201354d7675SEmmanuel Vadot      milliseconds will be observed after the phy-reset-gpios has been toggled.
202354d7675SEmmanuel Vadot      Can be omitted thus no delay is observed. Delay is in range of 1ms to 1000ms.
203354d7675SEmmanuel Vadot      Other delays are invalid.
204354d7675SEmmanuel Vadot
205354d7675SEmmanuel Vadotrequired:
206354d7675SEmmanuel Vadot  - compatible
207354d7675SEmmanuel Vadot  - reg
208354d7675SEmmanuel Vadot  - interrupts
209354d7675SEmmanuel Vadot
210354d7675SEmmanuel Vadot# FIXME: We had better set additionalProperties to false to avoid invalid or at
211354d7675SEmmanuel Vadot# least undocumented properties. However, PHY may have a deprecated option to
212354d7675SEmmanuel Vadot# place PHY OF properties in the MAC node, such as Micrel PHY, and we can find
213354d7675SEmmanuel Vadot# these boards which is based on i.MX6QDL.
214354d7675SEmmanuel VadotadditionalProperties: false
215354d7675SEmmanuel Vadot
216354d7675SEmmanuel Vadotexamples:
217354d7675SEmmanuel Vadot  - |
218354d7675SEmmanuel Vadot    ethernet@83fec000 {
219354d7675SEmmanuel Vadot      compatible = "fsl,imx51-fec", "fsl,imx27-fec";
220354d7675SEmmanuel Vadot      reg = <0x83fec000 0x4000>;
221354d7675SEmmanuel Vadot      interrupts = <87>;
222354d7675SEmmanuel Vadot      phy-mode = "mii";
223354d7675SEmmanuel Vadot      phy-reset-gpios = <&gpio2 14 0>;
224354d7675SEmmanuel Vadot      phy-supply = <&reg_fec_supply>;
225354d7675SEmmanuel Vadot    };
226354d7675SEmmanuel Vadot
227354d7675SEmmanuel Vadot    ethernet@83fed000 {
228354d7675SEmmanuel Vadot      compatible = "fsl,imx51-fec", "fsl,imx27-fec";
229354d7675SEmmanuel Vadot      reg = <0x83fed000 0x4000>;
230354d7675SEmmanuel Vadot      interrupts = <87>;
231354d7675SEmmanuel Vadot      phy-mode = "mii";
232354d7675SEmmanuel Vadot      phy-reset-gpios = <&gpio2 14 0>;
233354d7675SEmmanuel Vadot      phy-supply = <&reg_fec_supply>;
234354d7675SEmmanuel Vadot      phy-handle = <&ethphy0>;
235354d7675SEmmanuel Vadot
236354d7675SEmmanuel Vadot      mdio {
237354d7675SEmmanuel Vadot        #address-cells = <1>;
238354d7675SEmmanuel Vadot        #size-cells = <0>;
239354d7675SEmmanuel Vadot
240354d7675SEmmanuel Vadot        ethphy0: ethernet-phy@0 {
241354d7675SEmmanuel Vadot          compatible = "ethernet-phy-ieee802.3-c22";
242354d7675SEmmanuel Vadot          reg = <0>;
243354d7675SEmmanuel Vadot        };
244354d7675SEmmanuel Vadot      };
245354d7675SEmmanuel Vadot    };
246