162306a36Sopenharmony_ciFreescale SOC USB controllers
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThe device node for a USB controller that is part of a Freescale
462306a36Sopenharmony_ciSOC is as described in the document "Open Firmware Recommended
562306a36Sopenharmony_ciPractice : Universal Serial Bus" with the following modifications
662306a36Sopenharmony_ciand additions :
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciRequired properties :
962306a36Sopenharmony_ci - compatible : Should be "fsl-usb2-mph" for multi port host USB
1062306a36Sopenharmony_ci   controllers, or "fsl-usb2-dr" for dual role USB controllers
1162306a36Sopenharmony_ci   or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121.
1262306a36Sopenharmony_ci   Wherever applicable, the IP version of the USB controller should
1362306a36Sopenharmony_ci   also be mentioned (for eg. fsl-usb2-dr-v2.2 for bsc9132).
1462306a36Sopenharmony_ci - phy_type : For multi port host USB controllers, should be one of
1562306a36Sopenharmony_ci   "ulpi", or "serial". For dual role USB controllers, should be
1662306a36Sopenharmony_ci   one of "ulpi", "utmi", "utmi_wide", or "serial".
1762306a36Sopenharmony_ci - reg : Offset and length of the register set for the device
1862306a36Sopenharmony_ci - port0 : boolean; if defined, indicates port0 is connected for
1962306a36Sopenharmony_ci   fsl-usb2-mph compatible controllers.  Either this property or
2062306a36Sopenharmony_ci   "port1" (or both) must be defined for "fsl-usb2-mph" compatible
2162306a36Sopenharmony_ci   controllers.
2262306a36Sopenharmony_ci - port1 : boolean; if defined, indicates port1 is connected for
2362306a36Sopenharmony_ci   fsl-usb2-mph compatible controllers.  Either this property or
2462306a36Sopenharmony_ci   "port0" (or both) must be defined for "fsl-usb2-mph" compatible
2562306a36Sopenharmony_ci   controllers.
2662306a36Sopenharmony_ci - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
2762306a36Sopenharmony_ci   controllers.  Can be "host", "peripheral", or "otg".  Default to
2862306a36Sopenharmony_ci   "host" if not defined for backward compatibility.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciRecommended properties :
3162306a36Sopenharmony_ci - interrupts : <a b> where a is the interrupt number and b is a
3262306a36Sopenharmony_ci   field that represents an encoding of the sense and level
3362306a36Sopenharmony_ci   information for the interrupt.  This should be encoded based on
3462306a36Sopenharmony_ci   the information in section 2) depending on the type of interrupt
3562306a36Sopenharmony_ci   controller you have.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciOptional properties :
3862306a36Sopenharmony_ci - fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the
3962306a36Sopenharmony_ci   port power polarity of internal PHY signal DRVVBUS is inverted.
4062306a36Sopenharmony_ci - fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates
4162306a36Sopenharmony_ci   the PWR_FAULT signal polarity is inverted.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciExample multi port host USB controller device node :
4462306a36Sopenharmony_ci	usb@22000 {
4562306a36Sopenharmony_ci		compatible = "fsl-usb2-mph";
4662306a36Sopenharmony_ci		reg = <22000 1000>;
4762306a36Sopenharmony_ci		#address-cells = <1>;
4862306a36Sopenharmony_ci		#size-cells = <0>;
4962306a36Sopenharmony_ci		interrupt-parent = <700>;
5062306a36Sopenharmony_ci		interrupts = <27 1>;
5162306a36Sopenharmony_ci		phy_type = "ulpi";
5262306a36Sopenharmony_ci		port0;
5362306a36Sopenharmony_ci		port1;
5462306a36Sopenharmony_ci	};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciExample dual role USB controller device node :
5762306a36Sopenharmony_ci	usb@23000 {
5862306a36Sopenharmony_ci		compatible = "fsl-usb2-dr";
5962306a36Sopenharmony_ci		reg = <23000 1000>;
6062306a36Sopenharmony_ci		#address-cells = <1>;
6162306a36Sopenharmony_ci		#size-cells = <0>;
6262306a36Sopenharmony_ci		interrupt-parent = <700>;
6362306a36Sopenharmony_ci		interrupts = <26 1>;
6462306a36Sopenharmony_ci		dr_mode = "otg";
6562306a36Sopenharmony_ci		phy = "ulpi";
6662306a36Sopenharmony_ci	};
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciExample dual role USB controller device node for MPC5121ADS:
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci	usb@4000 {
7162306a36Sopenharmony_ci		compatible = "fsl,mpc5121-usb2-dr";
7262306a36Sopenharmony_ci		reg = <0x4000 0x1000>;
7362306a36Sopenharmony_ci		#address-cells = <1>;
7462306a36Sopenharmony_ci		#size-cells = <0>;
7562306a36Sopenharmony_ci		interrupt-parent = < &ipic >;
7662306a36Sopenharmony_ci		interrupts = <44 0x8>;
7762306a36Sopenharmony_ci		dr_mode = "otg";
7862306a36Sopenharmony_ci		phy_type = "utmi_wide";
7962306a36Sopenharmony_ci		fsl,invert-drvvbus;
8062306a36Sopenharmony_ci		fsl,invert-pwr-fault;
8162306a36Sopenharmony_ci	};
82