xref: /freebsd/sys/contrib/device-tree/Bindings/usb/snps,dwc3.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/usb/snps,dwc3.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
75def4c47SEmmanuel Vadottitle: Synopsys DesignWare USB3 Controller
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotmaintainers:
105def4c47SEmmanuel Vadot  - Felipe Balbi <balbi@kernel.org>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel Vadotdescription:
135def4c47SEmmanuel Vadot  This is usually a subnode to DWC3 glue to which it is connected, but can also
145def4c47SEmmanuel Vadot  be presented as a standalone DT node with an optional vendor-specific
155def4c47SEmmanuel Vadot  compatible string.
165def4c47SEmmanuel Vadot
175def4c47SEmmanuel VadotallOf:
185def4c47SEmmanuel Vadot  - $ref: usb-drd.yaml#
195def4c47SEmmanuel Vadot  - if:
205def4c47SEmmanuel Vadot      properties:
215def4c47SEmmanuel Vadot        dr_mode:
225def4c47SEmmanuel Vadot          const: peripheral
235def4c47SEmmanuel Vadot
245def4c47SEmmanuel Vadot      required:
255def4c47SEmmanuel Vadot        - dr_mode
265def4c47SEmmanuel Vadot    then:
275def4c47SEmmanuel Vadot      $ref: usb.yaml#
285def4c47SEmmanuel Vadot    else:
295def4c47SEmmanuel Vadot      $ref: usb-xhci.yaml#
305def4c47SEmmanuel Vadot
315def4c47SEmmanuel Vadotproperties:
325def4c47SEmmanuel Vadot  compatible:
335def4c47SEmmanuel Vadot    contains:
345def4c47SEmmanuel Vadot      oneOf:
355def4c47SEmmanuel Vadot        - const: snps,dwc3
365def4c47SEmmanuel Vadot        - const: synopsys,dwc3
375def4c47SEmmanuel Vadot          deprecated: true
385def4c47SEmmanuel Vadot
39e67e8565SEmmanuel Vadot  reg:
40e67e8565SEmmanuel Vadot    maxItems: 1
41e67e8565SEmmanuel Vadot
425def4c47SEmmanuel Vadot  interrupts:
435def4c47SEmmanuel Vadot    description:
445def4c47SEmmanuel Vadot      It's either a single common DWC3 interrupt (dwc_usb3) or individual
455def4c47SEmmanuel Vadot      interrupts for the host, gadget and DRD modes.
465def4c47SEmmanuel Vadot    minItems: 1
47f126890aSEmmanuel Vadot    maxItems: 4
485def4c47SEmmanuel Vadot
495def4c47SEmmanuel Vadot  interrupt-names:
505def4c47SEmmanuel Vadot    minItems: 1
51f126890aSEmmanuel Vadot    maxItems: 4
525def4c47SEmmanuel Vadot    oneOf:
535def4c47SEmmanuel Vadot      - const: dwc_usb3
545def4c47SEmmanuel Vadot      - items:
55f126890aSEmmanuel Vadot          enum: [host, peripheral, otg, wakeup]
565def4c47SEmmanuel Vadot
575def4c47SEmmanuel Vadot  clocks:
585def4c47SEmmanuel Vadot    description:
595def4c47SEmmanuel Vadot      In general the core supports three types of clocks. bus_early is a
605def4c47SEmmanuel Vadot      SoC Bus Clock (AHB/AXI/Native). ref generates ITP when the UTMI/ULPI
615def4c47SEmmanuel Vadot      PHY is suspended. suspend clocks a small part of the USB3 core when
625def4c47SEmmanuel Vadot      SS PHY in P3. But particular cases may differ from that having less
635def4c47SEmmanuel Vadot      or more clock sources with another names.
645def4c47SEmmanuel Vadot
655def4c47SEmmanuel Vadot  clock-names:
665def4c47SEmmanuel Vadot    contains:
675def4c47SEmmanuel Vadot      anyOf:
685def4c47SEmmanuel Vadot        - enum: [bus_early, ref, suspend]
695def4c47SEmmanuel Vadot        - true
705def4c47SEmmanuel Vadot
71d5b0e70fSEmmanuel Vadot  dma-coherent: true
72d5b0e70fSEmmanuel Vadot
73fac71e4eSEmmanuel Vadot  extcon:
74fac71e4eSEmmanuel Vadot    maxItems: 1
75fac71e4eSEmmanuel Vadot    deprecated: true
76fac71e4eSEmmanuel Vadot
77e67e8565SEmmanuel Vadot  iommus:
78e67e8565SEmmanuel Vadot    maxItems: 1
79e67e8565SEmmanuel Vadot
805def4c47SEmmanuel Vadot  usb-phy:
815def4c47SEmmanuel Vadot    minItems: 1
825def4c47SEmmanuel Vadot    items:
835def4c47SEmmanuel Vadot      - description: USB2/HS PHY
845def4c47SEmmanuel Vadot      - description: USB3/SS PHY
855def4c47SEmmanuel Vadot
865def4c47SEmmanuel Vadot  phys:
875def4c47SEmmanuel Vadot    minItems: 1
88*7d0873ebSEmmanuel Vadot    maxItems: 19
895def4c47SEmmanuel Vadot
905def4c47SEmmanuel Vadot  phy-names:
915def4c47SEmmanuel Vadot    minItems: 1
92*7d0873ebSEmmanuel Vadot    maxItems: 19
93*7d0873ebSEmmanuel Vadot    oneOf:
94*7d0873ebSEmmanuel Vadot      - items:
95*7d0873ebSEmmanuel Vadot          enum: [ usb2-phy, usb3-phy ]
96*7d0873ebSEmmanuel Vadot      - items:
97*7d0873ebSEmmanuel Vadot          pattern: "^usb(2-([0-9]|1[0-4])|3-[0-3])$"
985def4c47SEmmanuel Vadot
99cb7aa33aSEmmanuel Vadot  power-domains:
100cb7aa33aSEmmanuel Vadot    description:
101cb7aa33aSEmmanuel Vadot      The DWC3 has 2 power-domains. The power management unit (PMU) and
102cb7aa33aSEmmanuel Vadot      everything else. The PMU is typically always powered and may not have an
103cb7aa33aSEmmanuel Vadot      entry.
104cb7aa33aSEmmanuel Vadot    minItems: 1
105cb7aa33aSEmmanuel Vadot    items:
106cb7aa33aSEmmanuel Vadot      - description: Core
107cb7aa33aSEmmanuel Vadot      - description: Power management unit
108cb7aa33aSEmmanuel Vadot
1095def4c47SEmmanuel Vadot  resets:
1105def4c47SEmmanuel Vadot    minItems: 1
1115def4c47SEmmanuel Vadot
1125def4c47SEmmanuel Vadot  snps,usb2-lpm-disable:
1132eb4d8dcSEmmanuel Vadot    description: Indicate if we don't want to enable USB2 HW LPM for host
1142eb4d8dcSEmmanuel Vadot      mode.
1155def4c47SEmmanuel Vadot    type: boolean
1165def4c47SEmmanuel Vadot
1175def4c47SEmmanuel Vadot  snps,usb3_lpm_capable:
1185def4c47SEmmanuel Vadot    description: Determines if platform is USB3 LPM capable
1195def4c47SEmmanuel Vadot    type: boolean
1205def4c47SEmmanuel Vadot
1212eb4d8dcSEmmanuel Vadot  snps,usb2-gadget-lpm-disable:
1222eb4d8dcSEmmanuel Vadot    description: Indicate if we don't want to enable USB2 HW LPM for gadget
1232eb4d8dcSEmmanuel Vadot      mode.
1242eb4d8dcSEmmanuel Vadot    type: boolean
1252eb4d8dcSEmmanuel Vadot
1265def4c47SEmmanuel Vadot  snps,dis-start-transfer-quirk:
1275def4c47SEmmanuel Vadot    description:
1285def4c47SEmmanuel Vadot      When set, disable isoc START TRANSFER command failure SW work-around
1295def4c47SEmmanuel Vadot      for DWC_usb31 version 1.70a-ea06 and prior.
1305def4c47SEmmanuel Vadot    type: boolean
1315def4c47SEmmanuel Vadot
1325def4c47SEmmanuel Vadot  snps,disable_scramble_quirk:
1335def4c47SEmmanuel Vadot    description:
1345def4c47SEmmanuel Vadot      True when SW should disable data scrambling. Only really useful for FPGA
1355def4c47SEmmanuel Vadot      builds.
1365def4c47SEmmanuel Vadot    type: boolean
1375def4c47SEmmanuel Vadot
1385def4c47SEmmanuel Vadot  snps,has-lpm-erratum:
1395def4c47SEmmanuel Vadot    description: True when DWC3 was configured with LPM Erratum enabled
1405def4c47SEmmanuel Vadot    type: boolean
1415def4c47SEmmanuel Vadot
1425def4c47SEmmanuel Vadot  snps,lpm-nyet-threshold:
1435def4c47SEmmanuel Vadot    description: LPM NYET threshold
1445def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
1455def4c47SEmmanuel Vadot
1465def4c47SEmmanuel Vadot  snps,u2exit_lfps_quirk:
1475def4c47SEmmanuel Vadot    description: Set if we want to enable u2exit lfps quirk
1485def4c47SEmmanuel Vadot    type: boolean
1495def4c47SEmmanuel Vadot
1505def4c47SEmmanuel Vadot  snps,u2ss_inp3_quirk:
1515def4c47SEmmanuel Vadot    description: Set if we enable P3 OK for U2/SS Inactive quirk
1525def4c47SEmmanuel Vadot    type: boolean
1535def4c47SEmmanuel Vadot
1545def4c47SEmmanuel Vadot  snps,req_p1p2p3_quirk:
1555def4c47SEmmanuel Vadot    description:
1565def4c47SEmmanuel Vadot      When set, the core will always request for P1/P2/P3 transition sequence.
1575def4c47SEmmanuel Vadot    type: boolean
1585def4c47SEmmanuel Vadot
1595def4c47SEmmanuel Vadot  snps,del_p1p2p3_quirk:
1605def4c47SEmmanuel Vadot    description:
1615def4c47SEmmanuel Vadot      When set core will delay P1/P2/P3 until a certain amount of 8B10B errors
1625def4c47SEmmanuel Vadot      occur.
1635def4c47SEmmanuel Vadot    type: boolean
1645def4c47SEmmanuel Vadot
1655def4c47SEmmanuel Vadot  snps,del_phy_power_chg_quirk:
1665def4c47SEmmanuel Vadot    description: When set core will delay PHY power change from P0 to P1/P2/P3.
1675def4c47SEmmanuel Vadot    type: boolean
1685def4c47SEmmanuel Vadot
1695def4c47SEmmanuel Vadot  snps,lfps_filter_quirk:
1705def4c47SEmmanuel Vadot    description: When set core will filter LFPS reception.
1715def4c47SEmmanuel Vadot    type: boolean
1725def4c47SEmmanuel Vadot
1735def4c47SEmmanuel Vadot  snps,rx_detect_poll_quirk:
1745def4c47SEmmanuel Vadot    description:
1755def4c47SEmmanuel Vadot      when set core will disable a 400us delay to start Polling LFPS after
1765def4c47SEmmanuel Vadot      RX.Detect.
1775def4c47SEmmanuel Vadot    type: boolean
1785def4c47SEmmanuel Vadot
1795def4c47SEmmanuel Vadot  snps,tx_de_emphasis_quirk:
1805def4c47SEmmanuel Vadot    description: When set core will set Tx de-emphasis value
1815def4c47SEmmanuel Vadot    type: boolean
1825def4c47SEmmanuel Vadot
1835def4c47SEmmanuel Vadot  snps,tx_de_emphasis:
1845def4c47SEmmanuel Vadot    description:
1855def4c47SEmmanuel Vadot      The value driven to the PHY is controlled by the LTSSM during USB3
1865def4c47SEmmanuel Vadot      Compliance mode.
1875def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
1885def4c47SEmmanuel Vadot    enum:
1895def4c47SEmmanuel Vadot      - 0 # -6dB de-emphasis
1905def4c47SEmmanuel Vadot      - 1 # -3.5dB de-emphasis
1915def4c47SEmmanuel Vadot      - 2 # No de-emphasis
1925def4c47SEmmanuel Vadot
1935def4c47SEmmanuel Vadot  snps,dis_u3_susphy_quirk:
1945def4c47SEmmanuel Vadot    description: When set core will disable USB3 suspend phy
1955def4c47SEmmanuel Vadot    type: boolean
1965def4c47SEmmanuel Vadot
1975def4c47SEmmanuel Vadot  snps,dis_u2_susphy_quirk:
1985def4c47SEmmanuel Vadot    description: When set core will disable USB2 suspend phy
1995def4c47SEmmanuel Vadot    type: boolean
2005def4c47SEmmanuel Vadot
2015def4c47SEmmanuel Vadot  snps,dis_enblslpm_quirk:
2025def4c47SEmmanuel Vadot    description:
2035def4c47SEmmanuel Vadot      When set clears the enblslpm in GUSB2PHYCFG, disabling the suspend signal
2045def4c47SEmmanuel Vadot      to the PHY.
2055def4c47SEmmanuel Vadot    type: boolean
2065def4c47SEmmanuel Vadot
2075def4c47SEmmanuel Vadot  snps,dis-u1-entry-quirk:
2085def4c47SEmmanuel Vadot    description: Set if link entering into U1 needs to be disabled
2095def4c47SEmmanuel Vadot    type: boolean
2105def4c47SEmmanuel Vadot
2115def4c47SEmmanuel Vadot  snps,dis-u2-entry-quirk:
2125def4c47SEmmanuel Vadot    description: Set if link entering into U2 needs to be disabled
2135def4c47SEmmanuel Vadot    type: boolean
2145def4c47SEmmanuel Vadot
2155def4c47SEmmanuel Vadot  snps,dis_rxdet_inp3_quirk:
2165def4c47SEmmanuel Vadot    description:
2175def4c47SEmmanuel Vadot      When set core will disable receiver detection in PHY P3 power state.
2185def4c47SEmmanuel Vadot    type: boolean
2195def4c47SEmmanuel Vadot
2205def4c47SEmmanuel Vadot  snps,dis-u2-freeclk-exists-quirk:
2215def4c47SEmmanuel Vadot    description:
2225def4c47SEmmanuel Vadot      When set, clear the u2_freeclk_exists in GUSB2PHYCFG, specify that USB2
2235def4c47SEmmanuel Vadot      PHY doesn't provide a free-running PHY clock.
2245def4c47SEmmanuel Vadot    type: boolean
2255def4c47SEmmanuel Vadot
2265def4c47SEmmanuel Vadot  snps,dis-del-phy-power-chg-quirk:
2275def4c47SEmmanuel Vadot    description:
2285def4c47SEmmanuel Vadot      When set core will change PHY power from P0 to P1/P2/P3 without delay.
2295def4c47SEmmanuel Vadot    type: boolean
2305def4c47SEmmanuel Vadot
2315def4c47SEmmanuel Vadot  snps,dis-tx-ipgap-linecheck-quirk:
2325def4c47SEmmanuel Vadot    description: When set, disable u2mac linestate check during HS transmit
2335def4c47SEmmanuel Vadot    type: boolean
2345def4c47SEmmanuel Vadot
2355def4c47SEmmanuel Vadot  snps,parkmode-disable-ss-quirk:
2365def4c47SEmmanuel Vadot    description:
2375def4c47SEmmanuel Vadot      When set, all SuperSpeed bus instances in park mode are disabled.
2385def4c47SEmmanuel Vadot    type: boolean
2395def4c47SEmmanuel Vadot
240fac71e4eSEmmanuel Vadot  snps,parkmode-disable-hs-quirk:
241fac71e4eSEmmanuel Vadot    description:
242fac71e4eSEmmanuel Vadot      When set, all HighSpeed bus instances in park mode are disabled.
243fac71e4eSEmmanuel Vadot    type: boolean
244fac71e4eSEmmanuel Vadot
2455def4c47SEmmanuel Vadot  snps,dis_metastability_quirk:
2465def4c47SEmmanuel Vadot    description:
2475def4c47SEmmanuel Vadot      When set, disable metastability workaround. CAUTION! Use only if you are
2485def4c47SEmmanuel Vadot      absolutely sure of it.
2495def4c47SEmmanuel Vadot    type: boolean
2505def4c47SEmmanuel Vadot
2515def4c47SEmmanuel Vadot  snps,dis-split-quirk:
2525def4c47SEmmanuel Vadot    description:
2535def4c47SEmmanuel Vadot      When set, change the way URBs are handled by the driver. Needed to
2545def4c47SEmmanuel Vadot      avoid -EPROTO errors with usbhid on some devices (Hikey 970).
2555def4c47SEmmanuel Vadot    type: boolean
2565def4c47SEmmanuel Vadot
2577ef62cebSEmmanuel Vadot  snps,gfladj-refclk-lpm-sel-quirk:
2587ef62cebSEmmanuel Vadot    description:
2597ef62cebSEmmanuel Vadot      When set, run the SOF/ITP counter based on ref_clk.
2607ef62cebSEmmanuel Vadot    type: boolean
2617ef62cebSEmmanuel Vadot
2627ef62cebSEmmanuel Vadot  snps,resume-hs-terminations:
2637ef62cebSEmmanuel Vadot    description:
2647ef62cebSEmmanuel Vadot      Fix the issue of HS terminations CRC error on resume by enabling this
2657ef62cebSEmmanuel Vadot      quirk. When set, all the termsel, xcvrsel, opmode becomes 0 during end
2667ef62cebSEmmanuel Vadot      of resume. This option is to support certain legacy ULPI PHYs.
2677ef62cebSEmmanuel Vadot    type: boolean
2687ef62cebSEmmanuel Vadot
269fac71e4eSEmmanuel Vadot  snps,ulpi-ext-vbus-drv:
270fac71e4eSEmmanuel Vadot    description:
271fac71e4eSEmmanuel Vadot      Some ULPI USB PHY does not support internal VBUS supply, and driving
272fac71e4eSEmmanuel Vadot      the CPEN pin, requires the configuration of the ulpi DRVVBUSEXTERNAL
273fac71e4eSEmmanuel Vadot      bit. When set, the xhci host will configure the USB2 PHY drives VBUS
274fac71e4eSEmmanuel Vadot      with an external supply.
275fac71e4eSEmmanuel Vadot    type: boolean
276fac71e4eSEmmanuel Vadot
2775def4c47SEmmanuel Vadot  snps,is-utmi-l1-suspend:
2785def4c47SEmmanuel Vadot    description:
2795def4c47SEmmanuel Vadot      True when DWC3 asserts output signal utmi_l1_suspend_n, false when
2805def4c47SEmmanuel Vadot      asserts utmi_sleep_n.
2815def4c47SEmmanuel Vadot    type: boolean
2825def4c47SEmmanuel Vadot
2835def4c47SEmmanuel Vadot  snps,hird-threshold:
2845def4c47SEmmanuel Vadot    description: HIRD threshold
2855def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
2865def4c47SEmmanuel Vadot
2875def4c47SEmmanuel Vadot  snps,hsphy_interface:
2885def4c47SEmmanuel Vadot    description:
2895def4c47SEmmanuel Vadot      High-Speed PHY interface selection between UTMI+ and ULPI when the
2905def4c47SEmmanuel Vadot      DWC_USB3_HSPHY_INTERFACE has value 3.
291fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
2925def4c47SEmmanuel Vadot    enum: [utmi, ulpi]
2935def4c47SEmmanuel Vadot
2945def4c47SEmmanuel Vadot  snps,quirk-frame-length-adjustment:
2955def4c47SEmmanuel Vadot    description:
2965def4c47SEmmanuel Vadot      Value for GFLADJ_30MHZ field of GFLADJ register for post-silicon frame
2975def4c47SEmmanuel Vadot      length adjustment when the fladj_30mhz_sdbnd signal is invalid or
2985def4c47SEmmanuel Vadot      incorrect.
2995def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
3005def4c47SEmmanuel Vadot    minimum: 0
3015def4c47SEmmanuel Vadot    maximum: 0x3f
3025def4c47SEmmanuel Vadot
3038cc087a1SEmmanuel Vadot  snps,ref-clock-period-ns:
3048cc087a1SEmmanuel Vadot    description:
3058cc087a1SEmmanuel Vadot      Value for REFCLKPER field of GUCTL register for reference clock period in
3068cc087a1SEmmanuel Vadot      nanoseconds, when the hardware set default does not match the actual
3078cc087a1SEmmanuel Vadot      clock.
308c9ccf3a3SEmmanuel Vadot
309c9ccf3a3SEmmanuel Vadot      This binding is deprecated. Instead, provide an appropriate reference clock.
310c9ccf3a3SEmmanuel Vadot    minimum: 8
311c9ccf3a3SEmmanuel Vadot    maximum: 62
312c9ccf3a3SEmmanuel Vadot    deprecated: true
3138cc087a1SEmmanuel Vadot
31484943d6fSEmmanuel Vadot  snps,rx-thr-num-pkt:
31584943d6fSEmmanuel Vadot    description:
31684943d6fSEmmanuel Vadot      USB RX packet threshold count. In host mode, this field specifies
31784943d6fSEmmanuel Vadot      the space that must be available in the RX FIFO before the core can
31884943d6fSEmmanuel Vadot      start the corresponding USB RX transaction (burst).
31984943d6fSEmmanuel Vadot      In device mode, this field specifies the space that must be
32084943d6fSEmmanuel Vadot      available in the RX FIFO before the core can send ERDY for a
32184943d6fSEmmanuel Vadot      flow-controlled endpoint. It is only used for SuperSpeed.
32284943d6fSEmmanuel Vadot      The valid values for this field are from 1 to 15. (DWC3 SuperSpeed
32384943d6fSEmmanuel Vadot      USB 3.0 Controller Databook)
32484943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
32584943d6fSEmmanuel Vadot    minimum: 1
32684943d6fSEmmanuel Vadot    maximum: 15
32784943d6fSEmmanuel Vadot
32884943d6fSEmmanuel Vadot  snps,rx-max-burst:
32984943d6fSEmmanuel Vadot    description:
33084943d6fSEmmanuel Vadot      Max USB RX burst size. In host mode, this field specifies the
33184943d6fSEmmanuel Vadot      Maximum Bulk IN burst the DWC_usb3 core can perform. When the system
33284943d6fSEmmanuel Vadot      bus is slower than the USB, RX FIFO can overrun during a long burst.
33384943d6fSEmmanuel Vadot      You can program a smaller value to this field to limit the RX burst
33484943d6fSEmmanuel Vadot      size that the core can perform. It only applies to SS Bulk,
33584943d6fSEmmanuel Vadot      Isochronous, and Interrupt IN endpoints in the host mode.
33684943d6fSEmmanuel Vadot      In device mode, this field specifies the NUMP value that is sent in
33784943d6fSEmmanuel Vadot      ERDY for an OUT endpoint.
33884943d6fSEmmanuel Vadot      The valid values for this field are from 1 to 16. (DWC3 SuperSpeed
33984943d6fSEmmanuel Vadot      USB 3.0 Controller Databook)
34084943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
34184943d6fSEmmanuel Vadot    minimum: 1
34284943d6fSEmmanuel Vadot    maximum: 16
34384943d6fSEmmanuel Vadot
34484943d6fSEmmanuel Vadot  snps,tx-thr-num-pkt:
34584943d6fSEmmanuel Vadot    description:
34684943d6fSEmmanuel Vadot      USB TX packet threshold count. This field specifies the number of
34784943d6fSEmmanuel Vadot      packets that must be in the TXFIFO before the core can start
34884943d6fSEmmanuel Vadot      transmission for the corresponding USB transaction (burst).
34984943d6fSEmmanuel Vadot      This count is valid in both host and device modes. It is only used
35084943d6fSEmmanuel Vadot      for SuperSpeed operation.
35184943d6fSEmmanuel Vadot      Valid values are from 1 to 15. (DWC3 SuperSpeed USB 3.0 Controller
35284943d6fSEmmanuel Vadot      Databook)
35384943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
35484943d6fSEmmanuel Vadot    minimum: 1
35584943d6fSEmmanuel Vadot    maximum: 15
35684943d6fSEmmanuel Vadot
35784943d6fSEmmanuel Vadot  snps,tx-max-burst:
35884943d6fSEmmanuel Vadot    description:
35984943d6fSEmmanuel Vadot      Max USB TX burst size. When the system bus is slower than the USB,
36084943d6fSEmmanuel Vadot      TX FIFO can underrun during a long burst. Program a smaller value
36184943d6fSEmmanuel Vadot      to this field to limit the TX burst size that the core can execute.
36284943d6fSEmmanuel Vadot      In Host mode, it only applies to SS Bulk, Isochronous, and Interrupt
36384943d6fSEmmanuel Vadot      OUT endpoints. This value is not used in device mode.
36484943d6fSEmmanuel Vadot      Valid values are from 1 to 16. (DWC3 SuperSpeed USB 3.0 Controller
36584943d6fSEmmanuel Vadot      Databook)
36684943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
36784943d6fSEmmanuel Vadot    minimum: 1
36884943d6fSEmmanuel Vadot    maximum: 16
36984943d6fSEmmanuel Vadot
3705def4c47SEmmanuel Vadot  snps,rx-thr-num-pkt-prd:
3715def4c47SEmmanuel Vadot    description:
3725def4c47SEmmanuel Vadot      Periodic ESS RX packet threshold count (host mode only). Set this and
3735def4c47SEmmanuel Vadot      snps,rx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31
3745def4c47SEmmanuel Vadot      programming guide section 1.2.4) to enable periodic ESS RX threshold.
3755def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
3765def4c47SEmmanuel Vadot    minimum: 1
3775def4c47SEmmanuel Vadot    maximum: 16
3785def4c47SEmmanuel Vadot
3795def4c47SEmmanuel Vadot  snps,rx-max-burst-prd:
3805def4c47SEmmanuel Vadot    description:
3815def4c47SEmmanuel Vadot      Max periodic ESS RX burst size (host mode only). Set this and
3825def4c47SEmmanuel Vadot      snps,rx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31
3835def4c47SEmmanuel Vadot      programming guide section 1.2.4) to enable periodic ESS RX threshold.
3845def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
3855def4c47SEmmanuel Vadot    minimum: 1
3865def4c47SEmmanuel Vadot    maximum: 16
3875def4c47SEmmanuel Vadot
3885def4c47SEmmanuel Vadot  snps,tx-thr-num-pkt-prd:
3895def4c47SEmmanuel Vadot    description:
3905def4c47SEmmanuel Vadot      Periodic ESS TX packet threshold count (host mode only). Set this and
3915def4c47SEmmanuel Vadot      snps,tx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31
3925def4c47SEmmanuel Vadot      programming guide section 1.2.3) to enable periodic ESS TX threshold.
3935def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
3945def4c47SEmmanuel Vadot    minimum: 1
3955def4c47SEmmanuel Vadot    maximum: 16
3965def4c47SEmmanuel Vadot
3975def4c47SEmmanuel Vadot  snps,tx-max-burst-prd:
3985def4c47SEmmanuel Vadot    description:
3995def4c47SEmmanuel Vadot      Max periodic ESS TX burst size (host mode only). Set this and
4005def4c47SEmmanuel Vadot      snps,tx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31
4015def4c47SEmmanuel Vadot      programming guide section 1.2.3) to enable periodic ESS TX threshold.
4025def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
4035def4c47SEmmanuel Vadot    minimum: 1
4045def4c47SEmmanuel Vadot    maximum: 16
4055def4c47SEmmanuel Vadot
4065def4c47SEmmanuel Vadot  tx-fifo-resize:
407354d7675SEmmanuel Vadot    description: Determines if the TX fifos can be dynamically resized depending
408354d7675SEmmanuel Vadot      on the number of IN endpoints used and if bursting is supported.  This
409354d7675SEmmanuel Vadot      may help improve bandwidth on platforms with higher system latencies, as
410354d7675SEmmanuel Vadot      increased fifo space allows for the controller to prefetch data into its
411354d7675SEmmanuel Vadot      internal memory.
4125def4c47SEmmanuel Vadot    type: boolean
4135def4c47SEmmanuel Vadot
414354d7675SEmmanuel Vadot  tx-fifo-max-num:
415354d7675SEmmanuel Vadot    description: Specifies the max number of packets the txfifo resizing logic
416354d7675SEmmanuel Vadot      can account for when higher endpoint bursting is used. (bMaxBurst > 6) The
417354d7675SEmmanuel Vadot      higher the number, the more fifo space the txfifo resizing logic will
418354d7675SEmmanuel Vadot      allocate for that endpoint.
419354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
420354d7675SEmmanuel Vadot    minimum: 3
421354d7675SEmmanuel Vadot
4225def4c47SEmmanuel Vadot  snps,incr-burst-type-adjustment:
4235def4c47SEmmanuel Vadot    description:
4245def4c47SEmmanuel Vadot      Value for INCR burst type of GSBUSCFG0 register, undefined length INCR
4255def4c47SEmmanuel Vadot      burst type enable and INCRx type. A single value means INCRX burst mode
4265def4c47SEmmanuel Vadot      enabled. If more than one value specified, undefined length INCR burst
4275def4c47SEmmanuel Vadot      type will be enabled with burst lengths utilized up to the maximum
4285def4c47SEmmanuel Vadot      of the values passed in this property.
4295def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
4305def4c47SEmmanuel Vadot    minItems: 1
4315def4c47SEmmanuel Vadot    maxItems: 8
4325def4c47SEmmanuel Vadot    uniqueItems: true
4335def4c47SEmmanuel Vadot    items:
4345def4c47SEmmanuel Vadot      enum: [1, 4, 8, 16, 32, 64, 128, 256]
4355def4c47SEmmanuel Vadot
4368d13bc63SEmmanuel Vadot  num-hc-interrupters:
4378d13bc63SEmmanuel Vadot    maximum: 8
4388d13bc63SEmmanuel Vadot    default: 1
4398d13bc63SEmmanuel Vadot
440c9ccf3a3SEmmanuel Vadot  port:
441c9ccf3a3SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
442c9ccf3a3SEmmanuel Vadot    description:
443c9ccf3a3SEmmanuel Vadot      This port is used with the 'usb-role-switch' property  to connect the
444c9ccf3a3SEmmanuel Vadot      dwc3 to type C connector.
445c9ccf3a3SEmmanuel Vadot
446fac71e4eSEmmanuel Vadot  ports:
447fac71e4eSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
448fac71e4eSEmmanuel Vadot    description:
449fac71e4eSEmmanuel Vadot      Those ports should be used with any connector to the data bus of this
450fac71e4eSEmmanuel Vadot      controller using the OF graph bindings specified if the "usb-role-switch"
451fac71e4eSEmmanuel Vadot      property is used.
452fac71e4eSEmmanuel Vadot
453fac71e4eSEmmanuel Vadot    properties:
454fac71e4eSEmmanuel Vadot      port@0:
455fac71e4eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
456fac71e4eSEmmanuel Vadot        description: High Speed (HS) data bus.
457fac71e4eSEmmanuel Vadot
458fac71e4eSEmmanuel Vadot      port@1:
459fac71e4eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
460fac71e4eSEmmanuel Vadot        description: Super Speed (SS) data bus.
461fac71e4eSEmmanuel Vadot
462b97ee269SEmmanuel Vadot  wakeup-source:
463b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
464b97ee269SEmmanuel Vadot    description:
465b97ee269SEmmanuel Vadot      Enable USB remote wakeup.
466b97ee269SEmmanuel Vadot
4675def4c47SEmmanuel VadotunevaluatedProperties: false
4685def4c47SEmmanuel Vadot
4695def4c47SEmmanuel Vadotrequired:
4705def4c47SEmmanuel Vadot  - compatible
4715def4c47SEmmanuel Vadot  - reg
4725def4c47SEmmanuel Vadot  - interrupts
4735def4c47SEmmanuel Vadot
4745def4c47SEmmanuel Vadotexamples:
4755def4c47SEmmanuel Vadot  - |
4765def4c47SEmmanuel Vadot    usb@4a030000 {
4775def4c47SEmmanuel Vadot      compatible = "snps,dwc3";
4785def4c47SEmmanuel Vadot      reg = <0x4a030000 0xcfff>;
4795def4c47SEmmanuel Vadot      interrupts = <0 92 4>;
4805def4c47SEmmanuel Vadot      usb-phy = <&usb2_phy>, <&usb3_phy>;
4815def4c47SEmmanuel Vadot      snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
4825def4c47SEmmanuel Vadot    };
4835def4c47SEmmanuel Vadot  - |
4845def4c47SEmmanuel Vadot    usb@4a000000 {
4855def4c47SEmmanuel Vadot      compatible = "snps,dwc3";
4865def4c47SEmmanuel Vadot      reg = <0x4a000000 0xcfff>;
4875def4c47SEmmanuel Vadot      interrupts = <0 92 4>;
4885def4c47SEmmanuel Vadot      clocks = <&clk 1>, <&clk 2>, <&clk 3>;
4895def4c47SEmmanuel Vadot      clock-names = "bus_early", "ref", "suspend";
4905def4c47SEmmanuel Vadot      phys = <&usb2_phy>, <&usb3_phy>;
4915def4c47SEmmanuel Vadot      phy-names = "usb2-phy", "usb3-phy";
4925def4c47SEmmanuel Vadot      snps,dis_u2_susphy_quirk;
4935def4c47SEmmanuel Vadot      snps,dis_enblslpm_quirk;
4945def4c47SEmmanuel Vadot    };
4955def4c47SEmmanuel Vadot...
496