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