/*
 * Copyright (c) 2012-2013, 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.
 */

&cci {

	actuator0: qcom,actuator@18 {
		cell-index = <0>;
		reg = <0x18 0x0>;
		compatible = "qcom,actuator";
		qcom,cci-master = <0>;
	};

	qcom,camera@6e {
		compatible = "qcom,s5k3l1yx";
		reg = <0x6e>;
		qcom,slave-id = <0x6e 0x0 0x3121>;
		qcom,csiphy-sd-index = <0>;
		qcom,csid-sd-index = <0>;
		qcom,actuator-src = <&actuator0>;
		qcom,led-flash-src = <&led_flash0>;
		qcom,mount-angle = <90>;
		qcom,sensor-name = "s5k3l1yx";
		cam_vdig-supply = <&pm8941_l3>;
		cam_vana-supply = <&pm8941_l17>;
		cam_vio-supply = <&pm8941_lvs3>;
		cam_vaf-supply = <&pm8941_l23>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
				     "cam_vaf";
		qcom,cam-vreg-type = <0 1 0 0>;
		qcom,cam-vreg-min-voltage = <1225000 0 2850000 3000000>;
		qcom,cam-vreg-max-voltage = <1225000 0 2850000 3000000>;
		qcom,cam-vreg-op-mode = <105000 0 80000 100000>;
		qcom,gpio-no-mux = <0>;
		gpios = <&msmgpio 15 0>,
			<&msmgpio 90 0>,
			<&msmgpio 89 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,gpio-set-tbl-num = <1 1>;
		qcom,gpio-set-tbl-flags = <0 2>;
		qcom,gpio-set-tbl-delay = <1000 30000>;
		qcom,csi-lane-assign = <0x4320>;
		qcom,csi-lane-mask = <0x1F>;
		qcom,sensor-position = <0>;
		qcom,sensor-mode = <1>;
		qcom,cci-master = <0>;
		status = "ok";
	};

    qcom,camera@20 {
		compatible = "qcom,imx135";
		reg = <0x20>;
		qcom,slave-id = <0x20 0x0 0x1210>;
		qcom,csiphy-sd-index = <0>;
		qcom,csid-sd-index = <0>;
		qcom,mount-angle = <90>;
		qcom,sensor-name = "imx135";
		cam_vdig-supply = <&pm8941_l3>;
		cam_vana-supply = <&pm8941_l17>;
		cam_vio-supply = <&pm8941_lvs3>;
		cam_vaf-supply = <&pm8941_l23>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
				     "cam_vaf";
		qcom,cam-vreg-type = <0 1 0 0>;
		qcom,cam-vreg-min-voltage = <1225000 0 2850000 3000000>;
		qcom,cam-vreg-max-voltage = <1225000 0 2850000 3000000>;
		qcom,cam-vreg-op-mode = <105000 0 80000 100000>;
		qcom,gpio-no-mux = <0>;
		gpios = <&msmgpio 15 0>,
			<&msmgpio 90 0>;
		qcom,gpio-reset = <1>;
		qcom,gpio-req-tbl-num = <0 1>;
		qcom,gpio-req-tbl-flags = <1 0>;
		qcom,gpio-req-tbl-label = "CAMIF_MCLK", "CAM_RESET1";
		qcom,gpio-set-tbl-num = <1 1>;
		qcom,gpio-set-tbl-flags = <0 2>;
		qcom,gpio-set-tbl-delay = <1000 30000>;
		qcom,csi-lane-assign = <0x4320>;
		qcom,csi-lane-mask = <0x1F>;
		qcom,sensor-position = <0>;
		qcom,sensor-mode = <0>;
	        qcom,sensor-type = <0>;
		qcom,cci-master = <0>;
		status = "ok";
	};


	qcom,camera@6c {
		compatible = "qcom,ov2720";
		reg = <0x6c>;
		qcom,slave-id = <0x6c 0x300A 0x2720>;
		qcom,csiphy-sd-index = <2>;
		qcom,csid-sd-index = <0>;
		qcom,mount-angle = <90>;
		qcom,sensor-name = "ov2720";
		cam_vdig-supply = <&pm8941_l3>;
		cam_vana-supply = <&pm8941_l17>;
		cam_vio-supply = <&pm8941_lvs3>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vana", "cam_vio";
		qcom,cam-vreg-type = <0 0 1>;
		qcom,cam-vreg-min-voltage = <1225000 2850000 0>;
		qcom,cam-vreg-max-voltage = <1225000 2850000 0>;
		qcom,cam-vreg-op-mode = <105000 80000 0>;
		qcom,gpio-no-mux = <0>;
		gpios = <&msmgpio 17 0>,
			<&msmgpio 18 0>;
		qcom,gpio-reset = <1>;
		qcom,gpio-req-tbl-num = <0 1>;
		qcom,gpio-req-tbl-flags = <1 0>;
		qcom,gpio-req-tbl-label = "CAMIF_MCLK",
					  "CAM_RESET1";
		qcom,gpio-set-tbl-num = <1 1>;
		qcom,gpio-set-tbl-flags = <0 2>;
		qcom,gpio-set-tbl-delay = <1000 4000>;
		qcom,csi-lane-assign = <0x4320>;
		qcom,csi-lane-mask = <0x7>;
		qcom,sensor-position = <1>;
		qcom,sensor-mode = <1>;
		qcom,cci-master = <1>;
		status = "ok";
	};

	qcom,camera@90 {
		compatible = "qcom,mt9m114";
		reg = <0x90 0x0>;
		qcom,slave-id = <0x90 0x0 0x2481>;
		qcom,csiphy-sd-index = <1>;
		qcom,csid-sd-index = <0>;
		qcom,mount-angle = <0>;
		qcom,sensor-name = "mt9m114";
		cam_vdig-supply = <&pm8941_l3>;
		cam_vana-supply = <&pm8941_l17>;
		cam_vio-supply = <&pm8941_lvs3>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vana", "cam_vio";
		qcom,cam-vreg-type = <0 0 1>;
		qcom,cam-vreg-min-voltage = <1225000 2850000 0>;
		qcom,cam-vreg-max-voltage = <1225000 2850000 0>;
		qcom,cam-vreg-op-mode = <105000 80000 0>;
		qcom,gpio-no-mux = <0>;
		gpios = <&msmgpio 16 0>,
			<&msmgpio 92 0>;
		qcom,gpio-reset = <1>;
		qcom,gpio-req-tbl-num = <0 1>;
		qcom,gpio-req-tbl-flags = <1 0>;
		qcom,gpio-req-tbl-label = "CAMIF_MCLK",
					  "CAM_RESET1";
		qcom,gpio-set-tbl-num = <1 1>;
		qcom,gpio-set-tbl-flags = <0 2>;
		qcom,gpio-set-tbl-delay = <1000 4000>;
		qcom,csi-lane-assign = <0x4320>;
		qcom,csi-lane-mask = <0x3>;
		qcom,sensor-position = <1>;
		qcom,sensor-mode = <1>;
		qcom,cci-master = <0>;
	};
};
