xref: /freebsd-src/sys/contrib/device-tree/Bindings/usb/fsl-usb.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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