1*c66ec88fSEmmanuel VadotFreescale SOC USB controllers 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThe device node for a USB controller that is part of a Freescale 4*c66ec88fSEmmanuel VadotSOC is as described in the document "Open Firmware Recommended 5*c66ec88fSEmmanuel VadotPractice : Universal Serial Bus" with the following modifications 6*c66ec88fSEmmanuel Vadotand additions : 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotRequired properties : 9*c66ec88fSEmmanuel Vadot - compatible : Should be "fsl-usb2-mph" for multi port host USB 10*c66ec88fSEmmanuel Vadot controllers, or "fsl-usb2-dr" for dual role USB controllers 11*c66ec88fSEmmanuel Vadot or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121. 12*c66ec88fSEmmanuel Vadot Wherever applicable, the IP version of the USB controller should 13*c66ec88fSEmmanuel Vadot also be mentioned (for eg. fsl-usb2-dr-v2.2 for bsc9132). 14*c66ec88fSEmmanuel Vadot - phy_type : For multi port host USB controllers, should be one of 15*c66ec88fSEmmanuel Vadot "ulpi", or "serial". For dual role USB controllers, should be 16*c66ec88fSEmmanuel Vadot one of "ulpi", "utmi", "utmi_wide", or "serial". 17*c66ec88fSEmmanuel Vadot - reg : Offset and length of the register set for the device 18*c66ec88fSEmmanuel Vadot - port0 : boolean; if defined, indicates port0 is connected for 19*c66ec88fSEmmanuel Vadot fsl-usb2-mph compatible controllers. Either this property or 20*c66ec88fSEmmanuel Vadot "port1" (or both) must be defined for "fsl-usb2-mph" compatible 21*c66ec88fSEmmanuel Vadot controllers. 22*c66ec88fSEmmanuel Vadot - port1 : boolean; if defined, indicates port1 is connected for 23*c66ec88fSEmmanuel Vadot fsl-usb2-mph compatible controllers. Either this property or 24*c66ec88fSEmmanuel Vadot "port0" (or both) must be defined for "fsl-usb2-mph" compatible 25*c66ec88fSEmmanuel Vadot controllers. 26*c66ec88fSEmmanuel Vadot - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible 27*c66ec88fSEmmanuel Vadot controllers. Can be "host", "peripheral", or "otg". Default to 28*c66ec88fSEmmanuel Vadot "host" if not defined for backward compatibility. 29*c66ec88fSEmmanuel Vadot 30*c66ec88fSEmmanuel VadotRecommended properties : 31*c66ec88fSEmmanuel Vadot - interrupts : <a b> where a is the interrupt number and b is a 32*c66ec88fSEmmanuel Vadot field that represents an encoding of the sense and level 33*c66ec88fSEmmanuel Vadot information for the interrupt. This should be encoded based on 34*c66ec88fSEmmanuel Vadot the information in section 2) depending on the type of interrupt 35*c66ec88fSEmmanuel Vadot controller you have. 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel VadotOptional properties : 38*c66ec88fSEmmanuel Vadot - fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the 39*c66ec88fSEmmanuel Vadot port power polarity of internal PHY signal DRVVBUS is inverted. 40*c66ec88fSEmmanuel Vadot - fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates 41*c66ec88fSEmmanuel Vadot the PWR_FAULT signal polarity is inverted. 42*c66ec88fSEmmanuel Vadot 43*c66ec88fSEmmanuel VadotExample multi port host USB controller device node : 44*c66ec88fSEmmanuel Vadot usb@22000 { 45*c66ec88fSEmmanuel Vadot compatible = "fsl-usb2-mph"; 46*c66ec88fSEmmanuel Vadot reg = <22000 1000>; 47*c66ec88fSEmmanuel Vadot #address-cells = <1>; 48*c66ec88fSEmmanuel Vadot #size-cells = <0>; 49*c66ec88fSEmmanuel Vadot interrupt-parent = <700>; 50*c66ec88fSEmmanuel Vadot interrupts = <27 1>; 51*c66ec88fSEmmanuel Vadot phy_type = "ulpi"; 52*c66ec88fSEmmanuel Vadot port0; 53*c66ec88fSEmmanuel Vadot port1; 54*c66ec88fSEmmanuel Vadot }; 55*c66ec88fSEmmanuel Vadot 56*c66ec88fSEmmanuel VadotExample dual role USB controller device node : 57*c66ec88fSEmmanuel Vadot usb@23000 { 58*c66ec88fSEmmanuel Vadot compatible = "fsl-usb2-dr"; 59*c66ec88fSEmmanuel Vadot reg = <23000 1000>; 60*c66ec88fSEmmanuel Vadot #address-cells = <1>; 61*c66ec88fSEmmanuel Vadot #size-cells = <0>; 62*c66ec88fSEmmanuel Vadot interrupt-parent = <700>; 63*c66ec88fSEmmanuel Vadot interrupts = <26 1>; 64*c66ec88fSEmmanuel Vadot dr_mode = "otg"; 65*c66ec88fSEmmanuel Vadot phy = "ulpi"; 66*c66ec88fSEmmanuel Vadot }; 67*c66ec88fSEmmanuel Vadot 68*c66ec88fSEmmanuel VadotExample dual role USB controller device node for MPC5121ADS: 69*c66ec88fSEmmanuel Vadot 70*c66ec88fSEmmanuel Vadot usb@4000 { 71*c66ec88fSEmmanuel Vadot compatible = "fsl,mpc5121-usb2-dr"; 72*c66ec88fSEmmanuel Vadot reg = <0x4000 0x1000>; 73*c66ec88fSEmmanuel Vadot #address-cells = <1>; 74*c66ec88fSEmmanuel Vadot #size-cells = <0>; 75*c66ec88fSEmmanuel Vadot interrupt-parent = < &ipic >; 76*c66ec88fSEmmanuel Vadot interrupts = <44 0x8>; 77*c66ec88fSEmmanuel Vadot dr_mode = "otg"; 78*c66ec88fSEmmanuel Vadot phy_type = "utmi_wide"; 79*c66ec88fSEmmanuel Vadot fsl,invert-drvvbus; 80*c66ec88fSEmmanuel Vadot fsl,invert-pwr-fault; 81*c66ec88fSEmmanuel Vadot }; 82