@@ -138,6 +138,53 @@ conn_subsys: bus@5b000000 {
138138 status = "disabled";
139139 };
140140
141+ usbotg3: usb@5b110000 {
142+ compatible = "fsl,imx8qm-usb3";
143+ reg = <0x5b110000 0x10000>;
144+ #address-cells = <1>;
145+ #size-cells = <1>;
146+ ranges;
147+ clocks = <&usb3_lpcg IMX_LPCG_CLK_1>,
148+ <&usb3_lpcg IMX_LPCG_CLK_0>,
149+ <&usb3_lpcg IMX_LPCG_CLK_7>,
150+ <&usb3_lpcg IMX_LPCG_CLK_4>,
151+ <&usb3_lpcg IMX_LPCG_CLK_5>;
152+ clock-names = "lpm", "bus", "aclk", "ipg", "core";
153+ assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>;
154+ assigned-clock-rates = <250000000>;
155+ power-domains = <&pd IMX_SC_R_USB_2>;
156+ status = "disabled";
157+
158+ usbotg3_cdns3: usb@5b120000 {
159+ compatible = "cdns,usb3";
160+ reg = <0x5b130000 0x10000>, /* memory area for HOST registers */
161+ <0x5b140000 0x10000>, /* memory area for DEVICE registers */
162+ <0x5b120000 0x10000>; /* memory area for OTG/DRD registers */
163+ reg-names = "xhci", "dev", "otg";
164+ #address-cells = <1>;
165+ #size-cells = <1>;
166+ interrupt-parent = <&gic>;
167+ interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
168+ <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
169+ <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
170+ <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>;
171+ interrupt-names = "host", "peripheral", "otg", "wakeup";
172+ phys = <&usb3_phy>;
173+ phy-names = "cdns3,usb3-phy";
174+ status = "disabled";
175+ };
176+ };
177+
178+ usb3_phy: usb-phy@5b160000 {
179+ compatible = "nxp,salvo-phy";
180+ reg = <0x5b160000 0x40000>;
181+ clocks = <&usb3_lpcg IMX_LPCG_CLK_6>;
182+ clock-names = "salvo_phy_clk";
183+ power-domains = <&pd IMX_SC_R_USB_2_PHY>;
184+ #phy-cells = <0>;
185+ status = "disabled";
186+ };
187+
141188 /* LPCG clocks */
142189 sdhc0_lpcg: clock-controller@5b200000 {
143190 compatible = "fsl,imx8qxp-lpcg";
@@ -234,4 +281,26 @@ conn_subsys: bus@5b000000 {
234281 clock-output-names = "usboh3_ahb_clk", "usboh3_phy_ipg_clk";
235282 power-domains = <&pd IMX_SC_R_USB_0_PHY>;
236283 };
284+
285+ usb3_lpcg: clock-controller@5b280000 {
286+ compatible = "fsl,imx8qxp-lpcg";
287+ reg = <0x5b280000 0x10000>;
288+ #clock-cells = <1>;
289+ clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
290+ <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
291+ <IMX_LPCG_CLK_6>, <IMX_LPCG_CLK_7>;
292+ clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>,
293+ <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>,
294+ <&conn_ipg_clk>,
295+ <&conn_ipg_clk>,
296+ <&conn_ipg_clk>,
297+ <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>;
298+ clock-output-names = "usb3_app_clk",
299+ "usb3_lpm_clk",
300+ "usb3_ipg_clk",
301+ "usb3_core_pclk",
302+ "usb3_phy_clk",
303+ "usb3_aclk";
304+ power-domains = <&pd IMX_SC_R_USB_2_PHY>;
305+ };
237306};
0 commit comments