
/*
 * 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>;
		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,mount-angle = <0>;
		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>;
		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 = <1>;
		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 = <180>;
		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 = <0>;
		status = "ok";
	};

	qcom,camera@90 {
		compatible = "qcom,mt9m114";
		reg = <0x90>;
		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>;
	};
};
