Tegra SOC USB controllers

The device node for a USB controller that is part of a Tegra
SOC is as described in the document "Open Firmware Recommended
Practice : Universal Serial Bus" with the following modifications
and additions :

Required properties :
 - compatible : Should be "nvidia,tegra20-ehci" for USB controllers
   used in host mode.
 - phy_type : Should be one of "ulpi" or "utmi".
 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
   activated for the bus to be powered.
 - nvidia,phy : phandle of the PHY instance, the controller is connected to.

Required properties for phy_type == ulpi:
  - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.

Optional properties:
  - dr_mode : dual role mode. Indicates the working mode for
   nvidia,tegra20-ehci compatible controllers.  Can be "host", "peripheral",
   or "otg".  Default to "host" if not defined for backward compatibility.
      host means this is a host controller
      peripheral means it is device controller
      otg means it can operate as either ("on the go")
  - nvidia,has-legacy-mode : boolean indicates whether this controller can
    operate in legacy mode (as APX 2500 / 2600). In legacy mode some
    registers are accessed through the APB_MISC base address instead of
    the USB controller. Since this is a legacy issue it probably does not
    warrant a compatible string of its own.
  - nvidia,needs-double-reset : boolean is to be set for some of the Tegra2
    USB ports, which need reset twice due to hardware issues.
