// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright 2020-2021 NXP
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include "imx8mp-evk.dts"

&i2c2 {
	/delete-node/ov5640_mipi@3c;

	ov2775_0: ov2775_mipi@36 {
		compatible = "ovti,ov2775";
		reg = <0x36>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_csi0_pwn>, <&pinctrl_csi0_rst>, <&pinctrl_csi_mclk>;
		clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
		clock-names = "csi_mclk";
		assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
		assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
		assigned-clock-rates = <24000000>;
		csi_id = <0>;
		pwn-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
		rst-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
		mclk = <24000000>;
		mclk_source = <0>;
		status = "okay";

		port {
			ov2775_mipi_0_ep: endpoint {
				data-lanes = <1 2 3 4>;
				clock-lanes = <0>;
				max-pixel-frequency = /bits/ 64 <266000000>;
				remote-endpoint = <&mipi_csi0_ep>;
			};
		};

	};
};

&i2c3 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "okay";

	/delete-node/ov5640_mipi@3c;

	ov2775_1: ov2775_mipi@36 {
		compatible = "ovti,ov2775";
		reg = <0x36>;
		clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
		clock-names = "csi_mclk";
		assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
		assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
		assigned-clock-rates = <24000000>;
		csi_id = <1>;
		mclk = <24000000>;
		mclk_source = <0>;
		status = "okay";

		port {
			ov2775_mipi_1_ep: endpoint {
				data-lanes = <1 2 3 4>;
				clock-lanes = <0>;
				max-pixel-frequency = /bits/ 64 <266000000>;
				remote-endpoint = <&mipi_csi1_ep>;
			};
		};
	};
};

&cameradev {
	status = "okay";
};

&isi_0 {
	status = "disabled";
};

&isi_1 {
	status = "disabled";
};

&isp_0 {
	status = "okay";
};

&isp_1 {
	status = "okay";
};

&dewarp {
	status = "okay";
};

&mipi_csi_0 {
	status = "okay";
	clock-frequency = <266000000>;
	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>;
	assigned-clock-rates = <266000000>;

	port@0 {
		endpoint {
			remote-endpoint = <&ov2775_mipi_0_ep>;
			data-lanes = <4>;
			csis-hs-settle = <16>;
		};
	};
};

&mipi_csi_1 {
	status = "okay";
	port@1 {
		reg = <1>;
		mipi_csi1_ep: endpoint {
			remote-endpoint = <&ov2775_mipi_1_ep>;
			data-lanes = <4>;
			csis-hs-settle = <16>;
		};
	};
};
