/*
 * Copyright (c) 2018, 2020, 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.
 */
&msm_gpio {
	SY7807_pins {
		pins = "gpio32";
		qcom,num-grp-pins = <1>;
		qcom,pin-func = <2>;
		label = "SY7807_pins";
		SY7807_default: en_default {
		drive-strength = <2>;
		bias-pull-down;
		};
	};
};

&soc {
	flash_SY7807:flashlight {
		compatible = "qcom,leds-gpio-flash";
		status = "okay";
		pinctrl-names = "flash_default";
		pinctrl-0 = <&SY7807_default>;
		qcom,flash-en = <&pm8909_gpios 4 0>;
		qcom,flash-now = <&msm_gpio 32 0>;
		clocks = <&clock_gcc clk_gcc_camss_gp1_clk>,
				<&clock_gcc clk_camss_gp1_clk_src>;
		clock-names = "flash_now_clk", "flash_now_duty_cycle_clk";
		qcom,op-seq = "flash_en", "flash_now";
		qcom,torch-seq-val = <1 0>;
		qcom,flash-seq-val = <0 1>;
		qcom,duty-cycle = <0 30>;
		qcom,clk-freq = <0 150000>;
		linux,name = "flashlight";
		linux,default-trigger = "flashlight-trigger";
	};
	led_flash0: qcom,camera-led-flash {
		cell-index = <0>;
		compatible = "qcom,camera-led-flash";
		qcom,flash-type = <3>;
		qcom,flash-source = <&flash_SY7807>;
		qcom,torch-source = <&flash_SY7807>;
	};
};

