xref: /openbmc/linux/Documentation/devicetree/bindings/usb/msm-hsusb.txt (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
10fc924bdSIvan T. IvanovMSM SoC HSUSB controllers
20fc924bdSIvan T. Ivanov
30fc924bdSIvan T. IvanovEHCI
40fc924bdSIvan T. Ivanov
50fc924bdSIvan T. IvanovRequired properties:
60fc924bdSIvan T. Ivanov- compatible:	Should contain "qcom,ehci-host"
70fc924bdSIvan T. Ivanov- regs:			offset and length of the register set in the memory map
80fc924bdSIvan T. Ivanov- usb-phy:		phandle for the PHY device
90fc924bdSIvan T. Ivanov
100fc924bdSIvan T. IvanovExample EHCI controller device node:
110fc924bdSIvan T. Ivanov
120fc924bdSIvan T. Ivanov	ehci: ehci@f9a55000 {
130fc924bdSIvan T. Ivanov		compatible = "qcom,ehci-host";
140fc924bdSIvan T. Ivanov		reg = <0xf9a55000 0x400>;
150fc924bdSIvan T. Ivanov		usb-phy = <&usb_otg>;
160fc924bdSIvan T. Ivanov	};
170fc924bdSIvan T. Ivanov
188364f9afSIvan T. IvanovUSB PHY with optional OTG:
198364f9afSIvan T. Ivanov
208364f9afSIvan T. IvanovRequired properties:
218364f9afSIvan T. Ivanov- compatible:   Should contain:
228364f9afSIvan T. Ivanov  "qcom,usb-otg-ci" for chipsets with ChipIdea 45nm PHY
238364f9afSIvan T. Ivanov  "qcom,usb-otg-snps" for chipsets with Synopsys 28nm PHY
248364f9afSIvan T. Ivanov
258364f9afSIvan T. Ivanov- regs:         Offset and length of the register set in the memory map
268364f9afSIvan T. Ivanov- interrupts:   interrupt-specifier for the OTG interrupt.
278364f9afSIvan T. Ivanov
288364f9afSIvan T. Ivanov- clocks:       A list of phandle + clock-specifier pairs for the
298364f9afSIvan T. Ivanov                clocks listed in clock-names
308364f9afSIvan T. Ivanov- clock-names:  Should contain the following:
318364f9afSIvan T. Ivanov  "phy"         USB PHY reference clock
328364f9afSIvan T. Ivanov  "core"        Protocol engine clock
338364f9afSIvan T. Ivanov  "iface"       Interface bus clock
348364f9afSIvan T. Ivanov  "alt_core"    Protocol engine clock for targets with asynchronous
358364f9afSIvan T. Ivanov                reset methodology. (optional)
368364f9afSIvan T. Ivanov
378364f9afSIvan T. Ivanov- vdccx-supply: phandle to the regulator for the vdd supply for
388364f9afSIvan T. Ivanov                digital circuit operation.
398364f9afSIvan T. Ivanov- v1p8-supply:  phandle to the regulator for the 1.8V supply
408364f9afSIvan T. Ivanov- v3p3-supply:  phandle to the regulator for the 3.3V supply
418364f9afSIvan T. Ivanov
428364f9afSIvan T. Ivanov- resets:       A list of phandle + reset-specifier pairs for the
438364f9afSIvan T. Ivanov                resets listed in reset-names
448364f9afSIvan T. Ivanov- reset-names:  Should contain the following:
458364f9afSIvan T. Ivanov  "phy"         USB PHY controller reset
468364f9afSIvan T. Ivanov  "link"        USB LINK controller reset
478364f9afSIvan T. Ivanov
488364f9afSIvan T. Ivanov- qcom,otg-control: OTG control (VBUS and ID notifications) can be one of
498364f9afSIvan T. Ivanov                1 - PHY control
508364f9afSIvan T. Ivanov                2 - PMIC control
518364f9afSIvan T. Ivanov
528364f9afSIvan T. IvanovOptional properties:
538364f9afSIvan T. Ivanov- dr_mode:      One of "host", "peripheral" or "otg". Defaults to "otg"
548364f9afSIvan T. Ivanov
556f98f545SIvan T. Ivanov- switch-gpio:  A phandle + gpio-specifier pair. Some boards are using Dual
56*47aab533SBjorn Helgaas                SPDT USB Switch, witch is controlled by GPIO to de/multiplex
576f98f545SIvan T. Ivanov                D+/D- USB lines between connectors.
586f98f545SIvan T. Ivanov
598364f9afSIvan T. Ivanov- qcom,phy-init-sequence: PHY configuration sequence values. This is related to Device
608364f9afSIvan T. Ivanov                Mode Eye Diagram test. Start address at which these values will be
618364f9afSIvan T. Ivanov                written is ULPI_EXT_VENDOR_SPECIFIC. Value of -1 is reserved as
628364f9afSIvan T. Ivanov                "do not overwrite default value at this address".
638364f9afSIvan T. Ivanov                For example: qcom,phy-init-sequence = < -1 0x63 >;
648364f9afSIvan T. Ivanov                Will update only value at address ULPI_EXT_VENDOR_SPECIFIC + 1.
658364f9afSIvan T. Ivanov
66cfa3ff5dSIvan T. Ivanov- qcom,phy-num: Select number of pyco-phy to use, can be one of
67cfa3ff5dSIvan T. Ivanov                0 - PHY one, default
68cfa3ff5dSIvan T. Ivanov                1 - Second PHY
69cfa3ff5dSIvan T. Ivanov                Some platforms may have configuration to allow USB
70cfa3ff5dSIvan T. Ivanov                controller work with any of the two HSPHYs present.
71cfa3ff5dSIvan T. Ivanov
7201799b62SIvan T. Ivanov- qcom,vdd-levels: This property must be a list of three integer values
7301799b62SIvan T. Ivanov                (no, min, max) where each value represents either a voltage
7401799b62SIvan T. Ivanov                in microvolts or a value corresponding to voltage corner.
7501799b62SIvan T. Ivanov
7644e42ae3SIvan T. Ivanov- qcom,manual-pullup: If present, vbus is not routed to USB controller/phy
7744e42ae3SIvan T. Ivanov                and controller driver therefore enables pull-up explicitly
7844e42ae3SIvan T. Ivanov                before starting controller using usbcmd run/stop bit.
7944e42ae3SIvan T. Ivanov
80591fc116SIvan T. Ivanov- extcon:       phandles to external connector devices. First phandle
81591fc116SIvan T. Ivanov                should point to external connector, which provide "USB"
82591fc116SIvan T. Ivanov                cable events, the second should point to external connector
83591fc116SIvan T. Ivanov                device, which provide "USB-HOST" cable events. If one of
84591fc116SIvan T. Ivanov                the external connector devices is not required empty <0>
85591fc116SIvan T. Ivanov                phandle should be specified.
86591fc116SIvan T. Ivanov
878364f9afSIvan T. IvanovExample HSUSB OTG controller device node:
888364f9afSIvan T. Ivanov
898364f9afSIvan T. Ivanov    usb@f9a55000 {
908364f9afSIvan T. Ivanov        compatible = "qcom,usb-otg-snps";
918364f9afSIvan T. Ivanov        reg = <0xf9a55000 0x400>;
928364f9afSIvan T. Ivanov        interrupts = <0 134 0>;
938364f9afSIvan T. Ivanov        dr_mode = "peripheral";
948364f9afSIvan T. Ivanov
958364f9afSIvan T. Ivanov        clocks = <&gcc GCC_XO_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>,
968364f9afSIvan T. Ivanov                <&gcc GCC_USB_HS_AHB_CLK>;
978364f9afSIvan T. Ivanov
988364f9afSIvan T. Ivanov        clock-names = "phy", "core", "iface";
998364f9afSIvan T. Ivanov
1008364f9afSIvan T. Ivanov        vddcx-supply = <&pm8841_s2_corner>;
1018364f9afSIvan T. Ivanov        v1p8-supply = <&pm8941_l6>;
1028364f9afSIvan T. Ivanov        v3p3-supply = <&pm8941_l24>;
1038364f9afSIvan T. Ivanov
1048364f9afSIvan T. Ivanov        resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>;
1058364f9afSIvan T. Ivanov        reset-names = "phy", "link";
1068364f9afSIvan T. Ivanov
1078364f9afSIvan T. Ivanov        qcom,otg-control = <1>;
1088364f9afSIvan T. Ivanov        qcom,phy-init-sequence = < -1 0x63 >;
10901799b62SIvan T. Ivanov        qcom,vdd-levels = <1 5 7>;
1108364f9afSIvan T. Ivanov	};
111