All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Foss <robert.foss@linaro.org>
To: agross@kernel.org, bjorn.andersson@linaro.org,
	robert.foss@linaro.org, todor.too@gmail.com, mchehab@kernel.org,
	robh+dt@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	shawnguo@kernel.org, leoyang.li@nxp.com, geert+renesas@glider.be,
	vkoul@kernel.org, Anson.Huang@nxp.com, michael@walle.cc,
	agx@sigxcpu.org, max.oss.09@gmail.com,
	linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	AngeloGioacchino Del Regno <kholk11@gmail.com>,
	Andrey Konovalov <andrey.konovalov@linaro.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomasz Figa <tfiga@chromium.org>,
	Azam Sadiq Pasha Kapatrala Syed <akapatra@quicinc.com>,
	Sarvesh Sridutt <Sarvesh.Sridutt@smartwirelesscompute.com>,
	Jonathan Marek <jonathan@marek.ca>
Subject: [PATCH v2 12/22] media: camss: Enable SDM845
Date: Wed, 20 Jan 2021 14:43:47 +0100	[thread overview]
Message-ID: <20210120134357.1522254-12-robert.foss@linaro.org> (raw)
In-Reply-To: <20210120134357.1522254-1-robert.foss@linaro.org>

Enable support for SDM845 based Titan 170 ISPs.

Signed-off-by: Robert Foss <robert.foss@linaro.org>
---
 drivers/media/platform/qcom/camss/camss.c | 17 +++++++++++++++++
 drivers/media/platform/qcom/camss/camss.h |  6 ++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 22f9d7d7085a..5ce7cae2ab9b 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -897,6 +897,12 @@ static int camss_init_subdevices(struct camss *camss)
 		csid_res = csid_res_660;
 		ispif_res = &ispif_res_660;
 		vfe_res = vfe_res_660;
+	}  else if (camss->version == CAMSS_845) {
+		csiphy_res = csiphy_res_845;
+		csid_res = csid_res_845;
+		/* Titan VFEs don't have an ISPIF  */
+		ispif_res = NULL;
+		vfe_res = vfe_res_845;
 	} else {
 		return -EINVAL;
 	}
@@ -1203,6 +1209,8 @@ static int camss_configure_pd(struct camss *camss)
 	if (camss->version == CAMSS_8x96 ||
 	    camss->version == CAMSS_660)
 		nbr_pm_domains = PM_DOMAIN_CAMSS_COUNT;
