@@ -65,6 +65,71 @@ KSZ9031:
6565 step is 60ps. The default value is the neutral setting, so setting
6666 rxc-skew-ps=<0> actually results in -900 picoseconds adjustment.
6767
68+ The KSZ9031 hardware supports a range of skew values from negative to
69+ positive, where the specific range is property dependent. All values
70+ specified in the devicetree are offset by the minimum value so they
71+ can be represented as positive integers in the devicetree since it's
72+ difficult to represent a negative number in the devictree.
73+
74+ The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps.
75+
76+ Pad Skew Value Delay (ps) Devicetree Value
77+ ------------------------------------------------------
78+ 0_0000 -900ps 0
79+ 0_0001 -840ps 60
80+ 0_0010 -780ps 120
81+ 0_0011 -720ps 180
82+ 0_0100 -660ps 240
83+ 0_0101 -600ps 300
84+ 0_0110 -540ps 360
85+ 0_0111 -480ps 420
86+ 0_1000 -420ps 480
87+ 0_1001 -360ps 540
88+ 0_1010 -300ps 600
89+ 0_1011 -240ps 660
90+ 0_1100 -180ps 720
91+ 0_1101 -120ps 780
92+ 0_1110 -60ps 840
93+ 0_1111 0ps 900
94+ 1_0000 60ps 960
95+ 1_0001 120ps 1020
96+ 1_0010 180ps 1080
97+ 1_0011 240ps 1140
98+ 1_0100 300ps 1200
99+ 1_0101 360ps 1260
100+ 1_0110 420ps 1320
101+ 1_0111 480ps 1380
102+ 1_1000 540ps 1440
103+ 1_1001 600ps 1500
104+ 1_1010 660ps 1560
105+ 1_1011 720ps 1620
106+ 1_1100 780ps 1680
107+ 1_1101 840ps 1740
108+ 1_1110 900ps 1800
109+ 1_1111 960ps 1860
110+
111+ The following 4-bit values table apply to the txdX-skew-ps, rxdX-skew-ps
112+ data pads, and the rxdv-skew-ps, txen-skew-ps control pads.
113+
114+ Pad Skew Value Delay (ps) Devicetree Value
115+ ------------------------------------------------------
116+ 0000 -420ps 0
117+ 0001 -360ps 60
118+ 0010 -300ps 120
119+ 0011 -240ps 180
120+ 0100 -180ps 240
121+ 0101 -120ps 300
122+ 0110 -60ps 360
123+ 0111 0ps 420
124+ 1000 60ps 480
125+ 1001 120ps 540
126+ 1010 180ps 600
127+ 1011 240ps 660
128+ 1100 300ps 720
129+ 1101 360ps 780
130+ 1110 420ps 840
131+ 1111 480ps 900
132+
68133 Optional properties:
69134
70135 Maximum value of 1860, default value 900:
@@ -120,11 +185,21 @@ KSZ9131:
120185
121186Examples:
122187
188+ /* Attach to an Ethernet device with autodetected PHY */
189+ &enet {
190+ rxc-skew-ps = <1800>;
191+ rxdv-skew-ps = <0>;
192+ txc-skew-ps = <1800>;
193+ txen-skew-ps = <0>;
194+ status = "okay";
195+ };
196+
197+ /* Attach to an explicitly-specified PHY */
123198 mdio {
124199 phy0: ethernet-phy@0 {
125- rxc-skew-ps = <3000 >;
200+ rxc-skew-ps = <1800 >;
126201 rxdv-skew-ps = <0>;
127- txc-skew-ps = <3000 >;
202+ txc-skew-ps = <1800 >;
128203 txen-skew-ps = <0>;
129204 reg = <0>;
130205 };
@@ -133,3 +208,20 @@ Examples:
133208 phy = <&phy0>;
134209 phy-mode = "rgmii-id";
135210 };
211+
212+ References
213+
214+ Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014.
215+ http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf
216+
217+ Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014.
218+ http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf
219+
220+ Notes:
221+
222+ Note that a previous version of the Micrel ksz9021rl/rn Data Sheet
223+ was missing extended register 106 (transmit data pad skews), and
224+ incorrectly specified the ps per step as 200ps/step instead of
225+ 120ps/step. The latest update to this document reflects the latest
226+ revision of the Micrel specification even though usage in the kernel
227+ still reflects that incorrect document.
0 commit comments