xref: /freebsd-src/sys/contrib/device-tree/Bindings/usb/dwc3-xilinx.txt (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
1c66ec88fSEmmanuel VadotXilinx SuperSpeed DWC3 USB SoC controller
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotRequired properties:
4*2eb4d8dcSEmmanuel Vadot- compatible:	May contain "xlnx,zynqmp-dwc3" or "xlnx,versal-dwc3"
5*2eb4d8dcSEmmanuel Vadot- reg:		Base address and length of the register control block
6c66ec88fSEmmanuel Vadot- clocks:	A list of phandles for the clocks listed in clock-names
7c66ec88fSEmmanuel Vadot- clock-names:	Should contain the following:
8c66ec88fSEmmanuel Vadot  "bus_clk"	 Master/Core clock, have to be >= 125 MHz for SS
9c66ec88fSEmmanuel Vadot		 operation and >= 60MHz for HS operation
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel Vadot  "ref_clk"	 Clock source to core during PHY power down
12*2eb4d8dcSEmmanuel Vadot- resets:	A list of phandles for resets listed in reset-names
13*2eb4d8dcSEmmanuel Vadot- reset-names:
14*2eb4d8dcSEmmanuel Vadot  "usb_crst"	 USB core reset
15*2eb4d8dcSEmmanuel Vadot  "usb_hibrst"	 USB hibernation reset
16*2eb4d8dcSEmmanuel Vadot  "usb_apbrst"	 USB APB reset
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel VadotRequired child node:
19c66ec88fSEmmanuel VadotA child node must exist to represent the core DWC3 IP block. The name of
20c66ec88fSEmmanuel Vadotthe node is not important. The content of the node is defined in dwc3.txt.
21c66ec88fSEmmanuel Vadot
22*2eb4d8dcSEmmanuel VadotOptional properties for snps,dwc3:
23*2eb4d8dcSEmmanuel Vadot- dma-coherent:	Enable this flag if CCI is enabled in design. Adding this
24*2eb4d8dcSEmmanuel Vadot		flag configures Global SoC bus Configuration Register and
25*2eb4d8dcSEmmanuel Vadot		Xilinx USB 3.0 IP - USB coherency register to enable CCI.
26*2eb4d8dcSEmmanuel Vadot- interrupt-names: Should contain the following:
27*2eb4d8dcSEmmanuel Vadot  "dwc_usb3"	USB gadget mode interrupts
28*2eb4d8dcSEmmanuel Vadot  "otg"		USB OTG mode interrupts
29*2eb4d8dcSEmmanuel Vadot  "hiber"	USB hibernation interrupts
30*2eb4d8dcSEmmanuel Vadot
31c66ec88fSEmmanuel VadotExample device node:
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot		usb@0 {
34c66ec88fSEmmanuel Vadot			#address-cells = <0x2>;
35c66ec88fSEmmanuel Vadot			#size-cells = <0x1>;
36c66ec88fSEmmanuel Vadot			compatible = "xlnx,zynqmp-dwc3";
37*2eb4d8dcSEmmanuel Vadot			reg = <0x0 0xff9d0000 0x0 0x100>;
385def4c47SEmmanuel Vadot			clock-names = "bus_clk", "ref_clk";
39c66ec88fSEmmanuel Vadot			clocks = <&clk125>, <&clk125>;
40*2eb4d8dcSEmmanuel Vadot			resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
41*2eb4d8dcSEmmanuel Vadot				 <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
42*2eb4d8dcSEmmanuel Vadot				 <&zynqmp_reset ZYNQMP_RESET_USB1_APB>;
43*2eb4d8dcSEmmanuel Vadot			reset-names = "usb_crst", "usb_hibrst", "usb_apbrst";
44c66ec88fSEmmanuel Vadot			ranges;
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot			dwc3@fe200000 {
47c66ec88fSEmmanuel Vadot				compatible = "snps,dwc3";
48c66ec88fSEmmanuel Vadot				reg = <0x0 0xfe200000 0x40000>;
49*2eb4d8dcSEmmanuel Vadot				interrupt-names = "dwc_usb3", "otg", "hiber";
50*2eb4d8dcSEmmanuel Vadot				interrupts = <0 65 4>, <0 69 4>, <0 75 4>;
51*2eb4d8dcSEmmanuel Vadot				phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
52*2eb4d8dcSEmmanuel Vadot				phy-names = "usb3-phy";
53c66ec88fSEmmanuel Vadot				dr_mode = "host";
54*2eb4d8dcSEmmanuel Vadot				dma-coherent;
55c66ec88fSEmmanuel Vadot			};
56c66ec88fSEmmanuel Vadot		};
57