1 Micrel KSZ9021/KSZ9031 Gigabit Ethernet PHY
3 Some boards require special tuning values, particularly when it comes to
4 clock delays. You can specify clock delay values by adding
5 micrel-specific properties to an Ethernet OF device node.
7 Note that these settings are applied after any phy-specific fixup from
8 phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c),
9 and therefore may overwrite them.
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
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.
23 The following 4-bit values table applies to all the skew properties:
25 Pad Skew Value Delay (ps) Devicetree Value
26 ------------------------------------------------------
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
61 All skew control options are specified in picoseconds. The minimum
62 value is 0, and the maximum is property-dependent. The increment
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.
71 The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps.
73 Pad Skew Value Delay (ps) Devicetree Value
74 ------------------------------------------------------
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.
111 Pad Skew Value Delay (ps) Devicetree Value
112 ------------------------------------------------------
132 Maximum value of 1860:
134 - rxc-skew-ps : Skew control of RX clock pad
135 - txc-skew-ps : Skew control of TX clock pad
137 Maximum value of 900:
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
152 /* Attach to an Ethernet device with autodetected PHY */
154 rxc-skew-ps = <1800>;
156 txc-skew-ps = <1800>;
161 /* Attach to an explicitly-specified PHY */
163 phy0: ethernet-phy@0 {
164 rxc-skew-ps = <1800>;
166 txc-skew-ps = <1800>;
174 phy-mode = "rgmii-id";
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
182 Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014.
183 http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf
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.