[PATCH 6/8] arm64: dts: freescale: imx8mm-verdin: Add Toradex OV5640 CSI Cameras

Frank Li Frank.li at oss.nxp.com
Mon Jul 20 11:16:46 PDT 2026


On Mon, Jul 13, 2026 at 05:06:27PM +0200, Ernest Van Hoecke wrote:
> From: Ernest Van Hoecke <ernest.vanhoecke at toradex.com>
>
> Add device tree overlays for the Toradex OV5640 CSI Camera on Verdin CSI_1.
>
> The default overlay describes the current CSI Camera Set 5MP OV5640 with a
> 27 MHz on-board oscillator. Add a separate 24 MHz overlay for the legacy
> camera module.
>
> Link: https://developer.toradex.com/hardware/accessories/cameras/csi-camera-module-5mp-ov5640-arducam
> Link: https://www.toradex.com/accessories/csi-camera-ov5640
> Link: https://developer.toradex.com/hardware/legacy-products/other/csi-camera-module-5mp-ov5640/
> Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke at toradex.com>
> ---
>  arch/arm64/boot/dts/freescale/Makefile             |  6 ++
>  .../dts/freescale/imx8mm-verdin-ov5640-24mhz.dtso  | 17 +++++
>  .../boot/dts/freescale/imx8mm-verdin-ov5640.dtsi   | 78 ++++++++++++++++++++++
>  .../boot/dts/freescale/imx8mm-verdin-ov5640.dtso   | 18 +++++
>  4 files changed, 119 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index c465aa19e526..ed3d678e7c5e 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -189,6 +189,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-mallow.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-yavia-dsi-to-hdmi.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-yavia.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-zinnia.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-ov5640-24mhz.dtbo
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-ov5640.dtbo

Need not add dtbo here,

+dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-ov5640-24mhz.dtb can
auto dtbo build dtbo.

check other dtbo.

Frank

>  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-wifi-dahlia-dsi-to-hdmi.dtb
> @@ -197,6 +199,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-dsi-to-hdmi.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-nau8822-btl.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-ov5640-24mhz.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-ov5640.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev-panel-cap-touch-7inch-dsi.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-ivy.dtb
> @@ -217,6 +221,8 @@ imx8mm-verdin-wifi-dev-dsi-to-hdmi-dtbs := imx8mm-verdin-wifi-dev.dtb imx8mm-ver
>  imx8mm-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch-dtbs := imx8mm-verdin-wifi-dev.dtb \
>  	imx8mm-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
>  imx8mm-verdin-wifi-dev-nau8822-btl-dtbs := imx8mm-verdin-wifi-dev.dtb imx8mm-verdin-dev-nau8822-btl.dtbo
> +imx8mm-verdin-wifi-dev-ov5640-24mhz-dtbs := imx8mm-verdin-wifi-dev.dtb imx8mm-verdin-ov5640-24mhz.dtbo
> +imx8mm-verdin-wifi-dev-ov5640-dtbs := imx8mm-verdin-wifi-dev.dtb imx8mm-verdin-ov5640.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-yavia-dsi-to-hdmi-dtbs := imx8mm-verdin-wifi-yavia.dtb imx8mm-verdin-dsi-to-hdmi.dtbo
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640-24mhz.dtso b/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640-24mhz.dtso
> new file mode 100644
> index 000000000000..f479b709c151
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640-24mhz.dtso
> @@ -0,0 +1,17 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright (c) Toradex
> + *
> + * Toradex CSI Camera Module 5MP OV5640 on Verdin CSI_1.
> + *
> + * https://developer.toradex.com/hardware/legacy-products/other/csi-camera-module-5mp-ov5640/
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include "imx8mm-verdin-ov5640.dtsi"
> +
> +&clock_camera {
> +	clock-frequency = <24000000>;
> +};
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640.dtsi
> new file mode 100644
> index 000000000000..0632bdb1b679
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640.dtsi
> @@ -0,0 +1,78 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright (c) Toradex
> + *
> + * Common device tree include for Toradex OV5640 CSI camera on Verdin CSI_1.
> + */
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +&{/} {
> +	clock_camera: clock-camera {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +	};
> +
> +	regulator_camera: regulator-camera {
> +		compatible = "regulator-fixed";
> +		/* Verdin GPIO_8_CSI (SODIMM 222) - CSI_1_PWR_EN */
> +		gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +		regulator-name = "V_CSI";
> +		startup-delay-us = <5000>;
> +	};
> +};
> +
> +&csi {
> +	status = "okay";
> +};
> +
> +/* Verdin I2C_4_CSI */
> +&i2c3 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	status = "okay";
> +
> +	camera at 3c {
> +		compatible = "ovti,ov5640";
> +		reg = <0x3c>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_gpio5>, <&pinctrl_gpio6>;
> +		clocks = <&clock_camera>;
> +		clock-names = "xclk";
> +		AVDD-supply = <&regulator_camera>;
> +		DOVDD-supply = <&regulator_camera>;
> +		DVDD-supply = <&regulator_camera>;
> +		/* Verdin GPIO_6_CSI (SODIMM 218) - CSI_1_PWDN */
> +		powerdown-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
> +		/* Verdin GPIO_5_CSI (SODIMM 216) - CSI_1_RESET# */
> +		reset-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
> +
> +		port {
> +			ov5640_to_mipi_csi2: endpoint {
> +				clock-lanes = <0>;
> +				data-lanes = <1 2>;
> +				remote-endpoint = <&imx8mm_mipi_csi_in>;
> +			};
> +		};
> +	};
> +};
> +
> +&mipi_csi {
> +	status = "okay";
> +
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port at 0 {
> +			reg = <0>;
> +
> +			imx8mm_mipi_csi_in: endpoint {
> +				data-lanes = <1 2>;
> +				remote-endpoint = <&ov5640_to_mipi_csi2>;
> +			};
> +		};
> +	};
> +};
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640.dtso b/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640.dtso
> new file mode 100644
> index 000000000000..d56234913b61
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-ov5640.dtso
> @@ -0,0 +1,18 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright (c) Toradex
> + *
> + * Toradex CSI Camera Set 5MP OV5640 on Verdin CSI_1.
> + *
> + * https://developer.toradex.com/hardware/accessories/cameras/csi-camera-module-5mp-ov5640-arducam
> + * https://www.toradex.com/accessories/csi-camera-ov5640
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include "imx8mm-verdin-ov5640.dtsi"
> +
> +&clock_camera {
> +	clock-frequency = <27000000>;
> +};
>
> --
> 2.43.0
>



More information about the linux-arm-kernel mailing list