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

Commit f3521d13 authored by Abhijit Trivedi's avatar Abhijit Trivedi
Browse files

UPSTREAM: 11/22/19: Merge 'quic/camera-kernel.lnx.1.0' into 'quic/camera-kernel.lnx.4.0'



* quic/camera-kernel.lnx.1.0:
  ARM: dts: msm: Add dtsi nodes for csiphy and cci
  ARM: dts: msm: Add support for target SM4250
  ARM: dts: msm: Add support for camera hardware for bengal platform
  dt-bindings: camera: Add CDM support
  dt-bindings: camera: Add TFE support
  ARM: dts: msm: Remove CSIPHY0 clock vote for CSIPHY3

Change-Id: I391643d454611bd2262d9a398fa6cebde86b3945
Signed-off-by: default avatarAbhijit Trivedi <abhijitt@quicinc.com>
parents 4966efb0 697e8ecb
Loading
Loading
Loading
Loading
+393 −0
Original line number Diff line number Diff line
#include <dt-bindings/clock/qcom,gcc-bengal.h>
&soc {
	led_flash_rear: qcom,camera-flash@0 {
		cell-index = <0>;
		compatible = "qcom,camera-flash";
		flash-source  = <&pmi632_flash0 &pmi632_flash1>;
		torch-source  = <&pmi632_torch0 &pmi632_torch1>;
		switch-source = <&pmi632_switch0 &pmi632_switch0>;
		status = "ok";
	};

	led_flash_rear_aux: qcom,camera-flash@1 {
		cell-index = <1>;
		compatible = "qcom,camera-flash";
		flash-source  = <&pmi632_flash0 &pmi632_flash1>;
		torch-source  = <&pmi632_torch0 &pmi632_torch1>;
		switch-source = <&pmi632_switch0 &pmi632_switch0>;
		status = "ok";
	};

	led_flash_rear_aux2: qcom,camera-flash@2 {
		cell-index = <2>;
		compatible = "qcom,camera-flash";
		flash-source  = <&pmi632_flash0 &pmi632_flash1>;
		torch-source  = <&pmi632_torch0 &pmi632_torch1>;
		switch-source = <&pmi632_switch0 &pmi632_switch0>;
		status = "ok";
	};

	qcom,cam-res-mgr {
		compatible = "qcom,cam-res-mgr";
		status = "ok";
	};
};

