// SPDX-License-Identifier: GPL-2.0-only OR MIT
/**
 * DT Overlay for dual RPi Camera V2.1 (Sony IMX219) interfaced with CSI2
 * on J721E SK, AM68 SK or AM69-SK board.
 * https://datasheets.raspberrypi.org/camera/camera-v2-schematic.pdf
 *
 * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include "k3-pinctrl.h"

&{/} {
	clk_imx219_fixed: imx219-xclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
	};
};

&csi_mux {
	idle-state = <1>;
};

/* CAM0 I2C */
&cam0_i2c {
	#address-cells = <1>;
	#size-cells = <0>;
	imx219_0: imx219-0@10 {
		compatible = "sony,imx219";
		reg = <0x10>;

		clocks = <&clk_imx219_fixed>;
		clock-names = "xclk";

		port {
			csi2_cam0: endpoint {
				remote-endpoint = <&csi2rx0_in_sensor>;
				link-frequencies = /bits/ 64 <456000000>;
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};
	};
};

/* CAM1 I2C */
&cam1_i2c {
	#address-cells = <1>;
	#size-cells = <0>;
	imx219_1: imx219-1@10 {
		compatible = "sony,imx219";
		reg = <0x10>;

		clocks = <&clk_imx219_fixed>;
		clock-names = "xclk";

		port {
			csi2_cam1: endpoint {
				remote-endpoint = <&csi2rx1_in_sensor>;
				link-frequencies = /bits/ 64 <456000000>;
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};
	};
};


&cdns_csi2rx0 {
	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		csi0_port0: port@0 {
			reg = <0>;
			status = "okay";

			csi2rx0_in_sensor: endpoint {
				remote-endpoint = <&csi2_cam0>;
				bus-type = <4>; /* CSI2 DPHY. */
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};

		csi0_port1: port@1 {
			reg = <1>;
			status = "disabled";
		};

		csi0_port2: port@2 {
			reg = <2>;
			status = "disabled";
		};

		csi0_port3: port@3 {
			reg = <3>;
			status = "disabled";
		};

		csi0_port4: port@4 {
			reg = <4>;
			status = "disabled";
		};
	};
};

&dphy0 {
	status = "okay";
};

&ti_csi2rx0 {
	status = "okay";
};

&cdns_csi2rx1 {
	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		csi1_port0: port@0 {
			reg = <0>;
			status = "okay";

			csi2rx1_in_sensor: endpoint {
				remote-endpoint = <&csi2_cam1>;
				bus-type = <4>; /* CSI2 DPHY. */
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};

		csi1_port1: port@1 {
			reg = <1>;
			status = "disabled";
		};

		csi1_port2: port@2 {
			reg = <2>;
			status = "disabled";
		};

		csi1_port3: port@3 {
			reg = <3>;
			status = "disabled";
		};

		csi1_port4: port@4 {
			reg = <4>;
			status = "disabled";
		};
	};
};

&dphy1 {
	status = "okay";
};

&ti_csi2rx1 {
	status = "okay";
};
