net: phy: micrel: add documentation for Micrel KSZ90x1 binding
Add the DTS documentation for the Micrel KSZ90x1 binding. The original document was from: [commit 4b405efbe12de28b26289282b431323d73992381 from the Linux kernel] This takes the original document and adds a clarification on how the skew values are represented in the code. References: Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014. http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014. http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
		
							parent
							
								
									1f9e672c79
								
							
						
					
					
						commit
						c16e69f702
					
				|  | @ -0,0 +1,165 @@ | |||
| Micrel KSZ9021/KSZ9031 Gigabit Ethernet PHY | ||||
| 
 | ||||
| Some boards require special tuning values, particularly when it comes to | ||||
| clock delays. You can specify clock delay values by adding | ||||
| micrel-specific properties to an Ethernet OF device node. | ||||
| 
 | ||||
| Note that these settings are applied after any phy-specific fixup from | ||||
| phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c), | ||||
| and therefore may overwrite them. | ||||
| 
 | ||||
| KSZ9021: | ||||
| 
 | ||||
|   All skew control options are specified in picoseconds. The minimum | ||||
|   value is 0, the maximum value is 1800, and it is incremented by 120ps | ||||
|   steps. | ||||
| 
 | ||||
|   Optional properties: | ||||
| 
 | ||||
|     - rxc-skew-ps : Skew control of RXC pad | ||||
|     - rxdv-skew-ps : Skew control of RX CTL pad | ||||
|     - txc-skew-ps : Skew control of TXC pad | ||||
|     - txen-skew-ps : Skew control of TX CTL pad | ||||
|     - rxd0-skew-ps : Skew control of RX data 0 pad | ||||
|     - rxd1-skew-ps : Skew control of RX data 1 pad | ||||
|     - rxd2-skew-ps : Skew control of RX data 2 pad | ||||
|     - rxd3-skew-ps : Skew control of RX data 3 pad | ||||
|     - txd0-skew-ps : Skew control of TX data 0 pad | ||||
|     - txd1-skew-ps : Skew control of TX data 1 pad | ||||
|     - txd2-skew-ps : Skew control of TX data 2 pad | ||||
|     - txd3-skew-ps : Skew control of TX data 3 pad | ||||
| 
 | ||||
| KSZ9031: | ||||
| 
 | ||||
|   All skew control options are specified in picoseconds. The minimum | ||||
|   value is 0, and the maximum is property-dependent. The increment | ||||
|   step is 60ps. | ||||
| 
 | ||||
|   The KSZ9031 hardware supports a range of skew values from negative to | ||||
|   positive, where the specific range is property dependent. All values | ||||
|   specified in the devicetree are offset by the minimum value so they | ||||
|   can be represented as positive integers in the devicetree since it's | ||||
|   difficult to represent a negative number in the devictree. | ||||
| 
 | ||||
|   The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps. | ||||
| 
 | ||||
|   Pad Skew Value	Delay (ps)	Devicetree Value | ||||
|   ------------------------------------------------------ | ||||
|   0_0000		-900ps		0 | ||||
|   0_0001		-840ps		60 | ||||
|   0_0010		-780ps		120 | ||||
|   0_0011		-720ps		180 | ||||
|   0_0100		-660ps		240 | ||||
|   0_0101		-600ps		300 | ||||
|   0_0110		-540ps		360 | ||||
|   0_0111		-480ps		420 | ||||
|   0_1000		-420ps		480 | ||||
|   0_1001		-360ps		540 | ||||
|   0_1010		-300ps		600 | ||||
|   0_1011		-240ps		660 | ||||
|   0_1100		-180ps		720 | ||||
|   0_1101		-120ps		780 | ||||
|   0_1110		-60ps		840 | ||||
|   0_1111		0ps		900 | ||||
|   1_0000		60ps		960 | ||||
|   1_0001		120ps		1020 | ||||
|   1_0010		180ps		1080 | ||||
|   1_0011		240ps		1140 | ||||
|   1_0100		300ps		1200 | ||||
|   1_0101		360ps		1260 | ||||
|   1_0110		420ps		1320 | ||||
|   1_0111		480ps		1380 | ||||
|   1_1000		540ps		1440 | ||||
|   1_1001		600ps		1500 | ||||
|   1_1010		660ps		1560 | ||||
|   1_1011		720ps		1620 | ||||
|   1_1100		780ps		1680 | ||||
|   1_1101		840ps		1740 | ||||
|   1_1110		900ps		1800 | ||||
|   1_1111		960ps		1860 | ||||
| 
 | ||||
