xref: /freebsd/sys/contrib/device-tree/Bindings/usb/rockchip,dwc3.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotRockchip SuperSpeed DWC3 USB SoC controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible:	should contain "rockchip,rk3399-dwc3" for rk3399 SoC
5*c66ec88fSEmmanuel Vadot- clocks:	A list of phandle + clock-specifier pairs for the
6*c66ec88fSEmmanuel Vadot		clocks listed in clock-names
7*c66ec88fSEmmanuel Vadot- clock-names:	Should contain the following:
8*c66ec88fSEmmanuel Vadot  "ref_clk"	Controller reference clk, have to be 24 MHz
9*c66ec88fSEmmanuel Vadot  "suspend_clk"	Controller suspend clk, have to be 24 MHz or 32 KHz
10*c66ec88fSEmmanuel Vadot  "bus_clk"	Master/Core clock, have to be >= 62.5 MHz for SS
11*c66ec88fSEmmanuel Vadot		operation and >= 30MHz for HS operation
12*c66ec88fSEmmanuel Vadot  "grf_clk"	Controller grf clk
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel VadotRequired child node:
15*c66ec88fSEmmanuel VadotA child node must exist to represent the core DWC3 IP block. The name of
16*c66ec88fSEmmanuel Vadotthe node is not important. The content of the node is defined in dwc3.txt.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotPhy documentation is provided in the following places:
19*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml - USB2.0 PHY
20*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/phy/phy-rockchip-typec.txt     - Type-C PHY
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel VadotExample device nodes:
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot	usbdrd3_0: usb@fe800000 {
25*c66ec88fSEmmanuel Vadot		compatible = "rockchip,rk3399-dwc3";
26*c66ec88fSEmmanuel Vadot		clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
27*c66ec88fSEmmanuel Vadot			 <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_GRF>;
28*c66ec88fSEmmanuel Vadot		clock-names = "ref_clk", "suspend_clk",
29*c66ec88fSEmmanuel Vadot			      "bus_clk", "grf_clk";
30*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
31*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
32*c66ec88fSEmmanuel Vadot		ranges;
33*c66ec88fSEmmanuel Vadot		usbdrd_dwc3_0: dwc3@fe800000 {
34*c66ec88fSEmmanuel Vadot			compatible = "snps,dwc3";
35*c66ec88fSEmmanuel Vadot			reg = <0x0 0xfe800000 0x0 0x100000>;
36*c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
37*c66ec88fSEmmanuel Vadot			dr_mode = "otg";
38*c66ec88fSEmmanuel Vadot		};
39*c66ec88fSEmmanuel Vadot	};
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot	usbdrd3_1: usb@fe900000 {
42*c66ec88fSEmmanuel Vadot		compatible = "rockchip,rk3399-dwc3";
43*c66ec88fSEmmanuel Vadot		clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
44*c66ec88fSEmmanuel Vadot			 <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_GRF>;
45*c66ec88fSEmmanuel Vadot		clock-names = "ref_clk", "suspend_clk",
46*c66ec88fSEmmanuel Vadot			      "bus_clk", "grf_clk";
47*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
48*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
49*c66ec88fSEmmanuel Vadot		ranges;
50*c66ec88fSEmmanuel Vadot		usbdrd_dwc3_1: dwc3@fe900000 {
51*c66ec88fSEmmanuel Vadot			compatible = "snps,dwc3";
52*c66ec88fSEmmanuel Vadot			reg = <0x0 0xfe900000 0x0 0x100000>;
53*c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
54*c66ec88fSEmmanuel Vadot			dr_mode = "otg";
55*c66ec88fSEmmanuel Vadot		};
56*c66ec88fSEmmanuel Vadot	};
57