xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/usb/msm-hsusb.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunMSM SoC HSUSB controllers
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunEHCI
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunRequired properties:
6*4882a593Smuzhiyun- compatible:	Should contain "qcom,ehci-host"
7*4882a593Smuzhiyun- regs:			offset and length of the register set in the memory map
8*4882a593Smuzhiyun- usb-phy:		phandle for the PHY device
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunExample EHCI controller device node:
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun	ehci: ehci@f9a55000 {
13*4882a593Smuzhiyun		compatible = "qcom,ehci-host";
14*4882a593Smuzhiyun		reg = <0xf9a55000 0x400>;
15*4882a593Smuzhiyun		usb-phy = <&usb_otg>;
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunUSB PHY with optional OTG:
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunRequired properties:
21*4882a593Smuzhiyun- compatible:   Should contain:
22*4882a593Smuzhiyun  "qcom,usb-otg-ci" for chipsets with ChipIdea 45nm PHY
23*4882a593Smuzhiyun  "qcom,usb-otg-snps" for chipsets with Synopsys 28nm PHY
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun- regs:         Offset and length of the register set in the memory map
26*4882a593Smuzhiyun- interrupts:   interrupt-specifier for the OTG interrupt.
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun- clocks:       A list of phandle + clock-specifier pairs for the
29*4882a593Smuzhiyun                clocks listed in clock-names
30*4882a593Smuzhiyun- clock-names:  Should contain the following:
31*4882a593Smuzhiyun  "phy"         USB PHY reference clock
32*4882a593Smuzhiyun  "core"        Protocol engine clock
33*4882a593Smuzhiyun  "iface"       Interface bus clock
34*4882a593Smuzhiyun  "alt_core"    Protocol engine clock for targets with asynchronous
35*4882a593Smuzhiyun                reset methodology. (optional)
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun- vdccx-supply: phandle to the regulator for the vdd supply for
38*4882a593Smuzhiyun                digital circuit operation.
39*4882a593Smuzhiyun- v1p8-supply:  phandle to the regulator for the 1.8V supply
40*4882a593Smuzhiyun- v3p3-supply:  phandle to the regulator for the 3.3V supply
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun- resets:       A list of phandle + reset-specifier pairs for the
43*4882a593Smuzhiyun                resets listed in reset-names
44*4882a593Smuzhiyun- reset-names:  Should contain the following:
45*4882a593Smuzhiyun  "phy"         USB PHY controller reset
46*4882a593Smuzhiyun  "link"        USB LINK controller reset
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun- qcom,otg-control: OTG control (VBUS and ID notifications) can be one of
49*4882a593Smuzhiyun                1 - PHY control
50*4882a593Smuzhiyun                2 - PMIC control
51*4882a593Smuzhiyun
52*4882a593SmuzhiyunOptional properties:
53*4882a593Smuzhiyun- dr_mode:      One of "host", "peripheral" or "otg". Defaults to "otg"
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun- switch-gpio:  A phandle + gpio-specifier pair. Some boards are using Dual
56*4882a593Smuzhiyun                SPDT USB Switch, witch is cotrolled by GPIO to de/multiplex
57*4882a593Smuzhiyun                D+/D- USB lines between connectors.
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun- qcom,phy-init-sequence: PHY configuration sequence values. This is related to Device
60*4882a593Smuzhiyun                Mode Eye Diagram test. Start address at which these values will be
61*4882a593Smuzhiyun                written is ULPI_EXT_VENDOR_SPECIFIC. Value of -1 is reserved as
62*4882a593Smuzhiyun                "do not overwrite default value at this address".
63*4882a593Smuzhiyun                For example: qcom,phy-init-sequence = < -1 0x63 >;
64*4882a593Smuzhiyun                Will update only value at address ULPI_EXT_VENDOR_SPECIFIC + 1.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun- qcom,phy-num: Select number of pyco-phy to use, can be one of
67*4882a593Smuzhiyun                0 - PHY one, default
68*4882a593Smuzhiyun                1 - Second PHY
69*4882a593Smuzhiyun                Some platforms may have configuration to allow USB
70*4882a593Smuzhiyun                controller work with any of the two HSPHYs present.
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun- qcom,vdd-levels: This property must be a list of three integer values
73*4882a593Smuzhiyun                (no, min, max) where each value represents either a voltage
74*4882a593Smuzhiyun                in microvolts or a value corresponding to voltage corner.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun- qcom,manual-pullup: If present, vbus is not routed to USB controller/phy
77*4882a593Smuzhiyun                and controller driver therefore enables pull-up explicitly
78*4882a593Smuzhiyun                before starting controller using usbcmd run/stop bit.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun- extcon:       phandles to external connector devices. First phandle
81*4882a593Smuzhiyun                should point to external connector, which provide "USB"
82*4882a593Smuzhiyun                cable events, the second should point to external connector
83*4882a593Smuzhiyun                device, which provide "USB-HOST" cable events. If one of
84*4882a593Smuzhiyun                the external connector devices is not required empty <0>
85*4882a593Smuzhiyun                phandle should be specified.
86*4882a593Smuzhiyun
87*4882a593SmuzhiyunExample HSUSB OTG controller device node:
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun    usb@f9a55000 {
90*4882a593Smuzhiyun        compatible = "qcom,usb-otg-snps";
91*4882a593Smuzhiyun        reg = <0xf9a55000 0x400>;
92*4882a593Smuzhiyun        interrupts = <0 134 0>;
93*4882a593Smuzhiyun        dr_mode = "peripheral";
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun        clocks = <&gcc GCC_XO_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>,
96*4882a593Smuzhiyun                <&gcc GCC_USB_HS_AHB_CLK>;
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun        clock-names = "phy", "core", "iface";
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun        vddcx-supply = <&pm8841_s2_corner>;
101*4882a593Smuzhiyun        v1p8-supply = <&pm8941_l6>;
102*4882a593Smuzhiyun        v3p3-supply = <&pm8941_l24>;
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun        resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>;
105*4882a593Smuzhiyun        reset-names = "phy", "link";
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun        qcom,otg-control = <1>;
108*4882a593Smuzhiyun        qcom,phy-init-sequence = < -1 0x63 >;
109*4882a593Smuzhiyun        qcom,vdd-levels = <1 5 7>;
110*4882a593Smuzhiyun	};
111