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 395def4c47SEmmanuel Vadot interrupts: 405def4c47SEmmanuel Vadot description: 415def4c47SEmmanuel Vadot It's either a single common DWC3 interrupt (dwc_usb3) or individual 425def4c47SEmmanuel Vadot interrupts for the host, gadget and DRD modes. 435def4c47SEmmanuel Vadot minItems: 1 445def4c47SEmmanuel Vadot maxItems: 3 455def4c47SEmmanuel Vadot 465def4c47SEmmanuel Vadot interrupt-names: 475def4c47SEmmanuel Vadot minItems: 1 485def4c47SEmmanuel Vadot maxItems: 3 495def4c47SEmmanuel Vadot oneOf: 505def4c47SEmmanuel Vadot - const: dwc_usb3 515def4c47SEmmanuel Vadot - items: 525def4c47SEmmanuel Vadot enum: [host, peripheral, otg] 535def4c47SEmmanuel Vadot 545def4c47SEmmanuel Vadot clocks: 555def4c47SEmmanuel Vadot description: 565def4c47SEmmanuel Vadot In general the core supports three types of clocks. bus_early is a 575def4c47SEmmanuel Vadot SoC Bus Clock (AHB/AXI/Native). ref generates ITP when the UTMI/ULPI 585def4c47SEmmanuel Vadot PHY is suspended. suspend clocks a small part of the USB3 core when 595def4c47SEmmanuel Vadot SS PHY in P3. But particular cases may differ from that having less 605def4c47SEmmanuel Vadot or more clock sources with another names. 615def4c47SEmmanuel Vadot 625def4c47SEmmanuel Vadot clock-names: 635def4c47SEmmanuel Vadot contains: 645def4c47SEmmanuel Vadot anyOf: 655def4c47SEmmanuel Vadot - enum: [bus_early, ref, suspend] 665def4c47SEmmanuel Vadot - true 675def4c47SEmmanuel Vadot 685def4c47SEmmanuel Vadot usb-phy: 695def4c47SEmmanuel Vadot minItems: 1 705def4c47SEmmanuel Vadot items: 715def4c47SEmmanuel Vadot - description: USB2/HS PHY 725def4c47SEmmanuel Vadot - description: USB3/SS PHY 735def4c47SEmmanuel Vadot 745def4c47SEmmanuel Vadot phys: 755def4c47SEmmanuel Vadot minItems: 1 765def4c47SEmmanuel Vadot items: 775def4c47SEmmanuel Vadot - description: USB2/HS PHY 785def4c47SEmmanuel Vadot - description: USB3/SS PHY 795def4c47SEmmanuel Vadot 805def4c47SEmmanuel Vadot phy-names: 815def4c47SEmmanuel Vadot minItems: 1 825def4c47SEmmanuel Vadot items: 835def4c47SEmmanuel Vadot - const: usb2-phy 845def4c47SEmmanuel Vadot - const: usb3-phy 855def4c47SEmmanuel Vadot 865def4c47SEmmanuel Vadot resets: 875def4c47SEmmanuel Vadot minItems: 1 885def4c47SEmmanuel Vadot 895def4c47SEmmanuel Vadot snps,usb2-lpm-disable: 90*2eb4d8dcSEmmanuel Vadot description: Indicate if we don't want to enable USB2 HW LPM for host 91*2eb4d8dcSEmmanuel Vadot mode. 925def4c47SEmmanuel Vadot type: boolean 935def4c47SEmmanuel Vadot 945def4c47SEmmanuel Vadot snps,usb3_lpm_capable: 955def4c47SEmmanuel Vadot description: Determines if platform is USB3 LPM capable 965def4c47SEmmanuel Vadot type: boolean 975def4c47SEmmanuel Vadot 98*2eb4d8dcSEmmanuel Vadot snps,usb2-gadget-lpm-disable: 99*2eb4d8dcSEmmanuel Vadot description: Indicate if we don't want to enable USB2 HW LPM for gadget 100*2eb4d8dcSEmmanuel Vadot mode. 101*2eb4d8dcSEmmanuel Vadot type: boolean 102*2eb4d8dcSEmmanuel Vadot 1035def4c47SEmmanuel Vadot snps,dis-start-transfer-quirk: 1045def4c47SEmmanuel Vadot description: 1055def4c47SEmmanuel Vadot When set, disable isoc START TRANSFER command failure SW work-around 1065def4c47SEmmanuel Vadot for DWC_usb31 version 1.70a-ea06 and prior. 1075def4c47SEmmanuel Vadot type: boolean 1085def4c47SEmmanuel Vadot 1095def4c47SEmmanuel Vadot snps,disable_scramble_quirk: 1105def4c47SEmmanuel Vadot description: 1115def4c47SEmmanuel Vadot True when SW should disable data scrambling. Only really useful for FPGA 1125def4c47SEmmanuel Vadot builds. 1135def4c47SEmmanuel Vadot type: boolean 1145def4c47SEmmanuel Vadot 1155def4c47SEmmanuel Vadot snps,has-lpm-erratum: 1165def4c47SEmmanuel Vadot description: True when DWC3 was configured with LPM Erratum enabled 1175def4c47SEmmanuel Vadot type: boolean 1185def4c47SEmmanuel Vadot 1195def4c47SEmmanuel Vadot snps,lpm-nyet-threshold: 1205def4c47SEmmanuel Vadot description: LPM NYET threshold 1215def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 1225def4c47SEmmanuel Vadot 1235def4c47SEmmanuel Vadot snps,u2exit_lfps_quirk: 1245def4c47SEmmanuel Vadot description: Set if we want to enable u2exit lfps quirk 1255def4c47SEmmanuel Vadot type: boolean 1265def4c47SEmmanuel Vadot 1275def4c47SEmmanuel Vadot snps,u2ss_inp3_quirk: 1285def4c47SEmmanuel Vadot description: Set if we enable P3 OK for U2/SS Inactive quirk 1295def4c47SEmmanuel Vadot type: boolean 1305def4c47SEmmanuel Vadot 1315def4c47SEmmanuel Vadot snps,req_p1p2p3_quirk: 1325def4c47SEmmanuel Vadot description: 1335def4c47SEmmanuel Vadot When set, the core will always request for P1/P2/P3 transition sequence. 1345def4c47SEmmanuel Vadot type: boolean 1355def4c47SEmmanuel Vadot 1365def4c47SEmmanuel Vadot snps,del_p1p2p3_quirk: 1375def4c47SEmmanuel Vadot description: 1385def4c47SEmmanuel Vadot When set core will delay P1/P2/P3 until a certain amount of 8B10B errors 1395def4c47SEmmanuel Vadot occur. 1405def4c47SEmmanuel Vadot type: boolean 1415def4c47SEmmanuel Vadot 1425def4c47SEmmanuel Vadot snps,del_phy_power_chg_quirk: 1435def4c47SEmmanuel Vadot description: When set core will delay PHY power change from P0 to P1/P2/P3. 1445def4c47SEmmanuel Vadot type: boolean 1455def4c47SEmmanuel Vadot 1465def4c47SEmmanuel Vadot snps,lfps_filter_quirk: 1475def4c47SEmmanuel Vadot description: When set core will filter LFPS reception. 1485def4c47SEmmanuel Vadot type: boolean 1495def4c47SEmmanuel Vadot 1505def4c47SEmmanuel Vadot snps,rx_detect_poll_quirk: 1515def4c47SEmmanuel Vadot description: 1525def4c47SEmmanuel Vadot when set core will disable a 400us delay to start Polling LFPS after 1535def4c47SEmmanuel Vadot RX.Detect. 1545def4c47SEmmanuel Vadot type: boolean 1555def4c47SEmmanuel Vadot 1565def4c47SEmmanuel Vadot snps,tx_de_emphasis_quirk: 1575def4c47SEmmanuel Vadot description: When set core will set Tx de-emphasis value 1585def4c47SEmmanuel Vadot type: boolean 1595def4c47SEmmanuel Vadot 1605def4c47SEmmanuel Vadot snps,tx_de_emphasis: 1615def4c47SEmmanuel Vadot description: 1625def4c47SEmmanuel Vadot The value driven to the PHY is controlled by the LTSSM during USB3 1635def4c47SEmmanuel Vadot Compliance mode. 1645def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 1655def4c47SEmmanuel Vadot enum: 1665def4c47SEmmanuel Vadot - 0 # -6dB de-emphasis 1675def4c47SEmmanuel Vadot - 1 # -3.5dB de-emphasis 1685def4c47SEmmanuel Vadot - 2 # No de-emphasis 1695def4c47SEmmanuel Vadot 1705def4c47SEmmanuel Vadot snps,dis_u3_susphy_quirk: 1715def4c47SEmmanuel Vadot description: When set core will disable USB3 suspend phy 1725def4c47SEmmanuel Vadot type: boolean 1735def4c47SEmmanuel Vadot 1745def4c47SEmmanuel Vadot snps,dis_u2_susphy_quirk: 1755def4c47SEmmanuel Vadot description: When set core will disable USB2 suspend phy 1765def4c47SEmmanuel Vadot type: boolean 1775def4c47SEmmanuel Vadot 1785def4c47SEmmanuel Vadot snps,dis_enblslpm_quirk: 1795def4c47SEmmanuel Vadot description: 1805def4c47SEmmanuel Vadot When set clears the enblslpm in GUSB2PHYCFG, disabling the suspend signal 1815def4c47SEmmanuel Vadot to the PHY. 1825def4c47SEmmanuel Vadot type: boolean 1835def4c47SEmmanuel Vadot 1845def4c47SEmmanuel Vadot snps,dis-u1-entry-quirk: 1855def4c47SEmmanuel Vadot description: Set if link entering into U1 needs to be disabled 1865def4c47SEmmanuel Vadot type: boolean 1875def4c47SEmmanuel Vadot 1885def4c47SEmmanuel Vadot snps,dis-u2-entry-quirk: 1895def4c47SEmmanuel Vadot description: Set if link entering into U2 needs to be disabled 1905def4c47SEmmanuel Vadot type: boolean 1915def4c47SEmmanuel Vadot 1925def4c47SEmmanuel Vadot snps,dis_rxdet_inp3_quirk: 1935def4c47SEmmanuel Vadot description: 1945def4c47SEmmanuel Vadot When set core will disable receiver detection in PHY P3 power state. 1955def4c47SEmmanuel Vadot type: boolean 1965def4c47SEmmanuel Vadot 1975def4c47SEmmanuel Vadot snps,dis-u2-freeclk-exists-quirk: 1985def4c47SEmmanuel Vadot description: 1995def4c47SEmmanuel Vadot When set, clear the u2_freeclk_exists in GUSB2PHYCFG, specify that USB2 2005def4c47SEmmanuel Vadot PHY doesn't provide a free-running PHY clock. 2015def4c47SEmmanuel Vadot type: boolean 2025def4c47SEmmanuel Vadot 2035def4c47SEmmanuel Vadot snps,dis-del-phy-power-chg-quirk: 2045def4c47SEmmanuel Vadot description: 2055def4c47SEmmanuel Vadot When set core will change PHY power from P0 to P1/P2/P3 without delay. 2065def4c47SEmmanuel Vadot type: boolean 2075def4c47SEmmanuel Vadot 2085def4c47SEmmanuel Vadot snps,dis-tx-ipgap-linecheck-quirk: 2095def4c47SEmmanuel Vadot description: When set, disable u2mac linestate check during HS transmit 2105def4c47SEmmanuel Vadot type: boolean 2115def4c47SEmmanuel Vadot 2125def4c47SEmmanuel Vadot snps,parkmode-disable-ss-quirk: 2135def4c47SEmmanuel Vadot description: 2145def4c47SEmmanuel Vadot When set, all SuperSpeed bus instances in park mode are disabled. 2155def4c47SEmmanuel Vadot type: boolean 2165def4c47SEmmanuel Vadot 2175def4c47SEmmanuel Vadot snps,dis_metastability_quirk: 2185def4c47SEmmanuel Vadot description: 2195def4c47SEmmanuel Vadot When set, disable metastability workaround. CAUTION! Use only if you are 2205def4c47SEmmanuel Vadot absolutely sure of it. 2215def4c47SEmmanuel Vadot type: boolean 2225def4c47SEmmanuel Vadot 2235def4c47SEmmanuel Vadot snps,dis-split-quirk: 2245def4c47SEmmanuel Vadot description: 2255def4c47SEmmanuel Vadot When set, change the way URBs are handled by the driver. Needed to 2265def4c47SEmmanuel Vadot avoid -EPROTO errors with usbhid on some devices (Hikey 970). 2275def4c47SEmmanuel Vadot type: boolean 2285def4c47SEmmanuel Vadot 2295def4c47SEmmanuel Vadot snps,is-utmi-l1-suspend: 2305def4c47SEmmanuel Vadot description: 2315def4c47SEmmanuel Vadot True when DWC3 asserts output signal utmi_l1_suspend_n, false when 2325def4c47SEmmanuel Vadot asserts utmi_sleep_n. 2335def4c47SEmmanuel Vadot type: boolean 2345def4c47SEmmanuel Vadot 2355def4c47SEmmanuel Vadot snps,hird-threshold: 2365def4c47SEmmanuel Vadot description: HIRD threshold 2375def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 2385def4c47SEmmanuel Vadot 2395def4c47SEmmanuel Vadot snps,hsphy_interface: 2405def4c47SEmmanuel Vadot description: 2415def4c47SEmmanuel Vadot High-Speed PHY interface selection between UTMI+ and ULPI when the 2425def4c47SEmmanuel Vadot DWC_USB3_HSPHY_INTERFACE has value 3. 2435def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 2445def4c47SEmmanuel Vadot enum: [utmi, ulpi] 2455def4c47SEmmanuel Vadot 2465def4c47SEmmanuel Vadot snps,quirk-frame-length-adjustment: 2475def4c47SEmmanuel Vadot description: 2485def4c47SEmmanuel Vadot Value for GFLADJ_30MHZ field of GFLADJ register for post-silicon frame 2495def4c47SEmmanuel Vadot length adjustment when the fladj_30mhz_sdbnd signal is invalid or 2505def4c47SEmmanuel Vadot incorrect. 2515def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 2525def4c47SEmmanuel Vadot minimum: 0 2535def4c47SEmmanuel Vadot maximum: 0x3f 2545def4c47SEmmanuel Vadot 2555def4c47SEmmanuel Vadot snps,rx-thr-num-pkt-prd: 2565def4c47SEmmanuel Vadot description: 2575def4c47SEmmanuel Vadot Periodic ESS RX packet threshold count (host mode only). Set this and 2585def4c47SEmmanuel Vadot snps,rx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31 2595def4c47SEmmanuel Vadot programming guide section 1.2.4) to enable periodic ESS RX threshold. 2605def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 2615def4c47SEmmanuel Vadot minimum: 1 2625def4c47SEmmanuel Vadot maximum: 16 2635def4c47SEmmanuel Vadot 2645def4c47SEmmanuel Vadot snps,rx-max-burst-prd: 2655def4c47SEmmanuel Vadot description: 2665def4c47SEmmanuel Vadot Max periodic ESS RX burst size (host mode only). Set this and 2675def4c47SEmmanuel Vadot snps,rx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31 2685def4c47SEmmanuel Vadot programming guide section 1.2.4) to enable periodic ESS RX threshold. 2695def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 2705def4c47SEmmanuel Vadot minimum: 1 2715def4c47SEmmanuel Vadot maximum: 16 2725def4c47SEmmanuel Vadot 2735def4c47SEmmanuel Vadot snps,tx-thr-num-pkt-prd: 2745def4c47SEmmanuel Vadot description: 2755def4c47SEmmanuel Vadot Periodic ESS TX packet threshold count (host mode only). Set this and 2765def4c47SEmmanuel Vadot snps,tx-max-burst-prd to a valid, non-zero value 1-16 (DWC_usb31 2775def4c47SEmmanuel Vadot programming guide section 1.2.3) to enable periodic ESS TX threshold. 2785def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 2795def4c47SEmmanuel Vadot minimum: 1 2805def4c47SEmmanuel Vadot maximum: 16 2815def4c47SEmmanuel Vadot 2825def4c47SEmmanuel Vadot snps,tx-max-burst-prd: 2835def4c47SEmmanuel Vadot description: 2845def4c47SEmmanuel Vadot Max periodic ESS TX burst size (host mode only). Set this and 2855def4c47SEmmanuel Vadot snps,tx-thr-num-pkt-prd to a valid, non-zero value 1-16 (DWC_usb31 2865def4c47SEmmanuel Vadot programming guide section 1.2.3) to enable periodic ESS TX threshold. 2875def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint8 2885def4c47SEmmanuel Vadot minimum: 1 2895def4c47SEmmanuel Vadot maximum: 16 2905def4c47SEmmanuel Vadot 2915def4c47SEmmanuel Vadot tx-fifo-resize: 2925def4c47SEmmanuel Vadot description: Determines if the FIFO *has* to be reallocated 2935def4c47SEmmanuel Vadot deprecated: true 2945def4c47SEmmanuel Vadot type: boolean 2955def4c47SEmmanuel Vadot 2965def4c47SEmmanuel Vadot snps,incr-burst-type-adjustment: 2975def4c47SEmmanuel Vadot description: 2985def4c47SEmmanuel Vadot Value for INCR burst type of GSBUSCFG0 register, undefined length INCR 2995def4c47SEmmanuel Vadot burst type enable and INCRx type. A single value means INCRX burst mode 3005def4c47SEmmanuel Vadot enabled. If more than one value specified, undefined length INCR burst 3015def4c47SEmmanuel Vadot type will be enabled with burst lengths utilized up to the maximum 3025def4c47SEmmanuel Vadot of the values passed in this property. 3035def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 3045def4c47SEmmanuel Vadot minItems: 1 3055def4c47SEmmanuel Vadot maxItems: 8 3065def4c47SEmmanuel Vadot uniqueItems: true 3075def4c47SEmmanuel Vadot items: 3085def4c47SEmmanuel Vadot enum: [1, 4, 8, 16, 32, 64, 128, 256] 3095def4c47SEmmanuel Vadot 3105def4c47SEmmanuel VadotunevaluatedProperties: false 3115def4c47SEmmanuel Vadot 3125def4c47SEmmanuel Vadotrequired: 3135def4c47SEmmanuel Vadot - compatible 3145def4c47SEmmanuel Vadot - reg 3155def4c47SEmmanuel Vadot - interrupts 3165def4c47SEmmanuel Vadot 3175def4c47SEmmanuel Vadotexamples: 3185def4c47SEmmanuel Vadot - | 3195def4c47SEmmanuel Vadot usb@4a030000 { 3205def4c47SEmmanuel Vadot compatible = "snps,dwc3"; 3215def4c47SEmmanuel Vadot reg = <0x4a030000 0xcfff>; 3225def4c47SEmmanuel Vadot interrupts = <0 92 4>; 3235def4c47SEmmanuel Vadot usb-phy = <&usb2_phy>, <&usb3_phy>; 3245def4c47SEmmanuel Vadot snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; 3255def4c47SEmmanuel Vadot }; 3265def4c47SEmmanuel Vadot - | 3275def4c47SEmmanuel Vadot usb@4a000000 { 3285def4c47SEmmanuel Vadot compatible = "snps,dwc3"; 3295def4c47SEmmanuel Vadot reg = <0x4a000000 0xcfff>; 3305def4c47SEmmanuel Vadot interrupts = <0 92 4>; 3315def4c47SEmmanuel Vadot clocks = <&clk 1>, <&clk 2>, <&clk 3>; 3325def4c47SEmmanuel Vadot clock-names = "bus_early", "ref", "suspend"; 3335def4c47SEmmanuel Vadot phys = <&usb2_phy>, <&usb3_phy>; 3345def4c47SEmmanuel Vadot phy-names = "usb2-phy", "usb3-phy"; 3355def4c47SEmmanuel Vadot snps,dis_u2_susphy_quirk; 3365def4c47SEmmanuel Vadot snps,dis_enblslpm_quirk; 3375def4c47SEmmanuel Vadot }; 3385def4c47SEmmanuel Vadot... 339