Skip to content

Commit 7d547c1

Browse files
Sutter099gregkh
authored andcommitted
dt-bindings: usb: dwc3: add support for SpacemiT K1
Add support for the USB 3.0 Dual-Role Device (DRD) controller embedded in the SpacemiT K1 SoC. The controller is based on the Synopsys DesignWare Core USB 3 (DWC3) IP, supporting USB3.0 host mode and USB 2.0 DRD mode. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Ze Huang <huang.ze@linux.dev> Link: https://lore.kernel.org/r/20250913-dwc3_generic-v8-1-b50f81f05f95@linux.dev Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20250913-dwc3_generic-v8-1-b50f81f05f95@linux.dev
1 parent 8f5ae30 commit 7d547c1

1 file changed

Lines changed: 121 additions & 0 deletions

File tree

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/usb/spacemit,k1-dwc3.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: SpacemiT K1 SuperSpeed DWC3 USB SoC Controller
8+
9+
maintainers:
10+
- Ze Huang <huang.ze@linux.dev>
11+
12+
description: |
13+
The SpacemiT K1 embeds a DWC3 USB IP Core which supports Host functions
14+
for USB 3.0 and DRD for USB 2.0.
15+
16+
Key features:
17+
- USB3.0 SuperSpeed and USB2.0 High/Full/Low-Speed support
18+
- Supports low-power modes (USB2.0 suspend, USB3.0 U1/U2/U3)
19+
- Internal DMA controller and flexible endpoint FIFO sizing
20+
21+
Communication Interface:
22+
- Use of PIPE3 (125MHz) interface for USB3.0 PHY
23+
- Use of UTMI+ (30/60MHz) interface for USB2.0 PHY
24+
25+
allOf:
26+
- $ref: snps,dwc3-common.yaml#
27+
28+
properties:
29+
compatible:
30+
const: spacemit,k1-dwc3
31+
32+
reg:
33+
maxItems: 1
34+
35+
clocks:
36+
maxItems: 1
37+
38+
clock-names:
39+
const: usbdrd30
40+
41+
interrupts:
42+
maxItems: 1
43+
44+
phys:
45+
items:
46+
- description: phandle to USB2/HS PHY
47+
- description: phandle to USB3/SS PHY
48+
49+
phy-names:
50+
items:
51+
- const: usb2-phy
52+
- const: usb3-phy
53+
54+
resets:
55+
items:
56+
- description: USB3.0 AHB reset
57+
- description: USB3.0 VCC reset
58+
- description: USB3.0 PHY reset
59+
60+
reset-names:
61+
items:
62+
- const: ahb
63+
- const: vcc
64+
- const: phy
65+
66+
reset-delay:
67+
$ref: /schemas/types.yaml#/definitions/uint32
68+
default: 2
69+
description: delay after reset sequence [us]
70+
71+
vbus-supply:
72+
description: A phandle to the regulator supplying the VBUS voltage.
73+
74+
required:
75+
- compatible
76+
- reg
77+
- clocks
78+
- clock-names
79+
- interrupts
80+
- phys
81+
- phy-names
82+
- resets
83+
- reset-names
84+
85+
unevaluatedProperties: false
86+
87+
examples:
88+
- |
89+
usb@c0a00000 {
90+
compatible = "spacemit,k1-dwc3";
91+
reg = <0xc0a00000 0x10000>;
92+
clocks = <&syscon_apmu 16>;
93+
clock-names = "usbdrd30";
94+
interrupts = <125>;
95+
phys = <&usb2phy>, <&usb3phy>;
96+
phy-names = "usb2-phy", "usb3-phy";
97+
resets = <&syscon_apmu 8>,
98+
<&syscon_apmu 9>,
99+
<&syscon_apmu 10>;
100+
reset-names = "ahb", "vcc", "phy";
101+
reset-delay = <2>;
102+
vbus-supply = <&usb3_vbus>;
103+
#address-cells = <1>;
104+
#size-cells = <0>;
105+
106+
hub_2_0: hub@1 {
107+
compatible = "usb2109,2817";
108+
reg = <1>;
109+
vdd-supply = <&usb3_vhub>;
110+
peer-hub = <&hub_3_0>;
111+
reset-gpios = <&gpio 3 28 1>;
112+
};
113+
114+
hub_3_0: hub@2 {
115+
compatible = "usb2109,817";
116+
reg = <2>;
117+
vdd-supply = <&usb3_vhub>;
118+
peer-hub = <&hub_2_0>;
119+
reset-gpios = <&gpio 3 28 1>;
120+
};
121+
};

0 commit comments

Comments
 (0)