/*
 * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * 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.
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/clock/qcom,gcc-sdm845.h>
#include <dt-bindings/clock/qcom,camcc-sdm845.h>
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

#include "sdm670-cdp.dtsi"
#include "sdm670-audio-overlay.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. QCS605 PM660 + PM660L CDP";
	compatible = "qcom,qcs605-cdp", "qcom,qcs605", "qcom,cdp";
	qcom,msm-id = <347 0x0>;
	qcom,board-id = <1 0>;
	qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
		       <0x0001001b 0x0102001a 0x0 0x0>,
		       <0x0001001b 0x0201011a 0x0 0x0>;
};

&cam_cci {
	/delete-node/ qcom,cam-sensor@1;
	qcom,cam-sensor@1 {
		cell-index = <1>;
		compatible = "qcom,cam-sensor";
		reg = <0x1>;
		csiphy-sd-index = <1>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		eeprom-src = <&eeprom_rear_aux>;
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
		cam_vdig-supply = <&camera_rear_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		regulator-names = "cam_vdig", "cam_vio", "cam_vana",
			"cam_clk";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1352000 1800000 2850000 0>;
		rgltr-max-voltage = <1352000 1800000 2850000 0>;
		rgltr-load-current = <105000 0 80000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_active
				&cam_sensor_rear2_active>;
		pinctrl-1 = <&cam_sensor_mclk0_suspend
				&cam_sensor_rear2_suspend>;
		gpios = <&tlmm 13 0>,
			<&tlmm 28 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK0",
					"CAM_RESET1";
		sensor-mode = <0>;
		cci-master = <1>;
		status = "ok";
		clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};
};
