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