Freescale SOC USB controllers

The device node for a USB controller that is part of a Freescale
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 "fsl-usb2-mph" for multi port host USB
   controllers, or "fsl-usb2-dr" for dual role USB controllers
   or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121
 - phy_type : For multi port host USB controllers, should be one of
   "ulpi", or "serial". For dual role USB controllers, should be
   one of "ulpi", "utmi", "utmi_wide", or "serial".
 - reg : Offset and length of the register set for the device
 - port0 : boolean; if defined, indicates port0 is connected for
   fsl-usb2-mph compatible controllers.  Either this property or
   "port1" (or both) must be defined for "fsl-usb2-mph" compatible
   controllers.
 - port1 : boolean; if defined, indicates port1 is connected for
   fsl-usb2-mph compatible controllers.  Either this property or
   "port0" (or both) must be defined for "fsl-usb2-mph" compatible
   controllers.
 - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
   controllers.  Can be "host", "peripheral", or "otg".  Default to
   "host" if not defined for backward compatibility.

Recommended properties :
 - interrupts : <a b> where a is the interrupt number and b is a
   field that represents an encoding of the sense and level
   information for the interrupt.  This should be encoded based on
   the information in section 2) depending on the type of interrupt
   controller you have.
 - interrupt-parent : the phandle for the interrupt controller that
   services interrupts for this device.

Optional properties :
 - fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the
   port power polarity of internal PHY signal DRVVBUS is inverted.
 - fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates
   the PWR_FAULT signal polarity is inverted.

Example multi port host USB controller device node :
	usb@22000 {
		compatible = "fsl-usb2-mph";
		reg = <22000 1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <700>;
		interrupts = <27 1>;
		phy_type = "ulpi";
		port0;
		port1;
	};

Example dual role USB controller device node :
	usb@23000 {
		compatible = "fsl-usb2-dr";
		reg = <23000 1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <700>;
		interrupts = <26 1>;
		dr_mode = "otg";
		phy = "ulpi";
	};

Example dual role USB controller device node for MPC5121ADS:

	usb@4000 {
		compatible = "fsl,mpc5121-usb2-dr";
		reg = <0x4000 0x1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = < &ipic >;
		interrupts = <44 0x8>;
		dr_mode = "otg";
		phy_type = "utmi_wide";
		fsl,invert-drvvbus;
		fsl,invert-pwr-fault;
	};
