~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/usb/snps,dwc3.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/usb/snps,dwc3.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Synopsys DesignWare USB3 Controller
  8 
  9 maintainers:
 10   - Felipe Balbi <balbi@kernel.org>
 11 
 12 description:
 13   This is usually a subnode to DWC3 glue to which it is connected, but can also
 14   be presented as a standalone DT node with an optional vendor-specific
 15   compatible string.
 16 
 17 allOf:
 18   - $ref: usb-drd.yaml#
 19   - if:
 20       properties:
 21         dr_mode:
 22           const: peripheral
 23 
 24       required:
 25         - dr_mode
 26     then:
 27       $ref: usb.yaml#
 28     else:
 29       $ref: usb-xhci.yaml#
 30 
 31 properties:
 32   compatible:
 33     contains:
 34       oneOf:
 35         - const: snps,dwc3
 36         - const: synopsys,dwc3
 37           deprecated: true
 38 
 39   reg:
 40     maxItems: 1
 41 
 42   interrupts:
 43     description:
 44       It's either a single common DWC3 interrupt (dwc_usb3) or individual
 45       interrupts for the host, gadget and DRD modes.
 46     minItems: 1
 47     maxItems: 4
 48 
 49   interrupt-names:
 50     minItems: 1
 51     maxItems: 4
 52     oneOf:
 53       - const: dwc_usb3
 54       - items:
 55           enum: [host, peripheral, otg, wakeup]
 56 
 57   clocks:
 58     description:
 59       In general the core supports three types of clocks. bus_early is a
 60       SoC Bus Clock (AHB/AXI/Native). ref generates ITP when the UTMI/ULPI
 61       PHY is suspended. suspend clocks a small part of the USB3 core when
 62       SS PHY in P3. But particular cases may differ from that having less
 63       or more clock sources with another names.
 64 
 65   clock-names:
 66     contains:
 67       anyOf:
 68         - enum: [bus_early, ref, suspend]
 69         - true
 70 
 71   dma-coherent: true
 72 
 73   extcon:
 74     maxItems: 1
 75     deprecated: true
 76 
 77   iommus:
 78     maxItems: 1
 79 
 80   usb-phy:
 81     minItems: 1
 82     items:
 83       - description: USB2/HS PHY
 84       - description: USB3/SS PHY
 85 
 86   phys:
 87     minItems: 1
 88     maxItems: 19
 89 
 90   phy-names:
 91     minItems: 1
 92     maxItems: 19
 93     oneOf:
 94       - items:
 95           enum: [ usb2-phy, usb3-phy ]
 96       - items:
 97           pattern: "^usb(2-([0-9]|1[0-4])|3-[0-3])$"
 98 
 99   power-domains:
