xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/net/fsl-fec.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Freescale Fast Ethernet Controller (FEC)
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun- compatible : Should be "fsl,<soc>-fec"
5*4882a593Smuzhiyun- reg : Address and length of the register set for the device
6*4882a593Smuzhiyun- interrupts : Should contain fec interrupt
7*4882a593Smuzhiyun- phy-mode : See ethernet.txt file in the same directory
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunOptional properties:
10*4882a593Smuzhiyun- phy-supply : regulator that powers the Ethernet PHY.
11*4882a593Smuzhiyun- phy-handle : phandle to the PHY device connected to this device.
12*4882a593Smuzhiyun- fixed-link : Assume a fixed link. See fixed-link.txt in the same directory.
13*4882a593Smuzhiyun  Use instead of phy-handle.
14*4882a593Smuzhiyun- fsl,num-tx-queues : The property is valid for enet-avb IP, which supports
15*4882a593Smuzhiyun  hw multi queues. Should specify the tx queue number, otherwise set tx queue
16*4882a593Smuzhiyun  number to 1.
17*4882a593Smuzhiyun- fsl,num-rx-queues : The property is valid for enet-avb IP, which supports
18*4882a593Smuzhiyun  hw multi queues. Should specify the rx queue number, otherwise set rx queue
19*4882a593Smuzhiyun  number to 1.
20*4882a593Smuzhiyun- fsl,magic-packet : If present, indicates that the hardware supports waking
21*4882a593Smuzhiyun  up via magic packet.
22*4882a593Smuzhiyun- fsl,err006687-workaround-present: If present indicates that the system has
23*4882a593Smuzhiyun  the hardware workaround for ERR006687 applied and does not need a software
24*4882a593Smuzhiyun  workaround.
25*4882a593Smuzhiyun- fsl,stop-mode: register bits of stop mode control, the format is
26*4882a593Smuzhiyun		 <&gpr req_gpr req_bit>.
27*4882a593Smuzhiyun		 gpr is the phandle to general purpose register node.
28*4882a593Smuzhiyun		 req_gpr is the gpr register offset for ENET stop request.
29*4882a593Smuzhiyun		 req_bit is the gpr bit offset for ENET stop request.
30*4882a593Smuzhiyun -interrupt-names:  names of the interrupts listed in interrupts property in
31*4882a593Smuzhiyun  the same order. The defaults if not specified are
32*4882a593Smuzhiyun  __Number of interrupts__   __Default__
33*4882a593Smuzhiyun	1			"int0"
34*4882a593Smuzhiyun	2			"int0", "pps"
35*4882a593Smuzhiyun	3			"int0", "int1", "int2"
36*4882a593Smuzhiyun	4			"int0", "int1", "int2", "pps"
37*4882a593Smuzhiyun  The order may be changed as long as they correspond to the interrupts
38*4882a593Smuzhiyun  property. Currently, only i.mx7 uses "int1" and "int2". They correspond to
39*4882a593Smuzhiyun  tx/rx queues 1 and 2. "int0" will be used for queue 0 and ENET_MII interrupts.
40*4882a593Smuzhiyun  For imx6sx, "int0" handles all 3 queues and ENET_MII. "pps" is for the pulse
41*4882a593Smuzhiyun  per second interrupt associated with 1588 precision time protocol(PTP).
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunOptional subnodes:
44*4882a593Smuzhiyun- mdio : specifies the mdio bus in the FEC, used as a container for phy nodes
45*4882a593Smuzhiyun  according to phy.txt in the same directory
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunDeprecated optional properties:
48*4882a593Smuzhiyun	To avoid these, create a phy node according to phy.txt in the same
49*4882a593Smuzhiyun	directory, and point the fec's "phy-handle" property to it. Then use
50*4882a593Smuzhiyun	the phy's reset binding, again described by phy.txt.
51*4882a593Smuzhiyun- phy-reset-gpios : Should specify the gpio for phy reset
52*4882a593Smuzhiyun- phy-reset-duration : Reset duration in milliseconds.  Should present
53*4882a593Smuzhiyun  only if property "phy-reset-gpios" is available.  Missing the property
54*4882a593Smuzhiyun  will have the duration be 1 millisecond.  Numbers greater than 1000 are
55*4882a593Smuzhiyun  invalid and 1 millisecond will be used instead.
56*4882a593Smuzhiyun- phy-reset-active-high : If present then the reset sequence using the GPIO
57*4882a593Smuzhiyun  specified in the "phy-reset-gpios" property is reversed (H=reset state,
58*4882a593Smuzhiyun  L=operation state).
59*4882a593Smuzhiyun- phy-reset-post-delay : Post reset delay in milliseconds. If present then
60*4882a593Smuzhiyun  a delay of phy-reset-post-delay milliseconds will be observed after the
61*4882a593Smuzhiyun  phy-reset-gpios has been toggled. Can be omitted thus no delay is
62*4882a593Smuzhiyun  observed. Delay is in range of 1ms to 1000ms. Other delays are invalid.
63*4882a593Smuzhiyun
64*4882a593SmuzhiyunExample:
65*4882a593Smuzhiyun
66*4882a593Smuzhiyunethernet@83fec000 {
67*4882a593Smuzhiyun	compatible = "fsl,imx51-fec", "fsl,imx27-fec";
68*4882a593Smuzhiyun	reg = <0x83fec000 0x4000>;
69*4882a593Smuzhiyun	interrupts = <87>;
70*4882a593Smuzhiyun	phy-mode = "mii";
71*4882a593Smuzhiyun	phy-reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; /* GPIO2_14 */
72*4882a593Smuzhiyun	local-mac-address = [00 04 9F 01 1B B9];
73*4882a593Smuzhiyun	phy-supply = <&reg_fec_supply>;
74*4882a593Smuzhiyun};
75*4882a593Smuzhiyun
76*4882a593SmuzhiyunExample with phy specified:
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunethernet@83fec000 {
79*4882a593Smuzhiyun	compatible = "fsl,imx51-fec", "fsl,imx27-fec";
80*4882a593Smuzhiyun	reg = <0x83fec000 0x4000>;
81*4882a593Smuzhiyun	interrupts = <87>;
82*4882a593Smuzhiyun	phy-mode = "mii";
83*4882a593Smuzhiyun	phy-reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; /* GPIO2_14 */
84*4882a593Smuzhiyun	local-mac-address = [00 04 9F 01 1B B9];
85*4882a593Smuzhiyun	phy-supply = <&reg_fec_supply>;
86*4882a593Smuzhiyun	phy-handle = <&ethphy>;
87*4882a593Smuzhiyun	mdio {
88*4882a593Smuzhiyun	        clock-frequency = <5000000>;
89*4882a593Smuzhiyun		ethphy: ethernet-phy@6 {
90*4882a593Smuzhiyun			compatible = "ethernet-phy-ieee802.3-c22";
91*4882a593Smuzhiyun			reg = <6>;
92*4882a593Smuzhiyun			max-speed = <100>;
93*4882a593Smuzhiyun		};
94*4882a593Smuzhiyun	};
95*4882a593Smuzhiyun};
96