&cam_cci0 {
	actuator_rear: qcom,actuator0 {
		cell-index = <0>;
		compatible = "qcom,actuator";
		cci-master = <0>;
		cam_vaf-supply = <&L5P>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <100000>;
		status = "ok";
	};

	actuator_rear_aux: qcom,actuator1 {
		cell-index = <1>;
		compatible = "qcom,actuator";
		cci-master = <1>;
		cam_vaf-supply = <&L5P>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <100000>;
		status = "ok";
	};

	eeprom_rear: qcom,eeprom0 {
		cell-index = <0>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L4P>;
		cam_vdig-supply = <&L2P>;
		cam_vaf-supply = <&L5P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>;
		rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>;
		rgltr-load-current = <120000 80000 1200000 0 100000>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_active
				&cam_sensor_rear0_reset_active>;
		pinctrl-1 = <&cam_sensor_mclk0_suspend
				&cam_sensor_rear0_reset_suspend>;
		gpios = <&tlmm 20 0>,
			<&tlmm 18 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 = <&gcc GCC_CAMSS_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <19200000>;
	};

	eeprom_rear_aux: qcom,eeprom1 {
		cell-index = <1>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L3P>;
		cam_vdig-supply = <&L1P>;
		cam_vaf-supply = <&L5P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
		rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
		rgltr-load-current = <120000 80000 1200000 0 100000>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk1_active
				&cam_sensor_rear1_reset_active>;
		pinctrl-1 = <&cam_sensor_mclk1_suspend
				&cam_sensor_rear1_reset_suspend>;
		gpios = <&tlmm 19 0>,
			<&tlmm 21 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 = <&gcc GCC_CAMSS_MCLK1_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <19200000>;
	};

	eeprom_front: qcom,eeprom2 {
		cell-index = <2>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L6P>;
		cam_vdig-supply = <&L2P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1056000 0>;
		rgltr-max-voltage = <1800000 2800000 1056000 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_front0_reset_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
				&cam_sensor_front0_reset_suspend>;
		gpios = <&tlmm 27 0>,
			<&tlmm 24 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 = <&gcc GCC_CAMSS_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	eeprom_rear_aux2: qcom,eeprom3 {
		cell-index = <3>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L6P>;
		cam_vdig-supply = <&L1P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1200000 0>;
		rgltr-max-voltage = <1800000 2800000 1200000 0>;
		rgltr-load-current = <120000 80000 1200000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk3_active
				&cam_sensor_rear2_reset_active>;
		pinctrl-1 = <&cam_sensor_mclk3_suspend
				&cam_sensor_rear2_reset_suspend>;
		gpios = <&tlmm 28 0>,
			<&tlmm 65 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK3",
					"CAM_RESET3";
		sensor-mode = <0>;
		cci-master = <0>;
		status = "ok";
		clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <19200000>;
	};

	 /* Rear*/
	qcom,cam-sensor0 {
		cell-index = <0>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <0>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		actuator-src = <&actuator_rear>;
		led-flash-src = <&led_flash_rear>;
		eeprom-src = <&eeprom_rear>;
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L4P>;
		cam_vdig-supply = <&L2P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1050000 0>;
		rgltr-max-voltage = <1800000 2800000 1050000 0>;
		rgltr-load-current = <120000 80000 1200000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_active
				&cam_sensor_rear0_reset_active>;
		pinctrl-1 = <&cam_sensor_mclk0_suspend
				&cam_sensor_rear0_reset_suspend>;
		gpios = <&tlmm 20 0>,
			<&tlmm 18 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 = <&gcc GCC_CAMSS_MCLK0_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <19200000>;
	};

	/*Rear Aux*/
	qcom,cam-sensor1 {
		cell-index = <1>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <1>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		actuator-src = <&actuator_rear_aux>;
		led-flash-src = <&led_flash_rear_aux>;
		eeprom-src = <&eeprom_rear_aux>;
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L3P>;
		cam_vdig-supply = <&L1P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1200000 0>;
		rgltr-max-voltage = <1800000 2800000 1200000 0>;
		rgltr-load-current = <120000 80000 1200000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk1_active
				&cam_sensor_rear1_reset_active>;
		pinctrl-1 = <&cam_sensor_mclk1_suspend
				&cam_sensor_rear1_reset_suspend>;
		gpios = <&tlmm 19 0>,
			<&tlmm 21 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 = <&gcc GCC_CAMSS_MCLK1_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <19200000>;
	};

	/*Front*/
	qcom,cam-sensor2 {
		cell-index = <2>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <2>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		eeprom-src = <&eeprom_front>;
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L6P>;
		cam_vdig-supply = <&L2P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1056000 0>;
		rgltr-max-voltage = <1800000 2800000 1056000 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_front0_reset_active
				&cam_sensor_csi_mux_oe_active
				&cam_sensor_csi_mux_sel_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
				&cam_sensor_front0_reset_suspend
				&cam_sensor_csi_mux_oe_suspend
				&cam_sensor_csi_mux_sel_suspend>;
		gpios = <&tlmm 27 0>,
			<&tlmm 24 0>,
			<&tlmm 66 0>,
			<&tlmm 67 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 = <&gcc GCC_CAMSS_MCLK2_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

	/*Rear Aux2*/
	qcom,cam-sensor3 {
		cell-index = <3>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <2>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		led-flash-src = <&led_flash_rear_aux2>;
		eeprom-src = <&eeprom_rear_aux2>;
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&L6P>;
		cam_vdig-supply = <&L1P>;
		cam_clk-supply = <&gcc_camss_top_gdsc>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1200000 0>;
		rgltr-max-voltage = <1800000 2800000 1200000 0>;
		rgltr-load-current = <120000 80000 1200000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk3_active
				&cam_sensor_rear2_reset_active
				&cam_sensor_csi_mux_oe_active
				&cam_sensor_csi_mux_sel_active>;
		pinctrl-1 = <&cam_sensor_mclk3_suspend
				&cam_sensor_rear2_reset_suspend
				&cam_sensor_csi_mux_oe_suspend
				&cam_sensor_csi_mux_sel_suspend>;
		gpios = <&tlmm 28 0>,
			<&tlmm 65 0>,
			<&tlmm 66 0>,
			<&tlmm 67 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK3",
					"CAM_RESET3";
		sensor-mode = <0>;
		cci-master = <0>;
		status = "ok";
		clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <19200000>;
	};
};

bengal-camera.dtsi

0 → 100644
+870 −0

File added.

Preview size limit exceeded, changes collapsed.

+5 −3
Original line number Diff line number Diff line
@@ -54,8 +54,10 @@ to CDM interface node.
- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,cam480-cpas-cdm0", "qcom,cam480-cpas-cdm1"
              "qcom,cam170-cpas-cdm0" or "qcom,cam480-cpas-cdm2".
  Definition: Should be "qcom,cam170-cpas-cdm0", "qcom,cam480-cpas-cdm0",
	"qcom,cam480-cpas-cdm1", "qcom,cam480-cpas-cdm2", "qcom,cam-cpas-cdm1_0",
	"qcom,cam-cpas-cdm1_1", "qcom,cam-cpas-cdm1_2", "qcom,cam-ife-cdm1_2",
	"qcom,cam-cpas-cdm2_0" or "qcom,cam-ope-cdm2_0"

- label
  Usage: required
@@ -128,7 +130,7 @@ to CDM interface node.
Example:
	qcom,cpas-cdm0@ac48000 {
		cell-index = <0>;
		compatible = "qcom,cam480-cpas-cdm0";
		compatible = "qcom,cam170-cpas-cdm0";
		label = "cpas-cdm0";
		reg = <0xac48000 0x1000>;
		reg-names = "cpas-cdm";
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ First Level Node - CAM ISP device
- arch-compat
  Usage: required
  Value type: <string>
  Definition: Should be "vfe" or "ife".
  Definition: Should be "vfe", "ife" or "tfe".

- ubwc-static-cfg
  Usage: optional
+123 −0
Original line number Diff line number Diff line
* Qualcomm Technologies, Inc. MSM Camera TFE CSID

Camera TFE CSID device provides the definitions for enabling
the TFE CSID hardware. It also provides the functions for the client
to control the TFE CSID hardware.

=======================
Required Node Structure
=======================
The TFE CSID device is described in one level of the device node.

======================================
First Level Node - CAM TFE CSID device
======================================
- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,csid530"

- cell-index
  Usage: required
  Value type: <u32>
  Definition: Should specify the hardware index id.

- reg-names
  Usage: required
  Value type: <string>
  Definition: Should be "csid".

- reg
  Usage: required
  Value type: <u32>
  Definition: Register values.

- interrupt-names
  Usage: Required
  Value type: <string>
  Definition: Name of the interrupt.

- interrupts
  Usage: Required
  Value type: <u32>
  Definition: Interrupt associated with TFE CSID HW.

- regulator-names
  Usage: required
  Value type: <string>
  Definition: Name of the regulator resources for TFE CSID HW.

- xxxx-supply
  Usage: required
  Value type: <phandle>
  Definition: Regulator reference corresponding to the names listed in
		"regulator-names".

- clock-names
  Usage: required
  Value type: <string>
  Definition: List of clock names required for TFE CSID HW.

- clocks
  Usage: required
  Value type: <phandle>
  Definition: List of clocks used for TFE CSID HW.

- clock-rates
  Usage: required
  Value type: <u32>
  Definition: List of clocks rates.

- clock-cntl-level
  Usage: required
  Value type: <string>
  Definition: All different clock level node can support.

- src-clock-name
  Usage: required
  Value type: <string>
  Definition: Source clock name.

- clock-control-debugfs
  Usage: optional
  Value type: <string>
  Definition: Enable/Disable clk rate control.

Example:

	qcom,tfe_csid0@5c6e000 {
		cell-index = <0>;
		compatible = "qcom,csid530";
		reg-names = reg-names = "csid", "top", "camnoc";
		reg = <0x5c6e000 0x5000>,
			<0x5c11000 0x1000>,
			<0x5c13000 0x4000>;
		interrupt-names = "csid0";
		interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
		regulator-names = "camss";
		camss-supply = <&gcc_camss_top_gdsc>;
		clock-names =
			"tfe_csid_clk_src",
			"tfe_csid_clk",
			"cphy_rx_clk_src",
			"tfe_cphy_rx_clk",
			"tfe_clk_src",
			"tfe_clk",
			"tfe_axi_clk";
		clocks =
			<&gcc GCC_CAMSS_TFE_0_CSID_CLK_SRC>,
			<&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
			<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
			<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
			<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
			<&gcc GCC_CAMSS_TFE_0_CLK>,
			<&gcc GCC_CAMSS_AXI_CLK>;
		clock-rates =
			<240000000 0 0 0 256000000 0 0>,
			<384000000 0 0 0 460800000 0 0>,
			<426400000 0 0 0 576000000 0 0>,
		clock-cntl-level = "svs", "svs_l1", "turbo";
		src-clock-name = "tfe_csid_clk_src";
		clock-control-debugfs = "true";
		status = "ok";
	};
Loading