From: Alice Guo <[email protected]>

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 <[email protected]>
---
 arch/arm/dts/imx943-evk-u-boot.dtsi | 24 ++++++++++++++++++++++
 arch/arm/dts/imx943-u-boot.dtsi     | 40 +++++++++++++++++++++++++++++++++++++
 configs/imx943_evk_defconfig        | 14 +++++++++++++
 3 files changed, 78 insertions(+)

diff --git a/arch/arm/dts/imx943-evk-u-boot.dtsi 
b/arch/arm/dts/imx943-evk-u-boot.dtsi
index e6abe7ed2e0..3995176f090 100644
--- a/arch/arm/dts/imx943-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx943-evk-u-boot.dtsi
@@ -22,6 +22,30 @@
        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;
 };
diff --git a/arch/arm/dts/imx943-u-boot.dtsi b/arch/arm/dts/imx943-u-boot.dtsi
index 9b2c1072366..8c89b8be04b 100644
--- a/arch/arm/dts/imx943-u-boot.dtsi
+++ b/arch/arm/dts/imx943-u-boot.dtsi
@@ -199,6 +199,46 @@
 &{/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>;
diff --git a/configs/imx943_evk_defconfig b/configs/imx943_evk_defconfig
index d308d29a1a5..e4fcf2eb576 100644
--- a/configs/imx943_evk_defconfig
+++ b/configs/imx943_evk_defconfig
@@ -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

-- 
2.43.0

Reply via email to