162306a36Sopenharmony_ciMSM SoC HSUSB controllers
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciEHCI
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciRequired properties:
662306a36Sopenharmony_ci- compatible:	Should contain "qcom,ehci-host"
762306a36Sopenharmony_ci- regs:			offset and length of the register set in the memory map
862306a36Sopenharmony_ci- usb-phy:		phandle for the PHY device
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciExample EHCI controller device node:
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci	ehci: ehci@f9a55000 {
1362306a36Sopenharmony_ci		compatible = "qcom,ehci-host";
1462306a36Sopenharmony_ci		reg = <0xf9a55000 0x400>;
1562306a36Sopenharmony_ci		usb-phy = <&usb_otg>;
1662306a36Sopenharmony_ci	};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciUSB PHY with optional OTG:
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciRequired properties:
2162306a36Sopenharmony_ci- compatible:   Should contain:
2262306a36Sopenharmony_ci  "qcom,usb-otg-ci" for chipsets with ChipIdea 45nm PHY
2362306a36Sopenharmony_ci  "qcom,usb-otg-snps" for chipsets with Synopsys 28nm PHY
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci- regs:         Offset and length of the register set in the memory map
2662306a36Sopenharmony_ci- interrupts:   interrupt-specifier for the OTG interrupt.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci- clocks:       A list of phandle + clock-specifier pairs for the
2962306a36Sopenharmony_ci                clocks listed in clock-names
3062306a36Sopenharmony_ci- clock-names:  Should contain the following:
3162306a36Sopenharmony_ci  "phy"         USB PHY reference clock
3262306a36Sopenharmony_ci  "core"        Protocol engine clock
3362306a36Sopenharmony_ci  "iface"       Interface bus clock
3462306a36Sopenharmony_ci  "alt_core"    Protocol engine clock for targets with asynchronous
3562306a36Sopenharmony_ci                reset methodology. (optional)
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci- vdccx-supply: phandle to the regulator for the vdd supply for
3862306a36Sopenharmony_ci                digital circuit operation.
3962306a36Sopenharmony_ci- v1p8-supply:  phandle to the regulator for the 1.8V supply
4062306a36Sopenharmony_ci- v3p3-supply:  phandle to the regulator for the 3.3V supply
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci- resets:       A list of phandle + reset-specifier pairs for the
4362306a36Sopenharmony_ci                resets listed in reset-names
4462306a36Sopenharmony_ci- reset-names:  Should contain the following:
4562306a36Sopenharmony_ci  "phy"         USB PHY controller reset
4662306a36Sopenharmony_ci  "link"        USB LINK controller reset
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci- qcom,otg-control: OTG control (VBUS and ID notifications) can be one of
4962306a36Sopenharmony_ci                1 - PHY control
5062306a36Sopenharmony_ci                2 - PMIC control
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciOptional properties:
5362306a36Sopenharmony_ci- dr_mode:      One of "host", "peripheral" or "otg". Defaults to "otg"
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci- switch-gpio:  A phandle + gpio-specifier pair. Some boards are using Dual
5662306a36Sopenharmony_ci                SPDT USB Switch, witch is controlled by GPIO to de/multiplex
5762306a36Sopenharmony_ci                D+/D- USB lines between connectors.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci- qcom,phy-init-sequence: PHY configuration sequence values. This is related to Device
6062306a36Sopenharmony_ci                Mode Eye Diagram test. Start address at which these values will be
6162306a36Sopenharmony_ci                written is ULPI_EXT_VENDOR_SPECIFIC. Value of -1 is reserved as
6262306a36Sopenharmony_ci                "do not overwrite default value at this address".
6362306a36Sopenharmony_ci                For example: qcom,phy-init-sequence = < -1 0x63 >;
6462306a36Sopenharmony_ci                Will update only value at address ULPI_EXT_VENDOR_SPECIFIC + 1.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci- qcom,phy-num: Select number of pyco-phy to use, can be one of
6762306a36Sopenharmony_ci                0 - PHY one, default
6862306a36Sopenharmony_ci                1 - Second PHY
6962306a36Sopenharmony_ci                Some platforms may have configuration to allow USB
7062306a36Sopenharmony_ci                controller work with any of the two HSPHYs present.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci- qcom,vdd-levels: This property must be a list of three integer values
7362306a36Sopenharmony_ci                (no, min, max) where each value represents either a voltage
7462306a36Sopenharmony_ci                in microvolts or a value corresponding to voltage corner.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci- qcom,manual-pullup: If present, vbus is not routed to USB controller/phy
7762306a36Sopenharmony_ci                and controller driver therefore enables pull-up explicitly
7862306a36Sopenharmony_ci                before starting controller using usbcmd run/stop bit.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci- extcon:       phandles to external connector devices. First phandle
8162306a36Sopenharmony_ci                should point to external connector, which provide "USB"
8262306a36Sopenharmony_ci                cable events, the second should point to external connector
8362306a36Sopenharmony_ci                device, which provide "USB-HOST" cable events. If one of
8462306a36Sopenharmony_ci                the external connector devices is not required empty <0>
8562306a36Sopenharmony_ci                phandle should be specified.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciExample HSUSB OTG controller device node:
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci    usb@f9a55000 {
9062306a36Sopenharmony_ci        compatible = "qcom,usb-otg-snps";
9162306a36Sopenharmony_ci        reg = <0xf9a55000 0x400>;
9262306a36Sopenharmony_ci        interrupts = <0 134 0>;
9362306a36Sopenharmony_ci        dr_mode = "peripheral";
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci        clocks = <&gcc GCC_XO_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>,
9662306a36Sopenharmony_ci                <&gcc GCC_USB_HS_AHB_CLK>;
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci        clock-names = "phy", "core", "iface";
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci        vddcx-supply = <&pm8841_s2_corner>;
10162306a36Sopenharmony_ci        v1p8-supply = <&pm8941_l6>;
10262306a36Sopenharmony_ci        v3p3-supply = <&pm8941_l24>;
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci        resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>;
10562306a36Sopenharmony_ci        reset-names = "phy", "link";
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci        qcom,otg-control = <1>;
10862306a36Sopenharmony_ci        qcom,phy-init-sequence = < -1 0x63 >;
10962306a36Sopenharmony_ci        qcom,vdd-levels = <1 5 7>;
11062306a36Sopenharmony_ci	};
111