summaryrefslogtreecommitdiff
path: root/overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts')
-rw-r--r--overlays/toradex-smarc-imx8mp_csi0-ov5640-27mhz_overlay.dts85
1 files changed, 85 insertions, 0 deletions
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 = <&regulator_camera_csi_0>;
+ DVDD-supply = <&regulator_camera_csi_0>;
+ DOVDD-supply = <&regulator_camera_csi_0>;
+ PVDD-supply = <&regulator_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>;
+ };
+ };
+ };
+};