1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/dwc2.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: DesignWare HS OTG USB 2.0 controller
8
9maintainers:
10  - Rob Herring <robh@kernel.org>
11
12allOf:
13  - $ref: usb-drd.yaml#
14  - $ref: usb-hcd.yaml#
15
16properties:
17  compatible:
18    oneOf:
19      - const: brcm,bcm2835-usb
20      - const: hisilicon,hi6220-usb
21      - const: ingenic,jz4775-otg
22      - const: ingenic,jz4780-otg
23      - const: ingenic,x1000-otg
24      - const: ingenic,x1600-otg
25      - const: ingenic,x1700-otg
26      - const: ingenic,x1830-otg
27      - const: ingenic,x2000-otg
28      - items:
29          - const: rockchip,rk3066-usb
30          - const: snps,dwc2
31      - items:
32          - enum:
33              - rockchip,px30-usb
34              - rockchip,rk3036-usb
35              - rockchip,rk3128-usb
36              - rockchip,rk3188-usb
37              - rockchip,rk3228-usb
38              - rockchip,rk3288-usb
39              - rockchip,rk3308-usb
40              - rockchip,rk3328-usb
41              - rockchip,rk3368-usb
42              - rockchip,rv1108-usb
43          - const: rockchip,rk3066-usb
44          - const: snps,dwc2
45      - const: lantiq,arx100-usb
46      - const: lantiq,ase-usb
47      - const: lantiq,danube-usb
48      - const: lantiq,xrx200-usb
49      - const: lantiq,xrx300-usb
50      - items:
51          - enum:
52              - amlogic,meson8-usb
53              - amlogic,meson8b-usb
54              - amlogic,meson-gxbb-usb
55              - amlogic,meson-g12a-usb
56              - intel,socfpga-agilex-hsotg
57          - const: snps,dwc2
58      - const: amcc,dwc-otg
59      - const: apm,apm82181-dwc-otg
60      - const: snps,dwc2
61      - const: st,stm32f4x9-fsotg
62      - const: st,stm32f4x9-hsotg
63      - const: st,stm32f7-hsotg
64      - const: st,stm32mp15-fsotg
65      - items:
66          - const: st,stm32mp15-hsotg
67          - const: snps,dwc2
68      - const: samsung,s3c6400-hsotg
69      - const: intel,socfpga-agilex-hsotg
70
71  reg:
72    maxItems: 1
73
74  interrupts:
75    maxItems: 1
76
77  clocks:
78    maxItems: 1
79
80  clock-names:
81    items:
82      - const: otg
83
84  disable-over-current:
85    type: boolean
86    description: whether to disable detection of over-current condition.
87
88  iommus:
89    maxItems: 1
90
91  resets:
92    items:
93      - description: common reset
94      - description: ecc reset
95    minItems: 1
96
97  reset-names:
98    items:
99      - const: dwc2
100      - const: dwc2-ecc
101    minItems: 1
102
103  phys:
104    maxItems: 1
105
106  phy-names:
107    const: usb2-phy
108
109  power-domains:
110    maxItems: 1
111
112  vbus-supply:
113    description: reference to the VBUS regulator. Depending on the current mode
114      this is enabled (in "host" mode") or disabled (in "peripheral" mode). The
115      regulator is updated if the controller is configured in "otg" mode and the
116      status changes between "host" and "peripheral".
117
118  vusb_d-supply:
119    description: phandle to voltage regulator of digital section,
120
121  vusb_a-supply:
122    description: phandle to voltage regulator of analog section.
123
124  usb33d-supply:
125    description: reference to the VBUS and ID sensing comparators supply, in
126      order to perform OTG operation, used on STM32MP15 SoCs.
127
128  dr_mode: true
129
130  otg-rev: true
131
132  hnp-disable: true
133
134  srp-disable: true
135
136  usb-role-switch: true
137
138  role-switch-default-mode: true
139
140  g-rx-fifo-size:
141    $ref: /schemas/types.yaml#/definitions/uint32
142    description: size of rx fifo size in gadget mode.
143
144  g-np-tx-fifo-size:
145    $ref: /schemas/types.yaml#/definitions/uint32
146    description: size of non-periodic tx fifo size in gadget mode.
147
148  g-tx-fifo-size:
149    $ref: /schemas/types.yaml#/definitions/uint32-array
150    description: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
151
152  snps,need-phy-for-wake:
153    $ref: /schemas/types.yaml#/definitions/flag
154    description: If present indicates that the phy needs to be left on for
155      remote wakeup during suspend.
156
157  snps,reset-phy-on-wake:
158    $ref: /schemas/types.yaml#/definitions/flag
159    description: If present indicates that we need to reset the PHY when we
160      detect a wakeup. This is due to a hardware errata.
161
162  port:
163    description:
164      Any connector to the data bus of this controller should be modelled
165      using the OF graph bindings specified, if the "usb-role-switch"
166      property is used.
167    $ref: /schemas/graph.yaml#/properties/port
168
169  tpl-support: true
170
171dependencies:
172  port: [ usb-role-switch ]
173  role-switch-default-mode: [ usb-role-switch ]
174
175required:
176  - compatible
177  - reg
178  - interrupts
179  - clocks
180  - clock-names
181
182additionalProperties: false
183
184examples:
185  - |
186      usb@101c0000 {
187        compatible = "rockchip,rk3066-usb", "snps,dwc2";
188        reg = <0x10180000 0x40000>;
189        interrupts = <18>;
190        clocks = <&usb_otg_ahb_clk>;
191        clock-names = "otg";
192        phys = <&usbphy>;
193        phy-names = "usb2-phy";
194      };
195
196...
197