]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
imx943_evk: Add support for booting from USB SDP on USB3.0
authorAlice Guo <alice.guo@nxp.com>
Tue, 28 Oct 2025 02:46:28 +0000 (10:46 +0800)
committerFabio Estevam <festevam@nabladev.com>
Tue, 4 Nov 2025 15:39:46 +0000 (12:39 -0300)
This patch is used to enable USB Gadget in SPL to make i.MX943 evk board
can use SDP on USB3.0 interface.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
arch/arm/dts/imx943-evk-u-boot.dtsi
arch/arm/dts/imx943-u-boot.dtsi
configs/imx943_evk_defconfig

index e6abe7ed2e0cbb4ede4b17eee688d6859e4e4e05..3995176f0907f4d8d51302924345263352aa88ff 100644 (file)
        status = "okay";
 };
 
+&usb3 {
+       bootph-pre-ram;
+       status = "okay";
+};
+
+&usb3_dwc3 {
+       bootph-pre-ram;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       role-switch-default-mode = "peripheral";
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+       status = "okay";
+};
+
+&usb3_phy {
+       bootph-pre-ram;
+       orientation-switch;
+       status = "okay";
+};
+
 &usdhc1 {
        bootph-pre-ram;
 };
index 9b2c1072366d72e54cd545838a6158ee1441abc9..8c89b8be04b301c5e3b5f1225998817e69b9e395 100644 (file)
 &{/soc} {
        bootph-all;
 
+       usb3: usb@4c010010 {
+               compatible = "fsl,imx95-dwc3", "fsl,imx8mp-dwc3";
+               reg = <0x0 0x4c010010 0x0 0x04>,
+                     <0x0 0x4c1f0000 0x0 0x20>;
+               ranges;
+               interrupts = <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               clocks = <&scmi_clk IMX94_CLK_HSIO>,
+                        <&scmi_clk IMX94_CLK_32K>;
+               clock-names = "hsio", "suspend";
+               power-domains = <&scmi_devpd IMX94_PD_HSIO_TOP>;
+               status = "disabled";
+
+               usb3_dwc3: usb@4c100000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x0 0x4c100000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk IMX94_CLK_HSIO>,
+                                <&scmi_clk IMX94_CLK_24M>,
+                                <&scmi_clk IMX94_CLK_32K>;
+                       clock-names = "bus_early", "ref", "suspend";
+                       phys = <&usb3_phy>, <&usb3_phy>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       snps,gfladj-refclk-lpm-sel-quirk;
+                       snps,parkmode-disable-ss-quirk;
+               };
+       };
+
+       usb3_phy: phy@4c1f0040 {
+               compatible = "fsl,imx95-usb-phy", "fsl,imx8mp-usb-phy";
+               reg = <0x0 0x4c1f0040 0x0 0x40>,
+                     <0x0 0x4c1fc000 0x0 0x100>;
+               clocks = <&scmi_clk IMX94_CLK_HSIO>;
+               clock-names = "phy";
+               #phy-cells = <0>;
+               power-domains = <&scmi_devpd IMX94_PD_HSIO_TOP>;
+               status = "disabled";
+       };
+
        usb2: usb@4c200000 {
                compatible = "fsl,imx95-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
                reg = <0x0 0x4c200000 0x0 0x200>;
index d308d29a1a500cc45eaa39107bd71c8882e699c6..e4fcf2eb57691bc1357843345427b44391013ca4 100644 (file)
@@ -100,6 +100,8 @@ CONFIG_IMX_RGPIO2P=y
 CONFIG_IMX_MU_MBOX=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
+CONFIG_SPL_PHY=y
+CONFIG_SPL_PHY_IMX8MQ_USB=y
 CONFIG_PINCTRL=y
 CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_IMX_SCMI=y
@@ -114,5 +116,17 @@ CONFIG_DM_RTC=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
 CONFIG_USB=y
+CONFIG_SPL_DM_USB_GADGET=y
+CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_GENERIC=y
+CONFIG_USB_GADGET=y
+CONFIG_SPL_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="FSL"
+CONFIG_USB_GADGET_VENDOR_NUM=0x0525
+CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
+CONFIG_SDP_LOADADDR=0x90400000
+CONFIG_SPL_USB_SDP_SUPPORT=y
 CONFIG_ULP_WATCHDOG=y