103a8f438SRoger QuadrosOMAP HS USB Host 203a8f438SRoger Quadros 303a8f438SRoger QuadrosRequired properties: 403a8f438SRoger Quadros 503a8f438SRoger Quadros- compatible: should be "ti,usbhs-host" 603a8f438SRoger Quadros- reg: should contain one register range i.e. start and length 703a8f438SRoger Quadros- ti,hwmods: must contain "usb_host_hs" 803a8f438SRoger Quadros 903a8f438SRoger QuadrosOptional properties: 1003a8f438SRoger Quadros 1103a8f438SRoger Quadros- num-ports: number of USB ports. Usually this is automatically detected 1203a8f438SRoger Quadros from the IP's revision register but can be overridden by specifying 1303a8f438SRoger Quadros this property. A maximum of 3 ports are supported at the moment. 1403a8f438SRoger Quadros 1503a8f438SRoger Quadros- portN-mode: String specifying the port mode for port N, where N can be 1603a8f438SRoger Quadros from 1 to 3. If the port mode is not specified, that port is treated 1703a8f438SRoger Quadros as unused. When specified, it must be one of the following. 1803a8f438SRoger Quadros "ehci-phy", 1903a8f438SRoger Quadros "ehci-tll", 2003a8f438SRoger Quadros "ehci-hsic", 2103a8f438SRoger Quadros "ohci-phy-6pin-datse0", 2203a8f438SRoger Quadros "ohci-phy-6pin-dpdm", 2303a8f438SRoger Quadros "ohci-phy-3pin-datse0", 2403a8f438SRoger Quadros "ohci-phy-4pin-dpdm", 2503a8f438SRoger Quadros "ohci-tll-6pin-datse0", 2603a8f438SRoger Quadros "ohci-tll-6pin-dpdm", 2703a8f438SRoger Quadros "ohci-tll-3pin-datse0", 2803a8f438SRoger Quadros "ohci-tll-4pin-dpdm", 2903a8f438SRoger Quadros "ohci-tll-2pin-datse0", 3003a8f438SRoger Quadros "ohci-tll-2pin-dpdm", 3103a8f438SRoger Quadros 3203a8f438SRoger Quadros- single-ulpi-bypass: Must be present if the controller contains a single 3303a8f438SRoger Quadros ULPI bypass control bit. e.g. OMAP3 silicon <= ES2.1 3403a8f438SRoger Quadros 35c233544fSRoger Quadros- clocks: a list of phandles and clock-specifier pairs, one for each entry in 36c233544fSRoger Quadros clock-names. 37c233544fSRoger Quadros 38c233544fSRoger Quadros- clock-names: should include: 39c233544fSRoger Quadros For OMAP3 40c233544fSRoger Quadros * "usbhost_120m_fck" - 120MHz Functional clock. 41c233544fSRoger Quadros 42c233544fSRoger Quadros For OMAP4+ 43c233544fSRoger Quadros * "refclk_60m_int" - 60MHz internal reference clock for UTMI clock mux 44c233544fSRoger Quadros * "refclk_60m_ext_p1" - 60MHz external ref. clock for Port 1's UTMI clock mux. 45c233544fSRoger Quadros * "refclk_60m_ext_p2" - 60MHz external ref. clock for Port 2's UTMI clock mux 46c233544fSRoger Quadros * "utmi_p1_gfclk" - Port 1 UTMI clock mux. 47c233544fSRoger Quadros * "utmi_p2_gfclk" - Port 2 UTMI clock mux. 48c233544fSRoger Quadros * "usb_host_hs_utmi_p1_clk" - Port 1 UTMI clock gate. 49c233544fSRoger Quadros * "usb_host_hs_utmi_p2_clk" - Port 2 UTMI clock gate. 50c233544fSRoger Quadros * "usb_host_hs_utmi_p3_clk" - Port 3 UTMI clock gate. 51c233544fSRoger Quadros * "usb_host_hs_hsic480m_p1_clk" - Port 1 480MHz HSIC clock gate. 52c233544fSRoger Quadros * "usb_host_hs_hsic480m_p2_clk" - Port 2 480MHz HSIC clock gate. 53c233544fSRoger Quadros * "usb_host_hs_hsic480m_p3_clk" - Port 3 480MHz HSIC clock gate. 54c233544fSRoger Quadros * "usb_host_hs_hsic60m_p1_clk" - Port 1 60MHz HSIC clock gate. 55c233544fSRoger Quadros * "usb_host_hs_hsic60m_p2_clk" - Port 2 60MHz HSIC clock gate. 56c233544fSRoger Quadros * "usb_host_hs_hsic60m_p3_clk" - Port 3 60MHz HSIC clock gate. 57c233544fSRoger Quadros 5803a8f438SRoger QuadrosRequired properties if child node exists: 5903a8f438SRoger Quadros 6003a8f438SRoger Quadros- #address-cells: Must be 1 6103a8f438SRoger Quadros- #size-cells: Must be 1 6203a8f438SRoger Quadros- ranges: must be present 6303a8f438SRoger Quadros 6403a8f438SRoger QuadrosProperties for children: 6503a8f438SRoger Quadros 6603a8f438SRoger QuadrosThe OMAP HS USB Host subsystem contains EHCI and OHCI controllers. 67*76ea4926SRob HerringSee Documentation/devicetree/bindings/usb/generic-ehci.yaml and 68*76ea4926SRob HerringDocumentation/devicetree/bindings/usb/generic-ohci.yaml. 6903a8f438SRoger Quadros 7003a8f438SRoger QuadrosExample for OMAP4: 7103a8f438SRoger Quadros 7203a8f438SRoger Quadrosusbhshost: usbhshost@4a064000 { 7303a8f438SRoger Quadros compatible = "ti,usbhs-host"; 7403a8f438SRoger Quadros reg = <0x4a064000 0x800>; 7503a8f438SRoger Quadros ti,hwmods = "usb_host_hs"; 7603a8f438SRoger Quadros #address-cells = <1>; 7703a8f438SRoger Quadros #size-cells = <1>; 7803a8f438SRoger Quadros ranges; 7903a8f438SRoger Quadros 8003a8f438SRoger Quadros usbhsohci: ohci@4a064800 { 81*76ea4926SRob Herring compatible = "ti,ohci-omap3"; 8203a8f438SRoger Quadros reg = <0x4a064800 0x400>; 8303a8f438SRoger Quadros interrupt-parent = <&gic>; 8403a8f438SRoger Quadros interrupts = <0 76 0x4>; 8503a8f438SRoger Quadros }; 8603a8f438SRoger Quadros 8703a8f438SRoger Quadros usbhsehci: ehci@4a064c00 { 88*76ea4926SRob Herring compatible = "ti,ehci-omap"; 8903a8f438SRoger Quadros reg = <0x4a064c00 0x400>; 9003a8f438SRoger Quadros interrupt-parent = <&gic>; 9103a8f438SRoger Quadros interrupts = <0 77 0x4>; 9203a8f438SRoger Quadros }; 9303a8f438SRoger Quadros}; 9403a8f438SRoger Quadros 9503a8f438SRoger Quadros&usbhshost { 9603a8f438SRoger Quadros port1-mode = "ehci-phy"; 9703a8f438SRoger Quadros port2-mode = "ehci-tll"; 9803a8f438SRoger Quadros port3-mode = "ehci-phy"; 9903a8f438SRoger Quadros}; 10003a8f438SRoger Quadros 10103a8f438SRoger Quadros&usbhsehci { 10203a8f438SRoger Quadros phys = <&hsusb1_phy 0 &hsusb3_phy>; 10303a8f438SRoger Quadros}; 104