100     description:
101       The DWC3 has 2 power-domains. The power management unit (PMU) and
102       everything else. The PMU is typically always powered and may not have an
103       entry.
104     minItems: 1
105     items:
106       - description: Core
107       - description: Power management unit
108 
109   resets:
110     minItems: 1
111 
112   snps,usb2-lpm-disable:
113     description: Indicate if we don't want to enable USB2 HW LPM for host
114       mode.
115     type: boolean
116 
117   snps,usb3_lpm_capable:
118     description: Determines if platform is USB3 LPM capable
119     type: boolean
120 
121   snps,usb2-gadget-lpm-disable:
122     description: Indicate if we don't want to enable USB2 HW LPM for gadget
123       mode.
124     type: boolean
125 
126   snps,dis-start-transfer-quirk:
127     description:
128       When set, disable isoc START TRANSFER command failure SW work-around
129       for DWC_usb31 version 1.70a-ea06 and prior.
130     type: boolean
131 
132   snps,disable_scramble_quirk:
133     description:
134       True when SW should disable data scrambling. Only really useful for FPGA
135       builds.
136     type: boolean
137 
138   snps,has-lpm-erratum:
139     description: True when DWC3 was configured with LPM Erratum enabled
140     type: boolean
141 
142   snps,lpm-nyet-threshold:
143     description: LPM NYET threshold
144     $ref: /schemas/types.yaml#/definitions/uint8
145 
146   snps,u2exit_lfps_quirk:
147     description: Set if we want to enable u2exit lfps quirk
148     type: boolean
149 
150   snps,u2ss_inp3_quirk:
151     description: Set if we enable P3 OK for U2/SS Inactive quirk
152     type: boolean
153 
154   snps,req_p1p2p3_quirk:
155     description:
156       When set, the core will always request for P1/P2/P3 transition sequence.
157     type: boolean
158 
159   snps,del_p1p2p3_quirk:
160     description:
161       When set core will delay P1/P2/P3 until a certain amount of 8B10B errors
162       occur.
163     type: boolean
164 
165   snps,del_phy_power_chg_quirk:
166     description: When set core will delay PHY power change from P0 to P1/P2/P3.
167     type: boolean
168 
169   snps,lfps_filter_quirk:
170     description: When set core will filter LFPS reception.
171     type: boolean
172 
173   snps,rx_detect_poll_quirk:
174     description:
175       when set core will disable a 400us delay to start Polling LFPS after
176       RX.Detect.
177     type: boolean
178 
179   snps,tx_de_emphasis_quirk:
180     description: When set core will set Tx de-emphasis value
181     type: boolean
182 
183   snps,tx_de_emphasis:
184     description:
185       The value driven to the PHY is controlled by the LTSSM during USB3
186       Compliance mode.
187     $ref: /schemas/types.yaml#/definitions/uint8
188     enum:
189       - 0 # -6dB de-emphasis
190       - 1 # -3.5dB de-emphasis
191       - 2 # No de-emphasis
192 
193   snps,dis_u3_susphy_quirk:
194     description: When set core will disable USB3 suspend phy
195     type: boolean
196 
197   snps,dis_u2_susphy_quirk:
198     description: When set core will disable USB2 suspend phy
199     type: boolean
200 
201   snps,dis_enblslpm_quirk:
202     description:
203       When set clears the enblslpm in GUSB2PHYCFG, disabling the suspend signal
204       to the PHY.
205     type: boolean
206 
207   snps,dis-u1-entry-quirk:
208     description: Set if link entering into U1 needs to be disabled
209     type: boolean
210 
211   snps,dis-u2-entry-quirk:
212     description: Set if link entering into U2 needs to be disabled
213     type: boolean
214 
215   snps,dis_rxdet_inp3_quirk:
216     description:
217       When set core will disable receiver detection in PHY P3 power state.
218     type: boolean
219 
220   snps,dis-u2-freeclk-exists-quirk:
221     description:
222       When set, clear the u2_freeclk_exists in GUSB2PHYCFG, specify that USB2
223       PHY doesn't provide a free-running PHY clock.
224     type: boolean
225 
226   snps,dis-del-phy-power-chg-quirk:
227     description:
228       When set core will change PHY power from P0 to P1/P2/P3 without delay.
229     type: boolean
230 
231   snps,dis-tx-ipgap-linecheck-quirk:
232     description: When set, disable u2mac linestate check during HS transmit
233     type: boolean
234 
235   snps,parkmode-disable-ss-quirk:
236     description:
237       When set, all SuperSpeed bus instances in park mode are disabled.
238     type: boolean
239 
240   snps,parkmode-disable-hs-quirk:
241     description:
242       When set, all HighSpeed bus instances in park mode are disabled.
243     type: boolean
244 
245   snps,dis_metastability_quirk:
246     description:
247       When set, disable metastability workaround. CAUTION! Use only if you are
248       absolutely sure of it.
249     type: boolean
250 
251   snps,dis-split-quirk:
252     description:
253       When set, change the way URBs are handled by the driver. Needed to
254       avoid -EPROTO errors with usbhid on some devices (Hikey 970).
255     type: boolean
256 
257   snps,gfladj-refclk-lpm-sel-quirk:
258     description:
259       When set, run the SOF/ITP counter based on ref_clk.
260     type: boolean
261 
262   snps,resume-hs-terminations:
263     description:
264       Fix the issue of HS terminations CRC error on resume by enabling this
265       quirk. When set, all the termsel, xcvrsel, opmode becomes 0 during end
266       of resume. This option is to support certain legacy ULPI PHYs.
267     type: boolean
268 
269   snps,ulpi-ext-vbus-drv:
270     description:
271       Some ULPI USB PHY does not support internal VBUS supply, and driving
272       the CPEN pin, requires the configuration of the ulpi DRVVBUSEXTERNAL
273       bit. When set, the xhci host will configure the USB2 PHY drives VBUS
274       with an external supply.
275     type: boolean
276 
277   snps,is-utmi-l1-suspend:
278     description:
279       True when DWC3 asserts output signal utmi_l1_suspend_n, false when
280       asserts utmi_sleep_n.
281     type: boolean
282 
283   snps,hird-threshold:
284     description: HIRD threshold
285     $ref: /schemas/types.yaml#/definitions/uint8
286 
287   snps,hsphy_interface:
288     description:
289       High-Speed PHY interface selection between UTMI+ and ULPI when the
290       DWC_USB3_HSPHY_INTERFACE has value 3.
291     $ref: /schemas/types.yaml#/definitions/string
292     enum: [utmi, ulpi]
293 
294   snps,quirk-frame-length-adjustment:
295     description:
296       Value for GFLADJ_30MHZ field of GFLADJ register for post-silicon frame
297       length adjustment when the fladj_30mhz_sdbnd signal is invalid or
298       incorrect.
299     $ref: /schemas/types.yaml#/definitions/uint32
300     minimum: 0
301     maximum: 0x3f
302 
303   snps,ref-clock-period-ns:
304     description:
305       Value for REFCLKPER field of GUCTL register for reference clock period in
306       nanoseconds, when the hardware set default does not match the actual
307       clock.
308 
309       This binding is deprecated. Instead, provide an appropriate reference clock.
310     minimum: 8
311     maximum: 62
312     deprecated: true
313 
314   snps,rx-thr-num-pkt:
315     description:
316       USB RX packet threshold count. In host mode, this field specifies
317       the space that must be available in the RX FIFO before the core can
318       start the corresponding USB RX transaction (burst).
319       In device mode, this field specifies the space that must be
320       available in the RX FIFO before the core can send ERDY for a
321       flow-controlled endpoint. It is only used for SuperSpeed.
322       The valid values for this field are from 1 to 15. (DWC3 SuperSpeed
323       USB 3.0 Controller Databook)
324     $ref: /schemas/types.yaml#/definitions/uint8
325     minimum: 1
326     maximum: 15
327 
328   snps,rx-max-burst:
329     description:
330       Max USB RX burst size. In host mode, this field specifies the
331       Maximum Bulk IN burst the DWC_usb3 core can perform. When the system
332       bus is slower than the USB, RX FIFO can overrun during a long burst.
333       You can program a smaller value to this field to limit the RX burst
334       size that the core can perform. It only applies to SS Bulk,
335       Isochronous, and Interrupt IN endpoints in the host mode.
336       In device mode, this field specifies the NUMP value that is sent in
337       ERDY for an OUT endpoint.
338       The valid values for this field are from 1 to 16. (DWC3 SuperSpeed
339       USB 3.0 Controller Databook)
340     $ref: /schemas/types.yaml#/definitions/uint8
341     minimum: 1
342     maximum: 16
343 
344   snps,tx-thr-num-pkt:
345     description:
346       USB TX packet threshold count. This field specifies the number of
347       packets that must be in the TXFIFO before the core can start
348       transmission for the corresponding USB transaction (burst).
349       This count is valid in both host and device modes. It is only used
350       for SuperSpeed operation.
351       Valid values are from 1 to 15. (DWC3 SuperSpeed USB 3.0 Controller
352       Databook)
353     $ref: /schemas/types.yaml#/definitions/uint8
354     minimum: 1
355     maximum: 15
356 
357   snps,tx-max-burst:
358     description:
359       Max USB TX burst size. When the system bus is slower than the USB,
360       TX FIFO can underrun during a long burst. Program a smaller value
361       to this field to limit the TX burst size that the core can execute.
362       In Host mode, it only applies to SS Bulk, Isochronous, and Interrupt
363       OUT endpoints. This value is not used in device mode.
364       Valid values are from 1 to 16. (DWC3 SuperSpeed USB 3.0 Controller
365       Databook)
366     $ref: /schemas/types.yaml#/definitions/uint8
367     minimum: 1
368     maximum: 16
369 
370   snps,rx-thr-num-pkt-prd:
371     description:
372       Periodic ESS RX packet threshold count (host mode only). Set this and
373       snps,rx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31
374       programming guide section 1.2.4) to enable periodic ESS RX threshold.
375     $ref: /schemas/types.yaml#/definitions/uint8
376     minimum: 1
377     maximum: 16
378 
379   snps,rx-max-burst-prd:
380     description:
381       Max periodic ESS RX burst size (host mode only). Set this and
382       snps,rx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31
383       programming guide section 1.2.4) to enable periodic ESS RX threshold.
384     $ref: /schemas/types.yaml#/definitions/uint8
385     minimum: 1
386     maximum: 16
387 
388   snps,tx-thr-num-pkt-prd:
389     description:
390       Periodic ESS TX packet threshold count (host mode only). Set this and
391       snps,tx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31
392       programming guide section 1.2.3) to enable periodic ESS TX threshold.
393     $ref: /schemas/types.yaml#/definitions/uint8
394     minimum: 1
395     maximum: 16
396 
397   snps,tx-max-burst-prd:
398     description:
399       Max periodic ESS TX burst size (host mode only). Set this and
400       snps,tx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31
401       programming guide section 1.2.3) to enable periodic ESS TX threshold.
402     $ref: /schemas/types.yaml#/definitions/uint8
403     minimum: 1
404     maximum: 16
405 
406   tx-fifo-resize:
407     description: Determines if the TX fifos can be dynamically resized depending
408       on the number of IN endpoints used and if bursting is supported.  This
409       may help improve bandwidth on platforms with higher system latencies, as
410       increased fifo space allows for the controller to prefetch data into its
411       internal memory.
412     type: boolean
413 
414   tx-fifo-max-num:
415     description: Specifies the max number of packets the txfifo resizing logic
416       can account for when higher endpoint bursting is used. (bMaxBurst > 6) The
417       higher the number, the more fifo space the txfifo resizing logic will
418       allocate for that endpoint.
419     $ref: /schemas/types.yaml#/definitions/uint8
420     minimum: 3
421 
422   snps,incr-burst-type-adjustment:
423     description:
424       Value for INCR burst type of GSBUSCFG0 register, undefined length INCR
425       burst type enable and INCRx type. A single value means INCRX burst mode
426       enabled. If more than one value specified, undefined length INCR burst
427       type will be enabled with burst lengths utilized up to the maximum
428       of the values passed in this property.
429     $ref: /schemas/types.yaml#/definitions/uint32-array
430     minItems: 1
431     maxItems: 8
432     uniqueItems: true
433     items:
434       enum: [1, 4, 8, 16, 32, 64, 128, 256]
435 
436   num-hc-interrupters:
437     maximum: 8
438     default: 1
439 
440   port:
441     $ref: /schemas/graph.yaml#/properties/port
442     description:
443       This port is used with the 'usb-role-switch' property  to connect the
444       dwc3 to type C connector.
445 
446   ports:
447     $ref: /schemas/graph.yaml#/properties/ports
448     description:
449       Those ports should be used with any connector to the data bus of this
450       controller using the OF graph bindings specified if the "usb-role-switch"
451       property is used.
452 
453     properties:
454       port@0:
455         $ref: /schemas/graph.yaml#/properties/port
456         description: High Speed (HS) data bus.
457 
458       port@1:
459         $ref: /schemas/graph.yaml#/properties/port
460         description: Super Speed (SS) data bus.
461 
462   wakeup-source:
463     $ref: /schemas/types.yaml#/definitions/flag
464     description:
465       Enable USB remote wakeup.
466 
467 unevaluatedProperties: false
468 
469 required:
470   - compatible
471   - reg
472   - interrupts
473 
474 examples:
475   - |
476     usb@4a030000 {
477       compatible = "snps,dwc3";
478       reg = <0x4a030000 0xcfff>;
479       interrupts = <0 92 4>;
480       usb-phy = <&usb2_phy>, <&usb3_phy>;
481       snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
482     };
483   - |
484     usb@4a000000 {
485       compatible = "snps,dwc3";
486       reg = <0x4a000000 0xcfff>;
487       interrupts = <0 92 4>;
488       clocks = <&clk 1>, <&clk 2>, <&clk 3>;
489       clock-names = "bus_early", "ref", "suspend";
490       phys = <&usb2_phy>, <&usb3_phy>;
491       phy-names = "usb2-phy", "usb3-phy";
492       snps,dis_u2_susphy_quirk;
493       snps,dis_enblslpm_quirk;
494     };
495 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php