#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/msm-camera.h>

&cci0_active {
	config {
		pins = "gpio110","gpio111";
		bias-pull-up; /* PULL UP*/
		drive-strength = <4>; /* 4 MA */
	};
};

&cci0_suspend {
	config {
		pins = "gpio110","gpio111";
		bias-pull-down; /* PULL DOWN */
		drive-strength = <4>; /* 4 MA */
	};
};

&cci1_active {
	config {
		pins = "gpio112","gpio113";
		bias-pull-up; /* PULL UP*/
		drive-strength = <4>; /* 4 MA */
	};
};

&cci1_suspend {
	config {
		pins = "gpio112","gpio113";
		bias-pull-down; /* PULL DOWN */
		drive-strength = <4>; /* 4 MA */
	};
};

&cci2_active {
	config {
		pins = "gpio114","gpio115";
		bias-pull-up; /* PULL UP*/
		drive-strength = <4>; /* 4 MA */
	};
};

&cci2_suspend {
	config {
		pins = "gpio114","gpio115";
		bias-pull-down; /* PULL DOWN */
		drive-strength = <4>; /* 4 MA */
	};
};

&cci3_active {
	config {
		pins = "gpio208","gpio209";
		bias-pull-up; /* PULL UP*/
		drive-strength = <4>; /* 4 MA */
		qcom,apps;
	};
};

&cci3_suspend {
	config {
		pins = "gpio208","gpio209";
		bias-pull-down; /* PULL DOWN */
		drive-strength = <4>; /* 4 MA */
		qcom,remote;
	};

};

