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
888cc087a1SEmmanuel Vadot    maxItems: 2
895def4c47SEmmanuel Vadot
905def4c47SEmmanuel Vadot  phy-names:
915def4c47SEmmanuel Vadot    minItems: 1
928cc087a1SEmmanuel Vadot    maxItems: 2
935def4c47SEmmanuel Vadot    items:
948cc087a1SEmmanuel Vadot      enum:
958cc087a1SEmmanuel Vadot        - usb2-phy
968cc087a1SEmmanuel Vadot        - usb3-phy
975def4c47SEmmanuel Vadot
98cb7aa33aSEmmanuel Vadot  power-domains:
99cb7aa33aSEmmanuel Vadot    description:
100cb7aa33aSEmmanuel Vadot      The DWC3 has 2 power-domains. The power management unit (PMU) and
101cb7aa33aSEmmanuel Vadot      everything else. The PMU is typically always powered and may not have an
102cb7aa33aSEmmanuel Vadot      entry.
103cb7aa33aSEmmanuel Vadot    minItems: 1
104cb7aa33aSEmmanuel Vadot    items:
105cb7aa33aSEmmanuel Vadot      - description: Core
106cb7aa33aSEmmanuel Vadot      - description: Power management unit
107cb7aa33aSEmmanuel Vadot
1085def4c47SEmmanuel Vadot  resets:
1095def4c47SEmmanuel Vadot    minItems: 1
1105def4c47SEmmanuel Vadot
1115def4c47SEmmanuel Vadot  snps,usb2-lpm-disable:
1122eb4d8dcSEmmanuel Vadot    description: Indicate if we don't want to enable USB2 HW LPM for host
1132eb4d8dcSEmmanuel Vadot      mode.
1145def4c47SEmmanuel Vadot    type: boolean
1155def4c47SEmmanuel Vadot
1165def4c47SEmmanuel Vadot  snps,usb3_lpm_capable:
1175def4c47SEmmanuel Vadot    description: Determines if platform is USB3 LPM capable
1185def4c47SEmmanuel Vadot    type: boolean
1195def4c47SEmmanuel Vadot
1202eb4d8dcSEmmanuel Vadot  snps,usb2-gadget-lpm-disable:
1212eb4d8dcSEmmanuel Vadot    description: Indicate if we don't want to enable USB2 HW LPM for gadget
1222eb4d8dcSEmmanuel Vadot      mode.
1232eb4d8dcSEmmanuel Vadot    type: boolean
1242eb4d8dcSEmmanuel Vadot
1255def4c47SEmmanuel Vadot  snps,dis-start-transfer-quirk:
1265def4c47SEmmanuel Vadot    description:
1275def4c47SEmmanuel Vadot      When set, disable isoc START TRANSFER command failure SW work-around
1285def4c47SEmmanuel Vadot      for DWC_usb31 version 1.70a-ea06 and prior.
1295def4c47SEmmanuel Vadot    type: boolean
1305def4c47SEmmanuel Vadot
1315def4c47SEmmanuel Vadot  snps,disable_scramble_quirk:
1325def4c47SEmmanuel Vadot    description:
1335def4c47SEmmanuel Vadot      True when SW should disable data scrambling. Only really useful for FPGA
1345def4c47SEmmanuel Vadot      builds.
1355def4c47SEmmanuel Vadot    type: boolean
1365def4c47SEmmanuel Vadot
1375def4c47SEmmanuel Vadot  snps,has-lpm-erratum:
1385def4c47SEmmanuel Vadot    description: True when DWC3 was configured with LPM Erratum enabled
1395def4c47SEmmanuel Vadot    type: boolean
1405def4c47SEmmanuel Vadot
1415def4c47SEmmanuel Vadot  snps,lpm-nyet-threshold:
1425def4c47SEmmanuel Vadot    description: LPM NYET threshold
1435def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
1445def4c47SEmmanuel Vadot
1455def4c47SEmmanuel Vadot  snps,u2exit_lfps_quirk:
1465def4c47SEmmanuel Vadot    description: Set if we want to enable u2exit lfps quirk
1475def4c47SEmmanuel Vadot    type: boolean
1485def4c47SEmmanuel Vadot
1495def4c47SEmmanuel Vadot  snps,u2ss_inp3_quirk:
1505def4c47SEmmanuel Vadot    description: Set if we enable P3 OK for U2/SS Inactive quirk
1515def4c47SEmmanuel Vadot    type: boolean
1525def4c47SEmmanuel Vadot
1535def4c47SEmmanuel Vadot  snps,req_p1p2p3_quirk:
1545def4c47SEmmanuel Vadot    description:
1555def4c47SEmmanuel Vadot      When set, the core will always request for P1/P2/P3 transition sequence.
1565def4c47SEmmanuel Vadot    type: boolean
1575def4c47SEmmanuel Vadot
1585def4c47SEmmanuel Vadot  snps,del_p1p2p3_quirk:
1595def4c47SEmmanuel Vadot    description:
1605def4c47SEmmanuel Vadot      When set core will delay P1/P2/P3 until a certain amount of 8B10B errors
1615def4c47SEmmanuel Vadot      occur.
1625def4c47SEmmanuel Vadot    type: boolean
1635def4c47SEmmanuel Vadot
1645def4c47SEmmanuel Vadot  snps,del_phy_power_chg_quirk:
1655def4c47SEmmanuel Vadot    description: When set core will delay PHY power change from P0 to P1/P2/P3.
1665def4c47SEmmanuel Vadot    type: boolean
1675def4c47SEmmanuel Vadot
1685def4c47SEmmanuel Vadot  snps,lfps_filter_quirk:
1695def4c47SEmmanuel Vadot    description: When set core will filter LFPS reception.
1705def4c47SEmmanuel Vadot    type: boolean
1715def4c47SEmmanuel Vadot
1725def4c47SEmmanuel Vadot  snps,rx_detect_poll_quirk:
1735def4c47SEmmanuel Vadot    description:
1745def4c47SEmmanuel Vadot      when set core will disable a 400us delay to start Polling LFPS after
1755def4c47SEmmanuel Vadot      RX.Detect.
1765def4c47SEmmanuel Vadot    type: boolean
1775def4c47SEmmanuel Vadot
1785def4c47SEmmanuel Vadot  snps,tx_de_emphasis_quirk:
1795def4c47SEmmanuel Vadot    description: When set core will set Tx de-emphasis value
1805def4c47SEmmanuel Vadot    type: boolean
1815def4c47SEmmanuel Vadot
1825def4c47SEmmanuel Vadot  snps,tx_de_emphasis:
1835def4c47SEmmanuel Vadot    description:
1845def4c47SEmmanuel Vadot      The value driven to the PHY is controlled by the LTSSM during USB3
1855def4c47SEmmanuel Vadot      Compliance mode.
1865def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
1875def4c47SEmmanuel Vadot    enum:
1885def4c47SEmmanuel Vadot      - 0 # -6dB de-emphasis
1895def4c47SEmmanuel Vadot      - 1 # -3.5dB de-emphasis
1905def4c47SEmmanuel Vadot      - 2 # No de-emphasis
1915def4c47SEmmanuel Vadot
1925def4c47SEmmanuel Vadot  snps,dis_u3_susphy_quirk:
1935def4c47SEmmanuel Vadot    description: When set core will disable USB3 suspend phy
1945def4c47SEmmanuel Vadot    type: boolean
1955def4c47SEmmanuel Vadot
1965def4c47SEmmanuel Vadot  snps,dis_u2_susphy_quirk:
1975def4c47SEmmanuel Vadot    description: When set core will disable USB2 suspend phy
1985def4c47SEmmanuel Vadot    type: boolean
1995def4c47SEmmanuel Vadot
2005def4c47SEmmanuel Vadot  snps,dis_enblslpm_quirk:
2015def4c47SEmmanuel Vadot    description:
2025def4c47SEmmanuel Vadot      When set clears the enblslpm in GUSB2PHYCFG, disabling the suspend signal
2035def4c47SEmmanuel Vadot      to the PHY.
2045def4c47SEmmanuel Vadot    type: boolean
2055def4c47SEmmanuel Vadot
2065def4c47SEmmanuel Vadot  snps,dis-u1-entry-quirk:
2075def4c47SEmmanuel Vadot    description: Set if link entering into U1 needs to be disabled
2085def4c47SEmmanuel Vadot    type: boolean
2095def4c47SEmmanuel Vadot
2105def4c47SEmmanuel Vadot  snps,dis-u2-entry-quirk:
2115def4c47SEmmanuel Vadot    description: Set if link entering into U2 needs to be disabled
2125def4c47SEmmanuel Vadot    type: boolean
2135def4c47SEmmanuel Vadot
2145def4c47SEmmanuel Vadot  snps,dis_rxdet_inp3_quirk:
2155def4c47SEmmanuel Vadot    description:
2165def4c47SEmmanuel Vadot      When set core will disable receiver detection in PHY P3 power state.
2175def4c47SEmmanuel Vadot    type: boolean
2185def4c47SEmmanuel Vadot
2195def4c47SEmmanuel Vadot  snps,dis-u2-freeclk-exists-quirk:
2205def4c47SEmmanuel Vadot    description:
2215def4c47SEmmanuel Vadot      When set, clear the u2_freeclk_exists in GUSB2PHYCFG, specify that USB2
2225def4c47SEmmanuel Vadot      PHY doesn't provide a free-running PHY clock.
2235def4c47SEmmanuel Vadot    type: boolean
2245def4c47SEmmanuel Vadot
2255def4c47SEmmanuel Vadot  snps,dis-del-phy-power-chg-quirk:
2265def4c47SEmmanuel Vadot    description:
2275def4c47SEmmanuel Vadot      When set core will change PHY power from P0 to P1/P2/P3 without delay.
2285def4c47SEmmanuel Vadot    type: boolean
2295def4c47SEmmanuel Vadot
2305def4c47SEmmanuel Vadot  snps,dis-tx-ipgap-linecheck-quirk:
2315def4c47SEmmanuel Vadot    description: When set, disable u2mac linestate check during HS transmit
2325def4c47SEmmanuel Vadot    type: boolean
2335def4c47SEmmanuel Vadot
2345def4c47SEmmanuel Vadot  snps,parkmode-disable-ss-quirk:
2355def4c47SEmmanuel Vadot    description:
2365def4c47SEmmanuel Vadot      When set, all SuperSpeed bus instances in park mode are disabled.
2375def4c47SEmmanuel Vadot    type: boolean
2385def4c47SEmmanuel Vadot
239fac71e4eSEmmanuel Vadot  snps,parkmode-disable-hs-quirk:
240fac71e4eSEmmanuel Vadot    description:
241fac71e4eSEmmanuel Vadot      When set, all HighSpeed bus instances in park mode are disabled.
242fac71e4eSEmmanuel Vadot    type: boolean
243fac71e4eSEmmanuel Vadot
2445def4c47SEmmanuel Vadot  snps,dis_metastability_quirk:
2455def4c47SEmmanuel Vadot    description:
2465def4c47SEmmanuel Vadot      When set, disable metastability workaround. CAUTION! Use only if you are
2475def4c47SEmmanuel Vadot      absolutely sure of it.
2485def4c47SEmmanuel Vadot    type: boolean
2495def4c47SEmmanuel Vadot
2505def4c47SEmmanuel Vadot  snps,dis-split-quirk:
2515def4c47SEmmanuel Vadot    description:
2525def4c47SEmmanuel Vadot      When set, change the way URBs are handled by the driver. Needed to
2535def4c47SEmmanuel Vadot      avoid -EPROTO errors with usbhid on some devices (Hikey 970).
2545def4c47SEmmanuel Vadot    type: boolean
2555def4c47SEmmanuel Vadot
2567ef62cebSEmmanuel Vadot  snps,gfladj-refclk-lpm-sel-quirk:
2577ef62cebSEmmanuel Vadot    description:
2587ef62cebSEmmanuel Vadot      When set, run the SOF/ITP counter based on ref_clk.
2597ef62cebSEmmanuel Vadot    type: boolean
2607ef62cebSEmmanuel Vadot
2617ef62cebSEmmanuel Vadot  snps,resume-hs-terminations:
2627ef62cebSEmmanuel Vadot    description:
2637ef62cebSEmmanuel Vadot      Fix the issue of HS terminations CRC error on resume by enabling this
2647ef62cebSEmmanuel Vadot      quirk. When set, all the termsel, xcvrsel, opmode becomes 0 during end
2657ef62cebSEmmanuel Vadot      of resume. This option is to support certain legacy ULPI PHYs.
2667ef62cebSEmmanuel Vadot    type: boolean
2677ef62cebSEmmanuel Vadot
268fac71e4eSEmmanuel Vadot  snps,ulpi-ext-vbus-drv:
269fac71e4eSEmmanuel Vadot    description:
270fac71e4eSEmmanuel Vadot      Some ULPI USB PHY does not support internal VBUS supply, and driving
271fac71e4eSEmmanuel Vadot      the CPEN pin, requires the configuration of the ulpi DRVVBUSEXTERNAL
272fac71e4eSEmmanuel Vadot      bit. When set, the xhci host will configure the USB2 PHY drives VBUS
273fac71e4eSEmmanuel Vadot      with an external supply.
274fac71e4eSEmmanuel Vadot    type: boolean
275fac71e4eSEmmanuel Vadot
2765def4c47SEmmanuel Vadot  snps,is-utmi-l1-suspend:
2775def4c47SEmmanuel Vadot    description:
2785def4c47SEmmanuel Vadot      True when DWC3 asserts output signal utmi_l1_suspend_n, false when
2795def4c47SEmmanuel Vadot      asserts utmi_sleep_n.
2805def4c47SEmmanuel Vadot    type: boolean
2815def4c47SEmmanuel Vadot
2825def4c47SEmmanuel Vadot  snps,hird-threshold:
2835def4c47SEmmanuel Vadot    description: HIRD threshold
2845def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
2855def4c47SEmmanuel Vadot
2865def4c47SEmmanuel Vadot  snps,hsphy_interface:
2875def4c47SEmmanuel Vadot    description:
2885def4c47SEmmanuel Vadot      High-Speed PHY interface selection between UTMI+ and ULPI when the
2895def4c47SEmmanuel Vadot      DWC_USB3_HSPHY_INTERFACE has value 3.
290fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
2915def4c47SEmmanuel Vadot    enum: [utmi, ulpi]
2925def4c47SEmmanuel Vadot
2935def4c47SEmmanuel Vadot  snps,quirk-frame-length-adjustment:
2945def4c47SEmmanuel Vadot    description:
2955def4c47SEmmanuel Vadot      Value for GFLADJ_30MHZ field of GFLADJ register for post-silicon frame
2965def4c47SEmmanuel Vadot      length adjustment when the fladj_30mhz_sdbnd signal is invalid or
2975def4c47SEmmanuel Vadot      incorrect.
2985def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
2995def4c47SEmmanuel Vadot    minimum: 0
3005def4c47SEmmanuel Vadot    maximum: 0x3f
3015def4c47SEmmanuel Vadot
3028cc087a1SEmmanuel Vadot  snps,ref-clock-period-ns:
3038cc087a1SEmmanuel Vadot    description:
3048cc087a1SEmmanuel Vadot      Value for REFCLKPER field of GUCTL register for reference clock period in
3058cc087a1SEmmanuel Vadot      nanoseconds, when the hardware set default does not match the actual
3068cc087a1SEmmanuel Vadot      clock.
307c9ccf3a3SEmmanuel Vadot
308c9ccf3a3SEmmanuel Vadot      This binding is deprecated. Instead, provide an appropriate reference clock.
309c9ccf3a3SEmmanuel Vadot    minimum: 8
310c9ccf3a3SEmmanuel Vadot    maximum: 62
311c9ccf3a3SEmmanuel Vadot    deprecated: true
3128cc087a1SEmmanuel Vadot
31384943d6fSEmmanuel Vadot  snps,rx-thr-num-pkt:
31484943d6fSEmmanuel Vadot    description:
31584943d6fSEmmanuel Vadot      USB RX packet threshold count. In host mode, this field specifies
31684943d6fSEmmanuel Vadot      the space that must be available in the RX FIFO before the core can
31784943d6fSEmmanuel Vadot      start the corresponding USB RX transaction (burst).
31884943d6fSEmmanuel Vadot      In device mode, this field specifies the space that must be
31984943d6fSEmmanuel Vadot      available in the RX FIFO before the core can send ERDY for a
32084943d6fSEmmanuel Vadot      flow-controlled endpoint. It is only used for SuperSpeed.
32184943d6fSEmmanuel Vadot      The valid values for this field are from 1 to 15. (DWC3 SuperSpeed
32284943d6fSEmmanuel Vadot      USB 3.0 Controller Databook)
32384943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
32484943d6fSEmmanuel Vadot    minimum: 1
32584943d6fSEmmanuel Vadot    maximum: 15
32684943d6fSEmmanuel Vadot
32784943d6fSEmmanuel Vadot  snps,rx-max-burst:
32884943d6fSEmmanuel Vadot    description:
32984943d6fSEmmanuel Vadot      Max USB RX burst size. In host mode, this field specifies the
33084943d6fSEmmanuel Vadot      Maximum Bulk IN burst the DWC_usb3 core can perform. When the system
33184943d6fSEmmanuel Vadot      bus is slower than the USB, RX FIFO can overrun during a long burst.
33284943d6fSEmmanuel Vadot      You can program a smaller value to this field to limit the RX burst
33384943d6fSEmmanuel Vadot      size that the core can perform. It only applies to SS Bulk,
33484943d6fSEmmanuel Vadot      Isochronous, and Interrupt IN endpoints in the host mode.
33584943d6fSEmmanuel Vadot      In device mode, this field specifies the NUMP value that is sent in
33684943d6fSEmmanuel Vadot      ERDY for an OUT endpoint.
33784943d6fSEmmanuel Vadot      The valid values for this field are from 1 to 16. (DWC3 SuperSpeed
33884943d6fSEmmanuel Vadot      USB 3.0 Controller Databook)
33984943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
34084943d6fSEmmanuel Vadot    minimum: 1
34184943d6fSEmmanuel Vadot    maximum: 16
34284943d6fSEmmanuel Vadot
34384943d6fSEmmanuel Vadot  snps,tx-thr-num-pkt:
34484943d6fSEmmanuel Vadot    description:
34584943d6fSEmmanuel Vadot      USB TX packet threshold count. This field specifies the number of
34684943d6fSEmmanuel Vadot      packets that must be in the TXFIFO before the core can start
34784943d6fSEmmanuel Vadot      transmission for the corresponding USB transaction (burst).
34884943d6fSEmmanuel Vadot      This count is valid in both host and device modes. It is only used
34984943d6fSEmmanuel Vadot      for SuperSpeed operation.
35084943d6fSEmmanuel Vadot      Valid values are from 1 to 15. (DWC3 SuperSpeed USB 3.0 Controller
35184943d6fSEmmanuel Vadot      Databook)
35284943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
35384943d6fSEmmanuel Vadot    minimum: 1
35484943d6fSEmmanuel Vadot    maximum: 15
35584943d6fSEmmanuel Vadot
35684943d6fSEmmanuel Vadot  snps,tx-max-burst:
35784943d6fSEmmanuel Vadot    description:
35884943d6fSEmmanuel Vadot      Max USB TX burst size. When the system bus is slower than the USB,
35984943d6fSEmmanuel Vadot      TX FIFO can underrun during a long burst. Program a smaller value
36084943d6fSEmmanuel Vadot      to this field to limit the TX burst size that the core can execute.
36184943d6fSEmmanuel Vadot      In Host mode, it only applies to SS Bulk, Isochronous, and Interrupt
36284943d6fSEmmanuel Vadot      OUT endpoints. This value is not used in device mode.
36384943d6fSEmmanuel Vadot      Valid values are from 1 to 16. (DWC3 SuperSpeed USB 3.0 Controller
36484943d6fSEmmanuel Vadot      Databook)
36584943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
36684943d6fSEmmanuel Vadot    minimum: 1
36784943d6fSEmmanuel Vadot    maximum: 16
36884943d6fSEmmanuel Vadot
3695def4c47SEmmanuel Vadot  snps,rx-thr-num-pkt-prd:
3705def4c47SEmmanuel Vadot    description:
3715def4c47SEmmanuel Vadot      Periodic ESS RX packet threshold count (host mode only). Set this and
3725def4c47SEmmanuel Vadot      snps,rx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31
3735def4c47SEmmanuel Vadot      programming guide section 1.2.4) to enable periodic ESS RX threshold.
3745def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
3755def4c47SEmmanuel Vadot    minimum: 1
3765def4c47SEmmanuel Vadot    maximum: 16
3775def4c47SEmmanuel Vadot
3785def4c47SEmmanuel Vadot  snps,rx-max-burst-prd:
3795def4c47SEmmanuel Vadot    description:
3805def4c47SEmmanuel Vadot      Max periodic ESS RX burst size (host mode only). Set this and
3815def4c47SEmmanuel Vadot      snps,rx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31
3825def4c47SEmmanuel Vadot      programming guide section 1.2.4) to enable periodic ESS RX threshold.
3835def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
3845def4c47SEmmanuel Vadot    minimum: 1
3855def4c47SEmmanuel Vadot    maximum: 16
3865def4c47SEmmanuel Vadot
3875def4c47SEmmanuel Vadot  snps,tx-thr-num-pkt-prd:
3885def4c47SEmmanuel Vadot    description:
3895def4c47SEmmanuel Vadot      Periodic ESS TX packet threshold count (host mode only). Set this and
3905def4c47SEmmanuel Vadot      snps,tx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31
3915def4c47SEmmanuel Vadot      programming guide section 1.2.3) to enable periodic ESS TX threshold.
3925def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
3935def4c47SEmmanuel Vadot    minimum: 1
3945def4c47SEmmanuel Vadot    maximum: 16
3955def4c47SEmmanuel Vadot
3965def4c47SEmmanuel Vadot  snps,tx-max-burst-prd:
3975def4c47SEmmanuel Vadot    description:
3985def4c47SEmmanuel Vadot      Max periodic ESS TX burst size (host mode only). Set this and
3995def4c47SEmmanuel Vadot      snps,tx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31
4005def4c47SEmmanuel Vadot      programming guide section 1.2.3) to enable periodic ESS TX threshold.
4015def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
4025def4c47SEmmanuel Vadot    minimum: 1
4035def4c47SEmmanuel Vadot    maximum: 16
4045def4c47SEmmanuel Vadot
4055def4c47SEmmanuel Vadot  tx-fifo-resize:
406354d7675SEmmanuel Vadot    description: Determines if the TX fifos can be dynamically resized depending
407354d7675SEmmanuel Vadot      on the number of IN endpoints used and if bursting is supported.  This
408354d7675SEmmanuel Vadot      may help improve bandwidth on platforms with higher system latencies, as
409354d7675SEmmanuel Vadot      increased fifo space allows for the controller to prefetch data into its
410354d7675SEmmanuel Vadot      internal memory.
4115def4c47SEmmanuel Vadot    type: boolean
4125def4c47SEmmanuel Vadot
413354d7675SEmmanuel Vadot  tx-fifo-max-num:
414354d7675SEmmanuel Vadot    description: Specifies the max number of packets the txfifo resizing logic
415354d7675SEmmanuel Vadot      can account for when higher endpoint bursting is used. (bMaxBurst > 6) The
416354d7675SEmmanuel Vadot      higher the number, the more fifo space the txfifo resizing logic will
417354d7675SEmmanuel Vadot      allocate for that endpoint.
418354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint8
419354d7675SEmmanuel Vadot    minimum: 3
420354d7675SEmmanuel Vadot
4215def4c47SEmmanuel Vadot  snps,incr-burst-type-adjustment:
4225def4c47SEmmanuel Vadot    description:
4235def4c47SEmmanuel Vadot      Value for INCR burst type of GSBUSCFG0 register, undefined length INCR
4245def4c47SEmmanuel Vadot      burst type enable and INCRx type. A single value means INCRX burst mode
4255def4c47SEmmanuel Vadot      enabled. If more than one value specified, undefined length INCR burst
4265def4c47SEmmanuel Vadot      type will be enabled with burst lengths utilized up to the maximum
4275def4c47SEmmanuel Vadot      of the values passed in this property.
4285def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
4295def4c47SEmmanuel Vadot    minItems: 1
4305def4c47SEmmanuel Vadot    maxItems: 8
4315def4c47SEmmanuel Vadot    uniqueItems: true
4325def4c47SEmmanuel Vadot    items:
4335def4c47SEmmanuel Vadot      enum: [1, 4, 8, 16, 32, 64, 128, 256]
4345def4c47SEmmanuel Vadot
435*8d13bc63SEmmanuel Vadot  num-hc-interrupters:
436*8d13bc63SEmmanuel Vadot    maximum: 8
437*8d13bc63SEmmanuel Vadot    default: 1
438*8d13bc63SEmmanuel Vadot
439c9ccf3a3SEmmanuel Vadot  port:
440c9ccf3a3SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
441c9ccf3a3SEmmanuel Vadot    description:
442c9ccf3a3SEmmanuel Vadot      This port is used with the 'usb-role-switch' property  to connect the
443c9ccf3a3SEmmanuel Vadot      dwc3 to type C connector.
444c9ccf3a3SEmmanuel Vadot
445fac71e4eSEmmanuel Vadot  ports:
446fac71e4eSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
447fac71e4eSEmmanuel Vadot    description:
448fac71e4eSEmmanuel Vadot      Those ports should be used with any connector to the data bus of this
449fac71e4eSEmmanuel Vadot      controller using the OF graph bindings specified if the "usb-role-switch"
450fac71e4eSEmmanuel Vadot      property is used.
451fac71e4eSEmmanuel Vadot
452fac71e4eSEmmanuel Vadot    properties:
453fac71e4eSEmmanuel Vadot      port@0:
454fac71e4eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
455fac71e4eSEmmanuel Vadot        description: High Speed (HS) data bus.
456fac71e4eSEmmanuel Vadot
457fac71e4eSEmmanuel Vadot      port@1:
458fac71e4eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
459fac71e4eSEmmanuel Vadot        description: Super Speed (SS) data bus.
460fac71e4eSEmmanuel Vadot
461b97ee269SEmmanuel Vadot  wakeup-source:
462b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
463b97ee269SEmmanuel Vadot    description:
464b97ee269SEmmanuel Vadot      Enable USB remote wakeup.
465b97ee269SEmmanuel Vadot
4665def4c47SEmmanuel VadotunevaluatedProperties: false
4675def4c47SEmmanuel Vadot
4685def4c47SEmmanuel Vadotrequired:
4695def4c47SEmmanuel Vadot  - compatible
4705def4c47SEmmanuel Vadot  - reg
4715def4c47SEmmanuel Vadot  - interrupts
4725def4c47SEmmanuel Vadot
4735def4c47SEmmanuel Vadotexamples:
4745def4c47SEmmanuel Vadot  - |
4755def4c47SEmmanuel Vadot    usb@4a030000 {
4765def4c47SEmmanuel Vadot      compatible = "snps,dwc3";
4775def4c47SEmmanuel Vadot      reg = <0x4a030000 0xcfff>;
4785def4c47SEmmanuel Vadot      interrupts = <0 92 4>;
4795def4c47SEmmanuel Vadot      usb-phy = <&usb2_phy>, <&usb3_phy>;
4805def4c47SEmmanuel Vadot      snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
4815def4c47SEmmanuel Vadot    };
4825def4c47SEmmanuel Vadot  - |
4835def4c47SEmmanuel Vadot    usb@4a000000 {
4845def4c47SEmmanuel Vadot      compatible = "snps,dwc3";
4855def4c47SEmmanuel Vadot      reg = <0x4a000000 0xcfff>;
4865def4c47SEmmanuel Vadot      interrupts = <0 92 4>;
4875def4c47SEmmanuel Vadot      clocks = <&clk 1>, <&clk 2>, <&clk 3>;
4885def4c47SEmmanuel Vadot      clock-names = "bus_early", "ref", "suspend";
4895def4c47SEmmanuel Vadot      phys = <&usb2_phy>, <&usb3_phy>;
4905def4c47SEmmanuel Vadot      phy-names = "usb2-phy", "usb3-phy";
4915def4c47SEmmanuel Vadot      snps,dis_u2_susphy_quirk;
4925def4c47SEmmanuel Vadot      snps,dis_enblslpm_quirk;
4935def4c47SEmmanuel Vadot    };
4945def4c47SEmmanuel Vadot...
495