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