* [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay
@ 2026-10-22 14:09 Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay Ernest Van Hoecke
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Ernest Van Hoecke @ 2026-10-22 14:09 UTC (permalink / raw)
To: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
Several Toradex modules assign one UART to firmware running on their
Cortex-M core: Verdin UART_4 on Verdin iMX8M Mini, Verdin iMX8M Plus
and Verdin iMX95, Aquila UART_4 on Aquila iMX95 and SER0 on Toradex
SMARC iMX95. The overlays reserving it only differ in the UART
instance.
Label that UART uart_mcu in each module device tree and share one
overlay, imx-tdx-uart-mcu.dtso, which reserves the labelled UART. The
merged Verdin iMX8M Mini overlay becomes the shared one, and the
combined Verdin iMX8M Mini DTB keeps its name. NXP's imx9-mqs.dtso
uses the same pattern with its mqs1_conflict_dev board label.
The overlays mark the port as reserved so Linux does not claim it.
Firmware remains responsible for configuring the UART and its pads.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
Changes in v2:
- Share one overlay through a uart_mcu label instead of adding
identical per-module overlays (Frank), and include the merged Verdin
iMX8M Mini overlay
- Add Verdin iMX8M Plus, previously posted with the Verdin iMX8M OV5640
series:
https://lore.kernel.org/r/20261001-verdin-imx8mp-hmp-camera-ready-v2-2-7d1343ecd3ec@toradex.com
- Drop the Verdin iMX95 NAU8822 BTL patch, now covered by the shared
NAU8822 BTL series:
https://lore.kernel.org/all/20261022-imx-nau8822-btl-v2-0-b4221ed43650@toradex.com/
- Rebase onto imx/dt64
- Link to v1: https://lore.kernel.org/r/20260922-v1-imx95-overlays-v1-0-694100afb4bc@toradex.com
---
Ernest Van Hoecke (5):
arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay
arm64: dts: freescale: imx8mp-verdin: Add Cortex-M7 UART_4 overlay
arm64: dts: freescale: imx95-verdin: Add Cortex-M7 UART_4 overlay
arm64: dts: freescale: imx95-aquila: Add Cortex-M7 UART_4 overlay
arm64: dts: freescale: imx95-toradex-smarc: Add Cortex-M7 SER0 overlay
arch/arm64/boot/dts/freescale/Makefile | 15 +++++++++++++--
arch/arm64/boot/dts/freescale/imx-tdx-uart-mcu.dtso | 14 ++++++++++++++
.../arm64/boot/dts/freescale/imx8mm-verdin-uart4-mcu.dtso | 14 --------------
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx95-aquila.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx95-verdin.dtsi | 2 +-
8 files changed, 32 insertions(+), 21 deletions(-)
---
base-commit: 7f47e8eafbf55a2ad0697e5d28f5e6cff2fa42f9
change-id: 20260922-v1-imx95-overlays-89b3a9185b93
Best regards,
--
Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay
2026-10-22 14:09 [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay Ernest Van Hoecke
@ 2026-10-22 14:09 ` Ernest Van Hoecke
2026-10-22 15:10 ` Frank Li
2026-10-22 14:09 ` [PATCH v2 2/5] arm64: dts: freescale: imx8mp-verdin: Add Cortex-M7 UART_4 overlay Ernest Van Hoecke
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Ernest Van Hoecke @ 2026-10-22 14:09 UTC (permalink / raw)
To: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
Verdin UART_4 is the UART the module assigns to the Cortex-M4F core.
Other Toradex modules also assign one UART to their Cortex-M core, such
as Verdin and Aquila UART_4 and SMARC SER0 on i.MX95, but on a different
UART instance, so an overlay naming the instance cannot be shared.
Label the UART uart_mcu in the module device tree and turn the Verdin
iMX8M Mini overlay into imx-tdx-uart-mcu.dtso, which reserves the
labelled UART. The combined Verdin iMX8M Mini DTB keeps its name.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 5 +++--
arch/arm64/boot/dts/freescale/imx-tdx-uart-mcu.dtso | 14 ++++++++++++++
arch/arm64/boot/dts/freescale/imx8mm-verdin-uart4-mcu.dtso | 14 --------------
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 2 +-
4 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index a80cccf34eb5..a40bcbe4876d 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -107,6 +107,8 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-tqmlx2160a-mblx2160a-14-11-x.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-tqmlx2160a-mblx2160a-14-8-x.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-tqmlx2160a-mblx2160a-14-7-x.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx-tdx-uart-mcu.dtbo
+
dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-aster.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-eval-v3.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-iris-v2.dtb
@@ -268,7 +270,6 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-zinnia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-panel-cap-touch-10inch-dsi.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-panel-cap-touch-7inch-dsi.dtbo
-dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-uart4-mcu.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia-dsi-to-hdmi.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia-panel-cap-touch-10inch-dsi.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia.dtb
@@ -298,7 +299,7 @@ imx8mm-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch-dtbs := imx8mm-verdin-
imx8mm-verdin-wifi-dev-nau8822-btl-dtbs := imx8mm-verdin-wifi-dev.dtb imx8mm-verdin-dev-nau8822-btl.dtbo
imx8mm-verdin-wifi-dev-panel-cap-touch-7inch-dsi-dtbs := imx8mm-verdin-wifi-dev.dtb \
imx8mm-verdin-panel-cap-touch-7inch-dsi.dtbo
-imx8mm-verdin-wifi-dev-uart4-mcu-dtbs := imx8mm-verdin-wifi-dev.dtb imx8mm-verdin-uart4-mcu.dtbo
+imx8mm-verdin-wifi-dev-uart4-mcu-dtbs := imx8mm-verdin-wifi-dev.dtb imx-tdx-uart-mcu.dtbo
imx8mm-verdin-wifi-yavia-dsi-to-hdmi-dtbs := imx8mm-verdin-wifi-yavia.dtb imx8mm-verdin-dsi-to-hdmi.dtbo
imx8mm-tqma8mqml-mba8mx-lvds-g133han01-dtbs += imx8mm-tqma8mqml-mba8mx.dtb imx8mm-tqma8mqml-mba8mx-lvds-g133han01.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx-tdx-uart-mcu.dtso b/arch/arm64/boot/dts/freescale/imx-tdx-uart-mcu.dtso
new file mode 100644
index 000000000000..001bc3286e8e
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx-tdx-uart-mcu.dtso
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Reserve the UART that the module assigns to its Cortex-M core, labelled
+ * uart_mcu in the module device tree, so that Linux does not claim it.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&uart_mcu {
+ status = "reserved";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-uart4-mcu.dtso b/arch/arm64/boot/dts/freescale/imx8mm-verdin-uart4-mcu.dtso
deleted file mode 100644
index 8dbecffe9e7b..000000000000
--- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-uart4-mcu.dtso
+++ /dev/null
@@ -1,14 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-/*
- * Copyright (c) Toradex
- *
- * Verdin iMX8M Mini UART_4 for Cortex-M4F
- */
-
-/dts-v1/;
-/plugin/;
-
-/* Verdin UART_4 */
-&uart4 {
- status = "reserved";
-};
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
index 4f64c5da8d15..1ac9d000d415 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
@@ -776,7 +776,7 @@ &uart3 {
* Verdin UART_4
* Resource allocated to M4 by default, must not be accessed from Cortex-A35 or you get an OOPS
*/
-&uart4 {
+uart_mcu: &uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/5] arm64: dts: freescale: imx8mp-verdin: Add Cortex-M7 UART_4 overlay
2026-10-22 14:09 [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay Ernest Van Hoecke
@ 2026-10-22 14:09 ` Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 3/5] arm64: dts: freescale: imx95-verdin: " Ernest Van Hoecke
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Ernest Van Hoecke @ 2026-10-22 14:09 UTC (permalink / raw)
To: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
Verdin UART_4 can be assigned to Cortex-M7 firmware. Label it uart_mcu
so the shared imx-tdx-uart-mcu overlay can reserve it, and combine the
overlay with the Verdin iMX8M Plus Development Board device tree to
provide a ready-to-use DTB for the non-WiFi SoM variant. UART_4 carries
Bluetooth on WiFi SoMs.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 3 +++
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index a40bcbe4876d..5ee9fa583515 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -732,6 +732,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw82xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev-uart4-mcu.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-mallow.dtb
@@ -744,6 +745,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-zinnia.dtb
+imx8mp-verdin-nonwifi-dev-uart4-mcu-dtbs := imx8mp-verdin-nonwifi-dev.dtb imx-tdx-uart-mcu.dtbo
+
imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtbo
imx8mp-evk-lvds0-imx-lvds-hdmi-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-lvds-hdmi.dtbo
imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
index 9fee2cf9ef54..7c9b21a041c5 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
@@ -857,7 +857,7 @@ &uart3 {
};
/* Verdin UART_4, used for Bluetooth on Wi-Fi/Bluetooth SKUs */
-&uart4 {
+uart_mcu: &uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 3/5] arm64: dts: freescale: imx95-verdin: Add Cortex-M7 UART_4 overlay
2026-10-22 14:09 [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 2/5] arm64: dts: freescale: imx8mp-verdin: Add Cortex-M7 UART_4 overlay Ernest Van Hoecke
@ 2026-10-22 14:09 ` Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 4/5] arm64: dts: freescale: imx95-aquila: " Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 5/5] arm64: dts: freescale: imx95-toradex-smarc: Add Cortex-M7 SER0 overlay Ernest Van Hoecke
4 siblings, 0 replies; 7+ messages in thread
From: Ernest Van Hoecke @ 2026-10-22 14:09 UTC (permalink / raw)
To: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
Verdin UART_4 can be assigned to Cortex-M7 firmware. Label it uart_mcu
so the shared imx-tdx-uart-mcu overlay can reserve it, and combine the
overlay with the Verdin iMX95 Development Board device tree to provide
a ready-to-use DTB for the WiFi SoM variant. Firmware must configure
the UART and its pads for the intended MCU application.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 3 +++
arch/arm64/boot/dts/freescale/imx95-verdin.dtsi | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 5ee9fa583515..f957797d90a6 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -982,12 +982,15 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-nonwifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-nonwifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-nonwifi-zinnia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-dahlia.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-dev-uart4-mcu.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-zinnia.dtb
+imx95-verdin-wifi-dev-uart4-mcu-dtbs := imx95-verdin-wifi-dev.dtb imx-tdx-uart-mcu.dtbo
+
imx95-15x15-evk-pcie-dtbs += imx95-15x15-evk.dtb imx-m2-pcie.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk-pcie.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx95-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx95-verdin.dtsi
index 72e7f1e88409..9aa4e8b23ceb 100644
--- a/arch/arm64/boot/dts/freescale/imx95-verdin.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95-verdin.dtsi
@@ -526,7 +526,7 @@ &lpuart1 {
};
/* Verdin UART_4 */
-&lpuart2 {
+uart_mcu: &lpuart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 4/5] arm64: dts: freescale: imx95-aquila: Add Cortex-M7 UART_4 overlay
2026-10-22 14:09 [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay Ernest Van Hoecke
` (2 preceding siblings ...)
2026-10-22 14:09 ` [PATCH v2 3/5] arm64: dts: freescale: imx95-verdin: " Ernest Van Hoecke
@ 2026-10-22 14:09 ` Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 5/5] arm64: dts: freescale: imx95-toradex-smarc: Add Cortex-M7 SER0 overlay Ernest Van Hoecke
4 siblings, 0 replies; 7+ messages in thread
From: Ernest Van Hoecke @ 2026-10-22 14:09 UTC (permalink / raw)
To: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
Aquila UART_4 can be assigned to Cortex-M7 firmware. Label it uart_mcu
so the shared imx-tdx-uart-mcu overlay can reserve it, and combine the
overlay with the Aquila iMX95 Development Board device tree to provide
a ready-to-use DTB. Firmware must configure the UART and its pads for
the intended MCU application.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 2 ++
arch/arm64/boot/dts/freescale/imx95-aquila.dtsi | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index f957797d90a6..12786932858a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -968,6 +968,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-frdm-pro.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-clover.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-dev-uart4-mcu.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-navq.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-osm-dev.dtb
@@ -989,6 +990,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-zinnia.dtb
+imx95-aquila-dev-uart4-mcu-dtbs := imx95-aquila-dev.dtb imx-tdx-uart-mcu.dtbo
imx95-verdin-wifi-dev-uart4-mcu-dtbs := imx95-verdin-wifi-dev.dtb imx-tdx-uart-mcu.dtbo
imx95-15x15-evk-pcie-dtbs += imx95-15x15-evk.dtb imx-m2-pcie.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx95-aquila.dtsi b/arch/arm64/boot/dts/freescale/imx95-aquila.dtsi
index c5f4cf0541f2..d4e8768f382c 100644
--- a/arch/arm64/boot/dts/freescale/imx95-aquila.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95-aquila.dtsi
@@ -553,7 +553,7 @@ &lpuart1 {
};
/* Aquila UART_4 */
-&lpuart2 {
+uart_mcu: &lpuart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 5/5] arm64: dts: freescale: imx95-toradex-smarc: Add Cortex-M7 SER0 overlay
2026-10-22 14:09 [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay Ernest Van Hoecke
` (3 preceding siblings ...)
2026-10-22 14:09 ` [PATCH v2 4/5] arm64: dts: freescale: imx95-aquila: " Ernest Van Hoecke
@ 2026-10-22 14:09 ` Ernest Van Hoecke
4 siblings, 0 replies; 7+ messages in thread
From: Ernest Van Hoecke @ 2026-10-22 14:09 UTC (permalink / raw)
To: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
SMARC SER0 can be assigned to Cortex-M7 firmware. Label it uart_mcu so
the shared imx-tdx-uart-mcu overlay can reserve it, and combine the
overlay with the Toradex SMARC iMX95 Development Board device tree to
provide a ready-to-use DTB. On the Development Board this removes the
Linux RS485 port on SER0, while the console on SER1 (LPUART1) remains
available. Firmware must configure the UART and its pads for the
intended MCU application.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 2 ++
arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 12786932858a..68db39369e45 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -972,6 +972,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-dev-uart4-mcu.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-aquila-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-navq.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-osm-dev.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev-ser0-mcu.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596la-mba95xxca.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-tqma9596sa-mb-smarc-2.dtb
@@ -991,6 +992,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-zinnia.dtb
imx95-aquila-dev-uart4-mcu-dtbs := imx95-aquila-dev.dtb imx-tdx-uart-mcu.dtbo
+imx95-toradex-smarc-dev-ser0-mcu-dtbs := imx95-toradex-smarc-dev.dtb imx-tdx-uart-mcu.dtbo
imx95-verdin-wifi-dev-uart4-mcu-dtbs := imx95-verdin-wifi-dev.dtb imx-tdx-uart-mcu.dtbo
imx95-15x15-evk-pcie-dtbs += imx95-15x15-evk.dtb imx-m2-pcie.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
index 641573c9943e..f3504b40ebb2 100644
--- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
@@ -619,7 +619,7 @@ &lpuart1 {
};
/* SMARC SER0 */
-&lpuart2 {
+uart_mcu: &lpuart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
uart-has-rtscts;
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay
2026-10-22 14:09 ` [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay Ernest Van Hoecke
@ 2026-10-22 15:10 ` Frank Li
0 siblings, 0 replies; 7+ messages in thread
From: Frank Li @ 2026-10-22 15:10 UTC (permalink / raw)
To: Ernest Van Hoecke
Cc: Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, imx,
linux-arm-kernel, devicetree, linux-kernel, Ernest Van Hoecke
On Thu, Oct 22, 2026 at 04:09:33PM +0200, Ernest Van Hoecke wrote:
> From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
>
> Verdin UART_4 is the UART the module assigns to the Cortex-M4F core.
> Other Toradex modules also assign one UART to their Cortex-M core, such
> as Verdin and Aquila UART_4 and SMARC SER0 on i.MX95, but on a different
> UART instance, so an overlay naming the instance cannot be shared.
>
> Label the UART uart_mcu in the module device tree and turn the Verdin
> iMX8M Mini overlay into imx-tdx-uart-mcu.dtso, which reserves the
> labelled UART. The combined Verdin iMX8M Mini DTB keeps its name.
>
> Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
> ---
Thank you to make shared dtso happen.
Frank
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-10-22 15:10 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-22 14:09 [PATCH v2 0/5] arm64: dts: freescale: Share the Toradex Cortex-M UART overlay Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 1/5] arm64: dts: freescale: imx8mm-verdin: Share the UART_4 MCU overlay Ernest Van Hoecke
2026-10-22 15:10 ` Frank Li
2026-10-22 14:09 ` [PATCH v2 2/5] arm64: dts: freescale: imx8mp-verdin: Add Cortex-M7 UART_4 overlay Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 3/5] arm64: dts: freescale: imx95-verdin: " Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 4/5] arm64: dts: freescale: imx95-aquila: " Ernest Van Hoecke
2026-10-22 14:09 ` [PATCH v2 5/5] arm64: dts: freescale: imx95-toradex-smarc: Add Cortex-M7 SER0 overlay Ernest Van Hoecke
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®