// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2024-2025 Qualcomm Innovation Center, Inc. All rights reserved.
 */

/*
 * Camera Sensor overlay on top of rb3gen2 core kit.
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/clock/qcom,camcc-sc7280.h>
#include <dt-bindings/gpio/gpio.h>

&camss {
	vdda-phy-supply = <&vreg_l10c_0p88>;
	vdda-pll-supply = <&vreg_l6b_1p2>;

	status = "okay";

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

		/* The port index denotes CSIPHY id i.e. csiphy3 */
		port@3 {
			reg = <3>;

			csiphy3_ep: endpoint {
				clock-lanes = <7>;
				data-lanes = <0 1 2 3>;
				remote-endpoint = <&imx577_ep>;
			};
		};
	};
};

&cci1 {
	status = "okay";
};

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

	camera@1a {
		compatible = "sony,imx577";

		reg = <0x1a>;

		reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default", "suspend";
		pinctrl-0 = <&cam2_default>;
		pinctrl-1 = <&cam2_suspend>;

		clocks = <&camcc CAM_CC_MCLK3_CLK>;
		assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
		assigned-clock-rates = <24000000>;

		dovdd-supply = <&vreg_l18b_1p8>;
		avdd-supply = <&vph_pwr>;
		dvdd-supply = <&vph_pwr>;

		port {
			imx577_ep: endpoint {
				link-frequencies = /bits/ 64 <600000000>;
				data-lanes = <1 2 3 4>;
				remote-endpoint = <&csiphy3_ep>;
			};
		};
	};
};

&tlmm {
	cam2_default: cam2-default-state {
		pins = "gpio67";
		function = "cam_mclk";
		drive-strength = <2>;
		bias-disable;
	};

	cam2_suspend: cam2-suspend-state {
		pins = "gpio67";
		function = "cam_mclk";
		drive-strength = <2>;
		bias-pull-down;
	};
};
