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          - const: amlogic,meson8-usb
48          - const: snps,dwc2
49      - items:
50          - const: amlogic,meson8b-usb
51          - const: snps,dwc2
52      - const: amlogic,meson-gxbb-usb
53      - items:
54          - const: amlogic,meson-g12a-usb
55          - const: snps,dwc2
56      - const: amcc,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      - const: st,stm32mp15-hsotg
63      - const: samsung,s3c6400-hsotg
64
65  reg:
66    maxItems: 1
67
68  interrupts:
69    maxItems: 1
70
71  clocks:
72    maxItems: 1
73
74  clock-names:
75    items:
76      - const: otg
77
78  resets:
79    items:
80     - description: common reset
81     - description: ecc reset
82    minItems: 1
83
84  reset-names:
85    items:
86     - const: dwc2
87     - const: dwc2-ecc
88    minItems: 1
89
90  phys:
91    maxItems: 1
92
93  phy-names:
94    const: usb2-phy
95
96  vbus-supply:
97    description: reference to the VBUS regulator. Depending on the current mode
98      this is enabled (in "host" mode") or disabled (in "peripheral" mode). The
99      regulator is updated if the controller is configured in "otg" mode and the
100      status changes between "host" and "peripheral".
101
102  vusb_d-supply:
103    description: phandle to voltage regulator of digital section,
104
105  vusb_a-supply:
106    description: phandle to voltage regulator of analog section.
107
108  vusb33d-supply:
109    description: reference to the VBUS and ID sensing comparators supply, in
110      order to perform OTG operation, used on STM32MP15 SoCs.
111
112  dr_mode:
113    enum: [host, peripheral, otg]
114
115  g-rx-fifo-size:
116    $ref: /schemas/types.yaml#/definitions/uint32
117    description: size of rx fifo size in gadget mode.
118
119  g-np-tx-fifo-size:
120    $ref: /schemas/types.yaml#/definitions/uint32
121    description: size of non-periodic tx fifo size in gadget mode.
122
123  g-tx-fifo-size:
124    $ref: /schemas/types.yaml#/definitions/uint32-array
125    description: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
126
127  snps,need-phy-for-wake:
128    $ref: /schemas/types.yaml#/definitions/flag
129    description: If present indicates that the phy needs to be left on for remote wakeup during suspend.
130
131  snps,reset-phy-on-wake:
132    $ref: /schemas/types.yaml#/definitions/flag
133    description: If present indicates that we need to reset the PHY when we detect a wakeup.
134                 This is due to a hardware errata.
135
136required:
137  - compatible
138  - reg
139  - interrupts
140  - clocks
141  - clock-names
142
143additionalProperties: false
144
145examples:
146  - |
147      usb@101c0000 {
148        compatible = "rockchip,rk3066-usb", "snps,dwc2";
149        reg = <0x10180000 0x40000>;
150        interrupts = <18>;
151        clocks = <&usb_otg_ahb_clk>;
152        clock-names = "otg";
153        phys = <&usbphy>;
154        phy-names = "usb2-phy";
155      };
156
157...
158