Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: dwc3: qcom: Add device tree binding

QCOM USB3.0 core wrapper consist of USB3.0 IP from Synopsys
(SNPS) and HS, SS PHY's control and configuration registers.

It could operate in device mode (SS, HS, FS) and host
mode (SS, HS, FS, LS).

Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
Signed-off-by: Andy Gross <agross@codeaurora.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>

authored by

Ivan T. Ivanov and committed by
Felipe Balbi
bbfc6cb7 974a70bd

+105
+39
Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt
··· 1 + Qualcomm DWC3 HS AND SS PHY CONTROLLER 2 + -------------------------------------- 3 + 4 + DWC3 PHY nodes are defined to describe on-chip Synopsis Physical layer 5 + controllers. Each DWC3 PHY controller should have its own node. 6 + 7 + Required properties: 8 + - compatible: should contain one of the following: 9 + - "qcom,dwc3-hs-usb-phy" for High Speed Synopsis PHY controller 10 + - "qcom,dwc3-ss-usb-phy" for Super Speed Synopsis PHY controller 11 + - reg: offset and length of the DWC3 PHY controller register set 12 + - #phy-cells: must be zero 13 + - clocks: a list of phandles and clock-specifier pairs, one for each entry in 14 + clock-names. 15 + - clock-names: Should contain "ref" for the PHY reference clock 16 + 17 + Optional clocks: 18 + "xo" External reference clock 19 + 20 + Example: 21 + phy@100f8800 { 22 + compatible = "qcom,dwc3-hs-usb-phy"; 23 + reg = <0x100f8800 0x30>; 24 + clocks = <&gcc USB30_0_UTMI_CLK>; 25 + clock-names = "ref"; 26 + #phy-cells = <0>; 27 + 28 + status = "ok"; 29 + }; 30 + 31 + phy@100f8830 { 32 + compatible = "qcom,dwc3-ss-usb-phy"; 33 + reg = <0x100f8830 0x30>; 34 + clocks = <&gcc USB30_0_MASTER_CLK>; 35 + clock-names = "ref"; 36 + #phy-cells = <0>; 37 + 38 + status = "ok"; 39 + };
+66
Documentation/devicetree/bindings/usb/qcom,dwc3.txt
··· 1 + Qualcomm SuperSpeed DWC3 USB SoC controller 2 + 3 + Required properties: 4 + - compatible: should contain "qcom,dwc3" 5 + - clocks: A list of phandle + clock-specifier pairs for the 6 + clocks listed in clock-names 7 + - clock-names: Should contain the following: 8 + "core" Master/Core clock, have to be >= 125 MHz for SS 9 + operation and >= 60MHz for HS operation 10 + 11 + Optional clocks: 12 + "iface" System bus AXI clock. Not present on all platforms 13 + "sleep" Sleep clock, used when USB3 core goes into low 14 + power mode (U3). 15 + 16 + Required child node: 17 + A child node must exist to represent the core DWC3 IP block. The name of 18 + the node is not important. The content of the node is defined in dwc3.txt. 19 + 20 + Phy documentation is provided in the following places: 21 + Documentation/devicetree/bindings/phy/qcom,dwc3-usb-phy.txt 22 + 23 + Example device nodes: 24 + 25 + hs_phy: phy@100f8800 { 26 + compatible = "qcom,dwc3-hs-usb-phy"; 27 + reg = <0x100f8800 0x30>; 28 + clocks = <&gcc USB30_0_UTMI_CLK>; 29 + clock-names = "ref"; 30 + #phy-cells = <0>; 31 + 32 + status = "ok"; 33 + }; 34 + 35 + ss_phy: phy@100f8830 { 36 + compatible = "qcom,dwc3-ss-usb-phy"; 37 + reg = <0x100f8830 0x30>; 38 + clocks = <&gcc USB30_0_MASTER_CLK>; 39 + clock-names = "ref"; 40 + #phy-cells = <0>; 41 + 42 + status = "ok"; 43 + }; 44 + 45 + usb3_0: usb30@0 { 46 + compatible = "qcom,dwc3"; 47 + #address-cells = <1>; 48 + #size-cells = <1>; 49 + clocks = <&gcc USB30_0_MASTER_CLK>; 50 + clock-names = "core"; 51 + 52 + ranges; 53 + 54 + status = "ok"; 55 + 56 + dwc3@10000000 { 57 + compatible = "snps,dwc3"; 58 + reg = <0x10000000 0xcd00>; 59 + interrupts = <0 205 0x4>; 60 + phys = <&hs_phy>, <&ss_phy>; 61 + phy-names = "usb2-phy", "usb3-phy"; 62 + tx-fifo-resize; 63 + dr_mode = "host"; 64 + }; 65 + }; 66 +