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