1 Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Etherne 1 Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Ethernet PHY 2 2 3 Some boards require special tuning values, par 3 Some boards require special tuning values, particularly when it comes 4 to clock delays. You can specify clock delay v 4 to clock delays. You can specify clock delay values in the PHY OF 5 device node. Deprecated, but still supported, 5 device node. Deprecated, but still supported, these properties can 6 also be added to an Ethernet OF device node. 6 also be added to an Ethernet OF device node. 7 7 8 Note that these settings are applied after any 8 Note that these settings are applied after any phy-specific fixup from 9 phy_fixup_list (see phy_init_hw() from drivers 9 phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c), 10 and therefore may overwrite them. 10 and therefore may overwrite them. 11 11 12 KSZ9021: 12 KSZ9021: 13 13 14 All skew control options are specified in pi 14 All skew control options are specified in picoseconds. The minimum 15 value is 0, the maximum value is 3000, and i 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 wh 16 steps, *but* these values are in not fact what you get because this chip's 17 skew values actually increase in 120ps steps 17 skew values actually increase in 120ps steps, starting from -840ps. The 18 incorrect values came from an error in the o 18 incorrect values came from an error in the original KSZ9021 datasheet 19 before it was corrected in revision 1.2 (Feb 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 ex 20 change the driver now because of the many existing device trees that have 21 been created using values that go up in incr 21 been created using values that go up in increments of 200. 22 22 23 The following table shows the actual skew de 23 The following table shows the actual skew delay you will get for each of the 24 possible devicetree values, and the number t 24 possible devicetree values, and the number that will be programmed into the 25 corresponding pad skew register: 25 corresponding pad skew register: 26 26 27 Device Tree Value Delay Pad Skew Regis 27 Device Tree Value Delay Pad Skew Register Value 28 -------------------------------------------- 28 ----------------------------------------------------- 29 0 -840ps 0000 29 0 -840ps 0000 30 200 -720ps 0001 30 200 -720ps 0001 31 400 -600ps 0010 31 400 -600ps 0010 32 600 -480ps 0011 32 600 -480ps 0011 33 800 -360ps 0100 33 800 -360ps 0100 34 1000 -240ps 0101 34 1000 -240ps 0101 35 1200 -120ps 0110 35 1200 -120ps 0110 36 1400 0ps 0111 36 1400 0ps 0111 37 1600 120ps 1000 37 1600 120ps 1000 38 1800 240ps 1001 38 1800 240ps 1001 39 2000 360ps 1010 39 2000 360ps 1010 40 2200 480ps 1011 40 2200 480ps 1011 41 2400 600ps 1100 41 2400 600ps 1100 42 2600 720ps 1101 42 2600 720ps 1101 43 2800 840ps 1110 43 2800 840ps 1110 44 3000 960ps 1111 44 3000 960ps 1111 45 45 46 Optional properties: 46 Optional properties: 47 47 48 - rxc-skew-ps : Skew control of RXC pad 48 - rxc-skew-ps : Skew control of RXC pad 49 - rxdv-skew-ps : Skew control of RX CTL pa 49 - rxdv-skew-ps : Skew control of RX CTL pad 50 - txc-skew-ps : Skew control of TXC pad 50 - txc-skew-ps : Skew control of TXC pad 51 - txen-skew-ps : Skew control of TX CTL pa 51 - txen-skew-ps : Skew control of TX CTL pad 52 - rxd0-skew-ps : Skew control of RX data 0 52 - rxd0-skew-ps : Skew control of RX data 0 pad 53 - rxd1-skew-ps : Skew control of RX data 1 53 - rxd1-skew-ps : Skew control of RX data 1 pad 54 - rxd2-skew-ps : Skew control of RX data 2 54 - rxd2-skew-ps : Skew control of RX data 2 pad 55 - rxd3-skew-ps : Skew control of RX data 3 55 - rxd3-skew-ps : Skew control of RX data 3 pad 56 - txd0-skew-ps : Skew control of TX data 0 56 - txd0-skew-ps : Skew control of TX data 0 pad 57 - txd1-skew-ps : Skew control of TX data 1 57 - txd1-skew-ps : Skew control of TX data 1 pad 58 - txd2-skew-ps : Skew control of TX data 2 58 - txd2-skew-ps : Skew control of TX data 2 pad 59 - txd3-skew-ps : Skew control of TX data 3 59 - txd3-skew-ps : Skew control of TX data 3 pad 60 60 61 KSZ9031: 61 KSZ9031: 62 62 63 All skew control options are specified in pi 63 All skew control options are specified in picoseconds. The minimum 64 value is 0, and the maximum is property-depe 64 value is 0, and the maximum is property-dependent. The increment 65 step is 60ps. The default value is the neutr 65 step is 60ps. The default value is the neutral setting, so setting 66 rxc-skew-ps=<0> actually results in -900 pic 66 rxc-skew-ps=<0> actually results in -900 picoseconds adjustment. 67 67 68 The KSZ9031 hardware supports a range of ske 68 The KSZ9031 hardware supports a range of skew values from negative to 69 positive, where the specific range is proper 69 positive, where the specific range is property dependent. All values 70 specified in the devicetree are offset by th 70 specified in the devicetree are offset by the minimum value so they 71 can be represented as positive integers in t 71 can be represented as positive integers in the devicetree since it's 72 difficult to represent a negative number in 72 difficult to represent a negative number in the devictree. 73 73 74 The following 5-bit values table apply to rx 74 The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps. 75 75 76 Pad Skew Value Delay (ps) Device 76 Pad Skew Value Delay (ps) Devicetree Value 77 -------------------------------------------- 77 ------------------------------------------------------ 78 0_0000 -900ps 0 78 0_0000 -900ps 0 79 0_0001 -840ps 60 79 0_0001 -840ps 60 80 0_0010 -780ps 120 80 0_0010 -780ps 120 81 0_0011 -720ps 180 81 0_0011 -720ps 180 82 0_0100 -660ps 240 82 0_0100 -660ps 240 83 0_0101 -600ps 300 83 0_0101 -600ps 300 84 0_0110 -540ps 360 84 0_0110 -540ps 360 85 0_0111 -480ps 420 85 0_0111 -480ps 420 86 0_1000 -420ps 480 86 0_1000 -420ps 480 87 0_1001 -360ps 540 87 0_1001 -360ps 540 88 0_1010 -300ps 600 88 0_1010 -300ps 600 89 0_1011 -240ps 660 89 0_1011 -240ps 660 90 0_1100 -180ps 720 90 0_1100 -180ps 720 91 0_1101 -120ps 780 91 0_1101 -120ps 780 92 0_1110 -60ps 840 92 0_1110 -60ps 840 93 0_1111 0ps 900 93 0_1111 0ps 900 94 1_0000 60ps 960 94 1_0000 60ps 960 95 1_0001 120ps 1020 95 1_0001 120ps 1020 96 1_0010 180ps 1080 96 1_0010 180ps 1080 97 1_0011 240ps 1140 97 1_0011 240ps 1140 98 1_0100 300ps 1200 98 1_0100 300ps 1200 99 1_0101 360ps 1260 99 1_0101 360ps 1260 100 1_0110 420ps 1320 100 1_0110 420ps 1320 101 1_0111 480ps 1380 101 1_0111 480ps 1380 102 1_1000 540ps 1440 102 1_1000 540ps 1440 103 1_1001 600ps 1500 103 1_1001 600ps 1500 104 1_1010 660ps 1560 104 1_1010 660ps 1560 105 1_1011 720ps 1620 105 1_1011 720ps 1620 106 1_1100 780ps 1680 106 1_1100 780ps 1680 107 1_1101 840ps 1740 107 1_1101 840ps 1740 108 1_1110 900ps 1800 108 1_1110 900ps 1800 109 1_1111 960ps 1860 109 1_1111 960ps 1860 110 110 111 The following 4-bit values table apply to th 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-p 112 data pads, and the rxdv-skew-ps, txen-skew-ps control pads. 113 113 114 Pad Skew Value Delay (ps) Device 114 Pad Skew Value Delay (ps) Devicetree Value 115 -------------------------------------------- 115 ------------------------------------------------------ 116 0000 -420ps 0 116 0000 -420ps 0 117 0001 -360ps 60 117 0001 -360ps 60 118 0010 -300ps 120 118 0010 -300ps 120 119 0011 -240ps 180 119 0011 -240ps 180 120 0100 -180ps 240 120 0100 -180ps 240 121 0101 -120ps 300 121 0101 -120ps 300 122 0110 -60ps 360 122 0110 -60ps 360 123 0111 0ps 420 123 0111 0ps 420 124 1000 60ps 480 124 1000 60ps 480 125 1001 120ps 540 125 1001 120ps 540 126 1010 180ps 600 126 1010 180ps 600 127 1011 240ps 660 127 1011 240ps 660 128 1100 300ps 720 128 1100 300ps 720 129 1101 360ps 780 129 1101 360ps 780 130 1110 420ps 840 130 1110 420ps 840 131 1111 480ps 900 131 1111 480ps 900 132 132 133 Optional properties: 133 Optional properties: 134 134 135 Maximum value of 1860, default value 900: 135 Maximum value of 1860, default value 900: 136 136 137 - rxc-skew-ps : Skew control of RX clock 137 - rxc-skew-ps : Skew control of RX clock pad 138 - txc-skew-ps : Skew control of TX clock 138 - txc-skew-ps : Skew control of TX clock pad 139 139 140 Maximum value of 900, default value 420: 140 Maximum value of 900, default value 420: 141 141 142 - rxdv-skew-ps : Skew control of RX CTL 142 - rxdv-skew-ps : Skew control of RX CTL pad 143 - txen-skew-ps : Skew control of TX CTL 143 - txen-skew-ps : Skew control of TX CTL pad 144 - rxd0-skew-ps : Skew control of RX data 144 - rxd0-skew-ps : Skew control of RX data 0 pad 145 - rxd1-skew-ps : Skew control of RX data 145 - rxd1-skew-ps : Skew control of RX data 1 pad 146 - rxd2-skew-ps : Skew control of RX data 146 - rxd2-skew-ps : Skew control of RX data 2 pad 147 - rxd3-skew-ps : Skew control of RX data 147 - rxd3-skew-ps : Skew control of RX data 3 pad 148 - txd0-skew-ps : Skew control of TX data 148 - txd0-skew-ps : Skew control of TX data 0 pad 149 - txd1-skew-ps : Skew control of TX data 149 - txd1-skew-ps : Skew control of TX data 1 pad 150 - txd2-skew-ps : Skew control of TX data 150 - txd2-skew-ps : Skew control of TX data 2 pad 151 - txd3-skew-ps : Skew control of TX data 151 - txd3-skew-ps : Skew control of TX data 3 pad 152 152 153 - micrel,force-master: 153 - micrel,force-master: 154 Boolean, force phy to master mode. Onl 154 Boolean, force phy to master mode. Only set this option if the phy 155 reference clock provided at CLK125_NDO 155 reference clock provided at CLK125_NDO pin is used as MAC reference 156 clock because the clock jitter in slav 156 clock because the clock jitter in slave mode is to high (errata#2). 157 Attention: The link partner must be co 157 Attention: The link partner must be configurable as slave otherwise 158 no link will be established. 158 no link will be established. 159 159 160 KSZ9131: 160 KSZ9131: 161 LAN8841: 161 LAN8841: 162 162 163 All skew control options are specified in pi 163 All skew control options are specified in picoseconds. The increment 164 step is 100ps. Unlike KSZ9031, the values re 164 step is 100ps. Unlike KSZ9031, the values represent picoseccond delays. 165 A negative value can be assigned as rxc-skew 165 A negative value can be assigned as rxc-skew-psec = <(-100)>;. 166 166 167 Optional properties: 167 Optional properties: 168 168 169 Range of the value -700 to 2400, default v 169 Range of the value -700 to 2400, default value 0: 170 170 171 - rxc-skew-psec : Skew control of RX clo 171 - rxc-skew-psec : Skew control of RX clock pad 172 - txc-skew-psec : Skew control of TX clo 172 - txc-skew-psec : Skew control of TX clock pad 173 173 174 Range of the value -700 to 800, default va 174 Range of the value -700 to 800, default value 0: 175 175 176 - rxdv-skew-psec : Skew control of RX CT 176 - rxdv-skew-psec : Skew control of RX CTL pad 177 - txen-skew-psec : Skew control of TX CT 177 - txen-skew-psec : Skew control of TX CTL pad 178 - rxd0-skew-psec : Skew control of RX da 178 - rxd0-skew-psec : Skew control of RX data 0 pad 179 - rxd1-skew-psec : Skew control of RX da 179 - rxd1-skew-psec : Skew control of RX data 1 pad 180 - rxd2-skew-psec : Skew control of RX da 180 - rxd2-skew-psec : Skew control of RX data 2 pad 181 - rxd3-skew-psec : Skew control of RX da 181 - rxd3-skew-psec : Skew control of RX data 3 pad 182 - txd0-skew-psec : Skew control of TX da 182 - txd0-skew-psec : Skew control of TX data 0 pad 183 - txd1-skew-psec : Skew control of TX da 183 - txd1-skew-psec : Skew control of TX data 1 pad 184 - txd2-skew-psec : Skew control of TX da 184 - txd2-skew-psec : Skew control of TX data 2 pad 185 - txd3-skew-psec : Skew control of TX da 185 - txd3-skew-psec : Skew control of TX data 3 pad 186 186 187 Examples: 187 Examples: 188 188 189 /* Attach to an Ethernet device with a 189 /* Attach to an Ethernet device with autodetected PHY */ 190 &enet { 190 &enet { 191 rxc-skew-ps = <1800>; 191 rxc-skew-ps = <1800>; 192 rxdv-skew-ps = <0>; 192 rxdv-skew-ps = <0>; 193 txc-skew-ps = <1800>; 193 txc-skew-ps = <1800>; 194 txen-skew-ps = <0>; 194 txen-skew-ps = <0>; 195 status = "okay"; 195 status = "okay"; 196 }; 196 }; 197 197 198 /* Attach to an explicitly-specified P 198 /* Attach to an explicitly-specified PHY */ 199 mdio { 199 mdio { 200 phy0: ethernet-phy@0 { 200 phy0: ethernet-phy@0 { 201 rxc-skew-ps = <1800>; 201 rxc-skew-ps = <1800>; 202 rxdv-skew-ps = <0>; 202 rxdv-skew-ps = <0>; 203 txc-skew-ps = <1800>; 203 txc-skew-ps = <1800>; 204 txen-skew-ps = <0>; 204 txen-skew-ps = <0>; 205 reg = <0>; 205 reg = <0>; 206 }; 206 }; 207 }; 207 }; 208 ethernet@70000 { 208 ethernet@70000 { 209 phy = <&phy0>; 209 phy = <&phy0>; 210 phy-mode = "rgmii-id"; 210 phy-mode = "rgmii-id"; 211 }; 211 }; 212 212 213 References 213 References 214 214 215 Micrel ksz9021rl/rn Data Sheet, Revision 1.2 215 Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014. 216 http://www.micrel.com/_PDF/Ethernet/datashee 216 http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf 217 217 218 Micrel ksz9031rnx Data Sheet, Revision 2.1. 218 Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014. 219 http://www.micrel.com/_PDF/Ethernet/datashee 219 http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf 220 220 221 Notes: 221 Notes: 222 222 223 Note that a previous version of the Micrel k 223 Note that a previous version of the Micrel ksz9021rl/rn Data Sheet 224 was missing extended register 106 (transmit 224 was missing extended register 106 (transmit data pad skews), and 225 incorrectly specified the ps per step as 200 225 incorrectly specified the ps per step as 200ps/step instead of 226 120ps/step. The latest update to this docume 226 120ps/step. The latest update to this document reflects the latest 227 revision of the Micrel specification even th 227 revision of the Micrel specification even though usage in the kernel 228 still reflects that incorrect document. 228 still reflects that incorrect document.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.