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
12properties:
13  compatible:
14    oneOf:
15      - const: brcm,bcm2835-usb
16      - const: hisilicon,hi6220-usb
17      - items:
18          - const: rockchip,rk3066-usb
19          - const: snps,dwc2
20      - items:
21          - const: rockchip,px30-usb
22          - const: rockchip,rk3066-usb
23          - const: snps,dwc2
24      - items:
25          - const: rockchip,rk3036-usb
26          - const: rockchip,rk3066-usb
27          - const: snps,dwc2
28      - items:
29          - const: rockchip,rv1108-usb
30          - const: rockchip,rk3066-usb
31          - const: snps,dwc2
32      - items:
33          - const: rockchip,rk3188-usb
34          - const: rockchip,rk3066-usb
35          - const: snps,dwc2
36      - items:
37          - const: rockchip,rk3228-usb
38          - const: rockchip,rk3066-usb
39          - const: snps,dwc2
40      - items:
41          - const: rockchip,rk3288-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          - const: snps,dwc2
53      - const: amcc,dwc-otg
54      - const: snps,dwc2
55      - const: st,stm32f4x9-fsotg
56      - const: st,stm32f4x9-hsotg
57      - const: st,stm32f7-hsotg
58      - const: st,stm32mp15-fsotg
59      - const: st,stm32mp15-hsotg
60      - const: samsung,s3c6400-hsotg
61
62  reg:
63    maxItems: 1
64
65  interrupts:
66    maxItems: 1
67
68  clocks:
69    maxItems: 1
70
71  clock-names:
72    items:
73      - const: otg
74
75  resets:
76    items:
77     - description: common reset
78     - description: ecc reset
79    minItems: 1
80
81  reset-names:
82    items:
83     - const: dwc2
84     - const: dwc2-ecc
85    minItems: 1
86
87  phys:
88    maxItems: 1
89
90  phy-names:
91    const: usb2-phy
92
93  vbus-supply:
94    description: reference to the VBUS regulator. Depending on the current mode
95      this is enabled (in "host" mode") or disabled (in "peripheral" mode). The
96      regulator is updated if the controller is configured in "otg" mode and the
97      status changes between "host" and "peripheral".
98
99  vusb_d-supply:
100    description: phandle to voltage regulator of digital section,
101
102  vusb_a-supply:
103    description: phandle to voltage regulator of analog section.
104
105  vusb33d-supply:
106    description: reference to the VBUS and ID sensing comparators supply, in
107      order to perform OTG operation, used on STM32MP15 SoCs.
108
109  dr_mode:
110    enum: [host, peripheral, otg]
111
112  g-rx-fifo-size:
113    $ref: /schemas/types.yaml#/definitions/uint32
114    description: size of rx fifo size in gadget mode.
115
116  g-np-tx-fifo-size:
117    $ref: /schemas/types.yaml#/definitions/uint32
118    description: size of non-periodic tx fifo size in gadget mode.
119
120  g-tx-fifo-size:
121    $ref: /schemas/types.yaml#/definitions/uint32-array
122    description: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
123
124  snps,need-phy-for-wake:
125    $ref: /schemas/types.yaml#/definitions/flag
126    description: If present indicates that the phy needs to be left on for remote wakeup during suspend.
127
128  snps,reset-phy-on-wake:
129    $ref: /schemas/types.yaml#/definitions/flag
130    description: If present indicates that we need to reset the PHY when we detect a wakeup.
131                 This is due to a hardware errata.
132
133required:
134  - compatible
135  - reg
136  - interrupts
137  - clocks
138  - clock-names
139
140additionalProperties: false
141
142examples:
143  - |
144      usb@101c0000 {
145        compatible = "rockchip,rk3066-usb", "snps,dwc2";
146        reg = <0x10180000 0x40000>;
147        interrupts = <18>;
148        clocks = <&usb_otg_ahb_clk>;
149        clock-names = "otg";
150        phys = <&usbphy>;
151        phy-names = "usb2-phy";
152      };
153
154...
155