blob: 00f87a558c7dd3b8af7392f87448ac8a00fbcd95 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/dwc3-xilinx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Xilinx SuperSpeed DWC3 USB SoC controller
8
9maintainers:
Tom Rini93743d22024-04-01 09:08:13 -040010 - Mubin Sayyed <mubin.sayyed@amd.com>
11 - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Tom Rini53633a82024-02-29 12:33:36 -050012
13properties:
14 compatible:
15 items:
16 - enum:
17 - xlnx,zynqmp-dwc3
18 - xlnx,versal-dwc3
19 reg:
20 maxItems: 1
21
22 "#address-cells":
23 enum: [ 1, 2 ]
24
25 "#size-cells":
26 enum: [ 1, 2 ]
27
28 ranges: true
29
30 power-domains:
31 description: specifies a phandle to PM domain provider node
32 maxItems: 1
33
34 clocks:
35 description:
36 A list of phandle and clock-specifier pairs for the clocks
37 listed in clock-names.
38 items:
39 - description: Master/Core clock, has to be >= 125 MHz
40 for SS operation and >= 60MHz for HS operation.
41 - description: Clock source to core during PHY power down.
42
43 clock-names:
44 items:
45 - const: bus_clk
46 - const: ref_clk
47
48 resets:
49 description:
50 A list of phandles for resets listed in reset-names.
51
52 items:
53 - description: USB core reset
54 - description: USB hibernation reset
55 - description: USB APB reset
56
57 reset-names:
58 items:
59 - const: usb_crst
60 - const: usb_hibrst
61 - const: usb_apbrst
62
63 phys:
64 minItems: 1
65 maxItems: 2
66
67 phy-names:
68 minItems: 1
69 maxItems: 2
70 items:
71 enum:
72 - usb2-phy
73 - usb3-phy
74
75 reset-gpios:
76 description: GPIO used for the reset ulpi-phy
77 maxItems: 1
78
79# Required child node:
80
81patternProperties:
82 "^usb@[0-9a-f]+$":
83 $ref: snps,dwc3.yaml#
84
85required:
86 - compatible
87 - reg
88 - "#address-cells"
89 - "#size-cells"
90 - ranges
91 - power-domains
92 - clocks
93 - clock-names
94 - resets
95 - reset-names
96
97additionalProperties: false
98
99examples:
100 - |
101 #include <dt-bindings/dma/xlnx-zynqmp-dpdma.h>
102 #include <dt-bindings/power/xlnx-zynqmp-power.h>
103 #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
104 #include <dt-bindings/clock/xlnx-zynqmp-clk.h>
105 #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
106 #include <dt-bindings/phy/phy.h>
107 axi {
108 #address-cells = <2>;
109 #size-cells = <2>;
110
111 usb@0 {
112 #address-cells = <0x2>;
113 #size-cells = <0x2>;
114 compatible = "xlnx,zynqmp-dwc3";
115 reg = <0x0 0xff9d0000 0x0 0x100>;
116 clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
117 clock-names = "bus_clk", "ref_clk";
118 power-domains = <&zynqmp_firmware PD_USB_0>;
119 resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
120 <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
121 <&zynqmp_reset ZYNQMP_RESET_USB1_APB>;
122 reset-names = "usb_crst", "usb_hibrst", "usb_apbrst";
123 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
124 phy-names = "usb3-phy";
125 ranges;
126
127 usb@fe200000 {
128 compatible = "snps,dwc3";
129 reg = <0x0 0xfe200000 0x0 0x40000>;
130 interrupt-names = "host", "otg";
131 interrupts = <0 65 4>, <0 69 4>;
132 dr_mode = "host";
133 dma-coherent;
134 };
135 };
136 };