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