Fixed link Device Tree binding
------------------------------

Some Ethernet MACs have a "fixed link", and are not connected to a
normal MDIO-managed PHY device. For those situations, a Device Tree
binding allows to describe a "fixed link".

Note there are two ways to describe a fixed PHY attached to an
Ethernet device:

- The new DT binding, where 'fixed-link' is a sub-node of the Ethernet
  MAC device node, with the following properties:

  * 'speed' (integer, mandatory), to indicate the link speed. Accepted
    values are 10, 100 and 1000
  * 'full-duplex' (boolean, optional), to indicate that full duplex is
    used. When absent, half duplex is assumed.
  * 'pause' (boolean, optional), to indicate that pause should be
    enabled.
  * 'asym-pause' (boolean, optional), to indicate that asym_pause should
    be enabled.

- The old DT binding, where 'fixed-link' is a property with 5 cells
  encoding various information about the fixed PHY, in the form of
  <phy_id, full-duplex, speed, pause, asym-pause>.

  * 'phy_id', emulated PHY ID, choose any but unique to the all specified
    fixed-links. Note U-Boot deliberately ignores the 'phy_id' and
    unconditionally uses PHY_FIXED_ID.
  * 'full-duplex', 0 for half duplex or 1 for full duplex
  * 'speed', link speed in Mbits/sec, accepts only 10, 100 and 1000
  * 'pause', 0 for no pause, 1 for pause
  * 'asym-pause', 0 for no asymmetric pause, 1 for asymmetric pause

Examples:

The new binding:

ethernet@0 {
	...
	fixed-link {
	      speed = <1000>;
	      full-duplex;
	};
	...
};

The old binding:

ethernet@0 {
	...
	fixed-link = <0 1 1000 0 0>;
	...
};
