diff options
author | Hiago De Franco <hiago.franco@toradex.com> | 2025-06-09 17:42:33 -0300 |
---|---|---|
committer | Hiago De Franco <hiago.franco@toradex.com> | 2025-06-12 10:42:09 -0300 |
commit | 0b9dfe1955f77bf8270c705e373ac0f3557dc690 (patch) | |
tree | 4a33bd0dfb7813d73327542d646f995f4dfacefa | |
parent | eebbac1c93c34faa8d45ac1bed0d87b859e24182 (diff) |
toradex-smarc-imx8mp: csi0-ov5640-27mhz: add overlay
Add CSI0 Arducam OV5640 camera overlay.
Related-to: ELB-6417
Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
-rw-r--r-- | overlays/Makefile | 1 | ||||
-rw-r--r-- | overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts | 85 |
2 files changed, 86 insertions, 0 deletions
diff --git a/overlays/Makefile b/overlays/Makefile index 25256af..1fb5403 100644 --- a/overlays/Makefile +++ b/overlays/Makefile @@ -55,6 +55,7 @@ dtb-y += colibri-imx7_panel-res-touch-7inch_overlay.dtbo dtb-y += colibri-imx7_spidev_overlay.dtbo dtb-y += colibri-imx7_vga-640x480_overlay.dtbo dtb-y += colibri-imx8x_hmp_overlay.dtbo +dtb-y += toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dtbo dtb-y += toradex-smarc-imx8mp_dsi-to-hdmi_overlay.dtbo dtb-y += toradex-smarc-imx8mp_panel-cap-touch-10inch-dsi_overlay.dtbo dtb-y += toradex-smarc-imx8mp_panel-cap-touch-10inch-lvds_overlay.dtbo diff --git a/overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts b/overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts new file mode 100644 index 0000000..89f60a9 --- /dev/null +++ b/overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (C) 2025 Toradex + * + * CSI Camera Module OV5640 with 27MHz Oscillator overlay for SMARC CSI0 + * + * https://developer.toradex.com/hardware/accessories/cameras/csi-camera-module-5mp-ov5640-arducam + */ + +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +/ { + compatible = "toradex,smarc-imx8mp"; +}; + +&{/} { + clk_csi_0_ov5640: ov5640-csi-0-clock { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <27000000>; + }; + + regulator_camera_csi_0: regulator-camera-csi-0 { + compatible = "regulator-fixed"; + /* SMARC GPIO0 as CAM0_PWR# - Camera Connector 24 */ + gpios = <&som_gpio_expander 0 GPIO_ACTIVE_LOW>; + enable-active-high; + regulator-name = "V_CSI"; + startup-delay-us = <5000>; + }; +}; + +/* SMARC I2C_CAM0 */ +&i2c3 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + camera@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&clk_csi_0_ov5640>; + clock-names = "xclk"; + /* SMARC GPIO2 as CAM0_RST# - Camera Connector 11 */ + reset-gpios = <&som_gpio_expander 2 GPIO_ACTIVE_LOW>; + AVDD-supply = <®ulator_camera_csi_0>; + DVDD-supply = <®ulator_camera_csi_0>; + DOVDD-supply = <®ulator_camera_csi_0>; + PVDD-supply = <®ulator_camera_csi_0>; + + port { + ov5640_cam0_ep: endpoint { + remote-endpoint = <&mipi_csi_1_ep>; + clock-lanes = <0>; + data-lanes = <1 2>; + }; + }; + }; +}; + +&isi_0 { + status = "okay"; +}; + +/* SMARC CSI0 */ +&mipi_csi_1 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mipi_csi_1_ep: endpoint { + remote-endpoint = <&ov5640_cam0_ep>; + data-lanes = <1 2>; + }; + }; + }; +}; |