The following properties are common to the Ethernet controllers:

NOTE: All 'phy*' properties documented below are Ethernet specific. For the
generic PHY 'phys' property, see
Documentation/devicetree/bindings/phy/phy-bindings.txt.

- local-mac-address: array of 6 bytes, specifies the MAC address that was
  assigned to the network device;
- mac-address: array of 6 bytes, specifies the MAC address that was last used by
  the boot program; should be used in cases where the MAC address assigned to
  the device by the boot program is different from the "local-mac-address"
  property;
- max-speed: number, specifies maximum speed in Mbit/s supported by the device;
- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather than
  the maximum frame size (there's contradiction in the Devicetree
  Specification).
- phy-mode: string, operation mode of the PHY interface. This is now a de-facto
  standard property; supported values are:
  * "internal"
  * "mii"
  * "gmii"
  * "sgmii"
  * "qsgmii"
  * "tbi"
  * "rev-mii"
  * "rmii"
  * "rgmii" (RX and TX delays are added by the MAC when required)
  * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
     MAC should not add the RX or TX delays in this case)
  * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
     should not add an RX delay in this case)
  * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
     should not add an TX delay in this case)
  * "rtbi"
  * "smii"
  * "xgmii"
  * "trgmii"
  * "2000base-x",
  * "2500base-x",
  * "rxaui"
  * "xaui"
  * "10gbase-kr" (10GBASE-KR, XFI, SFI)
- phy-connection-type: the same as "phy-mode" property but described in the
  Devicetree Specification;
- phy-handle: phandle, specifies a reference to a node representing a PHY
  device; this property is described in the Devicetree Specification and so
  preferred;
- phy: the same as "phy-handle" property, not recommended for new bindings.
- phy-device: the same as "phy-handle" property, not recommended for new
  bindings.
- rx-fifo-depth: the size of the controller's receive fifo in bytes. This
  is used for components that can have configurable receive fifo sizes,
  and is useful for determining certain configuration settings such as
  flow control thresholds.
- tx-fifo-depth: the size of the controller's transmit fifo in bytes. This
  is used for components that can have configurable fifo sizes.
- managed: string, specifies the PHY management type. Supported values are:
  "auto", "in-band-status". "auto" is the default, it usess MDIO for
  management if fixed-link is not specified.

Child nodes of the Ethernet controller are typically the individual PHY devices
connected via the MDIO bus (sometimes the MDIO bus controller is separate).
They are described in the phy.txt file in this same directory.
For non-MDIO PHY management see fixed-link.txt.
