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              - amlogic,meson-a1-usb
57              - intel,socfpga-agilex-hsotg
58          - const: snps,dwc2
59      - const: amcc,dwc-otg
60      - const: apm,apm82181-dwc-otg
61      - const: snps,dwc2
62      - const: st,stm32f4x9-fsotg
63      - const: st,stm32f4x9-hsotg
64      - const: st,stm32f7-hsotg
65      - const: st,stm32mp15-fsotg
66      - items:
67          - const: st,stm32mp15-hsotg
68          - const: snps,dwc2
69      - const: samsung,s3c6400-hsotg
70      - const: intel,socfpga-agilex-hsotg
71
72  reg:
73    maxItems: 1
74
75  interrupts:
76    maxItems: 1
77
78  clocks:
79    minItems: 1
80    maxItems: 2
81
82  clock-names:
83    items:
84      - const: otg
85      - const: utmi
86    minItems: 1
87
88  disable-over-current:
89    type: boolean
90    description: whether to disable detection of over-current condition.
91
92  iommus:
93    maxItems: 1
94
95  resets:
96    items:
97      - description: common reset
98      - description: ecc reset
99    minItems: 1
100
101  reset-names:
102    items:
103      - const: dwc2
104      - const: dwc2-ecc
105    minItems: 1
106
107  phys:
108    maxItems: 1
109
110  phy-names:
111    const: usb2-phy
112
113  power-domains:
114    maxItems: 1
115
116  vbus-supply:
117    description: reference to the VBUS regulator. Depending on the current mode
118      this is enabled (in "host" mode") or disabled (in "peripheral" mode). The
119      regulator is updated if the controller is configured in "otg" mode and the
120      status changes between "host" and "peripheral".
121
122  vusb_d-supply:
123    description: phandle to voltage regulator of digital section,
124
125  vusb_a-supply:
126    description: phandle to voltage regulator of analog section.
127
128  usb33d-supply:
129    description: reference to the VBUS and ID sensing comparators supply, in
130      order to perform OTG operation, used on STM32MP15 SoCs.
131
132  dr_mode: true
133
134  otg-rev: true
135
136  hnp-disable: true
137
138  srp-disable: true
139
140  usb-role-switch: true
141
142  role-switch-default-mode: true
143
144  g-rx-fifo-size:
145    $ref: /schemas/types.yaml#/definitions/uint32
146    description: size of rx fifo size in gadget mode.
147
148  g-np-tx-fifo-size:
149    $ref: /schemas/types.yaml#/definitions/uint32
150    description: size of non-periodic tx fifo size in gadget mode.
151
152  g-tx-fifo-size:
153    $ref: /schemas/types.yaml#/definitions/uint32-array
154    description: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
155
156  snps,need-phy-for-wake:
157    $ref: /schemas/types.yaml#/definitions/flag
158    description: If present indicates that the phy needs to be left on for
159      remote wakeup during suspend.
160
161  snps,reset-phy-on-wake:
162    $ref: /schemas/types.yaml#/definitions/flag
163    description: If present indicates that we need to reset the PHY when we
164      detect a wakeup. This is due to a hardware errata.
165
166  port:
167    description:
168      Any connector to the data bus of this controller should be modelled
169      using the OF graph bindings specified, if the "usb-role-switch"
170      property is used.
171    $ref: /schemas/graph.yaml#/properties/port
172
173  tpl-support: true
174
175dependencies:
176  port: [ usb-role-switch ]
177  role-switch-default-mode: [ usb-role-switch ]
178
179required:
180  - compatible
181  - reg
182  - interrupts
183  - clocks
184  - clock-names
185
186additionalProperties: false
187
188examples:
189  - |
190      usb@101c0000 {
191        compatible = "rockchip,rk3066-usb", "snps,dwc2";
192        reg = <0x10180000 0x40000>;
193        interrupts = <18>;
194        clocks = <&usb_otg_ahb_clk>;
195        clock-names = "otg";
196        phys = <&usbphy>;
197        phy-names = "usb2-phy";
198      };
199
200...
201