From: Lech Perczak Date: Wed, 27 May 2026 10:19:12 +0000 (+0200) Subject: ARM: dts: imx7d-pico-pi: add OV5645 camera support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e2aa1b07bc1c5dd89ec0d14d9fe6f32f9b136c4;p=thirdparty%2Fkernel%2Fstable.git ARM: dts: imx7d-pico-pi: add OV5645 camera support Add OV5645 camera device node and enable relevant components in the video capture data path, so output stream can be captured, and the camera itself can be controlled over I2C bus. This is roughly based on descriptions found in downstream kernel tree [1], adapted to match upstream bindings. Link: https://github.com/technexion-android/kernel_imx/blob/ce8fd74abf518dac0a09e8dcb37f3496f6375124/arch/arm/boot/dts/imx7d-pico.dtsi#L874 [1] Signed-off-by: Lech Perczak Signed-off-by: Frank Li --- diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-pico-pi.dts b/arch/arm/boot/dts/nxp/imx/imx7d-pico-pi.dts index 673bbe49de52..7a0e4dc5450e 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7d-pico-pi.dts +++ b/arch/arm/boot/dts/nxp/imx/imx7d-pico-pi.dts @@ -19,6 +19,13 @@ }; }; + reg_1p5v: regulator-1p5v { + compatible = "regulator-fixed"; + regulator-name = "1P5V"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + }; + sound { compatible = "simple-audio-card"; simple-audio-card,name = "imx7-sgtl5000"; @@ -59,6 +66,33 @@ touchscreen-size-x = <800>; touchscreen-size-y = <480>; }; + + camera@3c { + compatible = "ovti,ov5645"; + reg = <0x3c>; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_camera>; + + clocks = <&clks IMX7D_CLKO1_ROOT_DIV>; + assigned-clocks = <&clks IMX7D_CLKO1_ROOT_DIV>; + assigned-clock-rates = <24000000>; + + enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + + vdda-supply = <®_2p5v>; + vdddo-supply = <®_vref_1v8>; + vddd-supply = <®_1p5v>; + + port { + ov5645_to_mipi_csi2: endpoint { + remote-endpoint = <&mipi_csi2_in>; + clock-lanes = <0>; + data-lanes = <1 2>; + }; + }; + }; }; &usdhc1 { @@ -93,5 +127,37 @@ MX7D_PAD_EPDC_DATA13__GPIO2_IO13 0x14 >; }; +}; + +&iomuxc_lpsr { + pinctrl_camera: cameragrp { + fsl,pins = < + MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x15 + MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x15 + MX7D_PAD_LPSR_GPIO1_IO02__CCM_CLKO1 0x7d + >; + }; +}; + +&csi { + status = "okay"; +}; + +&mipi_csi { + status = "okay"; + + ports { + port@0 { + reg = <0>; + + mipi_csi2_in: endpoint { + remote-endpoint = <&ov5645_to_mipi_csi2>; + data-lanes = <1 2>; + }; + }; + }; +}; +&video_mux { + status = "okay"; };