|   The following 4-bit values table apply to the txdX-skew-ps, rxdX-skew-ps | ||||
|   data pads, and the rxdv-skew-ps, txen-skew-ps control pads. | ||||
| 
 | ||||
|   Pad Skew Value	Delay (ps)	Devicetree Value | ||||
|   ------------------------------------------------------ | ||||
|   0000			-420ps		0 | ||||
|   0001			-360ps		60 | ||||
|   0010			-300ps		120 | ||||
|   0011			-240ps		180 | ||||
|   0100			-180ps		240 | ||||
|   0101			-120ps		300 | ||||
|   0110			-60ps		360 | ||||
|   0111			0ps		420 | ||||
|   1000			60ps		480 | ||||
|   1001			120ps		540 | ||||
|   1010			180ps		600 | ||||
|   1011			240ps		660 | ||||
|   1100			300ps		720 | ||||
|   1101			360ps		780 | ||||
|   1110			420ps		840 | ||||
|   1111			480ps		900 | ||||
| 
 | ||||
|   Optional properties: | ||||
| 
 | ||||
|     Maximum value of 1860: | ||||
| 
 | ||||
|       - rxc-skew-ps : Skew control of RX clock pad | ||||
|       - txc-skew-ps : Skew control of TX clock pad | ||||
| 
 | ||||
|     Maximum value of 900: | ||||
| 
 | ||||
|       - rxdv-skew-ps : Skew control of RX CTL pad | ||||
|       - txen-skew-ps : Skew control of TX CTL pad | ||||
|       - rxd0-skew-ps : Skew control of RX data 0 pad | ||||
|       - rxd1-skew-ps : Skew control of RX data 1 pad | ||||
|       - rxd2-skew-ps : Skew control of RX data 2 pad | ||||
|       - rxd3-skew-ps : Skew control of RX data 3 pad | ||||
|       - txd0-skew-ps : Skew control of TX data 0 pad | ||||
|       - txd1-skew-ps : Skew control of TX data 1 pad | ||||
|       - txd2-skew-ps : Skew control of TX data 2 pad | ||||
|       - txd3-skew-ps : Skew control of TX data 3 pad | ||||
| 
 | ||||
| Examples: | ||||
| 
 | ||||
| 	/* Attach to an Ethernet device with autodetected PHY */ | ||||
| 	&enet { | ||||
| 		rxc-skew-ps = <1800>; | ||||
| 		rxdv-skew-ps = <0>; | ||||
| 		txc-skew-ps = <1800>; | ||||
| 		txen-skew-ps = <0>; | ||||
| 		status = "okay"; | ||||
| 	}; | ||||
| 
 | ||||
| 	/* Attach to an explicitly-specified PHY */ | ||||
| 	mdio { | ||||
| 		phy0: ethernet-phy@0 { | ||||
| 			rxc-skew-ps = <1800>; | ||||
| 			rxdv-skew-ps = <0>; | ||||
| 			txc-skew-ps = <1800>; | ||||
| 			txen-skew-ps = <0>; | ||||
| 			reg = <0>; | ||||
| 		}; | ||||
| 	}; | ||||
| 	ethernet@70000 { | ||||
| 		status = "okay"; | ||||
| 		phy = <&phy0>; | ||||
| 		phy-mode = "rgmii-id"; | ||||
| 	}; | ||||
| 
 | ||||
| References | ||||
| 
 | ||||
|   Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014. | ||||
|   http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf | ||||
| 
 | ||||
|   Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014. | ||||
|   http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf | ||||
| 
 | ||||
| Notes: | ||||
| 
 | ||||
|   Note that a previous version of the Micrel ksz9021rl/rn Data Sheet | ||||
|   was missing extended register 106 (transmit data pad skews), and | ||||
|   incorrectly specified the ps per step as 200ps/step instead of | ||||
|   120ps/step. The latest update to this document reflects the latest | ||||
|   revision of the Micrel specification even though usage in the kernel | ||||
|   still reflects that incorrect document. | ||||
		Loading…
	
		Reference in New Issue