hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/Documentation/devicetree/bindings/net/micrel-ksz90x1.txt
....@@ -1,4 +1,4 @@
1
-Micrel KSZ9021/KSZ9031 Gigabit Ethernet PHY
1
+Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Ethernet PHY
22
33 Some boards require special tuning values, particularly when it comes
44 to clock delays. You can specify clock delay values in the PHY OF
....@@ -12,8 +12,36 @@
1212 KSZ9021:
1313
1414 All skew control options are specified in picoseconds. The minimum
15
- value is 0, the maximum value is 3000, and it is incremented by 200ps
16
- steps.
15
+ value is 0, the maximum value is 3000, and it can be specified in 200ps
16
+ steps, *but* these values are in not fact what you get because this chip's
17
+ skew values actually increase in 120ps steps, starting from -840ps. The
18
+ incorrect values came from an error in the original KSZ9021 datasheet
19
+ before it was corrected in revision 1.2 (Feb 2014), but it is too late to
20
+ change the driver now because of the many existing device trees that have
21
+ been created using values that go up in increments of 200.
22
+
23
+ The following table shows the actual skew delay you will get for each of the
24
+ possible devicetree values, and the number that will be programmed into the
25
+ corresponding pad skew register:
26
+
27
+ Device Tree Value Delay Pad Skew Register Value
28
+ -----------------------------------------------------
29
+ 0 -840ps 0000
30
+ 200 -720ps 0001
31
+ 400 -600ps 0010
32
+ 600 -480ps 0011
33
+ 800 -360ps 0100
34
+ 1000 -240ps 0101
35
+ 1200 -120ps 0110
36
+ 1400 0ps 0111
37
+ 1600 120ps 1000
38
+ 1800 240ps 1001
39
+ 2000 360ps 1010
40
+ 2200 480ps 1011
41
+ 2400 600ps 1100
42
+ 2600 720ps 1101
43
+ 2800 840ps 1110
44
+ 3000 960ps 1111
1745
1846 Optional properties:
1947
....@@ -64,6 +92,32 @@
6492 Attention: The link partner must be configurable as slave otherwise
6593 no link will be established.
6694
95
+KSZ9131:
96
+
97
+ All skew control options are specified in picoseconds. The increment
98
+ step is 100ps. Unlike KSZ9031, the values represent picoseccond delays.
99
+ A negative value can be assigned as rxc-skew-psec = <(-100)>;.
100
+
101
+ Optional properties:
102
+
103
+ Range of the value -700 to 2400, default value 0:
104
+
105
+ - rxc-skew-psec : Skew control of RX clock pad
106
+ - txc-skew-psec : Skew control of TX clock pad
107
+
108
+ Range of the value -700 to 800, default value 0:
109
+
110
+ - rxdv-skew-psec : Skew control of RX CTL pad
111
+ - txen-skew-psec : Skew control of TX CTL pad
112
+ - rxd0-skew-psec : Skew control of RX data 0 pad
113
+ - rxd1-skew-psec : Skew control of RX data 1 pad
114
+ - rxd2-skew-psec : Skew control of RX data 2 pad
115
+ - rxd3-skew-psec : Skew control of RX data 3 pad
116
+ - txd0-skew-psec : Skew control of TX data 0 pad
117
+ - txd1-skew-psec : Skew control of TX data 1 pad
118
+ - txd2-skew-psec : Skew control of TX data 2 pad
119
+ - txd3-skew-psec : Skew control of TX data 3 pad
120
+
67121 Examples:
68122
69123 mdio {