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