[PATCH 1/2] arm64: dts: freescale: imx8mp-toradex-smarc: Add camera connector nexus
From: Ernest Van Hoecke
Date: Fri Oct 02 2026 - 09:33:21 EST
From: Ernest Van Hoecke <ernest.vanhoecke@xxxxxxxxxxx>
The SMARC Development Board exposes two 24-pin camera connectors with
reset and power-control signals routed through the SoM GPIO expander.
Describe the connectors as GPIO nexuses and add stable labels for the
camera buses and CSI receivers, so accessory overlays can use the
carrier's interfaces without embedding its GPIO routing.
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@xxxxxxxxxxx>
---
.../dts/freescale/imx8mp-toradex-smarc-dev.dts | 26 ++++++++++++++++++++++
.../boot/dts/freescale/imx8mp-toradex-smarc.dtsi | 10 +++++++--
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc-dev.dts b/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc-dev.dts
index c28d63293149..e0096388fbfe 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc-dev.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc-dev.dts
@@ -13,6 +13,32 @@ / {
"toradex,smarc-imx8mp",
"fsl,imx8mp";
+ smarc_csi0: camera-connector-0 {
+ compatible = "toradex,camera-connector";
+ #gpio-cells = <2>;
+ /*
+ * CAM_0_CON_RST (pin 11) - SMARC GPIO2 (P110)
+ * CAM_0_CON_PWRCTRL (pin 24) - SMARC GPIO0 (P108)
+ */
+ gpio-map = <0 0 &som_gpio_expander 2 GPIO_ACTIVE_HIGH>,
+ <3 0 &som_gpio_expander 0 GPIO_ACTIVE_HIGH>;
+ gpio-map-mask = <0xffffffff 0x0>;
+ gpio-map-pass-thru = <0x0 0xffffffff>;
+ };
+
+ smarc_csi1: camera-connector-1 {
+ compatible = "toradex,camera-connector";
+ #gpio-cells = <2>;
+ /*
+ * CAM_1_CON_RST (pin 11) - SMARC GPIO3 (P111)
+ * CAM_1_CON_PWRCTRL (pin 24) - SMARC GPIO1 (P109)
+ */
+ gpio-map = <0 0 &som_gpio_expander 3 GPIO_ACTIVE_HIGH>,
+ <3 0 &som_gpio_expander 1 GPIO_ACTIVE_HIGH>;
+ gpio-map-mask = <0xffffffff 0x0>;
+ gpio-map-pass-thru = <0x0 0xffffffff>;
+ };
+
hdmi-connector {
compatible = "hdmi-connector";
label = "J64";
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc.dtsi
index eb8b9db7e3cd..e8e718ef7822 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-toradex-smarc.dtsi
@@ -587,7 +587,7 @@ &i2c2 {
};
/* SMARC I2C_CAM0 */
-&i2c3 {
+smarc_csi0_i2c: &i2c3 {
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c3>;
pinctrl-1 = <&pinctrl_i2c3_gpio>;
@@ -616,7 +616,7 @@ eeprom@50 {
};
/* SMARC I2C_CAM1 */
-&i2c5 {
+smarc_csi1_i2c: &i2c5 {
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c5>;
pinctrl-1 = <&pinctrl_i2c5_gpio>;
@@ -655,6 +655,12 @@ fec_phy: ethernet-phy@2 {
};
};
+/* SMARC CSI1 */
+smarc_csi1_rx: &mipi_csi_0 {};
+
+/* SMARC CSI0 */
+smarc_csi0_rx: &mipi_csi_1 {};
+
/* SMARC PCIE_A */
&pcie {
pinctrl-names = "default";
--
2.43.0