+	else if (camss->version == CAMSS_845)
+		nbr_pm_domains = PM_DOMAIN_TITAN_COUNT;
 
 	for (i = 0; i < nbr_pm_domains; i++) {
 		camss->genpd[i] = dev_pm_domain_attach_by_id(camss->dev, i);
@@ -1271,6 +1279,12 @@ static int camss_probe(struct platform_device *pdev)
 		camss->csiphy_num = 3;
 		camss->csid_num = 4;
 		camss->vfe_num = 2;
+	} else if (of_device_is_compatible(dev->of_node,
+					   "qcom,sdm845-camss")) {
+		camss->version = CAMSS_845;
+		camss->csiphy_num = 4;
+		camss->csid_num = 3;
+		camss->vfe_num = 3;
 	} else {
 		ret = -EINVAL;
 		goto err_free;
@@ -1402,6 +1416,8 @@ void camss_delete(struct camss *camss)
 	if (camss->version == CAMSS_8x96 ||
 	    camss->version == CAMSS_660)
 		nbr_pm_domains = PM_DOMAIN_CAMSS_COUNT;
+	else if (camss->version == CAMSS_845)
+		nbr_pm_domains = PM_DOMAIN_TITAN_COUNT;
 
 	for (i = 0; i < nbr_pm_domains; i++) {
 		device_link_del(camss->genpd_link[i]);
@@ -1435,6 +1451,7 @@ static const struct of_device_id camss_dt_match[] = {
 	{ .compatible = "qcom,msm8916-camss" },
 	{ .compatible = "qcom,msm8996-camss" },
 	{ .compatible = "qcom,sdm660-camss" },
+	{ .compatible = "qcom,sdm845-camss" },
 	{ }
 };
 
diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/platform/qcom/camss/camss.h
index 7560d85b3352..2f853557ed16 100644
--- a/drivers/media/platform/qcom/camss/camss.h
+++ b/drivers/media/platform/qcom/camss/camss.h
@@ -60,6 +60,8 @@ enum pm_domain {
 	PM_DOMAIN_VFE0 = 0,
 	PM_DOMAIN_VFE1 = 1,
 	PM_DOMAIN_CAMSS_COUNT = 2,	/* CAMSS series of ISPs */
+	PM_DOMAIN_VFELITE = 2,		/* VFELITE / TOP GDSC */
+	PM_DOMAIN_TITAN_COUNT = 3,	/* Titan series of ISPs */
 };
 
 enum camss_version {
@@ -83,8 +85,8 @@ struct camss {
 	int vfe_num;
 	struct vfe_device *vfe;
 	atomic_t ref_count;
-	struct device *genpd[PM_DOMAIN_CAMSS_COUNT];
-	struct device_link *genpd_link[PM_DOMAIN_CAMSS_COUNT];
+	struct device *genpd[PM_DOMAIN_TITAN_COUNT];
+	struct device_link *genpd_link[PM_DOMAIN_TITAN_COUNT];
 };
 
 struct camss_camera_interface {
-- 
2.27.0


WARNING: multiple messages have this Message-ID (diff)
From: Robert Foss <robert.foss@linaro.org>
To: agross@kernel.org, bjorn.andersson@linaro.org,
	robert.foss@linaro.org, todor.too@gmail.com, mchehab@kernel.org,
	robh+dt@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	shawnguo@kernel.org, leoyang.li@nxp.com, geert+renesas@glider.be,
	vkoul@kernel.org, Anson.Huang@nxp.com, michael@walle.cc,
	agx@sigxcpu.org, max.oss.09@gmail.com,
	linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	AngeloGioacchino Del Regno <kholk11@gmail.com>,
	Andrey Konovalov <andrey.konovalov@linaro.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Azam Sadiq Pasha Kapatrala Syed <akapatra@quicinc.com>,
	Sarvesh Sridutt <Sarvesh.Sridutt@smartwirelesscompute.com>,
	Jonathan Marek <jonathan@marek.ca>,
	Tomasz Figa <tfiga@chromium.org>
Subject: [PATCH v2 12/22] media: camss: Enable SDM845
Date: Wed, 20 Jan 2021 14:43:47 +0100	[thread overview]
Message-ID: <20210120134357.1522254-12-robert.foss@linaro.org> (raw)
In-Reply-To: <20210120134357.1522254-1-robert.foss@linaro.org>

Enable support for SDM845 based Titan 170 ISPs.

Signed-off-by: Robert Foss <robert.foss@linaro.org>
---
 drivers/media/platform/qcom/camss/camss.c | 17 +++++++++++++++++
 drivers/media/platform/qcom/camss/camss.h |  6 ++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 22f9d7d7085a..5ce7cae2ab9b 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -897,6 +897,12 @@ static int camss_init_subdevices(struct camss *camss)
 		csid_res = csid_res_660;
 		ispif_res = &ispif_res_660;
 		vfe_res = vfe_res_660;
+	}  else if (camss->version == CAMSS_845) {
+		csiphy_res = csiphy_res_845;
+		csid_res = csid_res_845;
+		/* Titan VFEs don't have an ISPIF  */
+		ispif_res = NULL;
+		vfe_res = vfe_res_845;
 	} else {
 		return -EINVAL;
 	}
@@ -1203,6 +1209,8 @@ static int camss_configure_pd(struct camss *camss)
 	if (camss->version == CAMSS_8x96 ||
 	    camss->version == CAMSS_660)
 		nbr_pm_domains = PM_DOMAIN_CAMSS_COUNT;
+	else if (camss->version == CAMSS_845)
+		nbr_pm_domains = PM_DOMAIN_TITAN_COUNT;
 
 	for (i = 0; i < nbr_pm_domains; i++) {
 		camss->genpd[i] = dev_pm_domain_attach_by_id(camss->dev, i);
@@ -1271,6 +1279,12 @@ static int camss_probe(struct platform_device *pdev)
 		camss->csiphy_num = 3;
 		camss->csid_num = 4;
 		camss->vfe_num = 2;
+	} else if (of_device_is_compatible(dev->of_node,
+					   "qcom,sdm845-camss")) {
+		camss->version = CAMSS_845;
+		camss->csiphy_num = 4;
+		camss->csid_num = 3;
+		camss->vfe_num = 3;
 	} else {
 		ret = -EINVAL;
 		goto err_free;
@@ -1402,6 +1416,8 @@ void camss_delete(struct camss *camss)
 	if (camss->version == CAMSS_8x96 ||
 	    camss->version == CAMSS_660)
 		nbr_pm_domains = PM_DOMAIN_CAMSS_COUNT;
+	else if (camss->version == CAMSS_845)
+		nbr_pm_domains = PM_DOMAIN_TITAN_COUNT;
 
 	for (i = 0; i < nbr_pm_domains; i++) {
 		device_link_del(camss->genpd_link[i]);
@@ -1435,6 +1451,7 @@ static const struct of_device_id camss_dt_match[] = {
 	{ .compatible = "qcom,msm8916-camss" },
 	{ .compatible = "qcom,msm8996-camss" },
 	{ .compatible = "qcom,sdm660-camss" },
+	{ .compatible = "qcom,sdm845-camss" },
 	{ }
 };
 
diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/platform/qcom/camss/camss.h
index 7560d85b3352..2f853557ed16 100644
--- a/drivers/media/platform/qcom/camss/camss.h
+++ b/drivers/media/platform/qcom/camss/camss.h
@@ -60,6 +60,8 @@ enum pm_domain {
 	PM_DOMAIN_VFE0 = 0,
 	PM_DOMAIN_VFE1 = 1,
 	PM_DOMAIN_CAMSS_COUNT = 2,	/* CAMSS series of ISPs */
+	PM_DOMAIN_VFELITE = 2,		/* VFELITE / TOP GDSC */
+	PM_DOMAIN_TITAN_COUNT = 3,	/* Titan series of ISPs */
 };
 
 enum camss_version {
@@ -83,8 +85,8 @@ struct camss {
 	int vfe_num;
 	struct vfe_device *vfe;
 	atomic_t ref_count;
-	struct device *genpd[PM_DOMAIN_CAMSS_COUNT];
-	struct device_link *genpd_link[PM_DOMAIN_CAMSS_COUNT];
+	struct device *genpd[PM_DOMAIN_TITAN_COUNT];
+	struct device_link *genpd_link[PM_DOMAIN_TITAN_COUNT];
 };
 
 struct camss_camera_interface {
-- 
2.27.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-01-20 21:09 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-20 13:43 [PATCH v2 01/22] media: camss: Fix vfe_isr_comp_done() documentation Robert Foss
2021-01-20 13:43 ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 02/22] media: camss: Fix vfe_isr comment typo Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 03/22] media: camss: Add CAMSS_845 camss version Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 04/22] media: camss: Make ISPIF subdevice optional Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 05/22] media: camss: Refactor VFE HW version support Robert Foss
2021-01-20 13:43 ` [PATCH v2 06/22] media: camss: Add support for VFE hardware version Titan 170 Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 07/22] media: camss: Add missing format identifiers Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 08/22] media: camss: Refactor CSID HW version support Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 09/22] media: camss: Add support for CSID hardware version Titan 170 Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 10/22] media: camss: Add support for CSIPHY " Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 11/22] media: camss: Remove per VFE power domain toggling Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` Robert Foss [this message]
2021-01-20 13:43   ` [PATCH v2 12/22] media: camss: Enable SDM845 Robert Foss
2021-01-20 13:43 ` [PATCH v2 13/22] dt-bindings: media: camss: Add qcom,msm8916-camss binding Robert Foss
2021-01-20 13:43   ` [PATCH v2 13/22] dt-bindings: media: camss: Add qcom, msm8916-camss binding Robert Foss
2021-01-20 13:43 ` [PATCH v2 14/22] dt-bindings: media: camss: Add qcom,msm8996-camss binding Robert Foss
2021-01-20 13:43   ` [PATCH v2 14/22] dt-bindings: media: camss: Add qcom, msm8996-camss binding Robert Foss
2021-01-21 16:01   ` Rob Herring
2021-01-21 16:01     ` Rob Herring
2021-01-22 16:33   ` [PATCH v2 14/22] dt-bindings: media: camss: Add qcom,msm8996-camss binding Rob Herring
2021-01-22 16:33     ` Rob Herring
2021-01-20 13:43 ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom,sdm660-camss binding Robert Foss
2021-01-20 13:43   ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom, sdm660-camss binding Robert Foss
2021-01-20 16:17   ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom,sdm660-camss binding AngeloGioacchino Del Regno
2021-01-20 16:17     ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom, sdm660-camss binding AngeloGioacchino Del Regno
2021-01-21 10:40     ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom,sdm660-camss binding Robert Foss
2021-01-21 10:40       ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom, sdm660-camss binding Robert Foss
2021-01-21 10:35   ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom,sdm660-camss binding Robert Foss
2021-01-21 10:35     ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom, sdm660-camss binding Robert Foss
2021-01-21 16:01   ` Rob Herring
2021-01-21 16:01     ` Rob Herring
2021-01-22 16:34   ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom,sdm660-camss binding Rob Herring
2021-01-22 16:34     ` Rob Herring
2021-01-26 15:51     ` Robert Foss
2021-01-26 15:51       ` [PATCH v2 15/22] dt-bindings: media: camss: Add qcom, sdm660-camss binding Robert Foss
2021-01-20 13:43 ` [PATCH v2 16/22] dt-bindings: media: camss: Add qcom,sdm845-camss binding Robert Foss
2021-01-20 13:43   ` [PATCH v2 16/22] dt-bindings: media: camss: Add qcom, sdm845-camss binding Robert Foss
2021-01-21 16:01   ` Rob Herring
2021-01-21 16:01     ` Rob Herring
2021-01-20 13:43 ` [PATCH v2 17/22] MAINTAINERS: Change CAMSS documentation to use dtschema bindings Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 18/22] media: dt-bindings: media: Remove qcom,camss documentation Robert Foss
2021-01-20 13:43   ` [PATCH v2 18/22] media: dt-bindings: media: Remove qcom, camss documentation Robert Foss
2021-01-20 13:43 ` [PATCH v2 19/22] arm64: defconfig: Build Qcom CAMSS as module Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 20/22] arm64: dts: sdm845: Add CAMSS ISP node Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 21/22] arm64: dts: sdm845-db845c: Configure regulator for camss node Robert Foss
2021-01-20 13:43   ` Robert Foss
2021-01-20 13:43 ` [PATCH v2 22/22] arm64: dts: sdm845-db845c: Enable ov8856 sensor and connect to ISP Robert Foss
2021-01-20 13:43   ` Robert Foss

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210120134357.1522254-12-robert.foss@linaro.org \
    --to=robert.foss@linaro.org \
    --cc=Anson.Huang@nxp.com \
    --cc=Sarvesh.Sridutt@smartwirelesscompute.com \
    --cc=agross@kernel.org \
    --cc=agx@sigxcpu.org \
    --cc=akapatra@quicinc.com \
    --cc=andrey.konovalov@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=jonathan@marek.ca \
    --cc=kholk11@gmail.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=leoyang.li@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=max.oss.09@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=michael@walle.cc \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=tfiga@chromium.org \
    --cc=todor.too@gmail.com \
    --cc=vkoul@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.