diff options
-rw-r--r-- | overlays/verdin-imx8mm_ov5640_overlay.dts | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/overlays/verdin-imx8mm_ov5640_overlay.dts b/overlays/verdin-imx8mm_ov5640_overlay.dts new file mode 100644 index 0000000..755897d --- /dev/null +++ b/overlays/verdin-imx8mm_ov5640_overlay.dts @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 Toradex + */ + +/dts-v1/; +/plugin/; + +#include <dt-bindings/clock/imx8mm-clock.h> +#include <dt-bindings/gpio/gpio.h> + +/ { + compatible = "toradex,verdin-imx8mm"; +}; + +&{/} { + regulator_camera: regulator-camera { + compatible = "regulator-fixed"; + /* Verdin GPIO_8_CSI - Camera Connector 24 */ + gpio = <&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@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&clk IMX8MM_CLK_CLKO1>; + clock-names = "xclk"; + assigned-clocks = <&clk IMX8MM_CLK_CLKO1>; + assigned-clock-parents = <&clk IMX8MM_CLK_24M>; + assigned-clock-rates = <24000000>; + AVDD-supply = <®ulator_camera>; + DOVDD-supply = <®ulator_camera>; + DVDD-supply = <®ulator_camera>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio5>, <&pinctrl_gpio6>; + /* Verdin GPIO6 - Camera Connector 22 */ + powerdown-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; + /* Verdin GPIO5 - Camera Connector 11 */ + reset-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; + + port { + ov5640_to_imx8mm_mipi_csi: endpoint { + remote-endpoint = <&imx8mm_mipi_csi_in>; + clock-lanes = <0>; + data-lanes = <1 2>; + }; + }; + }; +}; + +&mipi_csi { + status = "okay"; + + ports { + port@0 { + reg = <0>; + + imx8mm_mipi_csi_in: endpoint { + remote-endpoint = <&ov5640_to_imx8mm_mipi_csi>; + data-lanes = <1 2>; + }; + }; + }; +}; |