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