• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Micrel KSZ9021/KSZ9031 Gigabit Ethernet PHY
2
3Some boards require special tuning values, particularly when it comes to
4clock delays. You can specify clock delay values by adding
5micrel-specific properties to an Ethernet OF device node.
6
7Note that these settings are applied after any phy-specific fixup from
8phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c),
9and therefore may overwrite them.
10
11KSZ9021:
12
13  All skew control options are specified in picoseconds. The minimum
14  value is 0, the maximum value is 1800, and it is incremented by 120ps
15  steps.
16
17  The KSZ9021 hardware supports a range of skew values from negative to
18  positive, where the specific range is property dependent. All values
19  specified in the devicetree are offset by the minimum value so they
20  can be represented as positive integers in the devicetree since it's
21  difficult to represent a negative number in the devictree.
22
23  The following 4-bit values table applies to all the skew properties:
24
25  Pad Skew Value	Delay (ps)	Devicetree Value
26  ------------------------------------------------------
27  0000			-840ps		0
28  0001			-720ps		120
29  0010			-600ps		240
30  0011			-480ps		360
31  0100			-360ps		480
32  0101			-240ps		600
33  0110			-120ps		720
34  0111			0ps		840
35  1000			120ps		960
36  1001			240ps		1080
37  1010			360ps		1200
38  1011			480ps		1320
39  1100			600ps		1440
40  1101			720ps		1560
41  1110			840ps		1680
42  1111			960ps		1800
43
44  Optional properties:
45
46    - rxc-skew-ps : Skew control of RXC pad
47    - rxdv-skew-ps : Skew control of RX CTL pad
48    - txc-skew-ps : Skew control of TXC pad
49    - txen-skew-ps : Skew control of TX CTL pad
50    - rxd0-skew-ps : Skew control of RX data 0 pad
51    - rxd1-skew-ps : Skew control of RX data 1 pad
52    - rxd2-skew-ps : Skew control of RX data 2 pad
53    - rxd3-skew-ps : Skew control of RX data 3 pad
54    - txd0-skew-ps : Skew control of TX data 0 pad
55    - txd1-skew-ps : Skew control of TX data 1 pad
56    - txd2-skew-ps : Skew control of TX data 2 pad
57    - txd3-skew-ps : Skew control of TX data 3 pad
58
59KSZ9031:
60
61  All skew control options are specified in picoseconds. The minimum
62  value is 0, and the maximum is property-dependent. The increment
63  step is 60ps.
64
65  The KSZ9031 hardware supports a range of skew values from negative to
66  positive, where the specific range is property dependent. All values
67  specified in the devicetree are offset by the minimum value so they
68  can be represented as positive integers in the devicetree since it's
69  difficult to represent a negative number in the devictree.
70
71  The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps.
72
73  Pad Skew Value	Delay (ps)	Devicetree Value
74  ------------------------------------------------------
75  0_0000		-900ps		0
76  0_0001		-840ps		60
77  0_0010		-780ps		120
78  0_0011		-720ps		180
79  0_0100		-660ps		240
80  0_0101		-600ps		300
81  0_0110		-540ps		360
82  0_0111		-480ps		420
83  0_1000		-420ps		480
84  0_1001		-360ps		540
85  0_1010		-300ps		600
86  0_1011		-240ps		660
87  0_1100		-180ps		720
88  0_1101		-120ps		780
89  0_1110		-60ps		840
90  0_1111		0ps		900
91  1_0000		60ps		960
92  1_0001		120ps		1020
93  1_0010		180ps		1080
94  1_0011		240ps		1140
95  1_0100		300ps		1200
96  1_0101		360ps		1260
97  1_0110		420ps		1320
98  1_0111		480ps		1380
99  1_1000		540ps		1440
100  1_1001		600ps		1500
101  1_1010		660ps		1560
102  1_1011		720ps		1620
103  1_1100		780ps		1680
104  1_1101		840ps		1740
105  1_1110		900ps		1800
106  1_1111		960ps		1860
107
108  The following 4-bit values table apply to the txdX-skew-ps, rxdX-skew-ps
109  data pads, and the rxdv-skew-ps, txen-skew-ps control pads.
110
111  Pad Skew Value	Delay (ps)	Devicetree Value
112  ------------------------------------------------------
113  0000			-420ps		0
114  0001			-360ps		60
115  0010			-300ps		120
116  0011			-240ps		180
117  0100			-180ps		240
118  0101			-120ps		300
119  0110			-60ps		360
120  0111			0ps		420
121  1000			60ps		480
122  1001			120ps		540
123  1010			180ps		600
124  1011			240ps		660
125  1100			300ps		720
126  1101			360ps		780
127  1110			420ps		840
128  1111			480ps		900
129
130  Optional properties:
131
132    Maximum value of 1860:
133
134      - rxc-skew-ps : Skew control of RX clock pad
135      - txc-skew-ps : Skew control of TX clock pad
136
137    Maximum value of 900:
138
139      - rxdv-skew-ps : Skew control of RX CTL pad
140      - txen-skew-ps : Skew control of TX CTL pad
141      - rxd0-skew-ps : Skew control of RX data 0 pad
142      - rxd1-skew-ps : Skew control of RX data 1 pad
143      - rxd2-skew-ps : Skew control of RX data 2 pad
144      - rxd3-skew-ps : Skew control of RX data 3 pad
145      - txd0-skew-ps : Skew control of TX data 0 pad
146      - txd1-skew-ps : Skew control of TX data 1 pad
147      - txd2-skew-ps : Skew control of TX data 2 pad
148      - txd3-skew-ps : Skew control of TX data 3 pad
149
150Examples:
151
152	/* Attach to an Ethernet device with autodetected PHY */
153	&enet {
154		rxc-skew-ps = <1800>;
155		rxdv-skew-ps = <0>;
156		txc-skew-ps = <1800>;
157		txen-skew-ps = <0>;
158		status = "okay";
159	};
160
161	/* Attach to an explicitly-specified PHY */
162	mdio {
163		phy0: ethernet-phy@0 {
164			rxc-skew-ps = <1800>;
165			rxdv-skew-ps = <0>;
166			txc-skew-ps = <1800>;
167			txen-skew-ps = <0>;
168			reg = <0>;
169		};
170	};
171	ethernet@70000 {
172		status = "okay";
173		phy = <&phy0>;
174		phy-mode = "rgmii-id";
175	};
176
177References
178
179  Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014.
180  http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf
181
182  Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014.
183  http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf
184
185Notes:
186
187  Note that a previous version of the Micrel ksz9021rl/rn Data Sheet
188  was missing extended register 106 (transmit data pad skews), and
189  incorrectly specified the ps per step as 200ps/step instead of
190  120ps/step. The latest update to this document reflects the latest
191  revision of the Micrel specification even though usage in the kernel
192  still reflects that incorrect document.
193