GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / usb / dwc2.yaml
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
7 title: DesignWare HS OTG USB 2.0 controller Bindings
8
9 maintainers:
10   - Rob Herring <robh@kernel.org>
11
12 allOf:
13   - $ref: usb-drd.yaml#
14   - $ref: usb-hcd.yaml#
15
16 properties:
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
168 dependencies:
169   port: [ usb-role-switch ]
170   role-switch-default-mode: [ usb-role-switch ]
171
172 required:
173   - compatible
174   - reg
175   - interrupts
176   - clocks
177   - clock-names
178
179 additionalProperties: false
180
181 examples:
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 ...