Skip to content

Commit c18aba9

Browse files
Manu GautamFelipe Balbi
authored andcommitted
dt-bindings: usb: Update documentation for Qualcomm DWC3 driver
Existing documentation has lot of incorrect information as it was originally added for a driver that no longer exists. Signed-off-by: Manu Gautam <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Felipe Balbi <[email protected]>
1 parent e362098 commit c18aba9

File tree

1 file changed

+63
-22
lines changed

1 file changed

+63
-22
lines changed

Documentation/devicetree/bindings/usb/qcom,dwc3.txt

Lines changed: 63 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,95 @@
11
Qualcomm SuperSpeed DWC3 USB SoC controller
22

33
Required properties:
4-
- compatible: should contain "qcom,dwc3"
4+
- compatible: Compatible list, contains
5+
"qcom,dwc3"
6+
"qcom,msm8996-dwc3" for msm8996 SOC.
7+
"qcom,sdm845-dwc3" for sdm845 SOC.
8+
- reg: Offset and length of register set for QSCRATCH wrapper
9+
- power-domains: specifies a phandle to PM domain provider node
510
- clocks: A list of phandle + clock-specifier pairs for the
611
clocks listed in clock-names
7-
- clock-names: Should contain the following:
12+
- clock-names: Should contain the following:
813
"core" Master/Core clock, have to be >= 125 MHz for SS
914
operation and >= 60MHz for HS operation
15+
"mock_utmi" Mock utmi clock needed for ITP/SOF generation in
16+
host mode. Its frequency should be 19.2MHz.
17+
"sleep" Sleep clock, used for wakeup when USB3 core goes
18+
into low power mode (U3).
1019

1120
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).
21+
"iface" System bus AXI clock.
22+
Not present on "qcom,msm8996-dwc3" compatible.
23+
"cfg_noc" System Config NOC clock.
24+
Not present on "qcom,msm8996-dwc3" compatible.
25+
- assigned-clocks: Should be:
26+
MOCK_UTMI_CLK
27+
MASTER_CLK
28+
- assigned-clock-rates: Should be:
29+
19.2Mhz (192000000) for MOCK_UTMI_CLK
30+
>=125Mhz (125000000) for MASTER_CLK in SS mode
31+
>=60Mhz (60000000) for MASTER_CLK in HS mode
32+
33+
Optional properties:
34+
- resets: Phandle to reset control that resets core and wrapper.
35+
- interrupts: specifies interrupts from controller wrapper used
36+
to wakeup from low power/susepnd state. Must contain
37+
one or more entry for interrupt-names property
38+
- interrupt-names: Must include the following entries:
39+
- "hs_phy_irq": The interrupt that is asserted when a
40+
wakeup event is received on USB2 bus
41+
- "ss_phy_irq": The interrupt that is asserted when a
42+
wakeup event is received on USB3 bus
43+
- "dm_hs_phy_irq" and "dp_hs_phy_irq": Separate
44+
interrupts for any wakeup event on DM and DP lines
45+
- qcom,select-utmi-as-pipe-clk: if present, disable USB3 pipe_clk requirement.
46+
Used when dwc3 operates without SSPHY and only
47+
HS/FS/LS modes are supported.
1548

1649
Required child node:
1750
A child node must exist to represent the core DWC3 IP block. The name of
1851
the node is not important. The content of the node is defined in dwc3.txt.
1952

2053
Phy documentation is provided in the following places:
21-
Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt
54+
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
55+
Documentation/devicetree/bindings/phy/qcom-qusb2-phy.txt - USB2 QUSB2 PHY
2256

2357
Example device nodes:
2458

2559
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-
60+
compatible = "qcom,qusb2-v2-phy";
61+
...
3262
};
3363

3464
ss_phy: phy@100f8830 {
35-
compatible = "qcom,dwc3-ss-usb-phy";
36-
reg = <0x100f8830 0x30>;
37-
clocks = <&gcc USB30_0_MASTER_CLK>;
38-
clock-names = "ref";
39-
#phy-cells = <0>;
40-
65+
compatible = "qcom,qmp-v3-usb3-phy";
66+
...
4167
};
4268

43-
usb3_0: usb30@0 {
69+
usb3_0: usb30@a6f8800 {
4470
compatible = "qcom,dwc3";
71+
reg = <0xa6f8800 0x400>;
4572
#address-cells = <1>;
4673
#size-cells = <1>;
47-
clocks = <&gcc USB30_0_MASTER_CLK>;
48-
clock-names = "core";
49-
5074
ranges;
5175

76+
interrupts = <0 131 0>, <0 486 0>, <0 488 0>, <0 489 0>;
77+
interrupt-names = "hs_phy_irq", "ss_phy_irq",
78+
"dm_hs_phy_irq", "dp_hs_phy_irq";
79+
80+
clocks = <&gcc GCC_USB30_PRIM_MASTER_CLK>,
81+
<&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
82+
<&gcc GCC_USB30_PRIM_SLEEP_CLK>;
83+
clock-names = "core", "mock_utmi", "sleep";
84+
85+
assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
86+
<&gcc GCC_USB30_PRIM_MASTER_CLK>;
87+
assigned-clock-rates = <19200000>, <133000000>;
88+
89+
resets = <&gcc GCC_USB30_PRIM_BCR>;
90+
reset-names = "core_reset";
91+
power-domains = <&gcc USB30_PRIM_GDSC>;
92+
qcom,select-utmi-as-pipe-clk;
5293

5394
dwc3@10000000 {
5495
compatible = "snps,dwc3";

0 commit comments

Comments
 (0)