From nobody Wed Oct 8 00:44:41 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 860CC288C92; Thu, 3 Jul 2025 17:20:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563235; cv=none; b=c42cFGz4N9KxXCzrxVlbeIrzsotxOo4LtmDcd50DT+bRe0t6s7Cp2RIQLhFB/woudHUOj5JkG9X2yse+mGkRnorK4AYuM9ZloIIzdlxzazs6j/fLYFQW2JzFJM2nyI8h/ttEif5amE1D2mj7S88eUqK9NqdcB+BK5xwjBPO/M9s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563235; c=relaxed/simple; bh=gLsVm9VLVkvtCHAE1H7CqlePzzxacqvoy2x0zTVoIw4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KfTqn1dLCNXrUELHeiBMJJ5HIfU/G90vHulVIbz7nW7+fkfmWqa+yjo7lZn3c0wYxGd/KUsb2LMiXpE67eJ1yMcXrIC4WDfJjTI0wU3ycWz+qAxdT01RQ40eDQfrApMWsT5a8sR4WY39Wh4ei5/jHPmEFd+K4OBdxQrUYHZzirU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=pfyMaTrP; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="pfyMaTrP" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563BRh7d008506; Thu, 3 Jul 2025 17:20:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= gLTPSOK+OzAjHEPchAvZu+FQELwARKXWJASIQkIYZ2w=; b=pfyMaTrPWVpsTdEK VVxW/NAdXqNOGV/AsQyZ43tZRg4fMBFtl329ScBhgP55OA0D7KlNa7/wXM2B9C20 cRchf9ZZmz3IMjXGZJ2YuLyw7lDmOvcJ+AAB4gK9uu06tTbR8KmrOfhhftSMeigz nG3wnt4biDbr+9Ym8chFJkJ9jKNdFMvD4IzZSnAwsI2z1y9iZvflBIjq94pAlepJ 8cznNXpXyhnISkDOvElP9Mri0KqPZkj8fL3k4/jICTUIA9QRn5P36hi2TqpAXPsX 9GwGLypIX8y9LGkRt8uQNXw236SxILV2EifOcWcdZgr2xxHujn3FDqy6rnxxnGBX +6lQyA== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47j63khgr6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:17 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA03.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HK8dH027255 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:08 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:02 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , Subject: [PATCH v3 1/9] media: qcom: camss: Rename camss-csid-780.c to camss-csid-gen3.c Date: Thu, 3 Jul 2025 22:49:30 +0530 Message-ID: <20250703171938.3606998-2-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=ZKfXmW7b c=1 sm=1 tr=0 ts=6866bbd1 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=WaFXn7faHerf0vuhdFYA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0NCBTYWx0ZWRfXzin6qEKIEnUH pVsfE8uoXcLz35HWFzQBCgo94tmQc+qHhD7o3CTDNKQXmSFof850u+QxXcHJKt0F6fk7MJPkaS7 9CbkGUnBk1dmSLgfHwl0tXRbcnS1siqYRk221UtoUgasVgcWfXR35588ocgib1BSIxkqctwZqh6 mxM29S7zSpxTSR7c7U8fBqLmxkuPtN7SgdEAP5FEcIh+921h+3crcpYzPqi6upzzWMRYerQ0gof UJUiyE1yg/F4uAybghuQHzEXYo8zwmnc600Wi5ITsM0IN2b3zAMaFTrcnKONGPlTeTqKEsZKmTi UAi9Qkc+0QqdMwndci/1+BkcgN10wjQxAfKVTCVW3AevZXXt/+bSFaYzzQWHjC74LqRfilMi9Lw ifxaQrDivpBYNwXIIwoSwVOD8dyCcda82+/gJK5YagNNobpj0EV1hhnfgf6m2+yYQIz7xhiv X-Proofpoint-ORIG-GUID: 65T7UWsW7dsxZglDFL35ieNyT8Q8DXzE X-Proofpoint-GUID: 65T7UWsW7dsxZglDFL35ieNyT8Q8DXzE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 impostorscore=0 malwarescore=0 clxscore=1011 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030144 Content-Type: text/plain; charset="utf-8" Rename the file camss-csid-780.c to camss-csid-gen3.c to enable reuse of CSID logic across multiple SoCs. The SA8775P SoC includes CSID 690, which is functionally very similar to CSID 780, with only minor differences in register bitfields. This rename prepares the codebase for supporting additional SoCs without duplicating CSID logic. Signed-off-by: Vikram Sharma Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/Makefile | 2 +- .../qcom/camss/{camss-csid-780.c =3D> camss-csid-gen3.c} | 8 +++++--- .../qcom/camss/{camss-csid-780.h =3D> camss-csid-gen3.h} | 9 +++++---- drivers/media/platform/qcom/camss/camss-csid.h | 2 +- drivers/media/platform/qcom/camss/camss.c | 10 +++++----- 5 files changed, 17 insertions(+), 14 deletions(-) rename drivers/media/platform/qcom/camss/{camss-csid-780.c =3D> camss-csid= -gen3.c} (98%) rename drivers/media/platform/qcom/camss/{camss-csid-780.h =3D> camss-csid= -gen3.h} (84%) diff --git a/drivers/media/platform/qcom/camss/Makefile b/drivers/media/pla= tform/qcom/camss/Makefile index d26a9c24a430..ee869e69521a 100644 --- a/drivers/media/platform/qcom/camss/Makefile +++ b/drivers/media/platform/qcom/camss/Makefile @@ -8,7 +8,7 @@ qcom-camss-objs +=3D \ camss-csid-4-7.o \ camss-csid-680.o \ camss-csid-gen2.o \ - camss-csid-780.o \ + camss-csid-gen3.o \ camss-csiphy-2ph-1-0.o \ camss-csiphy-3ph-1-0.o \ camss-csiphy.o \ diff --git a/drivers/media/platform/qcom/camss/camss-csid-780.c b/drivers/m= edia/platform/qcom/camss/camss-csid-gen3.c similarity index 98% rename from drivers/media/platform/qcom/camss/camss-csid-780.c rename to drivers/media/platform/qcom/camss/camss-csid-gen3.c index 4c720d177731..0941152ec301 100644 --- a/drivers/media/platform/qcom/camss/camss-csid-780.c +++ b/drivers/media/platform/qcom/camss/camss-csid-gen3.c @@ -4,6 +4,8 @@ * * Copyright (c) 2024 Qualcomm Technologies, Inc. */ + + #include #include #include @@ -13,7 +15,7 @@ =20 #include "camss.h" #include "camss-csid.h" -#include "camss-csid-780.h" +#include "camss-csid-gen3.h" =20 #define CSID_IO_PATH_CFG0(csid) (0x4 * (csid)) #define OUTPUT_IFE_EN 0x100 @@ -259,7 +261,7 @@ static irqreturn_t csid_isr(int irq, void *dev) =20 if (buf_done_val & BIT(BUF_DONE_IRQ_STATUS_RDI_OFFSET + i)) { /* - * For Titan 780, bus done and RUP IRQ have been moved to + * For Titan Gen3, bus done and RUP IRQ have been moved to * CSID from VFE. Once CSID received bus done, need notify * VFE of this event. Trigger VFE to handle bus done process. */ @@ -325,7 +327,7 @@ static void csid_subdev_init(struct csid_device *csid) csid->testgen.nmodes =3D CSID_PAYLOAD_MODE_DISABLED; } =20 -const struct csid_hw_ops csid_ops_780 =3D { +const struct csid_hw_ops csid_ops_gen3 =3D { .configure_stream =3D csid_configure_stream, .configure_testgen_pattern =3D csid_configure_testgen_pattern, .hw_version =3D csid_hw_version, diff --git a/drivers/media/platform/qcom/camss/camss-csid-780.h b/drivers/m= edia/platform/qcom/camss/camss-csid-gen3.h similarity index 84% rename from drivers/media/platform/qcom/camss/camss-csid-780.h rename to drivers/media/platform/qcom/camss/camss-csid-gen3.h index a990c66a60ff..e6298042ae74 100644 --- a/drivers/media/platform/qcom/camss/camss-csid-780.h +++ b/drivers/media/platform/qcom/camss/camss-csid-gen3.h @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* - * camss-csid-780.h + * camss-csid-gen3.h * * Qualcomm MSM Camera Subsystem - CSID (CSI Decoder) Module Generation 3 * * Copyright (c) 2024 Qualcomm Technologies, Inc. */ -#ifndef __QC_MSM_CAMSS_CSID_780_H__ -#define __QC_MSM_CAMSS_CSID_780_H__ +#ifndef __QC_MSM_CAMSS_CSID_GEN3_H__ +#define __QC_MSM_CAMSS_CSID_GEN3_H__ =20 #define DECODE_FORMAT_UNCOMPRESSED_8_BIT 0x1 #define DECODE_FORMAT_UNCOMPRESSED_10_BIT 0x2 @@ -18,8 +18,9 @@ #define DECODE_FORMAT_UNCOMPRESSED_24_BIT 0x7 #define DECODE_FORMAT_PAYLOAD_ONLY 0xf =20 + #define PLAIN_FORMAT_PLAIN8 0x0 /* supports DPCM, UNCOMPRESSED_6/8_BIT */ #define PLAIN_FORMAT_PLAIN16 0x1 /* supports DPCM, UNCOMPRESSED_10/16_BIT = */ #define PLAIN_FORMAT_PLAIN32 0x2 /* supports UNCOMPRESSED_20_BIT */ =20 -#endif /* __QC_MSM_CAMSS_CSID_780_H__ */ +#endif /* __QC_MSM_CAMSS_CSID_GEN3_H__ */ diff --git a/drivers/media/platform/qcom/camss/camss-csid.h b/drivers/media= /platform/qcom/camss/camss-csid.h index 9dc826d8c8f6..62273ca9f199 100644 --- a/drivers/media/platform/qcom/camss/camss-csid.h +++ b/drivers/media/platform/qcom/camss/camss-csid.h @@ -215,7 +215,7 @@ extern const struct csid_hw_ops csid_ops_4_1; extern const struct csid_hw_ops csid_ops_4_7; extern const struct csid_hw_ops csid_ops_680; extern const struct csid_hw_ops csid_ops_gen2; -extern const struct csid_hw_ops csid_ops_780; +extern const struct csid_hw_ops csid_ops_gen3; =20 /* * csid_is_lite - Check if CSID is CSID lite. diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 06f42875702f..1431e08dc04a 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -2285,7 +2285,7 @@ static const struct camss_subdev_resources csid_res_8= 550[] =3D { .csid =3D { .is_lite =3D false, .parent_dev_ops =3D &vfe_parent_dev_ops, - .hw_ops =3D &csid_ops_780, + .hw_ops =3D &csid_ops_gen3, .formats =3D &csid_formats_gen2 } }, @@ -2300,7 +2300,7 @@ static const struct camss_subdev_resources csid_res_8= 550[] =3D { .csid =3D { .is_lite =3D false, .parent_dev_ops =3D &vfe_parent_dev_ops, - .hw_ops =3D &csid_ops_780, + .hw_ops =3D &csid_ops_gen3, .formats =3D &csid_formats_gen2 } }, @@ -2315,7 +2315,7 @@ static const struct camss_subdev_resources csid_res_8= 550[] =3D { .csid =3D { .is_lite =3D false, .parent_dev_ops =3D &vfe_parent_dev_ops, - .hw_ops =3D &csid_ops_780, + .hw_ops =3D &csid_ops_gen3, .formats =3D &csid_formats_gen2 } }, @@ -2330,7 +2330,7 @@ static const struct camss_subdev_resources csid_res_8= 550[] =3D { .csid =3D { .is_lite =3D true, .parent_dev_ops =3D &vfe_parent_dev_ops, - .hw_ops =3D &csid_ops_780, + .hw_ops =3D &csid_ops_gen3, .formats =3D &csid_formats_gen2 } }, @@ -2345,7 +2345,7 @@ static const struct camss_subdev_resources csid_res_8= 550[] =3D { .csid =3D { .is_lite =3D true, .parent_dev_ops =3D &vfe_parent_dev_ops, - .hw_ops =3D &csid_ops_780, + .hw_ops =3D &csid_ops_gen3, .formats =3D &csid_formats_gen2 } } --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF1A828AAFB; Thu, 3 Jul 2025 17:20:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563240; cv=none; b=KfeRdoT/u+oC5gJSqUNXcClmGIQubR9K/HbiooyN4py//GqaSUbToWL5NQNZEDXeHYXq4rKEwuSPRNRFtvRq7s6aTxYIl6sgKQDHqevBACfIAXJOOdNA5qmIGemlTllrylPLUpsHwnO6yGeAtz/Fde3LEnFV0+19vvKPJfRRbMY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563240; c=relaxed/simple; bh=6CC67DfVy6nON53KHkVu/P8qE/PwLX4/zqsiDMyhKfs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NDAP8WD2PzmQR1D3Rig3fs1iDWESLx0gqLSNrZjaH0dgPC1go6xes2eL8c3ZvICm4FVHo9Aaxulwl5/5493GyhQtPzBbaCTd9dGlmoohdoYkomRrUhLxk/h1pMgsAiGYulJN9HwM2j9KCFigtGg+pbjc3SH4VyVN9s+qUnoTT8w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=AZeUEQBR; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="AZeUEQBR" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563B8QMM000320; Thu, 3 Jul 2025 17:20:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= JY9QzbwM3Gyo5DqvP54LKzf1b8veHh/AxJCKUeZgqtw=; b=AZeUEQBRRt5RXkI2 VqPkWGR7LrHhttE9OYecWq9pSDm4/NXRc2gfbAgkbMds3xyF7A5wuTtpo1dpd4b5 s1CGBQU52GfeJUT2Cv9LpSBimKCRRnVoZFGvLr2TjKou/lcpM4ucB2KRFhpUrpnp vqF7RMI8PFdpz5+DvqAVbunGO7Ub44pALfapmRVtPg39MAFJtrJRkHeWjt7txeHM L5yDcKB83OFI4G7n7oq7Ya2mPHjWvIQ8LkfpxLbSw6MgDaIBfBVwtir5iPiASDHg Wts0p4kSe+nVJ0g+K5ryPXuhyzdGmiwP7+hpfBEFdkqUmuHYh/7xfpBQ6/UFK1K4 62Vejw== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47j7qmh4br-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:15 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA04.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKEwc026891 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:14 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:08 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , Subject: [PATCH v3 2/9] media: qcom: camss: Rename camss-vfe-780.c to camss-vfe-gen3.c Date: Thu, 3 Jul 2025 22:49:31 +0530 Message-ID: <20250703171938.3606998-3-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=C4TpyRP+ c=1 sm=1 tr=0 ts=6866bbcf cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=m-t3JITvBdmPMbOQ9dkA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: vJBVuyKzLF4eZG7Mf7PqV5beP3pu6gHm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0MyBTYWx0ZWRfX4X+t7ux6mWEZ PElu738MXxJ9Vq+tHkBXnjaZ6+sxoZwQ0qh5Co4XUc2WS40d4VQ7J8jRL8H/z6S77A/D6Twfedj c2pxH+WQ//FNXQ8mRQ39EMUby1GcovaEAmcR/rvwF8gN1JYe8dbvTpAf7neskbn4F/WYT9PcbSm VAWaHE+LDymZYU5tieWyQkc3zKcGYU4LtMzoo4Ev4qw1cjySll9jUN96IjO/goJzxkJV35VUF2I lowAa9yL1A3okd2Ntza2OJXo4FDXN8MASw1plQgE810Uj3gWwhefYPtruD18os6BeZLcsQCZnLv llEYjib7W+ZUTJVfCjmV8YXQqJmCoaH6l3zlKoCMs2SXrjjKlJ/zLcgr+NTREnnVXv+HWSADREJ MdglGQb5mqzw27cbog40vmEjby2o77B91RcPgLlRr16l571FVeq54rHxdM6Yxep5gszOy6e1 X-Proofpoint-GUID: vJBVuyKzLF4eZG7Mf7PqV5beP3pu6gHm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1011 priorityscore=1501 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030143 Content-Type: text/plain; charset="utf-8" Rename the file camss-vfe-780.c to camss-vfe-gen3.c to enable reuse of VFE logic across multiple SoCs. The SA8775P SoC includes VFE 690, which is very similar to VFE 780, with only minor differences in register bitfields. Rename prepares the codebase for supporting additional SoCs without duplicating VFE logic. Signed-off-by: Vikram Sharma Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/Makefile | 2 +- .../qcom/camss/{camss-vfe-780.c =3D> camss-vfe-gen3.c} | 8 ++++---- drivers/media/platform/qcom/camss/camss-vfe.h | 2 +- drivers/media/platform/qcom/camss/camss.c | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) rename drivers/media/platform/qcom/camss/{camss-vfe-780.c =3D> camss-vfe-g= en3.c} (96%) diff --git a/drivers/media/platform/qcom/camss/Makefile b/drivers/media/pla= tform/qcom/camss/Makefile index ee869e69521a..76845a456c45 100644 --- a/drivers/media/platform/qcom/camss/Makefile +++ b/drivers/media/platform/qcom/camss/Makefile @@ -19,7 +19,7 @@ qcom-camss-objs +=3D \ camss-vfe-17x.o \ camss-vfe-480.o \ camss-vfe-680.o \ - camss-vfe-780.o \ + camss-vfe-gen3.o \ camss-vfe-gen1.o \ camss-vfe.o \ camss-video.o \ diff --git a/drivers/media/platform/qcom/camss/camss-vfe-780.c b/drivers/me= dia/platform/qcom/camss/camss-vfe-gen3.c similarity index 96% rename from drivers/media/platform/qcom/camss/camss-vfe-780.c rename to drivers/media/platform/qcom/camss/camss-vfe-gen3.c index b9812d70f91b..93d16b0951e9 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-780.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-gen3.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * Qualcomm MSM Camera Subsystem - VFE (Video Front End) Module v780 (SM85= 50) + * Qualcomm MSM Camera Subsystem - VFE (Video Front End) Module gen3 * * Copyright (c) 2024 Qualcomm Technologies, Inc. */ @@ -113,14 +113,14 @@ static inline void vfe_reg_update_clear(struct vfe_de= vice *vfe, camss_reg_update(vfe->camss, vfe->id, port_id, true); } =20 -static const struct camss_video_ops vfe_video_ops_780 =3D { +static const struct camss_video_ops vfe_video_ops_gen3 =3D { .queue_buffer =3D vfe_queue_buffer_v2, .flush_buffers =3D vfe_flush_buffers, }; =20 static void vfe_subdev_init(struct device *dev, struct vfe_device *vfe) { - vfe->video_ops =3D vfe_video_ops_780; + vfe->video_ops =3D vfe_video_ops_gen3; } =20 static void vfe_global_reset(struct vfe_device *vfe) @@ -140,7 +140,7 @@ static int vfe_halt(struct vfe_device *vfe) return 0; } =20 -const struct vfe_hw_ops vfe_ops_780 =3D { +const struct vfe_hw_ops vfe_ops_gen3 =3D { .global_reset =3D vfe_global_reset, .hw_version =3D vfe_hw_version, .isr =3D vfe_isr, diff --git a/drivers/media/platform/qcom/camss/camss-vfe.h b/drivers/media/= platform/qcom/camss/camss-vfe.h index a23f666be753..02d9162ffd93 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe.h +++ b/drivers/media/platform/qcom/camss/camss-vfe.h @@ -244,7 +244,7 @@ extern const struct vfe_hw_ops vfe_ops_4_8; extern const struct vfe_hw_ops vfe_ops_170; extern const struct vfe_hw_ops vfe_ops_480; extern const struct vfe_hw_ops vfe_ops_680; -extern const struct vfe_hw_ops vfe_ops_780; +extern const struct vfe_hw_ops vfe_ops_gen3; =20 int vfe_get(struct vfe_device *vfe); void vfe_put(struct vfe_device *vfe); diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 1431e08dc04a..310b5cd8de5f 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -2371,7 +2371,7 @@ static const struct camss_subdev_resources vfe_res_85= 50[] =3D { .is_lite =3D false, .has_pd =3D true, .pd_name =3D "ife0", - .hw_ops =3D &vfe_ops_780, + .hw_ops =3D &vfe_ops_gen3, .formats_rdi =3D &vfe_formats_rdi_845, .formats_pix =3D &vfe_formats_pix_845 } @@ -2395,7 +2395,7 @@ static const struct camss_subdev_resources vfe_res_85= 50[] =3D { .is_lite =3D false, .has_pd =3D true, .pd_name =3D "ife1", - .hw_ops =3D &vfe_ops_780, + .hw_ops =3D &vfe_ops_gen3, .formats_rdi =3D &vfe_formats_rdi_845, .formats_pix =3D &vfe_formats_pix_845 } @@ -2419,7 +2419,7 @@ static const struct camss_subdev_resources vfe_res_85= 50[] =3D { .is_lite =3D false, .has_pd =3D true, .pd_name =3D "ife2", - .hw_ops =3D &vfe_ops_780, + .hw_ops =3D &vfe_ops_gen3, .formats_rdi =3D &vfe_formats_rdi_845, .formats_pix =3D &vfe_formats_pix_845 } @@ -2441,7 +2441,7 @@ static const struct camss_subdev_resources vfe_res_85= 50[] =3D { .vfe =3D { .line_num =3D 4, .is_lite =3D true, - .hw_ops =3D &vfe_ops_780, + .hw_ops =3D &vfe_ops_gen3, .formats_rdi =3D &vfe_formats_rdi_845, .formats_pix =3D &vfe_formats_pix_845 } @@ -2463,7 +2463,7 @@ static const struct camss_subdev_resources vfe_res_85= 50[] =3D { .vfe =3D { .line_num =3D 4, .is_lite =3D true, - .hw_ops =3D &vfe_ops_780, + .hw_ops =3D &vfe_ops_gen3, .formats_rdi =3D &vfe_formats_rdi_845, .formats_pix =3D &vfe_formats_pix_845 } --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E58728A1FE; Thu, 3 Jul 2025 17:20:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563241; cv=none; b=YCAyByy0mj20xoS3HQCFRnWKsfV6rqVO35CrGmC++kW3Xcwy85jLOXb0cdFnvGdcH8lm9ETMpv41kFh3mAFU/1TYzoeAZk9sjcixq+VCHdMWd40IRzgB7D3waITH7B6t8mfopmU0IeqWXNbU95VjpHTFXDZm7vDFxKMoJhknrKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563241; c=relaxed/simple; bh=isK+0SlR5AUJmurvigwLZfibO7ZxrzoD4bDs7GDJTFc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oBWBkR3xkqAGMKXTlTLxnME1KO4moGMLTz3MItjYPaQfrVObvzfhKAX+dwLLqF5JN8hzHKZRxxXLO2FtTQcr9+BJL2qj35f9yfatQTqiMv8nkkfl+h2MeJ9Lp0JZ8IDgxDIHxXhwmdAg+DqhKqnE7VShFr/04GdFxwQPwK39dHM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=P/Up0MpC; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="P/Up0MpC" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563AoarB025172; Thu, 3 Jul 2025 17:20:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1FdXArtVpJV4PlO2ymwhSB19cnFkyRsYq+45Rsjsl9s=; b=P/Up0MpClCCDm45I hgjZfpsz2TgncPyritvx8sv3VKrIrY2jtQDAtj2HOkElKlkCe8hYHzcmJll03+U3 ZVxkl80usYe3SDNLFYc1z0u3RDN7roNqLFYXAstdzzUVQ9tJ/BTPOjvf0lPKx7eB J7AEnCT86LLyKRnkE0dNkZ+cl7sYQEcwct4qUCSdsPX/3Mkblf6C8/sM0F8aBTtO SK0mPCFwpXRWJoroxEI5BY6RBY60FNFZ8UrxF5aD0uwddPHBhXjvS89OejuWLlXd e7lgVyMuGfWmO23Ds5jMkz+0bkAtc1bqSp8PSUhXB5MI34tnbA8bk7rkgsWotAPv 2n3tTQ== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47kd64xbej-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:25 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA04.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKKsQ027449 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:20 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:13 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , , Wenmeng Liu , Krzysztof Kozlowski Subject: [PATCH v3 3/9] media: dt-bindings: Add qcom,sa8775p-camss compatible Date: Thu, 3 Jul 2025 22:49:32 +0530 Message-ID: <20250703171938.3606998-4-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=Z+PsHGRA c=1 sm=1 tr=0 ts=6866bbd9 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=gEfo2CItAAAA:8 a=COk6AnOGAAAA:8 a=KKAkSRfTAAAA:8 a=RQ1WPPV2gZYAH0lKadAA:9 a=sptkURWiP4Gy88Gu7hUp:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0NCBTYWx0ZWRfX+D51iDg7x/Sv ewbe80dDXKVNjh1Vf0MmHrciSgd6zHebksvlTTplhlZEwnOWorpNm8etSmsfkCdUaCTqQB9ccc9 9M7chst/YtqAetMV5isPhZIzq9Rml5oEodEv1CulcgrcLngkULzFTkPxARNsMOJS4TSLHWUkCVp EdXvMgSepC0aWKU2EaX1TMbtWhkJncLlohue7CneTVu1iXI1dCNYq2ls8FGEATOMuyIngOTRSIr leUZ1lYTPgcC3KPGOog5Ile6zOiygp/FxOhpNnXKf1YzqQXL8huhRPaG3crDrxrsnwHv0xbIhO0 4tuxIRo3rdVY7127pyNKnwEq9hcGwoDj4X9BbqipNUYdRhybqZQcWEygxBKCUnK62LdHOJg2cKG Su5tF3fBtV4DERXdHQBWo0U2Ta6woqCW81MYOc+uTflQS9gYYnTdy0Fn0GWsHZahvZfih15z X-Proofpoint-GUID: SXdachSKjeLsGYXHNLykIb9OmCSdndPw X-Proofpoint-ORIG-GUID: SXdachSKjeLsGYXHNLykIb9OmCSdndPw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1011 malwarescore=0 mlxlogscore=999 spamscore=0 adultscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030144 Content-Type: text/plain; charset="utf-8" Add the compatible string "qcom,sa8775p-camss" to support the Camera Subsystem (CAMSS) on the Qualcomm SA8775P platform. The SA8775P platform provides: - 2 x VFE (version 690), each with 3 RDI - 5 x VFE Lite (version 690), each with 6 RDI - 2 x CSID (version 690) - 5 x CSID Lite (version 690) - 4 x CSIPHY (version 690) - 3 x TPG SA8775P is the first Qualcomm SoC to introduce a CSIPHY-based Test Pattern Generator (TPG). Co-developed-by: Wenmeng Liu Signed-off-by: Wenmeng Liu Signed-off-by: Vikram Sharma Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bryan O'Donoghue --- .../bindings/media/qcom,sa8775p-camss.yaml | 361 ++++++++++++++++++ 1 file changed, 361 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,sa8775p-ca= mss.yaml diff --git a/Documentation/devicetree/bindings/media/qcom,sa8775p-camss.yam= l b/Documentation/devicetree/bindings/media/qcom,sa8775p-camss.yaml new file mode 100644 index 000000000000..b9f351546cd1 --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,sa8775p-camss.yaml @@ -0,0 +1,361 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/qcom,sa8775p-camss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm SA8775P CAMSS ISP + +maintainers: + - Vikram Sharma + +description: + The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms. + +properties: + compatible: + const: qcom,sa8775p-camss + + reg: + maxItems: 22 + + reg-names: + items: + - const: csid0 + - const: csid1 + - const: csid_lite0 + - const: csid_lite1 + - const: csid_lite2 + - const: csid_lite3 + - const: csid_lite4 + - const: csid_wrapper + - const: csiphy0 + - const: csiphy1 + - const: csiphy2 + - const: csiphy3 + - const: tpg0 + - const: tpg1 + - const: tpg2 + - const: vfe0 + - const: vfe1 + - const: vfe_lite0 + - const: vfe_lite1 + - const: vfe_lite2 + - const: vfe_lite3 + - const: vfe_lite4 + + clocks: + maxItems: 28 + + clock-names: + items: + - const: camnoc_axi + - const: core_ahb + - const: cpas_ahb + - const: cpas_fast_ahb_clk + - const: cpas_vfe_lite + - const: cpas_vfe0 + - const: cpas_vfe1 + - const: csid + - const: csiphy0 + - const: csiphy0_timer + - const: csiphy1 + - const: csiphy1_timer + - const: csiphy2 + - const: csiphy2_timer + - const: csiphy3 + - const: csiphy3_timer + - const: csiphy_rx + - const: gcc_axi_hf + - const: gcc_axi_sf + - const: icp_ahb + - const: vfe0 + - const: vfe0_fast_ahb + - const: vfe1 + - const: vfe1_fast_ahb + - const: vfe_lite + - const: vfe_lite_ahb + - const: vfe_lite_cphy_rx + - const: vfe_lite_csid + + interrupts: + maxItems: 21 + + interrupt-names: + items: + - const: csid0 + - const: csid1 + - const: csid_lite0 + - const: csid_lite1 + - const: csid_lite2 + - const: csid_lite3 + - const: csid_lite4 + - const: csiphy0 + - const: csiphy1 + - const: csiphy2 + - const: csiphy3 + - const: tpg0 + - const: tpg1 + - const: tpg2 + - const: vfe0 + - const: vfe1 + - const: vfe_lite0 + - const: vfe_lite1 + - const: vfe_lite2 + - const: vfe_lite3 + - const: vfe_lite4 + + interconnects: + maxItems: 2 + + interconnect-names: + items: + - const: ahb + - const: hf_0 + + iommus: + maxItems: 1 + + power-domains: + items: + - description: Titan GDSC - Titan ISP Block, Global Distributed Swit= ch Controller. + + power-domain-names: + items: + - const: top + + vdda-phy-supply: + description: + Phandle to a regulator supply to PHY core block. + + vdda-pll-supply: + description: + Phandle to 1.8V regulator supply to PHY refclk pll block. + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + description: + CSI input ports. + + patternProperties: + "^port@[0-3]+$": + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: + Input port for receiving CSI data on CSIPHY 0-3. + + properties: + endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + + properties: + data-lanes: + minItems: 1 + maxItems: 4 + + required: + - data-lanes + +required: + - compatible + - reg + - reg-names + - clocks + - clock-names + - interrupts + - interrupt-names + - interconnects + - interconnect-names + - iommus + - power-domains + - power-domain-names + - vdda-phy-supply + - vdda-pll-supply + - ports + +additionalProperties: false + +examples: + - | + #include + #include + #include + #include + #include + #include + + soc { + #address-cells =3D <2>; + #size-cells =3D <2>; + + isp@ac7a000 { + compatible =3D "qcom,sa8775p-camss"; + + reg =3D <0x0 0xac7a000 0x0 0x0f00>, + <0x0 0xac7c000 0x0 0x0f00>, + <0x0 0xac84000 0x0 0x0f00>, + <0x0 0xac88000 0x0 0x0f00>, + <0x0 0xac8c000 0x0 0x0f00>, + <0x0 0xac90000 0x0 0x0f00>, + <0x0 0xac94000 0x0 0x0f00>, + <0x0 0xac78000 0x0 0x1000>, + <0x0 0xac9c000 0x0 0x2000>, + <0x0 0xac9e000 0x0 0x2000>, + <0x0 0xaca0000 0x0 0x2000>, + <0x0 0xaca2000 0x0 0x2000>, + <0x0 0xacac000 0x0 0x0400>, + <0x0 0xacad000 0x0 0x0400>, + <0x0 0xacae000 0x0 0x0400>, + <0x0 0xac4d000 0x0 0xd000>, + <0x0 0xac5a000 0x0 0xd000>, + <0x0 0xac85000 0x0 0x0d00>, + <0x0 0xac89000 0x0 0x0d00>, + <0x0 0xac8d000 0x0 0x0d00>, + <0x0 0xac91000 0x0 0x0d00>, + <0x0 0xac95000 0x0 0x0d00>; + reg-names =3D "csid0", + "csid1", + "csid_lite0", + "csid_lite1", + "csid_lite2", + "csid_lite3", + "csid_lite4", + "csid_wrapper", + "csiphy0", + "csiphy1", + "csiphy2", + "csiphy3", + "tpg0", + "tpg1", + "tpg2", + "vfe0", + "vfe1", + "vfe_lite0", + "vfe_lite1", + "vfe_lite2", + "vfe_lite3", + "vfe_lite4"; + + clocks =3D <&camcc CAM_CC_CAMNOC_AXI_CLK>, + <&camcc CAM_CC_CORE_AHB_CLK>, + <&camcc CAM_CC_CPAS_AHB_CLK>, + <&camcc CAM_CC_CPAS_FAST_AHB_CLK>, + <&camcc CAM_CC_CPAS_IFE_LITE_CLK>, + <&camcc CAM_CC_CPAS_IFE_0_CLK>, + <&camcc CAM_CC_CPAS_IFE_1_CLK>, + <&camcc CAM_CC_CSID_CLK>, + <&camcc CAM_CC_CSIPHY0_CLK>, + <&camcc CAM_CC_CSI0PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY1_CLK>, + <&camcc CAM_CC_CSI1PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY2_CLK>, + <&camcc CAM_CC_CSI2PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY3_CLK>, + <&camcc CAM_CC_CSI3PHYTIMER_CLK>, + <&camcc CAM_CC_CSID_CSIPHY_RX_CLK>, + <&gcc GCC_CAMERA_HF_AXI_CLK>, + <&gcc GCC_CAMERA_SF_AXI_CLK>, + <&camcc CAM_CC_ICP_AHB_CLK>, + <&camcc CAM_CC_IFE_0_CLK>, + <&camcc CAM_CC_IFE_0_FAST_AHB_CLK>, + <&camcc CAM_CC_IFE_1_CLK>, + <&camcc CAM_CC_IFE_1_FAST_AHB_CLK>, + <&camcc CAM_CC_IFE_LITE_CLK>, + <&camcc CAM_CC_IFE_LITE_AHB_CLK>, + <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>, + <&camcc CAM_CC_IFE_LITE_CSID_CLK>; + clock-names =3D "camnoc_axi", + "core_ahb", + "cpas_ahb", + "cpas_fast_ahb_clk", + "cpas_vfe_lite", + "cpas_vfe0", + "cpas_vfe1", + "csid", + "csiphy0", + "csiphy0_timer", + "csiphy1", + "csiphy1_timer", + "csiphy2", + "csiphy2_timer", + "csiphy3", + "csiphy3_timer", + "csiphy_rx", + "gcc_axi_hf", + "gcc_axi_sf", + "icp_ahb", + "vfe0", + "vfe0_fast_ahb", + "vfe1", + "vfe1_fast_ahb", + "vfe_lite", + "vfe_lite_ahb", + "vfe_lite_cphy_rx", + "vfe_lite_csid"; + + interrupts =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names =3D "csid0", + "csid1", + "csid_lite0", + "csid_lite1", + "csid_lite2", + "csid_lite3", + "csid_lite4", + "csiphy0", + "csiphy1", + "csiphy2", + "csiphy3", + "tpg0", + "tpg1", + "tpg2", + "vfe0", + "vfe1", + "vfe_lite0", + "vfe_lite1", + "vfe_lite2", + "vfe_lite3", + "vfe_lite4"; + + interconnects =3D <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACT= IVE_ONLY + &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACT= IVE_ONLY>, + <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; + interconnect-names =3D "ahb", + "hf_0"; + + iommus =3D <&apps_smmu 0x3400 0x20>; + + power-domains =3D <&camcc CAM_CC_TITAN_TOP_GDSC>; + power-domain-names =3D "top"; + + vdda-phy-supply =3D <&vreg_l4a_0p88>; + vdda-pll-supply =3D <&vreg_l1c_1p2>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + }; + }; --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EAFEA28934D; Thu, 3 Jul 2025 17:20:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563238; cv=none; b=TCxlXj5O9sR0DezE5/B4dBwQ71LRhP2XkMw97D5wIyKw+Ps3oWx/FSOdaLUx5qLtmRzimHA27ZTDkLLEjt6XJ/ElrzLWjYVC3BdO3j/LTO7Vp8XU9lWuAQQMhnZ/9cxax7bne6Csn15ZbOl/FpoUJUmHHm9oTI6qbx9uDvfmACs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563238; c=relaxed/simple; bh=V6Du9uan4XVs309AQjKuNxQVPxQ+6nIhYYboQt/R9Qw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=is3igOVEpNFrb7O1JL5P5tS1z1F18DB7+rfXVVSXNmab02Bl1Mv8Bzixht/Awo2vzK4SS7sZ0fuGzZ50rF8N5qqRgubU10XPYK8QvuyCcNlgruGrtc1VDnYshRFpwGJLoT67qE5XR3AEpUISwHMeuNjnYMsrZJ9hnvxvCRydJvA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=k9M4m6nd; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="k9M4m6nd" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563FENOw028627; Thu, 3 Jul 2025 17:20:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= TIFYmBqBtYi8z70BVx08crljaLoV2lujP6B1NAjwdDs=; b=k9M4m6ndN7X3lF+X 72j36qb+38JnY1RVT7AnqLp5N5CcYbrM/SD1sryoid9UZegKgnbHAPXtFiZsbrvo w+gyzTOaIKZ61xmwVxvfv//ZU0tTubarEDAa4Z1TyeXWyVXvY4G7GaolhB05WejA Dhqa5mBRST7T+urOOexqag4+RN8kZuzHv+8Tlm48oWcoSId35nk+ocHadaVbaNYW W7Rst/DYc/mgXdRZ1yiRGgP2gP88lfygZOcLWAaKFBhM7uQaHYy2PZ5gPSQF2TCz xOY17JLDB13k84owA8UvJc3aimAWlggvOkdmbkSB0YtXK1+1+j64DfZssmzb9A9f Ha5R9Q== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47j7bw1bsy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:26 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA02.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKPVC029203 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:25 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:19 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , , Konrad Dybcio Subject: [PATCH v3 4/9] arm64: dts: qcom: sa8775p: Add support for camss Date: Thu, 3 Jul 2025 22:49:33 +0530 Message-ID: <20250703171938.3606998-5-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: t2A4inrKafwYtSXddH61vQjN-2RzrGiM X-Authority-Analysis: v=2.4 cv=RJCzH5i+ c=1 sm=1 tr=0 ts=6866bbda cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=WgNu7LmV0eYBmLmTV2UA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: t2A4inrKafwYtSXddH61vQjN-2RzrGiM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0NCBTYWx0ZWRfXyYyxp+46Za14 YD63fsQWN14qBsGAufIGIMV0D4c+a2ODk625W0x6abSdqen+x1XCgp+vf8K9QQMOdVb/4FFvT+o 5rg930Uo/qz/m16aYFKy8F8RRl+hmPX4U1oYC2S7nKSokh+DVHR0kNOUPmIvTxarj5GOViB9ZwK 5kn4ZRm3sl3LW7w6M4bU0MHARpSG+uYgu+olu8u3UMmM41vs/dT/djJwRYYHb7rqLVDEbdaZ++6 LFhAmTMpoI4a0FCUWqlhmFJND0Vx0qwXwhf6hhlbhDBIdlB5FFfnRqwKMIixF9IXfep6dmVMHyT zbbxg5RcWvtFyz7K5YukIdFtA0YhrliWP8EHcodlSa4Ipya84JC9972wa5axtuSUtc4PFUAhdpa H6m2AvRLiKwpETd+fsm4i51RnYth2EuNEpTRLDob1ZxU/IGf4X9RNWZIyKEUXxTDfzj/fLQD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=931 adultscore=0 malwarescore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030144 Content-Type: text/plain; charset="utf-8" Add changes to support the camera subsystem on the SA8775P. Co-developed-by: Suresh Vankadara Signed-off-by: Suresh Vankadara Signed-off-by: Vikram Sharma Reviewed-by: Konrad Dybcio Reviewed-by: Bryan O'Donoghue --- arch/arm64/boot/dts/qcom/sa8775p.dtsi | 185 ++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sa8775p.dtsi b/arch/arm64/boot/dts/qc= om/sa8775p.dtsi index fed34717460f..38ac33b082c8 100644 --- a/arch/arm64/boot/dts/qcom/sa8775p.dtsi +++ b/arch/arm64/boot/dts/qcom/sa8775p.dtsi @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -4345,6 +4346,190 @@ videocc: clock-controller@abf0000 { #power-domain-cells =3D <1>; }; =20 + camss: isp@ac7a000 { + compatible =3D "qcom,sa8775p-camss"; + + reg =3D <0x0 0xac7a000 0x0 0x0f00>, + <0x0 0xac7c000 0x0 0x0f00>, + <0x0 0xac84000 0x0 0x0f00>, + <0x0 0xac88000 0x0 0x0f00>, + <0x0 0xac8c000 0x0 0x0f00>, + <0x0 0xac90000 0x0 0x0f00>, + <0x0 0xac94000 0x0 0x0f00>, + <0x0 0xac78000 0x0 0x1000>, + <0x0 0xac9c000 0x0 0x2000>, + <0x0 0xac9e000 0x0 0x2000>, + <0x0 0xaca0000 0x0 0x2000>, + <0x0 0xaca2000 0x0 0x2000>, + <0x0 0xacac000 0x0 0x0400>, + <0x0 0xacad000 0x0 0x0400>, + <0x0 0xacae000 0x0 0x0400>, + <0x0 0xac4d000 0x0 0xd000>, + <0x0 0xac5a000 0x0 0xd000>, + <0x0 0xac85000 0x0 0x0d00>, + <0x0 0xac89000 0x0 0x0d00>, + <0x0 0xac8d000 0x0 0x0d00>, + <0x0 0xac91000 0x0 0x0d00>, + <0x0 0xac95000 0x0 0x0d00>; + reg-names =3D "csid0", + "csid1", + "csid_lite0", + "csid_lite1", + "csid_lite2", + "csid_lite3", + "csid_lite4", + "csid_wrapper", + "csiphy0", + "csiphy1", + "csiphy2", + "csiphy3", + "tpg0", + "tpg1", + "tpg2", + "vfe0", + "vfe1", + "vfe_lite0", + "vfe_lite1", + "vfe_lite2", + "vfe_lite3", + "vfe_lite4"; + + clocks =3D <&camcc CAM_CC_CAMNOC_AXI_CLK>, + <&camcc CAM_CC_CORE_AHB_CLK>, + <&camcc CAM_CC_CPAS_AHB_CLK>, + <&camcc CAM_CC_CPAS_FAST_AHB_CLK>, + <&camcc CAM_CC_CPAS_IFE_LITE_CLK>, + <&camcc CAM_CC_CPAS_IFE_0_CLK>, + <&camcc CAM_CC_CPAS_IFE_1_CLK>, + <&camcc CAM_CC_CSID_CLK>, + <&camcc CAM_CC_CSIPHY0_CLK>, + <&camcc CAM_CC_CSI0PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY1_CLK>, + <&camcc CAM_CC_CSI1PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY2_CLK>, + <&camcc CAM_CC_CSI2PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY3_CLK>, + <&camcc CAM_CC_CSI3PHYTIMER_CLK>, + <&camcc CAM_CC_CSID_CSIPHY_RX_CLK>, + <&gcc GCC_CAMERA_HF_AXI_CLK>, + <&gcc GCC_CAMERA_SF_AXI_CLK>, + <&camcc CAM_CC_ICP_AHB_CLK>, + <&camcc CAM_CC_IFE_0_CLK>, + <&camcc CAM_CC_IFE_0_FAST_AHB_CLK>, + <&camcc CAM_CC_IFE_1_CLK>, + <&camcc CAM_CC_IFE_1_FAST_AHB_CLK>, + <&camcc CAM_CC_IFE_LITE_CLK>, + <&camcc CAM_CC_IFE_LITE_AHB_CLK>, + <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>, + <&camcc CAM_CC_IFE_LITE_CSID_CLK>; + clock-names =3D "camnoc_axi", + "core_ahb", + "cpas_ahb", + "cpas_fast_ahb_clk", + "cpas_vfe_lite", + "cpas_vfe0", + "cpas_vfe1", + "csid", + "csiphy0", + "csiphy0_timer", + "csiphy1", + "csiphy1_timer", + "csiphy2", + "csiphy2_timer", + "csiphy3", + "csiphy3_timer", + "csiphy_rx", + "gcc_axi_hf", + "gcc_axi_sf", + "icp_ahb", + "vfe0", + "vfe0_fast_ahb", + "vfe1", + "vfe1_fast_ahb", + "vfe_lite", + "vfe_lite_ahb", + "vfe_lite_cphy_rx", + "vfe_lite_csid"; + + interrupts =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names =3D "csid0", + "csid1", + "csid_lite0", + "csid_lite1", + "csid_lite2", + "csid_lite3", + "csid_lite4", + "csiphy0", + "csiphy1", + "csiphy2", + "csiphy3", + "tpg0", + "tpg1", + "tpg2", + "vfe0", + "vfe1", + "vfe_lite0", + "vfe_lite1", + "vfe_lite2", + "vfe_lite3", + "vfe_lite4"; + + interconnects =3D <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY + &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>, + <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; + interconnect-names =3D "ahb", + "hf_0"; + + iommus =3D <&apps_smmu 0x3400 0x20>; + + power-domains =3D <&camcc CAM_CC_TITAN_TOP_GDSC>; + power-domain-names =3D "top"; + + status =3D "disabled"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + }; + + port@1 { + reg =3D <1>; + }; + + port@2 { + reg =3D <2>; + }; + + port@3 { + reg =3D <3>; + }; + }; + }; + camcc: clock-controller@ade0000 { compatible =3D "qcom,sa8775p-camcc"; reg =3D <0x0 0x0ade0000 0x0 0x20000>; --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98B5128B40A; Thu, 3 Jul 2025 17:20:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563242; cv=none; b=GmPHyqft+NIKzShiG/nlsCkJXvjfPO5xAiaFUfGMK15BeWdg4gumaP4l9zVQk+Sdz1LFYVxZrEyvWYM9y4IrNuRdjls31TO939ek+WA7zaZ7zMC6XpNJBme2YRuo9856eoGTxHeITEKtlOX821Yf2i6Fs6HFlhQnB1t79R5GVV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563242; c=relaxed/simple; bh=otMQYXYDBO0ZtL3ehtZxVvP9o7g4T/LOBSKN+mDdxOg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oTpsSZ/od+VQhIoW/alcoFnLP6r5HxkyITH+VJQTv8d+RJd9NqfjPHwmbCvWfvp7y1fyI2CrydZP+IAM2Y4Y9WT4YD7CTZefHSoknM+wgvJwyaOZP7wB3Nu72vanaBkKnMNPJxbn1YDu4cTs6DoeynN44aLkeu7VU8SoUCxSPTM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=o2JK0jcq; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="o2JK0jcq" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5639gXS4005469; Thu, 3 Jul 2025 17:20:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= udwwSHFaz738/153TPLULuKklqKbe5xtG0LSOddGNx8=; b=o2JK0jcqeyqNch+r tacMftzdlQOAdHE8cdl4jmOW/yihZHkUML4ryRfNq4suIR2xCtiNSDOvxUfwBDZ2 /tiwXwgzLO3+leEqVLqw5k/h9B1hRp0zc8KvSZfN5FXHMUnTDaXfhm3Q5OaAdYvs 7v60ArY7RSfhzhI+pXr7obeXy79thp7LB6les+sDtIEiCqVcM0GoVEMmd7KNPjg2 raMuapwIjudEh5fQCQyOp8I8NuQoByT/hMVf52iHd5JhBwXCSmhQH1Luql7InCEw xvrUEBym+ps7yaeQOSbk5K33uuMXU1pJKQ7b2wbKJvy/+9h4zcwBOm1t086uzadk BZc0ag== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47j7qmh4cw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:32 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA01.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKVM0027655 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:31 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:25 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , Subject: [PATCH v3 5/9] media: qcom: camss: Add sa8775p compatible Date: Thu, 3 Jul 2025 22:49:34 +0530 Message-ID: <20250703171938.3606998-6-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=C4TpyRP+ c=1 sm=1 tr=0 ts=6866bbe0 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=gE60Ov1lhapgyOv8Ur0A:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: HYrl4Zhc2hgdyj0jca7uJM-0MPrVhyc9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0MyBTYWx0ZWRfX/oQEEUKzPJXn 73NHBV2E5ePEQ5te2vY7mxoAwIhR0Gp6BFOIALxnF/7req6voyt1GZk2fwL19EWH/cxrVwJzdmA PoSJxBNeF5y0dLZatfeif82hxjVDjpewdY83UG4taCJ6Z8HBZTZOKgaqCJSoA2yitug2i/WLPIL B3aH8ej4222K3wABFWMDEdWjpgAzsFWd7+7b+/1bRLIVNCuKT7iS/Lg0cpEgsWJXeUFWfMfMD9e vwW2WjZuw/zEQsIqf9qibockFC4XEVf5oHfYW+PeWUskzYDtukxw/KzulBtN6EnTHPCuoU8T7Ll SOI3fhOXMx5k4h/hiyylF3NkQh5guO59iWRzQWrWxRtEb9QSsG2xdUm5x+XHKYluzCAK95hedNp dGd2FtMoHYWRSnPj58C5zw49cLRc0QZ6Avsmj8wZ3TiCIYnVyInjlL8fpu4D65ytK7g8Qyj1 X-Proofpoint-GUID: HYrl4Zhc2hgdyj0jca7uJM-0MPrVhyc9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1011 priorityscore=1501 spamscore=0 mlxscore=0 mlxlogscore=997 adultscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030143 Content-Type: text/plain; charset="utf-8" Add CAMSS_8775P enum, SA8775P compatible and sa8775p camss driver private data, the private data just include some basic information now, later changes will enumerate with csiphy, tpg, csid and vfe resources. Co-developed-by: Suresh Vankadara Signed-off-by: Suresh Vankadara Signed-off-by: Vikram Sharma Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/camss.c | 23 +++++++++++++++++++++++ drivers/media/platform/qcom/camss/camss.h | 1 + 2 files changed, 24 insertions(+) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 310b5cd8de5f..3122a29891c2 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -2483,6 +2483,19 @@ static const struct resources_icc icc_res_sm8550[] = =3D { }, }; =20 +static const struct resources_icc icc_res_sa8775p[] =3D { + { + .name =3D "ahb", + .icc_bw_tbl.avg =3D 38400, + .icc_bw_tbl.peak =3D 76800, + }, + { + .name =3D "hf_0", + .icc_bw_tbl.avg =3D 2097152, + .icc_bw_tbl.peak =3D 2097152, + }, +}; + static const struct camss_subdev_resources csiphy_res_x1e80100[] =3D { /* CSIPHY0 */ { @@ -3753,6 +3766,15 @@ static const struct camss_resources msm8996_resource= s =3D { .link_entities =3D camss_link_entities }; =20 + +static const struct camss_resources sa8775p_resources =3D { + .version =3D CAMSS_8775P, + .pd_name =3D "top", + .icc_res =3D icc_res_sa8775p, + .icc_path_num =3D ARRAY_SIZE(icc_res_sa8775p), + .link_entities =3D camss_link_entities +}; + static const struct camss_resources sdm660_resources =3D { .version =3D CAMSS_660, .csiphy_res =3D csiphy_res_660, @@ -3865,6 +3887,7 @@ static const struct of_device_id camss_dt_match[] =3D= { { .compatible =3D "qcom,msm8916-camss", .data =3D &msm8916_resources }, { .compatible =3D "qcom,msm8953-camss", .data =3D &msm8953_resources }, { .compatible =3D "qcom,msm8996-camss", .data =3D &msm8996_resources }, + { .compatible =3D "qcom,sa8775p-camss", .data =3D &sa8775p_resources }, { .compatible =3D "qcom,sc7280-camss", .data =3D &sc7280_resources }, { .compatible =3D "qcom,sc8280xp-camss", .data =3D &sc8280xp_resources }, { .compatible =3D "qcom,sdm660-camss", .data =3D &sdm660_resources }, diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/plat= form/qcom/camss/camss.h index 63c0afee154a..345479f6feba 100644 --- a/drivers/media/platform/qcom/camss/camss.h +++ b/drivers/media/platform/qcom/camss/camss.h @@ -86,6 +86,7 @@ enum camss_version { CAMSS_8280XP, CAMSS_845, CAMSS_8550, + CAMSS_8775P, CAMSS_X1E80100, }; =20 --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 499B1289E03; Thu, 3 Jul 2025 17:20:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563248; cv=none; b=MoQOQqYzpgfXKlujMyfNlxhlmLPQUZ1UqwAc8nnj5qOAgERW3lGweFWhzrhsP3sDKRWpnqzELMacBmHByoP/ccgHkFfLy7LkiYmlyblPq8nMlMSfjo6p8DTgjCIdAB5fNjCKU0aH+0PH1pf8VFKr1EP7hVKITVTtUeCHAPbxk7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563248; c=relaxed/simple; bh=cOngHAQIoGCiEAIJBdg5Y/M+/+ca9e/ks7U/tIE2nb0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LmARXQpMW/JsaBgSfCbYmNOcKXWpZjNisYXpRRzQCQY6kXMR3Th+j6bAeyJCGMwHj5DbvZK0iTHA5bmAHL8NUuBC9j8pet5NQQBTWVI+Dn4h+0KMxhi1IzJbqm3HvRTcDE0kptTVD7YcMhU0mh2lwyezACUWmqAYEpOZtKNnMJU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=oHbWcj7X; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="oHbWcj7X" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563AYrlh025373; Thu, 3 Jul 2025 17:20:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= pm5esUOyFXLvBW/6hkBPl+9DZsVFqW6bKl57X41RwrY=; b=oHbWcj7X4CQHAd7x 90QoGvb2M7Ap0iyzFWvtCB9CSVB6oNaGsvw8z/Rx8nHUE3ShU7n+IQYYIleXPQfH 1AZpAW5dzqz4PXKCY19stdfEA/9PALyC0ll+oTYmaQ3b06bf82BTHkzZ9FWG8CLm 1fhX9Vy1qnLaq0xJpoSbe6p5sVgMw12+yxZHH5pVC7EAMTgK1EVO2c6lakLh9oyD NDd/DIIEWvr9iiayt+k2TsU1+HfT0R4Ocd8NNjYUC9ee8gHkvjU27dxbkni5lggR lX+dWvjlhbfqZ/TnImtw/d2HvQ37vxmXnJNSa0rB8pk/fOYy6ygHVPBCZEfLdSBf Btu0Lg== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47kd64xbf9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:37 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA01.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKaIP027714 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:36 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:31 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , , Wenmeng Liu Subject: [PATCH v3 6/9] media: qcom: camss: Add support for CSIPHY 690 Date: Thu, 3 Jul 2025 22:49:35 +0530 Message-ID: <20250703171938.3606998-7-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=Z+PsHGRA c=1 sm=1 tr=0 ts=6866bbe6 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=k_o0Bgew7stMHXNjApkA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0NCBTYWx0ZWRfX3z1eijd1zsW2 jE1Oj+kkMC+D8/OuaVKOY1XXMOrz/gjPN42q22R5hU+B+MWyRmCk742GVLXePU1Z2RC/4194yku 8YSuEKf7fD+DDAC2+awyO6/qieQfVnOXlJDzUqHt/6kZpVrkIhQUr9diMGYON/xwmOVN1Kedow7 lTqYZ2BoeQ7L14RpU40UnShDknIH3DDugmuMvQ0vvWXjlg/N5Fe6bDX3AmTqDoXiiSUiH/HyA0b tFEBzjsHOHycennzFxFymsv2swoh9joFCokyhgT/t8KeTnvQAVCgnPjcC2Aq1ILFOnB/jMZHRvc BeUljfrZS3pyU9JyIh3rDx6Zq+mZtjelZRa80BsWFTt2MHOMlS75FRB9pKxgcWCYLgLttZv11X+ 9FenBn/NxL5HXZs4IkCv8niU7JizBSv9KBSjo3AgTgK3m2ZlZoCAW+Z3E82PP/TkKyL9EFUn X-Proofpoint-GUID: jiO1ktD7t47-5Ra_9QOe3_-6l3XoH6zz X-Proofpoint-ORIG-GUID: jiO1ktD7t47-5Ra_9QOe3_-6l3XoH6zz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 mlxlogscore=999 spamscore=0 adultscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030144 Content-Type: text/plain; charset="utf-8" Add support for CSIPHY found on SA8775P (Titan 690). This implementation is based on the titan 690 implementation. Co-developed-by: Wenmeng Liu Signed-off-by: Wenmeng Liu Signed-off-by: Vikram Sharma Reviewed-by: Bryan O'Donoghue --- .../qcom/camss/camss-csiphy-3ph-1-0.c | 84 +++++++++++++++++++ .../media/platform/qcom/camss/camss-csiphy.c | 5 ++ .../media/platform/qcom/camss/camss-csiphy.h | 1 + drivers/media/platform/qcom/camss/camss.c | 75 +++++++++++++++++ 4 files changed, 165 insertions(+) diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/dri= vers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c index f732a76de93e..bb5ebaa13ec8 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c @@ -64,6 +64,85 @@ struct csiphy_lane_regs { u32 csiphy_param_type; }; =20 +/* GEN2 1.3.0 2PH */ +static const struct +csiphy_lane_regs lane_regs_sa8775p[] =3D { + {0x0724, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0728, 0x04, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0700, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x070C, 0xFF, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0738, 0x1F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x072C, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0734, 0x0F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0710, 0x52, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x071C, 0x0A, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0714, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x073C, 0xB8, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0704, 0x0C, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0720, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0708, 0x10, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0024, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0000, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0038, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x002C, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0034, 0x0F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0010, 0x52, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x001C, 0x0A, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0014, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x003C, 0xB8, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0004, 0x0C, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0020, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0008, 0x10, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0224, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0200, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0238, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x022C, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0234, 0x0F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0210, 0x52, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x021C, 0x0A, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0214, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x023C, 0xB8, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0204, 0x0C, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0220, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0208, 0x10, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0424, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0400, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0438, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x042C, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0434, 0x0F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0410, 0x52, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x041C, 0x0A, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0414, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x043C, 0xB8, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0404, 0x0C, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0420, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0408, 0x10, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x0624, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0600, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0638, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x062C, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0634, 0x0F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0610, 0x52, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x061C, 0x0A, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0614, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x063C, 0xB8, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0604, 0x0C, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0620, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0608, 0x10, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, + {0x005C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0060, 0xFD, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0064, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x025C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0260, 0xFD, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0264, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x045C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0460, 0xFD, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0464, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x065C, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0660, 0xFD, 0x00, CSIPHY_DEFAULT_PARAMS}, + {0x0664, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS}, +}; + /* GEN2 1.0 2PH */ static const struct csiphy_lane_regs lane_regs_sdm845[] =3D { @@ -749,6 +828,7 @@ static bool csiphy_is_gen2(u32 version) case CAMSS_8280XP: case CAMSS_845: case CAMSS_8550: + case CAMSS_8775P: case CAMSS_X1E80100: ret =3D true; break; @@ -848,6 +928,10 @@ static int csiphy_init(struct csiphy_device *csiphy) regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sm8550); regs->offset =3D 0x1000; break; + case CAMSS_8775P: + regs->lane_regs =3D &lane_regs_sa8775p[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sa8775p); + break; default: WARN(1, "unknown csiphy version\n"); return -ENODEV; diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c b/drivers/med= ia/platform/qcom/camss/camss-csiphy.c index c622efcc92ff..f6a2ac385953 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy.c @@ -103,6 +103,11 @@ const struct csiphy_formats csiphy_formats_8x96 =3D { .formats =3D formats_8x96 }; =20 +const struct csiphy_formats csiphy_formats_sa8775p =3D { + .nformats =3D ARRAY_SIZE(formats_sdm845), + .formats =3D formats_sdm845 +}; + const struct csiphy_formats csiphy_formats_sc7280 =3D { .nformats =3D ARRAY_SIZE(formats_sdm845), .formats =3D formats_sdm845 diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.h b/drivers/med= ia/platform/qcom/camss/camss-csiphy.h index ab91273303b9..842e72b74ce4 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy.h +++ b/drivers/media/platform/qcom/camss/camss-csiphy.h @@ -126,6 +126,7 @@ void msm_csiphy_unregister_entity(struct csiphy_device = *csiphy); =20 extern const struct csiphy_formats csiphy_formats_8x16; extern const struct csiphy_formats csiphy_formats_8x96; +extern const struct csiphy_formats csiphy_formats_sa8775p; extern const struct csiphy_formats csiphy_formats_sc7280; extern const struct csiphy_formats csiphy_formats_sdm845; =20 diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 3122a29891c2..ebc3b296bb50 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -2483,6 +2483,81 @@ static const struct resources_icc icc_res_sm8550[] = =3D { }, }; =20 +static const struct camss_subdev_resources csiphy_res_8775p[] =3D { + /* CSIPHY0 */ + { + .regulators =3D { "vdda-phy", "vdda-pll" }, + + .clock =3D { "csiphy_rx", "csiphy0", "csiphy0_timer"}, + .clock_rate =3D { + { 400000000 }, + { 0 }, + { 400000000 }, + }, + .reg =3D { "csiphy0" }, + .interrupt =3D { "csiphy0" }, + .csiphy =3D { + .id =3D 0, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sa8775p + } + }, + /* CSIPHY1 */ + { + .regulators =3D { "vdda-phy", "vdda-pll" }, + + .clock =3D { "csiphy_rx", "csiphy1", "csiphy1_timer"}, + .clock_rate =3D { + { 400000000 }, + { 0 }, + { 400000000 }, + }, + .reg =3D { "csiphy1" }, + .interrupt =3D { "csiphy1" }, + .csiphy =3D { + .id =3D 1, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sa8775p + } + }, + /* CSIPHY2 */ + { + .regulators =3D { "vdda-phy", "vdda-pll" }, + + .clock =3D { "csiphy_rx", "csiphy2", "csiphy2_timer"}, + .clock_rate =3D { + { 400000000 }, + { 0 }, + { 400000000 }, + }, + .reg =3D { "csiphy2" }, + .interrupt =3D { "csiphy2" }, + .csiphy =3D { + .id =3D 2, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sa8775p + } + }, + /* CSIPHY3 */ + { + .regulators =3D { "vdda-phy", "vdda-pll" }, + + .clock =3D { "csiphy_rx", "csiphy3", "csiphy3_timer"}, + .clock_rate =3D { + { 400000000 }, + { 0 }, + { 400000000 }, + }, + .reg =3D { "csiphy3" }, + .interrupt =3D { "csiphy3" }, + .csiphy =3D { + .id =3D 3, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sa8775p + } + }, +}; + static const struct resources_icc icc_res_sa8775p[] =3D { { .name =3D "ahb", --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FE2C2ED157; Thu, 3 Jul 2025 17:20:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563254; cv=none; b=hQo9FSKDisl764aAO+VOFLhOR8V+r7PR9maOjKqshh2AMwJR6FwUmtmApDD30SIkAfhIIcxDMwo9UATOrWG5B10+FVX3uxxHhJiMwndxRMNbzciCKvm0A87CqReRkzdD0bBbxmNsyF+mr3TI/APu3kpwaz/3Yh8s7Qsq9swgtWY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563254; c=relaxed/simple; bh=c9fQsGhdZ4Tci+MHoexekR/DpSEgzcfYVgmTnrOMNOQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=a8Im0wSqrIptKG/rnQKaiCgMOjjPp9IMgjntMr77/mPPWzgS/YjCNjHnaTk2glchXFtwM9ZvJPeckI9FMtMwG7rHY7vMTGs762qtbz70eUfIewXp+KzcPzrPHJfNE1dBdaGLcSQM41V753f/jwS2TW2sFI7E4549S8Y+iBrAGsg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=MnMxdKSv; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="MnMxdKSv" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563AptST025936; Thu, 3 Jul 2025 17:20:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= z7Dcn4D9arGTZrks3WsM8BzYXId6TDjg5kHJQl4Ab5Y=; b=MnMxdKSvpGdljsDw hBXv4JDGUtIacsp5kPVk0tWVIPJYiKeSXc0iGj1wGF6DGLL7rsS7n7UZu7sjJ5rH ggfeOp93c+AENCg0SomhuB6fYA/rbvazTj728eTdLwTbr86txpoKQ7YU8iY3g6nV 02xUn0BLTMYPqKLspfuOEzvKNti+SOm85cskLd6KPT8As2yO6Ew7t09OAadMSTMI ZdCq7GbhuPF0Pnqwx7pcImGQ0TrH2HJTAhpG4KvfUzbXTuUEtXgPFmxgDJycyrBc GnaKW+o9RqxSz7QUPzEnQcd+h1DDjAWhsRKaNjWJ3nrAgjtbUt7wQJKWOpGTz2S5 z2ZABQ== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47kd64xbfs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:43 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA03.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKgDN028495 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:42 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:36 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , Subject: [PATCH v3 7/9] media: qcom: camss: Add support for CSID for sa8775p Date: Thu, 3 Jul 2025 22:49:36 +0530 Message-ID: <20250703171938.3606998-8-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=Z+PsHGRA c=1 sm=1 tr=0 ts=6866bbeb cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=uDS5G4RjUlL95bN0Uw4A:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0NCBTYWx0ZWRfX9Z4ONKJ8rPae GkgyNbEALnuiFlXcBWHccC8bIpEUFizpvIm1XtH02uiJER+7E2svIc9BEaoUQfz7iWlmOYrnhfo UCcfDjXQxH3TgHrYD0j6qCa53PaRexThWBYCUdYpsEcBQHgE6qI2ccWOwec+B6eoZb2P4ht/sVd /pno/7d4padoz88WynSB/UGST+wInJhBygt/yn9iarT+eJMMrZrX2G410xBGVTvMR7PEGuhDFPv UrstaqdO3bQfSvQUbTSHTqKbe4amR967VW4XAwKdb7dKzBmRQekFi1aq/7ihaoae0t7CjVYthgw IVBRyzhrDHgAumhPqKj6r2ZA8YnTrh3fGFOm0swMcMsoipkpM420NnDKBzJr7aykzAB/jl9R49W 7KqqtLL1o/NNa6X4igjWu3BuqyfvkVz9KgVy28F1QIJW7LIhFV5Za1mhQoYn6vCsj7ZZEatA X-Proofpoint-GUID: nWXjAIEsF-WgA4j0loJv0tV9LAcDfKon X-Proofpoint-ORIG-GUID: nWXjAIEsF-WgA4j0loJv0tV9LAcDfKon X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 mlxlogscore=999 spamscore=0 adultscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030144 Content-Type: text/plain; charset="utf-8" The CSID in sa8775p is version 690, This csid is different from csid 780 w.r.t few bit-fields. Co-developed-by: Suresh Vankadara Signed-off-by: Suresh Vankadara Signed-off-by: Vikram Sharma --- .../platform/qcom/camss/camss-csid-gen3.c | 31 +++- drivers/media/platform/qcom/camss/camss.c | 151 ++++++++++++++++++ 2 files changed, 175 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-csid-gen3.c b/drivers/= media/platform/qcom/camss/camss-csid-gen3.c index 0941152ec301..f62084fb8287 100644 --- a/drivers/media/platform/qcom/camss/camss-csid-gen3.c +++ b/drivers/media/platform/qcom/camss/camss-csid-gen3.c @@ -47,8 +47,12 @@ #define CSID_CSI2_RX_IRQ_CLEAR 0xA4 #define CSID_CSI2_RX_IRQ_SET 0xA8 =20 +#define IS_CSID_690(csid) (csid->camss->res->version =3D=3D\ + CAMSS_8775P ? true : false) #define CSID_BUF_DONE_IRQ_STATUS 0x8C -#define BUF_DONE_IRQ_STATUS_RDI_OFFSET (csid_is_lite(csid) ? 1 : 14) +#define BUF_DONE_IRQ_STATUS_RDI_OFFSET (csid_is_lite(csid) ?\ + 1 : (IS_CSID_690(csid) ?\ + 13 : 14)) #define CSID_BUF_DONE_IRQ_MASK 0x90 #define CSID_BUF_DONE_IRQ_CLEAR 0x94 #define CSID_BUF_DONE_IRQ_SET 0x98 @@ -61,6 +65,7 @@ =20 #define CSID_CSI2_RX_CFG0 0x200 #define CSI2_RX_CFG0_NUM_ACTIVE_LANES 0 +#define CSI2_RX_CFG0_VC_MODE 3 #define CSI2_RX_CFG0_DL0_INPUT_SEL 4 #define CSI2_RX_CFG0_PHY_NUM_SEL 20 =20 @@ -68,7 +73,9 @@ #define CSI2_RX_CFG1_ECC_CORRECTION_EN BIT(0) #define CSI2_RX_CFG1_VC_MODE BIT(2) =20 -#define CSID_RDI_CFG0(rdi) (0x500 + 0x100 * (rdi)) +#define CSID_RDI_CFG0(rdi) (csid_is_lite(csid) && IS_CSID_690(csid) ?\ + (0x300 + 0x100 * (rdi)) :\ + (0x500 + 0x100 * (rdi))) #define RDI_CFG0_TIMESTAMP_EN BIT(6) #define RDI_CFG0_TIMESTAMP_STB_SEL BIT(8) #define RDI_CFG0_DECODE_FORMAT 12 @@ -77,10 +84,14 @@ #define RDI_CFG0_DT_ID 27 #define RDI_CFG0_EN BIT(31) =20 -#define CSID_RDI_CTRL(rdi) (0x504 + 0x100 * (rdi)) +#define CSID_RDI_CTRL(rdi) (csid_is_lite(csid) && IS_CSID_690(csid) ?\ + (0x304 + 0x100 * (rdi)) :\ + (0x504 + 0x100 * (rdi))) #define RDI_CTRL_START_CMD BIT(0) =20 -#define CSID_RDI_CFG1(rdi) (0x510 + 0x100 * (rdi)) +#define CSID_RDI_CFG1(rdi) (csid_is_lite(csid) && IS_CSID_690(csid) ?\ + (0x310 + 0x100 * (rdi)) :\ + (0x510 + 0x100 * (rdi))) #define RDI_CFG1_DROP_H_EN BIT(5) #define RDI_CFG1_DROP_V_EN BIT(6) #define RDI_CFG1_CROP_H_EN BIT(7) @@ -88,9 +99,12 @@ #define RDI_CFG1_PIX_STORE BIT(10) #define RDI_CFG1_PACKING_FORMAT_MIPI BIT(15) =20 -#define CSID_RDI_IRQ_SUBSAMPLE_PATTERN(rdi) (0x548 + 0x100 * (rdi)) -#define CSID_RDI_IRQ_SUBSAMPLE_PERIOD(rdi) (0x54C + 0x100 * (rdi)) - +#define CSID_RDI_IRQ_SUBSAMPLE_PATTERN(rdi) (csid_is_lite(csid) && IS_CSID= _690(csid) ?\ + (0x348 + 0x100 * (rdi)) :\ + (0x548 + 0x100 * (rdi))) +#define CSID_RDI_IRQ_SUBSAMPLE_PERIOD(rdi) (csid_is_lite(csid) && IS_CSID_= 690(csid) ?\ + (0x34C + 0x100 * (rdi)) :\ + (0x54C + 0x100 * (rdi))) #define CSI2_RX_CFG0_PHY_SEL_BASE_IDX 1 =20 static void __csid_configure_rx(struct csid_device *csid, @@ -102,6 +116,9 @@ static void __csid_configure_rx(struct csid_device *csi= d, val |=3D phy->lane_assign << CSI2_RX_CFG0_DL0_INPUT_SEL; val |=3D (phy->csiphy_id + CSI2_RX_CFG0_PHY_SEL_BASE_IDX) << CSI2_RX_CFG0= _PHY_NUM_SEL; =20 + if (IS_CSID_690(csid) && (vc > 3)) + val |=3D 1 << CSI2_RX_CFG0_VC_MODE; + writel(val, csid->base + CSID_CSI2_RX_CFG0); =20 val =3D CSI2_RX_CFG1_ECC_CORRECTION_EN; diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index ebc3b296bb50..b2398196b9ff 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -2269,6 +2269,10 @@ static const struct camss_subdev_resources csiphy_re= s_8550[] =3D { } }; =20 +static const struct resources_wrapper csid_wrapper_res_sa8775p =3D { + .reg =3D "csid_wrapper", +}; + static const struct resources_wrapper csid_wrapper_res_sm8550 =3D { .reg =3D "csid_wrapper", }; @@ -2558,6 +2562,153 @@ static const struct camss_subdev_resources csiphy_r= es_8775p[] =3D { }, }; =20 +static const struct camss_subdev_resources csid_res_8775p[] =3D { + /* CSID0 */ + { + .regulators =3D {}, + + .clock =3D { "csid", "csiphy_rx"}, + .clock_rate =3D { + { 400000000, 400000000}, + { 400000000, 400000000} + }, + + .reg =3D { "csid0" }, + .interrupt =3D { "csid0" }, + .csid =3D { + .is_lite =3D false, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, + /* CSID1 */ + { + .regulators =3D {}, + + .clock =3D { "csid", "csiphy_rx"}, + .clock_rate =3D { + { 400000000, 400000000}, + { 400000000, 400000000} + }, + + .reg =3D { "csid1" }, + .interrupt =3D { "csid1" }, + .csid =3D { + .is_lite =3D false, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, + + /* CSID2 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 400000000, 400000000, 0}, + { 0, 0, 400000000, 480000000, 0} + }, + + .reg =3D { "csid_lite0" }, + .interrupt =3D { "csid_lite0" }, + .csid =3D { + .is_lite =3D true, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, + /* CSID3 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 400000000, 400000000, 0}, + { 0, 0, 400000000, 480000000, 0} + }, + + .reg =3D { "csid_lite1" }, + .interrupt =3D { "csid_lite1" }, + .csid =3D { + .is_lite =3D true, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, + /* CSID4 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 400000000, 400000000, 0}, + { 0, 0, 400000000, 480000000, 0} + }, + + .reg =3D { "csid_lite2" }, + .interrupt =3D { "csid_lite2" }, + .csid =3D { + .is_lite =3D true, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, + /* CSID5 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 400000000, 400000000, 0}, + { 0, 0, 400000000, 480000000, 0} + }, + + .reg =3D { "csid_lite3" }, + .interrupt =3D { "csid_lite3" }, + .csid =3D { + .is_lite =3D true, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, + /* CSID6 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 400000000, 400000000, 0}, + { 0, 0, 400000000, 480000000, 0} + }, + + .reg =3D { "csid_lite4" }, + .interrupt =3D { "csid_lite4" }, + .csid =3D { + .is_lite =3D true, + .hw_ops =3D &csid_ops_gen3, + .parent_dev_ops =3D &vfe_parent_dev_ops, + .formats =3D &csid_formats_gen2 + } + }, +}; + static const struct resources_icc icc_res_sa8775p[] =3D { { .name =3D "ahb", --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3667C28DB7B; Thu, 3 Jul 2025 17:20:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563259; cv=none; b=fkbTYze0Tbs8kQDxyhAtfWNEZtGwrCZvpwfxa10FC3bJ0zB6dd3Gsy/wtHvrNovjEeSzCvCIh/sDzN2T2HysdjoK23U+2Oj+D8jqGerZG+fesMZvQw4Ja/LpPiGpGR8pJNDDXdQHskCV5PNBJDvcNB8avzeORzmAItD1H9PSQ20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563259; c=relaxed/simple; bh=jH1osAewf5lDZ9G4162smzr6skDr7nrxI7X13pd0IzE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kRohQjMnmkSNvItrCYN/0hewbupSqlvXXIaeesX3QUS1dYws5LNdVRyA7+nfeGCxKibHSIEaN8RkA+0bkXrbmrZotPMV1wf/u9nT1OvgrF2XbKjEM/dphtQebGx2kdGuX/L44mp4dYLicY2nKn2F/W1lZ33Aml2NB6ilGiJ7OAk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=bGuCYHyD; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="bGuCYHyD" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563E5Psd010370; Thu, 3 Jul 2025 17:20:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yhtP35pVf7DFU1pDP7Ssg6NzeYQ6u2xcDkQO3anUJPI=; b=bGuCYHyDVzGzxNL6 5OvMAEMwbtmfDRz3WELFBKKMpfUZ9cJiR271x5WSHQu7CR5qlvtR5z4tQ6xjVG3j EHkhTo2s75JaTWzJha+yUWau4VTwa3Tdt0Dhkka3NU3pK3HvHdI0SpF8DZz7Afd0 js5BSvyydWNmfrRw/7RkXVEjANKG8N1HOBRLQBoU8DBePceFtAC5stYlW23hZ1/6 I0AoO1eF/VWUUdI61J17raXNvIM0SjL9DDFWImVHMsOnoRBrHMcXrbtUvJDXEjdY hGNX9Zm4c8DjyWAvpFKBfb0h8KUKzhkl4RHbnMcA4Hry/IZ6pQJoC+tVYmNGY638 uv71IA== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47mw30e9r1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:48 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA01.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKl8b027859 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:47 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:42 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , Subject: [PATCH v3 8/9] media: qcom: camss: Add support for VFE 690 Date: Thu, 3 Jul 2025 22:49:37 +0530 Message-ID: <20250703171938.3606998-9-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=CY4I5Krl c=1 sm=1 tr=0 ts=6866bbf0 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=Xgyty1bFerXyxxqmy-QA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: _3QLWEWm3E31SNBj3DmQl79Jpzqp8BlV X-Proofpoint-GUID: _3QLWEWm3E31SNBj3DmQl79Jpzqp8BlV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0NCBTYWx0ZWRfX4JdVWHOcsK8j KOHXfu/qImoGvQZ4FzgFV9dVV8PqnatepkeqyBtx8YQY4LojKPelnqYUBBrZ8odDRtw1gVYqgMd KF6QtjCH5eH+CsK1cUv30YoGI0+pb6HWt4vg/Xebcj0dQX7i9K6s0dnFnC96vi0ncQfiwSzgzrp PdKKhbS7WiN72ujdt8SfC+fNYd+bwgxXTjAo10uvfBiWNguHN9YFzjTpbVhVRT6uqfySg07wavm DePDSg7GezKTK/YMlIJDj4pESCyxatYZMCSo/IopcUDfUo0nDDYwihhKzcEdABqHmQSXwJ+lm+5 3JUwDLybd3eEMkp3KuMXdk6nMP2uHT9UXcM5iDdZ+1cNYE9hGPpmsoiQUp9H1ElgqXuUg3IsQvm 0fuqvKZc/oHdGYn5XPUuZdkxy5ZC5Utis/yDiYF35lZOZWUYio0uzYWlLVh1vOyHUl17udx8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1011 lowpriorityscore=0 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0 impostorscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030144 Content-Type: text/plain; charset="utf-8" Add support for VFE found on SA8775P (Titan 690). This VFE is different from vfe 780 w.r.t few register offsets. It supports two full and five lite VFE. Co-developed-by: Suresh Vankadara Signed-off-by: Suresh Vankadara Signed-off-by: Vikram Sharma --- .../platform/qcom/camss/camss-vfe-gen3.c | 67 +++++-- drivers/media/platform/qcom/camss/camss-vfe.c | 5 +- drivers/media/platform/qcom/camss/camss.c | 189 ++++++++++++++++++ 3 files changed, 242 insertions(+), 19 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss-vfe-gen3.c b/drivers/m= edia/platform/qcom/camss/camss-vfe-gen3.c index 93d16b0951e9..a5eddc8c76ae 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-gen3.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-gen3.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * Qualcomm MSM Camera Subsystem - VFE (Video Front End) Module gen3 + * Qualcomm MSM Camera Subsystem - VFE (Video Front End) Module gen2 (SA87= 55P/SM8550) * * Copyright (c) 2024 Qualcomm Technologies, Inc. */ @@ -12,13 +12,41 @@ #include "camss.h" #include "camss-vfe.h" =20 -#define BUS_REG_BASE (vfe_is_lite(vfe) ? 0x200 : 0xC00) +#define IS_VFE_690(vfe) \ + (vfe->camss->res->version =3D=3D CAMSS_8775P ? true : false) + +#define BUS_REG_BASE_690 \ + (vfe_is_lite(vfe) ? 0x480 : 0x400) +#define BUS_REG_BASE_780 \ + (vfe_is_lite(vfe) ? 0x200 : 0xC00) +#define BUS_REG_BASE \ + (IS_VFE_690(vfe) ? BUS_REG_BASE_690 : BUS_REG_BASE_780) + +#define VFE_TOP_CORE_CFG (0x24) + +#define VFE_BUS_WM_TEST_BUS_CTRL_690 (BUS_REG_BASE + 0xFC) +#define VFE_BUS_WM_TEST_BUS_CTRL_780 (BUS_REG_BASE + 0xDC) +#define VFE_BUS_WM_TEST_BUS_CTRL \ + (IS_VFE_690(vfe) ? VFE_BUS_WM_TEST_BUS_CTRL_690 \ + : VFE_BUS_WM_TEST_BUS_CTRL_780) +/* + * Bus client mapping: + * + * Full VFE: + * VFE_690: 16 =3D RDI0, 17 =3D RDI1, 18 =3D RDI2 + * VFE_780: 23 =3D RDI0, 24 =3D RDI1, 25 =3D RDI2 + * + * VFE LITE: + * VFE_690 : 0 =3D RDI0, 1 =3D RDI1, 2 =3D RDI2, 3 =3D RDI3, 4 =3D RDI4, 5= =3D RDI5 + * VFE_780 : 0 =3D RDI0, 1 =3D RDI1, 2 =3D RDI2, 3 =3D RDI3, 4 =3D RDI4 + */ +#define RDI_WM_690(n) ((vfe_is_lite(vfe) ? 0x0 : 0x10) + (n)) +#define RDI_WM_780(n) ((vfe_is_lite(vfe) ? 0x0 : 0x17) + (n)) +#define RDI_WM(n) (IS_VFE_690(vfe) ? RDI_WM_690(n) : RDI_WM_780(n)) =20 #define VFE_BUS_WM_CGC_OVERRIDE (BUS_REG_BASE + 0x08) #define WM_CGC_OVERRIDE_ALL (0x7FFFFFF) =20 -#define VFE_BUS_WM_TEST_BUS_CTRL (BUS_REG_BASE + 0xDC) - #define VFE_BUS_WM_CFG(n) (BUS_REG_BASE + 0x200 + (n) * 0x100) #define WM_CFG_EN BIT(0) #define WM_VIR_FRM_EN BIT(1) @@ -39,17 +67,6 @@ #define VFE_BUS_WM_MMU_PREFETCH_CFG(n) (BUS_REG_BASE + 0x260 + (n) * 0x10= 0) #define VFE_BUS_WM_MMU_PREFETCH_MAX_OFFSET(n) (BUS_REG_BASE + 0x264 + (n) = * 0x100) =20 -/* - * Bus client mapping: - * - * Full VFE: - * 23 =3D RDI0, 24 =3D RDI1, 25 =3D RDI2 - * - * VFE LITE: - * 0 =3D RDI0, 1 =3D RDI1, 2 =3D RDI3, 4 =3D RDI4 - */ -#define RDI_WM(n) ((vfe_is_lite(vfe) ? 0x0 : 0x17) + (n)) - static void vfe_wm_start(struct vfe_device *vfe, u8 wm, struct vfe_line *l= ine) { struct v4l2_pix_format_mplane *pix =3D @@ -62,14 +79,23 @@ static void vfe_wm_start(struct vfe_device *vfe, u8 wm,= struct vfe_line *line) =20 writel(0x0, vfe->base + VFE_BUS_WM_TEST_BUS_CTRL); =20 - writel(ALIGN(pix->plane_fmt[0].bytesperline, 16) * pix->height >> 8, - vfe->base + VFE_BUS_WM_FRAME_INCR(wm)); + if (IS_VFE_690(vfe)) + writel(ALIGN(pix->plane_fmt[0].bytesperline, 16) * pix->height, + vfe->base + VFE_BUS_WM_FRAME_INCR(wm)); + else + writel(ALIGN(pix->plane_fmt[0].bytesperline, 16) * pix->height >> 8, + vfe->base + VFE_BUS_WM_FRAME_INCR(wm)); + writel((WM_IMAGE_CFG_0_DEFAULT_WIDTH & 0xFFFF), vfe->base + VFE_BUS_WM_IMAGE_CFG_0(wm)); writel(WM_IMAGE_CFG_2_DEFAULT_STRIDE, vfe->base + VFE_BUS_WM_IMAGE_CFG_2(wm)); writel(0, vfe->base + VFE_BUS_WM_PACKER_CFG(wm)); =20 + /* TOP CORE CFG */ + if (IS_VFE_690(vfe)) + writel(0x600000, vfe->base + VFE_TOP_CORE_CFG); + /* no dropped frames, one irq per frame */ writel(0, vfe->base + VFE_BUS_WM_FRAMEDROP_PERIOD(wm)); writel(1, vfe->base + VFE_BUS_WM_FRAMEDROP_PATTERN(wm)); @@ -92,7 +118,12 @@ static void vfe_wm_update(struct vfe_device *vfe, u8 wm= , u32 addr, struct vfe_line *line) { wm =3D RDI_WM(wm); - writel((addr >> 8) & 0xFFFFFFFF, vfe->base + VFE_BUS_WM_IMAGE_ADDR(wm)); + + if (IS_VFE_690(vfe)) + writel(addr, vfe->base + VFE_BUS_WM_IMAGE_ADDR(wm)); + else + writel((addr >> 8) & 0xFFFFFFFF, vfe->base + + VFE_BUS_WM_IMAGE_ADDR(wm)); =20 dev_dbg(vfe->camss->dev, "wm:%d, image buf addr:0x%x\n", wm, addr); diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/= platform/qcom/camss/camss-vfe.c index 4bca6c3abaff..99cbe09343f2 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe.c +++ b/drivers/media/platform/qcom/camss/camss-vfe.c @@ -346,6 +346,7 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 = sink_code, case CAMSS_8280XP: case CAMSS_845: case CAMSS_8550: + case CAMSS_8775P: case CAMSS_X1E80100: switch (sink_code) { case MEDIA_BUS_FMT_YUYV8_1X16: @@ -910,7 +911,8 @@ static int vfe_match_clock_names(struct vfe_device *vfe, =20 return (!strcmp(clock->name, vfe_name) || !strcmp(clock->name, vfe_lite_name) || - !strcmp(clock->name, "vfe_lite")); + !strcmp(clock->name, "vfe_lite") || + !strcmp(clock->name, "camnoc_axi")); } =20 /* @@ -1974,6 +1976,7 @@ static int vfe_bpl_align(struct vfe_device *vfe) case CAMSS_8280XP: case CAMSS_845: case CAMSS_8550: + case CAMSS_8775P: case CAMSS_X1E80100: ret =3D 16; break; diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index b2398196b9ff..3a11c0a98eb1 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -2709,6 +2709,195 @@ static const struct camss_subdev_resources csid_res= _8775p[] =3D { }, }; =20 +static const struct camss_subdev_resources vfe_res_8775p[] =3D { + /* VFE0 */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe0", "vfe0", "vfe0_fast_ahb", + "cpas_ahb", "gcc_axi_hf", "gcc_axi_sf", + "core_ahb", "cpas_fast_ahb_clk", "camnoc_axi", + "icp_ahb"}, + .clock_rate =3D { + { 0 }, + { 480000000 }, + { 300000000, 400000000 }, + { 300000000, 400000000 }, + { 0 }, + { 0 }, + { 0, 80000000 }, + { 300000000, 400000000 }, + { 400000000 }, + { 0 }, + }, + + .reg =3D { "vfe0" }, + .interrupt =3D { "vfe0" }, + .vfe =3D { + .line_num =3D 3, + .is_lite =3D false, + .has_pd =3D false, + .pd_name =3D NULL, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE1 */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe1", "vfe1", "vfe1_fast_ahb", + "cpas_ahb", "gcc_axi_hf", "gcc_axi_sf", + "core_ahb", "cpas_fast_ahb_clk", "camnoc_axi", + "icp_ahb"}, + .clock_rate =3D { + { 0 }, + { 480000000 }, + { 300000000, 400000000 }, + { 300000000, 400000000 }, + { 0 }, + { 0 }, + { 0, 80000000 }, + { 300000000, 400000000 }, + { 400000000 }, + { 0 }, + }, + + .reg =3D { "vfe1" }, + .interrupt =3D { "vfe1" }, + .vfe =3D { + .line_num =3D 3, + .is_lite =3D false, + .has_pd =3D false, + .pd_name =3D NULL, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE2 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 0, 0 }, + { 300000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 480000000, 600000000, 600000000, 600000000 }, + }, + .reg =3D { "vfe_lite0" }, + .interrupt =3D { "vfe_lite0" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE3 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 0, 0 }, + { 300000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 480000000, 600000000, 600000000, 600000000 }, + }, + .reg =3D { "vfe_lite1" }, + .interrupt =3D { "vfe_lite1" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE4 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 0, 0 }, + { 300000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 480000000, 600000000, 600000000, 600000000 }, + }, + .reg =3D { "vfe_lite2" }, + .interrupt =3D { "vfe_lite2" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE5 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 0, 0 }, + { 300000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 480000000, 600000000, 600000000, 600000000 }, + }, + .reg =3D { "vfe_lite3" }, + .interrupt =3D { "vfe_lite3" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, + /* VFE6 (lite) */ + { + .regulators =3D {}, + + .clock =3D { "cpas_vfe_lite", "vfe_lite_ahb", + "vfe_lite_csid", "vfe_lite_cphy_rx", + "vfe_lite"}, + .clock_rate =3D { + { 0, 0, 0, 0 }, + { 300000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 400000000, 400000000, 400000000, 400000000 }, + { 480000000, 600000000, 600000000, 600000000 }, + }, + .reg =3D { "vfe_lite4" }, + .interrupt =3D { "vfe_lite4" }, + .vfe =3D { + .line_num =3D 4, + .is_lite =3D true, + .hw_ops =3D &vfe_ops_gen3, + .formats_rdi =3D &vfe_formats_rdi_845, + .formats_pix =3D &vfe_formats_pix_845 + } + }, +}; + static const struct resources_icc icc_res_sa8775p[] =3D { { .name =3D "ahb", --=20 2.25.1 From nobody Wed Oct 8 00:44:41 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C08C428937A; Thu, 3 Jul 2025 17:21:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563266; cv=none; b=qWE1MlMoEMLqt3HmaSceMoXiQltcNZnW+H+t6Hyckke7t7pEIxrN3YcJc/3B/NfNMbcy5zKlbJNeVUUTOvIg8ZhHVuRy7KQ3fd9VbPDb1AbWF+Gpt0rDzi3n6VBb3BdSUQE3UMXh1yKXUsJ/E4nVHUbiCnQIBT+7xIsY5M4Gvfw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751563266; c=relaxed/simple; bh=NvqUjbxbFIISlEwyGu+tXkRd60iePl5qOVJpECiHfbY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eTq6A7ySnbd6plIsvLqGzAewDs0ov7M9671GcyZi2QabydWcU97FzAGfWH/PM6/OxeqSLlF9A1ya02kUpMg4epoLECIhtxagbfhXxu3QgbuUO3OtqFCelc06jNbumP16qXkPM6XgBmoHyp2RZjk+kc8CnfYxkLs+UYtRiej2k+A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=ib0J3V6Z; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="ib0J3V6Z" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 563GDdtX030091; Thu, 3 Jul 2025 17:20:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= GYPU+QrHu7GztEOPs6vHQ6hfFFnPNE06a3D5RQIIWjA=; b=ib0J3V6ZY9Jg0PcQ acvfsXbFvAUj44Sg0kxGL3iK04CyRNNwutigcHnz0jW1+qMCbZKXjzshwBRuqtma jEpetSrKL72lQFguL4AtEaok+7P5rQao2SMxTB/h84vEopTHt98GvC4td4DrFFsE W20nbWCmMXeVzB6Vr9a+uSaWaTvIlRCs1IqtzHZKxrwuF/N35Ukb4rpKdS4Vo8OY 0dPPfDDDoI0VQndbN3TKIhdoeqw+GHr6gS31MQcid+7Kx/ixdD+2C6pIsIR0oWdN 8tMnqMhIwVsYDL/rnR7DyiA7IH906YuNC3BWvaXsdAI8C5ho9FSPJ+q2BMwyA7mD f3gqOw== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47mhxn7wf6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Jul 2025 17:20:54 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA03.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 563HKrgC028766 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 3 Jul 2025 17:20:53 GMT Received: from hu-vikramsa-hyd.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 3 Jul 2025 10:20:47 -0700 From: Vikram Sharma To: , , , , , , , , , , , , CC: , , , , , , Subject: [PATCH v3 9/9] media: qcom: camss: Enumerate resources for SA8775P Date: Thu, 3 Jul 2025 22:49:38 +0530 Message-ID: <20250703171938.3606998-10-quic_vikramsa@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> References: <20250703171938.3606998-1-quic_vikramsa@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzAzMDE0MyBTYWx0ZWRfX2eZwezeml638 bI3JRKvDtufWnNWyvjvEA9zP1nshBm9d1gnKTWG4Tj0GQaxyYz8kYi8TefOBApeuF+/tOWnGhaR ToffxlBeF0d3ZyD75OuNzYd1EVWYcmfKNDghy32X29AU8cG0iEeZu+fG8B2mdsKOhZbIzmxrARL FveTBiZMfTn3PyjuyKyGX7by9CP/Z3sQbdJFiu0dMW8NG5aHfKG2wLXmWuyuEisSMantkjovOTM lQbwFDxiUGkP3ggdXYbOhK7D46rRMz5lwP4hd03N6jvIv/QRtjNjxX+hoXwJmyY4PXHII7ecNZw ImR85BCnpnS2KvkRqcmoM6uwwxZ92j3TyrYHkmpnMb45rThWGzRiGOMSyKJhy7qd98B+UNTp5Rn +yU6kuHhZOwfvdJ4WBenClhaFugbuiVOpvcljtcxZLvwtQx5n9ByzrmZhTfhS760gBGUOFEK X-Authority-Analysis: v=2.4 cv=EbvIQOmC c=1 sm=1 tr=0 ts=6866bbf6 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=SWFg1dtF3-VgytXPzhIA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 24654YBo-TEG_Vfg8g132KMET8klpd8z X-Proofpoint-GUID: 24654YBo-TEG_Vfg8g132KMET8klpd8z X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-03_04,2025-07-02_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxscore=0 priorityscore=1501 mlxlogscore=999 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507030143 Content-Type: text/plain; charset="utf-8" Enumerate csiphy, csid and vfe resources for SA8775P. Signed-off-by: Vikram Sharma Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/camss.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 3a11c0a98eb1..b6e80088d1df 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -4185,7 +4185,14 @@ static const struct camss_resources msm8996_resource= s =3D { static const struct camss_resources sa8775p_resources =3D { .version =3D CAMSS_8775P, .pd_name =3D "top", + .csiphy_res =3D csiphy_res_8775p, + .csid_res =3D csid_res_8775p, + .csid_wrapper_res =3D &csid_wrapper_res_sa8775p, + .vfe_res =3D vfe_res_8775p, .icc_res =3D icc_res_sa8775p, + .csiphy_num =3D ARRAY_SIZE(csiphy_res_8775p), + .csid_num =3D ARRAY_SIZE(csid_res_8775p), + .vfe_num =3D ARRAY_SIZE(vfe_res_8775p), .icc_path_num =3D ARRAY_SIZE(icc_res_sa8775p), .link_entities =3D camss_link_entities }; --=20 2.25.1