&i2c_3 {

	actuator0: qcom,actuator@0 {
		cell-index = <0>;
		reg = <0x3>;
		compatible = "qcom,actuator";
		qcom,cci-master = <0>;
		cam_vaf-supply = <&pm8909_l8>;
		qcom,cam-vreg-name = "cam_vaf";
		qcom,cam-vreg-type = <0>;
		qcom,cam-vreg-min-voltage = <2850000>;
		qcom,cam-vreg-max-voltage = <2900000>;
		qcom,cam-vreg-op-mode = <80000>;
	};

	eeprom0: qcom,eeprom@6d{
		cell-index = <0>;
		reg = <0x6d>;
		qcom,eeprom-name = "sunrise_pc0fe";
		compatible = "qcom,eeprom";
		qcom,slave-addr = <0x6d>;
		qcom,cci-master = <0>;

		qcom,num-blocks = <10>;
		qcom,page0 = <1 0x0100 2 0x01 1 1>;
		qcom,poll0 = <0 0x0 2 0 1 1>;
		qcom,mem0 = <0 0x0 2 0 1 0>;
		qcom,page1 = <1 0x5002 2 0xa8 1 1>;
		qcom,poll1 = <0 0x0 2 0 1 1>;
		qcom,mem1 = <0 0x0 2 0 1 0>;
		qcom,page2 = <1 0x3d84 2 0xc0 1 1>;
		qcom,poll2 = <0 0x0 2 0 1 1>;
		qcom,mem2 = <0 0x0 2 0 1 0>;
		qcom,page3 = <1 0x3d88 2 0x70 1 1>;
		qcom,poll3 = <0 0x0 2 0 1 1>;
		qcom,mem3 = <0 0x3d00 2 0 1 0>;
		qcom,page4 = <1 0x3d89 2 0x10 1 1>;
		qcom,poll4 = <0 0x0 2 0 1 1>;
		qcom,mem4 = <0 0x3d00 2 0 1 0>;
		qcom,page5 = <1 0x3d8a 2 0x70 1 1>;
		qcom,poll5 = <0 0x0 2 0 1 1>;
		qcom,mem5 = <0 0x3d00 2 0 1 0>;
		qcom,page6 = <1 0x3d8b 2 0x29 1 1>;
		qcom,poll6 = <0 0x0 2 0 1 1>;
		qcom,mem6 = <0 0x3d00 2 0 1 0>;
		qcom,page7 = <1 0x3d81 2 0x01 1 5>;
		qcom,poll7 = <0 0x0 2 0 1 1>;
		qcom,mem7 = <26 0x7010 2 0 1 1>;
		qcom,page8 = <1 0x5002 2 0xaa 1 1>;
		qcom,poll8 = <0 0x0 2 0 1 1>;
		qcom,mem8 = <0 0x0 2 0 1 0>;
		qcom,page9 = <1 0x0100 2 0x00 1 1>;
		qcom,poll9 = <0 0x0 2 0 1 1>;
		qcom,mem9 = <0 0x0 2 0 1 0>;

		cam_vdig-supply = <&pm8909_l2>;
		cam_vana-supply = <&pm8909_l17>;
		cam_vio-supply = <&pm8909_l6>;
		cam_vaf-supply = <&pm8909_l8>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
			"cam_vaf";
		qcom,cam-vreg-type = <0 0 0 0>;
		qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>;
		qcom,cam-vreg-max-voltage = <1200000 1800000 2850000 2900000>;
		qcom,cam-vreg-op-mode = <200000 0 80000 100000>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_default
			&cam_sensor_rear_default>;
		pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
		gpios = <&msm_gpio 26 0>,
			<&msm_gpio 35 0>,
			<&msm_gpio 34 0>;
		qcom,gpio-reset = <1>;
		qcom,gpio-standby = <2>;
		qcom,gpio-req-tbl-num = <0 1 2>;
		qcom,gpio-req-tbl-flags = <1 0 0>;
		qcom,gpio-req-tbl-label = "CAMIF_MCLK",
			"CAM_RESET1",
			"CAM_STANDBY";

		qcom,cam-power-seq-type = "sensor_vreg",
			"sensor_vreg", "sensor_vreg",
			"sensor_gpio", "sensor_gpio",
			"sensor_clk";
		qcom,cam-power-seq-val = "cam_vio",
			"cam_vana", "cam_vdig",
			"sensor_gpio_reset",
			"sensor_gpio_standby",
			"sensor_cam_mclk" ;
		qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
		qcom,cam-power-seq-delay = <10 10 10 10 10 5>;

		clocks = <&clock_gcc clk_mclk0_clk_src>,
			<&clock_gcc clk_gcc_camss_mclk0_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	qcom,camera@0 {
		cell-index = <0>;
		compatible = "qcom,camera";
		reg = <0x2>;
		qcom,special-support-sensors="ov5670_30010a3", "gc2365";
		qcom,eeprom-src = <&eeprom0>;
		qcom,csiphy-sd-index = <0>;
		qcom,csid-sd-index = <0>;
		qcom,mount-angle = <90>;
		qcom,actuator-src = <&actuator0>;
		qcom,led-flash-src = <&led_flash0>;
		cam_vana-supply = <&pm8909_l17>;
		cam_vio-supply = <&pm8909_l6>;
		cam_vaf-supply = <&pm8909_l8>;
		qcom,cam-vreg-name = "cam_vio", "cam_vana",
			"cam_vaf";
		qcom,cam-vreg-type = <0 0 0>;
		qcom,cam-vreg-min-voltage = <1800000 2800000 2850000>;
		qcom,cam-vreg-max-voltage = <1800000 2850000 2900000>;
		qcom,cam-vreg-op-mode = <0 80000 100000>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_default
			&cam_sensor_rear_default>;
		pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
		gpios = <&msm_gpio 26 0>,
			<&msm_gpio 35 0>,
			<&msm_gpio 34 0>;
		qcom,gpio-reset = <1>;
		qcom,gpio-standby = <2>;
		qcom,gpio-req-tbl-num = <0 1 2>;
		qcom,gpio-req-tbl-flags = <1 0 0>;
		qcom,gpio-req-tbl-label = "CAMIF_MCLK",
			"CAM_RESET1",
			"CAM_STANDBY";
		qcom,sensor-position = <0>;
		qcom,sensor-mode = <0>;
		qcom,cci-master = <0>;
		status = "ok";
		clocks = <&clock_gcc clk_mclk0_clk_src>,
			<&clock_gcc clk_gcc_camss_mclk0_clk>;
		clock-names = "cam_src_clk", "cam_clk";
		qcom,clock-rates = <24000000 0>;
	};

	qcom,camera@1 {
		cell-index = <1>;
		compatible = "qcom,camera";
		reg = <0x1>;
		qcom,special-support-sensors="ov2680_cht852b", "gc030a";
		qcom,csiphy-sd-index = <0>;
		qcom,csid-sd-index = <0>;
		qcom,mount-angle = <90>;
		cam_vana-supply = <&pm8909_l17>;
		cam_vio-supply = <&pm8909_l6>;
		qcom,cam-vreg-name = "cam_vio", "cam_vana";
		qcom,cam-vreg-type = <0 0>;
		qcom,cam-vreg-min-voltage = <1800000 2800000>;
		qcom,cam-vreg-max-voltage = <1800000 2850000>;
		qcom,cam-vreg-op-mode = <0 80000>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 =
			<&cam_sensor_mclk1_default &cam_sensor_front_default>;
		pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>;
		gpios = <&msm_gpio 27 0>,
			<&msm_gpio 28 0>,
			<&msm_gpio 33 0>;
		qcom,gpio-reset = <1>;
		qcom,gpio-standby = <2>;
		qcom,gpio-req-tbl-num = <0 1 2>;
		qcom,gpio-req-tbl-flags = <1 0 0>;
		qcom,gpio-req-tbl-label = "CAMIF_MCLK",
			"CAM_RESET",
			"CAM_STANDBY";
		qcom,cci-master = <0>;
		status = "ok";
		clocks = <&clock_gcc clk_mclk1_clk_src>,
			<&clock_gcc clk_gcc_camss_mclk1_clk>;
		clock-names = "cam_src_clk", "cam_clk";
		qcom,clock-rates = <24000000 0>;
	};
};
