1*2f8e9284SJohan Jonker# SPDX-License-Identifier: GPL-2.0
2*2f8e9284SJohan Jonker%YAML 1.2
3*2f8e9284SJohan Jonker---
4*2f8e9284SJohan Jonker$id: http://devicetree.org/schemas/usb/rockchip,dwc3.yaml#
5*2f8e9284SJohan Jonker$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2f8e9284SJohan Jonker
7*2f8e9284SJohan Jonkertitle: Rockchip SuperSpeed DWC3 USB SoC controller
8*2f8e9284SJohan Jonker
9*2f8e9284SJohan Jonkermaintainers:
10*2f8e9284SJohan Jonker  - Heiko Stuebner <heiko@sntech.de>
11*2f8e9284SJohan Jonker
12*2f8e9284SJohan Jonkerdescription:
13*2f8e9284SJohan Jonker  The common content of the node is defined in snps,dwc3.yaml.
14*2f8e9284SJohan Jonker
15*2f8e9284SJohan Jonker  Phy documentation is provided in the following places.
16*2f8e9284SJohan Jonker
17*2f8e9284SJohan Jonker  USB2.0 PHY
18*2f8e9284SJohan Jonker  Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml
19*2f8e9284SJohan Jonker
20*2f8e9284SJohan Jonker  Type-C PHY
21*2f8e9284SJohan Jonker  Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt
22*2f8e9284SJohan Jonker
23*2f8e9284SJohan JonkerallOf:
24*2f8e9284SJohan Jonker  - $ref: snps,dwc3.yaml#
25*2f8e9284SJohan Jonker
26*2f8e9284SJohan Jonkerselect:
27*2f8e9284SJohan Jonker  properties:
28*2f8e9284SJohan Jonker    compatible:
29*2f8e9284SJohan Jonker      contains:
30*2f8e9284SJohan Jonker        enum:
31*2f8e9284SJohan Jonker          - rockchip,rk3399-dwc3
32*2f8e9284SJohan Jonker  required:
33*2f8e9284SJohan Jonker    - compatible
34*2f8e9284SJohan Jonker
35*2f8e9284SJohan Jonkerproperties:
36*2f8e9284SJohan Jonker  compatible:
37*2f8e9284SJohan Jonker    items:
38*2f8e9284SJohan Jonker      - enum:
39*2f8e9284SJohan Jonker          - rockchip,rk3399-dwc3
40*2f8e9284SJohan Jonker      - const: snps,dwc3
41*2f8e9284SJohan Jonker
42*2f8e9284SJohan Jonker  reg:
43*2f8e9284SJohan Jonker    maxItems: 1
44*2f8e9284SJohan Jonker
45*2f8e9284SJohan Jonker  interrupts:
46*2f8e9284SJohan Jonker    maxItems: 1
47*2f8e9284SJohan Jonker
48*2f8e9284SJohan Jonker  clocks:
49*2f8e9284SJohan Jonker    items:
50*2f8e9284SJohan Jonker      - description:
51*2f8e9284SJohan Jonker          Controller reference clock, must to be 24 MHz
52*2f8e9284SJohan Jonker      - description:
53*2f8e9284SJohan Jonker          Controller suspend clock, must to be 24 MHz or 32 KHz
54*2f8e9284SJohan Jonker      - description:
55*2f8e9284SJohan Jonker          Master/Core clock, must to be >= 62.5 MHz for SS
56*2f8e9284SJohan Jonker          operation and >= 30MHz for HS operation
57*2f8e9284SJohan Jonker      - description:
58*2f8e9284SJohan Jonker          Controller grf clock
59*2f8e9284SJohan Jonker
60*2f8e9284SJohan Jonker  clock-names:
61*2f8e9284SJohan Jonker    items:
62*2f8e9284SJohan Jonker      - const: ref_clk
63*2f8e9284SJohan Jonker      - const: suspend_clk
64*2f8e9284SJohan Jonker      - const: bus_clk
65*2f8e9284SJohan Jonker      - const: grf_clk
66*2f8e9284SJohan Jonker
67*2f8e9284SJohan Jonker  power-domains:
68*2f8e9284SJohan Jonker    maxItems: 1
69*2f8e9284SJohan Jonker
70*2f8e9284SJohan Jonker  resets:
71*2f8e9284SJohan Jonker    maxItems: 1
72*2f8e9284SJohan Jonker
73*2f8e9284SJohan Jonker  reset-names:
74*2f8e9284SJohan Jonker    const: usb3-otg
75*2f8e9284SJohan Jonker
76*2f8e9284SJohan JonkerunevaluatedProperties: false
77*2f8e9284SJohan Jonker
78*2f8e9284SJohan Jonkerrequired:
79*2f8e9284SJohan Jonker  - compatible
80*2f8e9284SJohan Jonker  - reg
81*2f8e9284SJohan Jonker  - interrupts
82*2f8e9284SJohan Jonker  - clocks
83*2f8e9284SJohan Jonker  - clock-names
84*2f8e9284SJohan Jonker
85*2f8e9284SJohan Jonkerexamples:
86*2f8e9284SJohan Jonker  - |
87*2f8e9284SJohan Jonker    #include <dt-bindings/clock/rk3399-cru.h>
88*2f8e9284SJohan Jonker    #include <dt-bindings/interrupt-controller/arm-gic.h>
89*2f8e9284SJohan Jonker
90*2f8e9284SJohan Jonker    bus {
91*2f8e9284SJohan Jonker      #address-cells = <2>;
92*2f8e9284SJohan Jonker      #size-cells = <2>;
93*2f8e9284SJohan Jonker
94*2f8e9284SJohan Jonker      usbdrd3_0: usb@fe800000 {
95*2f8e9284SJohan Jonker        compatible = "rockchip,rk3399-dwc3", "snps,dwc3";
96*2f8e9284SJohan Jonker        reg = <0x0 0xfe800000 0x0 0x100000>;
97*2f8e9284SJohan Jonker        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
98*2f8e9284SJohan Jonker        clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
99*2f8e9284SJohan Jonker                 <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_GRF>;
100*2f8e9284SJohan Jonker        clock-names = "ref_clk", "suspend_clk",
101*2f8e9284SJohan Jonker                      "bus_clk", "grf_clk";
102*2f8e9284SJohan Jonker        dr_mode = "otg";
103*2f8e9284SJohan Jonker      };
104*2f8e9284SJohan Jonker    };
105