Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 174ab76b authored by shaoxing's avatar shaoxing
Browse files

ARM: dts: msm: support Qcs605 360camera



Initial device tree for qcs605 360camera.

Change-Id: I7039259320e78d2886b7b77230ccf331762b0aa2
Signed-off-by: default avatarshaoxing <shaoxing@codeaurora.org>
parent 5c1f0d88
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ dtb-$(CONFIG_ARCH_SDM670) += sdm670-rumi.dtb \
	sda670-cdp.dtb \
	sda670-pm660a-mtp.dtb \
	sda670-pm660a-cdp.dtb \
	qcs605-360camera.dtb \
	qcs605-mtp.dtb \
	qcs605-cdp.dtb \
	qcs605-external-codec-mtp.dtb
+27 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, 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/;

#include "qcs605.dtsi"
#include "qcs605-360camera.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. QCS605 PM660 + PM660L 360camera";
	compatible = "qcom,qcs605-mtp", "qcom,qcs605", "qcom,mtp";
	qcom,board-id = <0x0000000b 1>;
	qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
		       <0x0001001b 0x0102001a 0x0 0x0>,
		       <0x0001001b 0x0201011a 0x0 0x0>;
};
+63 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, 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.
 */

#include "sdm670-mtp.dtsi"
#include "sdm670-camera-sensor-360camera.dtsi"
#include "sdm670-audio-overlay.dtsi"

&qupv3_se3_i2c {
	status = "disabled";
};

&qupv3_se10_i2c {
	status = "okay";
};

&qupv3_se12_2uart {
	status = "okay";
};

&qupv3_se6_4uart {
	status = "okay";
};

&qupv3_se13_i2c {
	status = "disabled";
};

&qupv3_se13_spi {
	status = "disabled";
};

&int_codec {
	qcom,model = "sdm670-360cam-snd-card";
	qcom,audio-routing =
		"RX_BIAS", "INT_MCLK0",
		"SPK_RX_BIAS", "INT_MCLK0",
		"INT_LDO_H", "INT_MCLK0",
		"DMIC1", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic1",
		"DMIC2", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic2",
		"DMIC3", "MIC BIAS External2",
		"MIC BIAS External2", "Digital Mic3",
		"DMIC4", "MIC BIAS External2",
		"MIC BIAS External2", "Digital Mic4",
		"PDM_IN_RX1", "PDM_OUT_RX1",
		"PDM_IN_RX2", "PDM_OUT_RX2",
		"PDM_IN_RX3", "PDM_OUT_RX3",
		"ADC1_IN", "ADC1_OUT",
		"ADC2_IN", "ADC2_OUT",
		"ADC3_IN", "ADC3_OUT";
	qcom,wsa-max-devs = <0>;
};
+382 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2016-2017, 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.
 */

&soc {
	led_flash_rear: qcom,camera-flash@0 {
		cell-index = <0>;
		reg = <0x00 0x00>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm660l_flash0 &pm660l_flash1>;
		torch-source = <&pm660l_torch0 &pm660l_torch1>;
		switch-source = <&pm660l_switch0>;
		status = "ok";
	};

	led_flash_front: qcom,camera-flash@1 {
		cell-index = <1>;
		reg = <0x01 0x00>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm660l_flash2>;
		torch-source = <&pm660l_torch2>;
		switch-source = <&pm660l_switch1>;
		status = "ok";
	};

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

	camera_ldo: gpio-regulator@2 {
		compatible = "regulator-fixed";
		reg = <0x02 0x00>;
		regulator-name = "camera_ldo";
		regulator-min-microvolt = <1352000>;
		regulator-max-microvolt = <1352000>;
		regulator-enable-ramp-delay = <233>;
		enable-active-high;
		gpio = <&pm660l_gpios 4 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&camera_dvdd_en_default>;
		vin-supply = <&pm660_s6>;
	};

	camera_rear_ldo: gpio-regulator@1 {
		compatible = "regulator-fixed";
		reg = <0x01 0x00>;
		regulator-name = "camera_rear_ldo";
		regulator-min-microvolt = <1352000>;
		regulator-max-microvolt = <1352000>;
		regulator-enable-ramp-delay = <135>;
		enable-active-high;
		gpio = <&pm660l_gpios 4 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&camera_rear_dvdd_en_default>;
		vin-supply = <&pm660_s6>;
	};

	camera_vio_ldo: gpio-regulator@3 {
		compatible = "regulator-fixed";
		reg = <0x03 0x00>;
		regulator-name = "camera_vio_ldo";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-enable-ramp-delay = <233>;
		enable-active-high;
		gpio = <&tlmm 29 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_sensor_rear_vio>;
		vin-supply = <&pm660_s4>;
	};

	camera_vana_ldo: gpio-regulator@4 {
		compatible = "regulator-fixed";
		reg = <0x04 0x00>;
		regulator-name = "camera_vana_ldo";
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
		regulator-enable-ramp-delay = <233>;
		enable-active-high;
		gpio = <&tlmm 8 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_sensor_rear_vana>;
		vin-supply = <&pm660l_bob>;
	};
};

