diff options
| author | Stefan Eichenberger <stefan.eichenberger@toradex.com> | 2026-08-07 16:38:29 +0200 |
|---|---|---|
| committer | Stefan Eichenberger <stefan.eichenberger@toradex.com> | 2026-08-21 15:33:19 +0200 |
| commit | af9a36578ce60697e843352bc40c2ce8242f3606 (patch) | |
| tree | b860f0a63ac56dad179e48d80d76d73c0a153555 | |
| parent | ee5a1564a0e9cc7b6f248f4b8101a52cdcdc8aa7 (diff) | |
board: toradex: {aquila, smarc, verdin}-imx95: add support for downstream usbtoradex_imx_lf_v2026.04
Add support for the downstream U-Boot USB stack. Upstream U-Boot does
not support USB for the i.MX95 yet or only partially. Implement USB
support in a similar way as it is done for the reference boards from
NXP.
For Aquila the drivers are already enabled in the configuration. Aquila
does not use the CI-UDC driver which belongs to another USB controller
and is exposed on Verdin and SMARC as OTG port.
Upstream-Status: Pending
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
| -rw-r--r-- | arch/arm/dts/imx95-aquila-dev-u-boot.dtsi | 6 | ||||
| -rw-r--r-- | arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi | 16 | ||||
| -rw-r--r-- | arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi | 16 | ||||
| -rw-r--r-- | configs/toradex-smarc-imx95_defconfig | 5 | ||||
| -rw-r--r-- | configs/verdin-imx95_defconfig | 8 |
5 files changed, 38 insertions, 13 deletions
diff --git a/arch/arm/dts/imx95-aquila-dev-u-boot.dtsi b/arch/arm/dts/imx95-aquila-dev-u-boot.dtsi index 92ec0d3efa3..a65a79693a9 100644 --- a/arch/arm/dts/imx95-aquila-dev-u-boot.dtsi +++ b/arch/arm/dts/imx95-aquila-dev-u-boot.dtsi @@ -26,12 +26,16 @@ }; &usb3 { + clocks = <&scmi_clk IMX95_CLK_HSIO>, + <&scmi_clk IMX95_CLK_24M>, + <&scmi_clk IMX95_CLK_32K>; + clock-names = "hsio", "ref", "suspend"; + bootph-pre-ram; }; &usb3_dwc3 { bootph-pre-ram; - compatible = "fsl,imx95a-dwc3", "fsl,imx8mq-dwc3", "snps,dwc3"; }; &usdhc1 { diff --git a/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi b/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi index e4eda61e5c4..21a4b0ed99b 100644 --- a/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi +++ b/arch/arm/dts/imx95-toradex-smarc-dev-u-boot.dtsi @@ -7,6 +7,13 @@ sysinfo { compatible = "toradex,sysinfo"; }; + + usbg2 { + compatible = "fsl,imx27-usb-gadget"; + dr_mode = "peripheral"; + chipidea,usb = <&usb2>; + bootph-pre-ram; + }; }; &gpio1 { @@ -89,11 +96,10 @@ }; &usb3 { - status = "disabled"; -}; - -&usb3_dwc3 { - status = "disabled"; + clocks = <&scmi_clk IMX95_CLK_HSIO>, + <&scmi_clk IMX95_CLK_24M>, + <&scmi_clk IMX95_CLK_32K>; + clock-names = "hsio", "ref", "suspend"; }; &usdhc1 { diff --git a/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi b/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi index 8ab70cf7399..a630475dd51 100644 --- a/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi +++ b/arch/arm/dts/imx95-verdin-wifi-dev-u-boot.dtsi @@ -7,6 +7,13 @@ sysinfo { compatible = "toradex,sysinfo"; }; + + usbg2 { + compatible = "fsl,imx27-usb-gadget"; + dr_mode = "peripheral"; + chipidea,usb = <&usb2>; + bootph-pre-ram; + }; }; &{/binman/m33-oei-ddrfw/imx-lpddr/imx-lpddr-imem} { @@ -91,11 +98,10 @@ }; &usb3 { - status = "disabled"; -}; - -&usb3_dwc3 { - status = "disabled"; + clocks = <&scmi_clk IMX95_CLK_HSIO>, + <&scmi_clk IMX95_CLK_24M>, + <&scmi_clk IMX95_CLK_32K>; + clock-names = "hsio", "ref", "suspend"; }; &usb_recov_ctrl { diff --git a/configs/toradex-smarc-imx95_defconfig b/configs/toradex-smarc-imx95_defconfig index dc2376c7ad8..cb773d3ea52 100644 --- a/configs/toradex-smarc-imx95_defconfig +++ b/configs/toradex-smarc-imx95_defconfig @@ -172,18 +172,23 @@ CONFIG_FSL_LPUART=y CONFIG_DM_THERMAL=y CONFIG_SCMI_THERMAL=y CONFIG_USB=y +CONFIG_SPL_DM_USB_GADGET=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_DWC3=y CONFIG_USB_EHCI_HCD=y +CONFIG_USB_DWC3_GENERIC=y +CONFIG_SPL_USB_DWC3_GENERIC=y CONFIG_USB_HOST_ETHER=y CONFIG_USB_GADGET=y +CONFIG_SPL_USB_GADGET=y CONFIG_USB_GADGET_MANUFACTURER="Toradex" CONFIG_USB_GADGET_VENDOR_NUM=0x1b67 CONFIG_USB_GADGET_PRODUCT_NUM=0x4000 CONFIG_USB_GADGET_OS_DESCRIPTORS=y CONFIG_CI_UDC=y CONFIG_SDP_LOADADDR=0x90400000 +CONFIG_SPL_USB_SDP_SUPPORT=y CONFIG_ULP_WATCHDOG=y CONFIG_WDT=y # CONFIG_SPL_SHA1 is not set diff --git a/configs/verdin-imx95_defconfig b/configs/verdin-imx95_defconfig index eb0ecf8129c..4f95c237206 100644 --- a/configs/verdin-imx95_defconfig +++ b/configs/verdin-imx95_defconfig @@ -173,19 +173,23 @@ CONFIG_FSL_LPUART=y CONFIG_DM_THERMAL=y CONFIG_SCMI_THERMAL=y CONFIG_USB=y -CONFIG_DM_USB_GADGET=y +CONFIG_SPL_DM_USB_GADGET=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_DWC3=y -# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_GENERIC=y +CONFIG_SPL_USB_DWC3_GENERIC=y CONFIG_USB_HOST_ETHER=y CONFIG_USB_GADGET=y +CONFIG_SPL_USB_GADGET=y CONFIG_USB_GADGET_MANUFACTURER="Toradex" CONFIG_USB_GADGET_VENDOR_NUM=0x1b67 CONFIG_USB_GADGET_PRODUCT_NUM=0x4000 CONFIG_USB_GADGET_OS_DESCRIPTORS=y +CONFIG_CI_UDC=y CONFIG_SDP_LOADADDR=0x90400000 +CONFIG_SPL_USB_SDP_SUPPORT=y CONFIG_ULP_WATCHDOG=y CONFIG_WDT=y # CONFIG_SPL_SHA1 is not set |