&tlmm {
	cam_wide_active_mclk: cam_wide_active_mclk {
			mux {
					pins = "gpio102";
					function = "cam_mclk";
			};

			config {
					pins = "gpio102";
					bias-disable; /* No PULL */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_wide_suspend_mclk: cam_wide_suspend_mclk {
			mux {
					pins = "gpio102";
					function = "cam_mclk";
			};

			config {
					pins = "gpio102";
					bias-pull-down; /* PULL DOWN */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_sensor_active_wide: cam_sensor_active_wide {
		mux {
			pins = "gpio126", "gpio171", "gpio183";
			function = "gpio";
		};

		config {
			pins = "gpio126", "gpio171", "gpio183";
			bias-disable; /* No PULL */
			drive-strength = <2>; /* 2 MA */
		};
	};

	cam_sensor_suspend_wide: cam_sensor_suspend_wide {
		mux {
			pins = "gpio126", "gpio171", "gpio183";
			function = "gpio";
		};

		config {
			pins = "gpio126", "gpio171", "gpio183";
			bias-pull-down; /* PULL DOWN */
			drive-strength = <2>; /* 2 MA */
			output-low;
		};
	};

	cam_sensor_active_mipisel0: cam_sensor_active_mipisel0 {
		mux {
			pins = "gpio180";
			function = "gpio";
		};

		config {
			pins = "gpio180";
			bias-disable; /* No PULL */
			drive-strength = <2>; /* 2 MA */
		};
	};

	cam_sensor_suspend_mipisel0: cam_sensor_suspend_mipisel0 {
		mux {
			pins = "gpio180";
			function = "gpio";
		};

		config {
			pins = "gpio180";
			bias-pull-down; /* PULL DOWN */
			drive-strength = <2>; /* 2 MA */
			output-low;
		};
	};

	cam_ultra_active_mclk: cam_ultra_active_mclk {
			mux {
					pins = "gpio101";
					function = "cam_mclk";
			};

			config {
					pins = "gpio101";
					bias-disable; /* No PULL */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_ultra_suspend_mclk: cam_ultra_suspend_mclk {
			mux {
					pins = "gpio101";
					function = "cam_mclk";
			};

			config {
					pins = "gpio101";
					bias-pull-down; /* PULL DOWN */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_sensor_active_ultra: cam_sensor_active_ultra {
		mux {
			pins = "gpio60", "gpio107";
			function = "gpio";
		};

		config {
			pins = "gpio60", "gpio107";
			bias-disable; /* No PULL */
			drive-strength = <2>; /* 2 MA */
		};
	};

	cam_sensor_suspend_ultra: cam_sensor_suspend_ultra {
		mux {
			pins = "gpio60", "gpio107";
			function = "gpio";
		};

		config {
			pins = "gpio60", "gpio107";
			bias-pull-down; /* PULL DOWN */
			drive-strength = <2>; /* 2 MA */
			output-low;
		};
	};

	cam_front_active_mclk: cam_front_active_mclk {
			mux {
					pins = "gpio104";
					function = "cam_mclk";
			};

			config {
					pins = "gpio104";
					bias-disable; /* No PULL */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_front_suspend_mclk: cam_front_suspend_mclk {
			mux {
					pins = "gpio104";
					function = "cam_mclk";
			};

			config {
					pins = "gpio104";
					bias-pull-down; /* PULL DOWN */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_sensor_active_front: cam_sensor_active_front {
		mux {
			pins = "gpio108";
			function = "gpio";
		};

		config {
			pins = "gpio108";
			bias-disable; /* No PULL */
			drive-strength = <2>; /* 2 MA */
		};
	};

	cam_sensor_suspend_front: cam_sensor_suspend_front {
		mux {
			pins = "gpio108";
			function = "gpio";
		};

		config {
			pins = "gpio108";
			bias-pull-down; /* PULL DOWN */
			drive-strength = <2>; /* 2 MA */
			output-low;
		};
	};

	cam_tele_active_mclk: cam_tele_active_mclk {
			mux {
					pins = "gpio100";
					function = "cam_mclk";
			};

			config {
					pins = "gpio100";
					bias-disable; /* No PULL */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_tele_suspend_mclk: cam_tele_suspend_mclk {
			mux {
					pins = "gpio100";
					function = "cam_mclk";
			};

			config {
					pins = "gpio100";
					bias-pull-down; /* PULL DOWN */
					drive-strength = <4>; /* 4 MA */
			};
	};

	cam_sensor_active_tele: cam_sensor_active_tele {
		mux {
			pins = "gpio128", "gpio174";
			function = "gpio";
		};

		config {
			pins = "gpio128", "gpio174";
			bias-disable; /* No PULL */
			drive-strength = <2>; /* 2 MA */
		};
	};

	cam_sensor_suspend_tele: cam_sensor_suspend_tele {
		mux {
			pins = "gpio128", "gpio174";
			function = "gpio";
		};

		config {
			pins = "gpio128", "gpio174";
			bias-pull-down; /* PULL DOWN */
			drive-strength = <2>; /* 2 MA */
			output-low;
		};
	};
};

&cam_csiphy2{
	compatible = "qcom,csiphy-v2.1.3-xiaomi-l1", "qcom,csiphy";
};

&pm8350c_switch0 {
	qcom,led-mask = <1>; /* Channels 1 */
	qcom,symmetry-en;
};

&pm8350c_switch1 {
	qcom,led-mask = <2>; /* Channels 2 */
	qcom,symmetry-en;
};

&pm8350c_switch2 {
	qcom,led-mask = <3>; /* All Channels */
	qcom,symmetry-en;
};

// Enable stretch for tele sem1217.
&i2c_freq_1Mhz_cci1 {
	hw-thigh = <16>;
	hw-tlow = <22>;
	hw-tsu-sto = <17>;
	hw-tsu-sta = <18>;
	hw-thd-dat = <16>;
	hw-thd-sta = <15>;
	hw-tbuf = <24>;
	hw-scl-stretch-en = <1>;
	hw-trdhld = <3>;
	hw-tsp = <3>;
	cci-clk-src = <37500000>;
	status = "ok";
};

&pm8010j_l5 {
	regulator-min-microvolt = <2808000>;
	regulator-max-microvolt = <2808000>;
	qcom,min-dropout-voltage = <192000>;
};

&soc {
	led_flash_wide: qcom,camera-flash@1 {
		cell-index = <1>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
		torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
		switch-source = <&pm8350c_switch2>;
		status = "ok";
	};

	led_flash_ultra: qcom,camera-flash@2 {
		cell-index = <2>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
		torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
		switch-source = <&pm8350c_switch2>;
		status = "ok";
	};

	led_flash_tele: qcom,camera-flash@3 {
		cell-index = <3>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
		torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
		switch-source = <&pm8350c_switch2>;
		status = "ok";
	};

	camera_wide_avdd_ldo: gpio-regulator@0 {
		compatible = "regulator-fixed";
		reg = <0x00 0x00>;
		regulator-name = "camera_wide_avdd_ldo";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		regulator-enable-ramp-delay = <100>;
		enable-active-high;
		gpio = <&tlmm 171 0>;
	};

	camera_ultra_avdd_ldo: gpio-regulator@1 {
		compatible = "regulator-fixed";
		reg = <0x01 0x00>;
		regulator-name = "camera_ultra_avdd_ldo";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		regulator-enable-ramp-delay = <100>;
		enable-active-high;
		gpio = <&tlmm 107 0>;
	};

	camera_tele_avdd_ldo: gpio-regulator@2 {
		compatible = "regulator-fixed";
		reg = <0x02 0x00>;
		regulator-name = "camera_tele_avdd_ldo";
		regulator-min-microvolt = <2904000>;
		regulator-max-microvolt = <2904000>;
		regulator-enable-ramp-delay = <100>;
		enable-active-high;
		gpio = <&tlmm 174 0>;
	};

	camera_wide_ois_vaf_ldo: gpio-regulator@3 {
		compatible = "regulator-fixed";
		reg = <0x03 0x00>;
		regulator-name = "camera_wide_ois_vaf_ldo";
		regulator-min-microvolt = <3104000>;
		regulator-max-microvolt = <3104000>;
		regulator-enable-ramp-delay = <100>;
		enable-active-high;
		gpio = <&tlmm 183 0>;
	};

	//GPIO1 -> 302
	qcom,cam-res-mgr {
		compatible = "qcom,cam-res-mgr";
		gpios-shared-pinctrl = <427 403 472 484 481 401 429 475>;
		shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide", "cam_wide", "cam_tele", "cam_tele", "cam_tele";
		pinctrl-names = "cam_wide_active", "cam_wide_suspend","cam_tele_active", "cam_tele_suspend";
		pinctrl-0 = <&cam_sensor_active_wide
				&cam_wide_active_mclk
				&cam_sensor_active_mipisel0>;
		pinctrl-1 = <&cam_sensor_suspend_wide
				&cam_wide_suspend_mclk
				&cam_sensor_suspend_mipisel0>;
		pinctrl-2 = <&cam_sensor_active_tele
				&cam_tele_active_mclk>;
		pinctrl-3 = <&cam_sensor_suspend_tele
				&cam_tele_suspend_mclk>;
		status = "ok";
	};
};

&cam_cci0
{
	//WIDE SubDev
	eeprom_wide: qcom,eeprom0 {
		cell-index = <0>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L1J>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
		cam_v_custom1-supply = <&L4J>; //AVDD2
		cam_vaf-supply = <&L6J>;
		cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
		regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
			"cam_v_custom1","cam_vaf", "cam_v_custom2";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
		rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
		rgltr-load-current = <20000 50000 0 50000 50000 50000 50000>;
		use-shared-clk;
		gpio-no-mux = <0>;
		gpios = <&tlmm 102 0>,
			<&tlmm 126 0>,
			<&tlmm 180 0>;
		gpio-reset = <1>;
		gpio-custom1 = <2>;
		gpio-req-tbl-num = <0 1 2>;
		gpio-req-tbl-flags = <1 0 0>;
		gpio-req-tbl-label = "CAMIF_MCLK0",
					"CAM_RESET0",
					"CAM_MIPISEL0";
		cci-master = <1>;
		clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	ois_wide: qcom,ois0 {
		cell-index = <0>;
		reg = <0x0>;
		compatible = "qcom,ois";
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L1J>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
		cam_v_custom1-supply = <&L4J>; //AVDD2
		cam_vaf-supply = <&L6J>;
		cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
		regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
			"cam_v_custom1","cam_vaf", "cam_v_custom2";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
		rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
		rgltr-load-current = <20000 50000 0 50000 50000 103000 103000>;
		use-shared-clk;
		gpio-no-mux = <0>;
		gpios = <&tlmm 102 0>,
			<&tlmm 126 0>,
			<&tlmm 180 0>;
		gpio-reset = <1>;
		gpio-custom1 = <2>;
		gpio-req-tbl-num = <0 1 2>;
		gpio-req-tbl-flags = <1 0 0>;
		gpio-req-tbl-label = "CAMIF_MCLK0",
					"CAM_RESET0",
					"CAM_MIPISEL0";
		cci-master = <1>;
		clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	actuator_wide: qcom,actuator0 {
		cell-index = <0>;
		compatible = "qcom,actuator";
		cci-master = <1>;
		cam_vaf-supply = <&L6J>;
		cam_vio-supply = <&L4I>;
		regulator-names = "cam_vaf", "cam_vio";
		rgltr-cntrl-support;
		rgltr-min-voltage = <3104000 1800000>;
		rgltr-max-voltage = <3104000 1800000>;
		rgltr-load-current = <103000 20000>;
	};

	//WIDE Sensor
	qcom,cam-sensor0 {
		cell-index = <0>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <1>;
		eeprom-src = <&eeprom_wide>;
		actuator-src = <&actuator_wide>;
		led-flash-src = <&led_flash_wide>;
		ois-src  = <&ois_wide>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L1J>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
		cam_v_custom1-supply = <&L4J>; //AVDD2
		cam_vaf-supply = <&L6J>;
		cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
		regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
			"cam_v_custom1","cam_vaf", "cam_v_custom2";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
		rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
		rgltr-load-current = <20000 50000 0 50000 50000 103000 103000>;
		use-shared-clk;
		gpio-no-mux = <0>;
		gpios = <&tlmm 102 0>,
			<&tlmm 126 0>,
			<&tlmm 180 0>;
		gpio-reset = <1>;
		gpio-custom1 = <2>;
		gpio-req-tbl-num = <0 1 2>;
		gpio-req-tbl-flags = <1 0 0>;
		gpio-req-tbl-label = "CAMIF_MCLK0",
					"CAM_RESET0",
					"CAM_MIPISEL0";
		cci-master = <1>;
		clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	//Ultra SubDev
	eeprom_ultra: qcom,eeprom2 {
		cell-index = <2>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L1I>;
		cam_vaf-supply = <&L5I>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_ultra_avdd_ldo>;
		regulator-names = "cam_vio", "cam_vdig", "cam_vaf", "cam_clk", "cam_vana";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1104000 2808000 0 2800000>;
		rgltr-max-voltage = <1800000 1104000 2808000 0 2800000>;
		rgltr-load-current = <20000 50000 103000 0 50000>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_active_ultra
				&cam_ultra_active_mclk>;
		pinctrl-1 = <&cam_sensor_suspend_ultra
				&cam_ultra_suspend_mclk>;
		gpios = <&tlmm 101 0>,
				<&tlmm 60 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK2",
					"CAM_RESET2";
		cci-master = <0>;
		clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	actuator_ultra: qcom,actuator2 {
		cell-index = <2>;
		compatible = "qcom,actuator";
		cci-master = <0>;
		cam_vaf-supply = <&L5I>;
		cam_vio-supply = <&L4I>;
		regulator-names = "cam_vaf", "cam_vio";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2808000 1800000>;
		rgltr-max-voltage = <2808000 1800000>;
		rgltr-load-current = <103000 20000>;
	};

	//Ultra
	qcom,cam-sensor2 {
		cell-index = <2>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <2>;
		eeprom-src = <&eeprom_ultra>;
		actuator-src = <&actuator_ultra>;
		led-flash-src = <&led_flash_ultra>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L1I>;
		cam_vaf-supply = <&L5I>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_ultra_avdd_ldo>;
		regulator-names = "cam_vio", "cam_vdig", "cam_vaf", "cam_clk", "cam_vana";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1104000 2808000 0 2800000>;
		rgltr-max-voltage = <1800000 1104000 2808000 0 2800000>;
		rgltr-load-current = <20000 50000 103000 0 50000>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_active_ultra
				&cam_ultra_active_mclk>;
		pinctrl-1 = <&cam_sensor_suspend_ultra
				&cam_ultra_suspend_mclk>;
		gpios = <&tlmm 101 0>,
				<&tlmm 60 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK2",
					"CAM_RESET2";
		cci-master = <0>;
		clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

};

&cam_cci1 {
	//FRONT SubDev
	eeprom_front: qcom,eeprom1 {
		cell-index = <1>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L3J>;
		cam_vdig-supply = <&L2J>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&L5J>;
		regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1104000 0 2808000>;
		rgltr-max-voltage = <1800000 1104000 0 2808000>;
		rgltr-load-current = <20000 10000 0 103000>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_active_front
				&cam_front_active_mclk>;
		pinctrl-1 = <&cam_sensor_suspend_front
				&cam_front_suspend_mclk>;
		gpios = <&tlmm 104 0>,
		        <&tlmm 108 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK1",
		                        "CAM_RESET1";
		cci-master = <1>;
		clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	qcom,cam-sensor1 {
		cell-index = <1>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <4>;
		eeprom-src = <&eeprom_front>;
		sensor-position-roll = <270>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <0>;
		cam_vio-supply = <&L3J>;
		cam_vdig-supply = <&L2J>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&L5J>;
		regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana";
		rgltr-cntrl-support;
		aon-user;
		rgltr-min-voltage = <1800000 1104000 0 2808000>;
		rgltr-max-voltage = <1800000 1104000 0 2808000>;
		rgltr-load-current = <20000 10000 0 103000>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_active_front
				&cam_front_active_mclk>;
		pinctrl-1 = <&cam_sensor_suspend_front
				&cam_front_suspend_mclk>;
		gpios = <&tlmm 104 0>,
		        <&tlmm 108 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK1",
		                        "CAM_RESET1";
		cci-master = <1>;
		clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	//TELE SubDev
	eeprom_tele: qcom,eeprom3 {
		cell-index = <3>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L2I>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_tele_avdd_ldo>;
		cam_vaf-supply = <&L6I>;
		cam_v_custom1-supply = <&L7I>; //OIS AVDD
		regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
		rgltr-max-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
		rgltr-load-current = <10000 50000 0 35000 103000 103000>;
		gpio-no-mux = <0>;
		gpios = <&tlmm 100 0>,
			<&tlmm 128 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK3",
					"CAM_RESET3";
		cci-master = <0>;
		clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	ois_tele: qcom,ois3 {
		cell-index = <3>;
		reg = <0x0>;
		compatible = "qcom,ois";
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L2I>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_tele_avdd_ldo>;
		cam_vaf-supply = <&L6I>;
		cam_v_custom1-supply = <&L7I>; //OIS AVDD
		regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
		rgltr-max-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
		rgltr-load-current = <10000 50000 0 35000 103000 103000>;
		gpio-no-mux = <0>;
		gpios = <&tlmm 100 0>,
			<&tlmm 128 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK3",
					"CAM_RESET3";
		cci-master = <0>;
		clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};

	actuator_tele: qcom,actuator3 {
		cell-index = <3>;
		compatible = "qcom,actuator";
		cci-master = <0>;
		cam_vaf-supply = <&L6I>;
		cam_vio-supply = <&L4I>;
		cam_v_custom1-supply = <&L7I>; //OIS AVDD
		regulator-names = "cam_vaf", "cam_vio" ,"cam_v_custom1";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2808000 1800000 2808000>;
		rgltr-max-voltage = <2808000 1800000 2808000>;
		rgltr-load-current = <103000 20000 103000>;
	};


	//TELE
	qcom,cam-sensor3 {
		cell-index = <3>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <3>;
		eeprom-src = <&eeprom_tele>;
		actuator-src = <&actuator_tele>;
		led-flash-src = <&led_flash_tele>;
		ois-src  = <&ois_tele>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		cam_vio-supply = <&L4I>;
		cam_vdig-supply = <&L2I>;
		cam_clk-supply = <&cam_cc_titan_top_gdsc>;
		cam_vana-supply = <&camera_tele_avdd_ldo>;
		cam_vaf-supply = <&L6I>;
		cam_v_custom1-supply = <&L7I>; //OIS AVDD
		regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
		rgltr-max-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
		rgltr-load-current = <10000 50000 0 35000 103000 103000>;
		gpio-no-mux = <0>;
		gpios = <&tlmm 100 0>,
			<&tlmm 128 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK3",
					"CAM_RESET3";
		cci-master = <0>;
		clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "nominal";
		clock-rates = <19200000>;
		status = "ok";
	};
};
