xref: /freebsd/sys/contrib/device-tree/Bindings/usb/dwc3.txt (revision 6be3386466ab79a84b48429ae66244f21526d3df)
1c66ec88fSEmmanuel Vadotsynopsys DWC3 CORE
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotDWC3- USB3 CONTROLLER. Complies to the generic USB binding properties
4c66ec88fSEmmanuel Vadot      as described in 'usb/generic.txt'
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel VadotRequired properties:
7c66ec88fSEmmanuel Vadot - compatible: must be "snps,dwc3"
8c66ec88fSEmmanuel Vadot - reg : Address and length of the register set for the device
9c66ec88fSEmmanuel Vadot - interrupts: Interrupts used by the dwc3 controller.
10c66ec88fSEmmanuel Vadot - clock-names: list of clock names. Ideally should be "ref",
11c66ec88fSEmmanuel Vadot                "bus_early", "suspend" but may be less or more.
12c66ec88fSEmmanuel Vadot - clocks: list of phandle and clock specifier pairs corresponding to
13c66ec88fSEmmanuel Vadot           entries in the clock-names property.
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel VadotException for clocks:
16c66ec88fSEmmanuel Vadot  clocks are optional if the parent node (i.e. glue-layer) is compatible to
17c66ec88fSEmmanuel Vadot  one of the following:
18c66ec88fSEmmanuel Vadot    "cavium,octeon-7130-usb-uctl"
19c66ec88fSEmmanuel Vadot    "qcom,dwc3"
20c66ec88fSEmmanuel Vadot    "samsung,exynos5250-dwusb3"
21c66ec88fSEmmanuel Vadot    "samsung,exynos5433-dwusb3"
22c66ec88fSEmmanuel Vadot    "samsung,exynos7-dwusb3"
23c66ec88fSEmmanuel Vadot    "sprd,sc9860-dwc3"
24c66ec88fSEmmanuel Vadot    "st,stih407-dwc3"
25c66ec88fSEmmanuel Vadot    "ti,am437x-dwc3"
26c66ec88fSEmmanuel Vadot    "ti,dwc3"
27c66ec88fSEmmanuel Vadot    "ti,keystone-dwc3"
28c66ec88fSEmmanuel Vadot    "rockchip,rk3399-dwc3"
29c66ec88fSEmmanuel Vadot    "xlnx,zynqmp-dwc3"
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel VadotOptional properties:
32c66ec88fSEmmanuel Vadot - usb-phy : array of phandle for the PHY device.  The first element
33c66ec88fSEmmanuel Vadot   in the array is expected to be a handle to the USB2/HS PHY and
34c66ec88fSEmmanuel Vadot   the second element is expected to be a handle to the USB3/SS PHY
35c66ec88fSEmmanuel Vadot - phys: from the *Generic PHY* bindings
36c66ec88fSEmmanuel Vadot - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
37c66ec88fSEmmanuel Vadot	or "usb3-phy".
38c66ec88fSEmmanuel Vadot - resets: set of phandle and reset specifier pairs
39c66ec88fSEmmanuel Vadot - snps,usb2-lpm-disable: indicate if we don't want to enable USB2 HW LPM
40c66ec88fSEmmanuel Vadot - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
41c66ec88fSEmmanuel Vadot - snps,dis-start-transfer-quirk: when set, disable isoc START TRANSFER command
42c66ec88fSEmmanuel Vadot			failure SW work-around for DWC_usb31 version 1.70a-ea06
43c66ec88fSEmmanuel Vadot			and prior.
44c66ec88fSEmmanuel Vadot - snps,disable_scramble_quirk: true when SW should disable data scrambling.
45c66ec88fSEmmanuel Vadot	Only really useful for FPGA builds.
46c66ec88fSEmmanuel Vadot - snps,has-lpm-erratum: true when DWC3 was configured with LPM Erratum enabled
47c66ec88fSEmmanuel Vadot - snps,lpm-nyet-threshold: LPM NYET threshold
48c66ec88fSEmmanuel Vadot - snps,u2exit_lfps_quirk: set if we want to enable u2exit lfps quirk
49c66ec88fSEmmanuel Vadot - snps,u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
50c66ec88fSEmmanuel Vadot - snps,req_p1p2p3_quirk: when set, the core will always request for
51c66ec88fSEmmanuel Vadot			P1/P2/P3 transition sequence.
52c66ec88fSEmmanuel Vadot - snps,del_p1p2p3_quirk: when set core will delay P1/P2/P3 until a certain
53c66ec88fSEmmanuel Vadot			amount of 8B10B errors occur.
54c66ec88fSEmmanuel Vadot - snps,del_phy_power_chg_quirk: when set core will delay PHY power change
55c66ec88fSEmmanuel Vadot			from P0 to P1/P2/P3.
56c66ec88fSEmmanuel Vadot - snps,lfps_filter_quirk: when set core will filter LFPS reception.
57c66ec88fSEmmanuel Vadot - snps,rx_detect_poll_quirk: when set core will disable a 400us delay to start
58c66ec88fSEmmanuel Vadot			Polling LFPS after RX.Detect.
59c66ec88fSEmmanuel Vadot - snps,tx_de_emphasis_quirk: when set core will set Tx de-emphasis value.
60c66ec88fSEmmanuel Vadot - snps,tx_de_emphasis: the value driven to the PHY is controlled by the
61c66ec88fSEmmanuel Vadot			LTSSM during USB3 Compliance mode.
62c66ec88fSEmmanuel Vadot - snps,dis_u3_susphy_quirk: when set core will disable USB3 suspend phy.
63c66ec88fSEmmanuel Vadot - snps,dis_u2_susphy_quirk: when set core will disable USB2 suspend phy.
64c66ec88fSEmmanuel Vadot - snps,dis_enblslpm_quirk: when set clears the enblslpm in GUSB2PHYCFG,
65c66ec88fSEmmanuel Vadot			disabling the suspend signal to the PHY.
66c66ec88fSEmmanuel Vadot - snps,dis-u1-entry-quirk: set if link entering into U1 needs to be disabled.
67c66ec88fSEmmanuel Vadot - snps,dis-u2-entry-quirk: set if link entering into U2 needs to be disabled.
68c66ec88fSEmmanuel Vadot - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
69c66ec88fSEmmanuel Vadot			in PHY P3 power state.
70c66ec88fSEmmanuel Vadot - snps,dis-u2-freeclk-exists-quirk: when set, clear the u2_freeclk_exists
71c66ec88fSEmmanuel Vadot			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
72c66ec88fSEmmanuel Vadot			a free-running PHY clock.
73c66ec88fSEmmanuel Vadot - snps,dis-del-phy-power-chg-quirk: when set core will change PHY power
74c66ec88fSEmmanuel Vadot			from P0 to P1/P2/P3 without delay.
75c66ec88fSEmmanuel Vadot - snps,dis-tx-ipgap-linecheck-quirk: when set, disable u2mac linestate check
76c66ec88fSEmmanuel Vadot			during HS transmit.
77c66ec88fSEmmanuel Vadot - snps,parkmode-disable-ss-quirk: when set, all SuperSpeed bus instances in
78c66ec88fSEmmanuel Vadot			park mode are disabled.
79c66ec88fSEmmanuel Vadot - snps,dis_metastability_quirk: when set, disable metastability workaround.
80c66ec88fSEmmanuel Vadot			CAUTION: use only if you are absolutely sure of it.
81*6be33864SEmmanuel Vadot - snps,dis-split-quirk: when set, change the way URBs are handled by the
82*6be33864SEmmanuel Vadot			 driver. Needed to avoid -EPROTO errors with usbhid
83*6be33864SEmmanuel Vadot			 on some devices (Hikey 970).
84c66ec88fSEmmanuel Vadot - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
85c66ec88fSEmmanuel Vadot			utmi_l1_suspend_n, false when asserts utmi_sleep_n
86c66ec88fSEmmanuel Vadot - snps,hird-threshold: HIRD threshold
87c66ec88fSEmmanuel Vadot - snps,hsphy_interface: High-Speed PHY interface selection between "utmi" for
88c66ec88fSEmmanuel Vadot   UTMI+ and "ulpi" for ULPI when the DWC_USB3_HSPHY_INTERFACE has value 3.
89c66ec88fSEmmanuel Vadot - snps,quirk-frame-length-adjustment: Value for GFLADJ_30MHZ field of GFLADJ
90c66ec88fSEmmanuel Vadot	register for post-silicon frame length adjustment when the
91c66ec88fSEmmanuel Vadot	fladj_30mhz_sdbnd signal is invalid or incorrect.
92c66ec88fSEmmanuel Vadot - snps,rx-thr-num-pkt-prd: periodic ESS RX packet threshold count - host mode
93c66ec88fSEmmanuel Vadot			only. Set this and rx-max-burst-prd to a valid,
94c66ec88fSEmmanuel Vadot			non-zero value 1-16 (DWC_usb31 programming guide
95c66ec88fSEmmanuel Vadot			section 1.2.4) to enable periodic ESS RX threshold.
96c66ec88fSEmmanuel Vadot - snps,rx-max-burst-prd: max periodic ESS RX burst size - host mode only. Set
97c66ec88fSEmmanuel Vadot			this and rx-thr-num-pkt-prd to a valid, non-zero value
98c66ec88fSEmmanuel Vadot			1-16 (DWC_usb31 programming guide section 1.2.4) to
99c66ec88fSEmmanuel Vadot			enable periodic ESS RX threshold.
100c66ec88fSEmmanuel Vadot - snps,tx-thr-num-pkt-prd: periodic ESS TX packet threshold count - host mode
101c66ec88fSEmmanuel Vadot			only. Set this and tx-max-burst-prd to a valid,
102c66ec88fSEmmanuel Vadot			non-zero value 1-16 (DWC_usb31 programming guide
103c66ec88fSEmmanuel Vadot			section 1.2.3) to enable periodic ESS TX threshold.
104c66ec88fSEmmanuel Vadot - snps,tx-max-burst-prd: max periodic ESS TX burst size - host mode only. Set
105c66ec88fSEmmanuel Vadot			this and tx-thr-num-pkt-prd to a valid, non-zero value
106c66ec88fSEmmanuel Vadot			1-16 (DWC_usb31 programming guide section 1.2.3) to
107c66ec88fSEmmanuel Vadot			enable periodic ESS TX threshold.
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot - <DEPRECATED> tx-fifo-resize: determines if the FIFO *has* to be reallocated.
110c66ec88fSEmmanuel Vadot - snps,incr-burst-type-adjustment: Value for INCR burst type of GSBUSCFG0
111c66ec88fSEmmanuel Vadot			register, undefined length INCR burst type enable and INCRx type.
112c66ec88fSEmmanuel Vadot			When just one value, which means INCRX burst mode enabled. When
113c66ec88fSEmmanuel Vadot			more than one value, which means undefined length INCR burst type
114c66ec88fSEmmanuel Vadot			enabled. The values can be 1, 4, 8, 16, 32, 64, 128 and 256.
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadot - in addition all properties from usb-xhci.txt from the current directory are
117c66ec88fSEmmanuel Vadot   supported as well
118c66ec88fSEmmanuel Vadot
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel VadotThis is usually a subnode to DWC3 glue to which it is connected.
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadotdwc3@4a030000 {
123c66ec88fSEmmanuel Vadot	compatible = "snps,dwc3";
124c66ec88fSEmmanuel Vadot	reg = <0x4a030000 0xcfff>;
125c66ec88fSEmmanuel Vadot	interrupts = <0 92 4>
126c66ec88fSEmmanuel Vadot	usb-phy = <&usb2_phy>, <&usb3,phy>;
127c66ec88fSEmmanuel Vadot	snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
128c66ec88fSEmmanuel Vadot};
129