Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Ethernet PHY

Some boards require special tuning values, particularly when it comes
to clock delays. You can specify clock delay values in the PHY OF
device node. Deprecated, but still supported, these properties can
also be added 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 3000, and it can be specified in 200ps
  steps, *but* these values are in not fact what you get because this chip's
  skew values actually increase in 120ps steps, starting from -840ps. The
  incorrect values came from an error in the original KSZ9021 datasheet
  before it was corrected in revision 1.2 (Feb 2014), but it is too late to
  change the driver now because of the many existing device trees that have
  been created using values that go up in increments of 200.

  The following table shows the actual skew delay you will get for each of the
  possible devicetree values, and the number that will be programmed into the
  corresponding pad skew register:

  Device Tree Value	Delay	Pad Skew Register Value
  -----------------------------------------------------
	0   		-840ps		0000
	200 		-720ps		0001
	400 		-600ps		0010
	600 		-480ps		0011
	800 		-360ps		0100
	1000		-240ps		0101
	1200		-120ps		0110
	1400		   0ps		0111
	1600		 120ps		1000
	1800		 240ps		1001
	2000		 360ps		1010
	2200		 480ps		1011
	2400		 600ps		1100
	2600		 720ps		1101
	2800		 840ps		1110
	3000		 960ps		1111

  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 default value is the neutral setting, so setting
  rxc-skew-ps=<0> actually results in -900 picoseconds adjustment.

  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, default value 900:

      - rxc-skew-ps : Skew control of RX clock pad
      - txc-skew-ps : Skew control of TX clock pad

    Maximum value of 900, default value 420:

      - 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

    - micrel,force-master:
        Boolean, force phy to master mode. Only set this option if the phy
        reference clock provided at CLK125_NDO pin is used as MAC reference
        clock because the clock jitter in slave mode is to high (errata#2).
        Attention: The link partner must be configurable as slave otherwise
        no link will be established.

KSZ9131:

  All skew control options are specified in picoseconds. The increment
  step is 100ps. Unlike KSZ9031, the values represent picoseccond delays.
  A negative value can be assigned as rxc-skew-psec = <(-100)>;.

  Optional properties:

    Range of the value -700 to 2400, default value 0:

      - rxc-skew-psec : Skew control of RX clock pad
      - txc-skew-psec : Skew control of TX clock pad

    Range of the value -700 to 800, default value 0:

      - rxdv-skew-psec : Skew control of RX CTL pad
      - txen-skew-psec : Skew control of TX CTL pad
      - rxd0-skew-psec : Skew control of RX data 0 pad
      - rxd1-skew-psec : Skew control of RX data 1 pad
      - rxd2-skew-psec : Skew control of RX data 2 pad
      - rxd3-skew-psec : Skew control of RX data 3 pad
      - txd0-skew-psec : Skew control of TX data 0 pad
      - txd1-skew-psec : Skew control of TX data 1 pad
      - txd2-skew-psec : Skew control of TX data 2 pad
      - txd3-skew-psec : 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 {
		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.
