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

Commit ef935313 authored by Karthik Anantha Ram's avatar Karthik Anantha Ram
Browse files

UPSTREAM: commit '8a92c94c' 08/29



* commit '8a92c94c':
  msm: camera: icp: Change spin lock type
  msm: camera: flash: Remove opcode reset for NOP operation
  ARM: dts: msm: Enable camera on SM6150 QRD
  msm: camera: Correct csiphy register settings
  msm: camera: icp: Execute irq callbacks with locks
  msm: camera: Disable camif sof irq logs
  msm: camera: isp: manage wait list properly
  msm: camera: cci: Fix burst read sequence
  ARM: dts: msm: Correct JPEG sid value for SM6150
  msm: camera: icp: Change log type
  msm: camera: crm: Force unreserve link
  ARM: dts: msm: Reduce the size of shared region for sm8150

Change-Id: I2efe498d98ac4cfc672b71414bcc6d9fdcbb73c1
Signed-off-by: default avatarKarthik Anantha Ram <kartanan@codeaurora.org>
parents 2e7ac4ed 8a92c94c
Loading
Loading
Loading
Loading
+363 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018, 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 <dt-bindings/clock/qcom,camcc-sm6150.h>

&soc {

	led_flash_rear: qcom,camera-flash@0 {
		cell-index = <0>;
		reg = <0x00 0x00>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm6150l_flash0>;
		torch-source = <&pm6150l_torch1>;
		switch-source = <&pm6150l_switch0>;
		status = "ok";
	};

	led_flash_rear_aux: qcom,camera-flash@1 {
		cell-index = <1>;
		reg = <0x01 0x00>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm6150l_flash1>;
		torch-source = <&pm6150l_torch1>;
		switch-source = <&pm6150l_switch1>;
		status = "ok";
	};

	led_flash_front: qcom,camera-flash@2 {
		cell-index = <2>;
		reg = <0x02 0x00>;
		compatible = "qcom,camera-flash";
		flash-source = <&pm6150l_flash2>;
		torch-source = <&pm6150l_torch2>;
		switch-source = <&pm6150l_switch2>;
		status = "ok";
		enable-active-high;
		gpio = <&tlmm 38 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&flash_led3_front_en>;
	};

	camera_ldo: gpio-regulator@0 {
		compatible = "regulator-fixed";
		reg = <0x00 0x00>;
		regulator-name = "camera_ldo";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		regulator-enable-ramp-delay = <135>;
		enable-active-high;
		gpio = <&pm6150l_gpios 3 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_sensor_dvdd_en>;
		vin-supply = <&pm6150l_s8>;
	};

	camera_vana0_ldo: gpio-regulator@1 {
		compatible = "regulator-fixed";
		reg = <0x01 0x00>;
		regulator-name = "camera_vana0_ldo";
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
		regulator-enable-ramp-delay = <233>;
		enable-active-high;
		gpio = <&pm6150l_gpios 9 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_sensor_0_vana>;
		vin-supply = <&pm6150l_bob>;
	};

	camera_vana1_2_ldo: gpio-regulator@2 {
		compatible = "regulator-fixed";
		reg = <0x02 0x00>;
		regulator-name = "camera_vana1_2_ldo";
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
		regulator-enable-ramp-delay = <233>;
		enable-active-high;
		gpio = <&pm6150l_gpios 4 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_sensor_1_2_vana>;
		vin-supply = <&pm6150l_bob>;
	};
};

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

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

	eeprom_rear: qcom,eeprom@0 {
		cell-index = <0>;
		reg = <0>;
		compatible = "qcom,eeprom";
		cam_vio-supply = <&pm6150_l13>;
		cam_vana-supply = <&camera_vana0_ldo>;
		cam_vdig-supply = <&camera_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		cam_vaf-supply = <&pm6150_l19>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1200000 0 2800000>;
		rgltr-max-voltage = <1800000 2850000 1200000 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 28 0>,
			<&tlmm 47 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 = <&pm6150_l13>;
		cam_vana-supply = <&camera_vana1_2_ldo>;
		cam_vdig-supply = <&camera_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		cam_vaf-supply = <&pm6150_l19>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1200000 0 2800000>;
		rgltr-max-voltage = <1800000 2850000 1200000 0 2800000>;
		rgltr-load-current = <105000 0 80000 0 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 29 0>,
			<&tlmm 45 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 = <0>;
		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 = <&pm6150_l13>;
		cam_vana-supply = <&camera_vana1_2_ldo>;
		cam_vdig-supply = <&camera_ldo>;
		cam_clk-supply = <&titan_top_gdsc>;
		cam_vaf-supply = <&pm6150_l19>;
		regulator-names = "cam_vio", "cam_vana", "cam_vdig",
			"cam_clk", "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <1800000 2850000 1200000 0 2800000>;
		rgltr-max-voltage = <1800000 2850000 1200000 0 2800000>;
		rgltr-load-current = <0 80000 105000 0 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 30 0>,
			<&tlmm 37 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 = <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 = <&pm6150_l13>;
		cam_vana-supply = <&camera_vana0_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 1200000 0>;
		rgltr-max-voltage = <1800000 2850000 1200000 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 28 0>,
			<&tlmm 47 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>;
		led-flash-src = <&led_flash_rear>;
		cam_vio-supply = <&pm6150_l13>;
		cam_vana-supply = <&camera_vana1_2_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 1200000 0>;
		rgltr-max-voltage = <1800000 2850000 1200000 0>;
		rgltr-load-current = <0 80000 105000 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 29 0>,
			<&tlmm 45 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 = <0>;
		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>;
		actuator-src = <&actuator_front>;
		eeprom-src = <&eeprom_front>;
		cam_vio-supply = <&pm6150_l13>;
		cam_vana-supply = <&camera_vana1_2_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 1200000 0>;
		rgltr-max-voltage = <1800000 2850000 1200000 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 30 0>,
			<&tlmm 37 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>;
	};
};
+2 −1
Original line number Diff line number Diff line
@@ -275,7 +275,8 @@

		msm_cam_smmu_jpeg {
			compatible = "qcom,msm-cam-smmu-cb";
			iommus = <&apps_smmu 0x1060 0x8>;
			iommus = <&apps_smmu 0xd80 0x20>,
				<&apps_smmu  0xda0 0x20>;
			label = "jpeg";
			jpeg_iova_mem_map: iova-mem-map {
				/* IO region is approximately 3.4 GB */
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/input/input.h>
#include "sm6150-sde-display.dtsi"
#include "sm6150-camera-sensor-qrd.dtsi"

&qupv3_se3_i2c {
	status = "ok";
+2 −2
Original line number Diff line number Diff line
@@ -405,10 +405,10 @@
				};

				iova-mem-region-io {
					/* IO region is approximately 3.3 GB */
					/* IO region is approximately 3 GB */
					iova-region-name = "io";
					iova-region-start = <0xda00000>;
					iova-region-len = <0xd2500000>;
					iova-region-len = <0xacdfffff>;
					iova-region-id = <0x3>;
					status = "ok";
				};
+5 −0
Original line number Diff line number Diff line
@@ -354,9 +354,11 @@ irqreturn_t cam_a5_irq(int irq_num, void *data)
		CAM_ERR_RATE_LIMIT(CAM_ICP, "watch dog interrupt from A5");
	}

	spin_lock(&a5_dev->hw_lock);
	if (core_info->irq_cb.icp_hw_mgr_cb)
		core_info->irq_cb.icp_hw_mgr_cb(irq_status,
					core_info->irq_cb.data);
	spin_unlock(&a5_dev->hw_lock);

	return IRQ_HANDLED;
}
@@ -369,6 +371,7 @@ int cam_a5_process_cmd(void *device_priv, uint32_t cmd_type,
	struct cam_a5_device_core_info *core_info = NULL;
	struct cam_a5_device_hw_info *hw_info = NULL;
	struct a5_soc_info *a5_soc = NULL;
	unsigned long flags;
	int rc = 0;

	if (!device_priv) {
@@ -414,8 +417,10 @@ int cam_a5_process_cmd(void *device_priv, uint32_t cmd_type,
			return -EINVAL;
		}

		spin_lock_irqsave(&a5_dev->hw_lock, flags);
		core_info->irq_cb.icp_hw_mgr_cb = irq_cb->icp_hw_mgr_cb;
		core_info->irq_cb.data = irq_cb->data;
		spin_unlock_irqrestore(&a5_dev->hw_lock, flags);
		break;
	}

Loading