&cam_cci {
	actuator_rear: qcom,actuator@0 {
		cell-index = <0>;
		reg = <0x0>;
		compatible = "qcom,actuator";
		cci-master = <0>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <0>;
	};

	actuator_front: qcom,actuator@1 {
		cell-index = <1>;
		reg = <0x1>;
		compatible = "qcom,actuator";
		cci-master = <1>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <0>;
	};

	ois_rear: qcom,ois@0 {
		cell-index = <0>;
		reg = <0x0>;
		compatible = "qcom,ois";
		cci-master = <0>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <0>;
		status = "disabled";
	};

	eeprom_rear: qcom,eeprom@0 {
		cell-index = <0>;
		reg = <0>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
		cam_vdig-supply = <&camera_rear_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1352000 0 2800000>;
		rgltr-max-voltage = <1800000 2850000 1352000 0 2800000>;
		rgltr-load-current = <0 80000 105000 0 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_active
				&cam_sensor_rear_active>;
		pinctrl-1 = <&cam_sensor_mclk0_suspend
				&cam_sensor_rear_suspend>;
		gpios = <&tlmm 13 0>,
			<&tlmm 30 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK0",
					"CAM_RESET0";
		sensor-mode = <0>;
		cci-master = <0>;
		status = "ok";
		clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	eeprom_rear_aux: qcom,eeprom@1 {
		cell-index = <1>;
		reg = <0x1>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
		cam_vdig-supply = <&camera_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vdig", "cam_vio", "cam_vana",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1352000 1800000 2850000 0 2800000>;
		rgltr-max-voltage = <1352000 1800000 2850000 0 2800000>;
		rgltr-load-current = <105000 0 80000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk1_active
				&cam_sensor_rear2_active>;
		pinctrl-1 = <&cam_sensor_mclk1_suspend
				&cam_sensor_rear2_suspend>;
		gpios = <&tlmm 14 0>,
			<&tlmm 28 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK1",
					"CAM_RESET1";
		sensor-position = <0>;
		sensor-mode = <0>;
		cci-master = <1>;
		status = "ok";
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	eeprom_front: qcom,eeprom@2 {
		cell-index = <2>;
		reg = <0x2>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
		cam_vdig-supply = <&camera_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1352000 0 2800000>;
		rgltr-max-voltage = <1800000 2850000 1352000 0 2800000>;
		rgltr-load-current = <0 80000 105000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk2_active
				 &cam_sensor_front_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
				 &cam_sensor_front_suspend>;
		gpios = <&tlmm 15 0>,
			<&tlmm 9 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK2",
					"CAM_RESET2";
		sensor-mode = <0>;
		cci-master = <1>;
		status = "ok";
		clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	qcom,cam-sensor@0 {
		cell-index = <0>;
		compatible = "qcom,cam-sensor";
		reg = <0x0>;
		csiphy-sd-index = <0>;
		sensor-position-roll = <270>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		led-flash-src = <&led_flash_rear>;
		actuator-src = <&actuator_rear>;
		ois-src = <&ois_rear>;
		eeprom-src = <&eeprom_rear>;
		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_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1352000 0>;
		rgltr-max-voltage = <1800000 2850000 1352000 0>;
		rgltr-load-current = <0 80000 105000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_active
				&cam_sensor_rear_active>;
		pinctrl-1 = <&cam_sensor_mclk0_suspend
				&cam_sensor_rear_suspend>;
		gpios = <&tlmm 13 0>,
			<&tlmm 30 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK0",
					"CAM_RESET0";
		sensor-mode = <0>;
		cci-master = <0>;
		status = "ok";
		clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	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_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_mclk1_active
				&cam_sensor_rear2_active>;
		pinctrl-1 = <&cam_sensor_mclk1_suspend
				&cam_sensor_rear2_suspend>;
		gpios = <&tlmm 14 0>,
			<&tlmm 28 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK1",
					"CAM_RESET1";
		sensor-mode = <0>;
		cci-master = <1>;
		status = "ok";
		clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	qcom,cam-sensor@2 {
		cell-index = <2>;
		compatible = "qcom,cam-sensor";
		reg = <0x02>;
		csiphy-sd-index = <2>;
		sensor-position-roll = <270>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <0>;
		eeprom-src = <&eeprom_front>;
		actuator-src = <&actuator_front>;
		led-flash-src = <&led_flash_front>;
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
		cam_vdig-supply = <&camera_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1352000 0>;
		rgltr-max-voltage = <1800000 2850000 1352000 0>;
		rgltr-load-current = <0 80000 105000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk2_active
				 &cam_sensor_front_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
				 &cam_sensor_front_suspend>;
		gpios = <&tlmm 15 0>,
			<&tlmm 9 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK2",
					"CAM_RESET2";
		sensor-mode = <0>;
		cci-master = <1>;
		status = "ok";
		clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};
};