xref: /linux/Documentation/devicetree/bindings/usb/spacemit,k1-dwc3.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
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
7title: SpacemiT K1 SuperSpeed DWC3 USB SoC Controller
8
9maintainers:
10  - Ze Huang <huang.ze@linux.dev>
11
12description: |
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
25allOf:
26  - $ref: snps,dwc3-common.yaml#
27
28properties:
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
74required:
75  - compatible
76  - reg
77  - clocks
78  - clock-names
79  - interrupts
80  - phys
81  - phy-names
82  - resets
83  - reset-names
84
85unevaluatedProperties: false
86
87examples:
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    };
122