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