From nobody Tue Dec 2 00:05:24 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 249BD3164BD for ; Wed, 26 Nov 2025 09:40:10 +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=1764150013; cv=none; b=Zl/YDJoUlPOawNFdWzbXjlZkqYoVANJvGM+4lTKyEv5HeBtxiliAJVf+kaScF7NEyAfxLEhhC45k0uxQO6X61FLv3Sj4bArAlUBrIhWLksbwgP9KyoNqFSRlHpQQnh+9In6cHjXypUuxNqcFpYgVjR0QRoiRXIDUv29RBSEm3G8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764150013; c=relaxed/simple; bh=BdLIVz6LV0BZOCe4sxOBNulMnhIH0NsgIFsIkmeLvPM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ala2oW7Uz2AaY6sjrzGBlj7HHlQGs2yg3KJPyaoj/RRi4xmcD06o+rgDv33nbNOnZga9db15fEypcyoyFXumt3RIfYfju+bnoxR2eQ1evHw2+hPSgNEeKNGBnpaDwdgTSp8BFmuj4lnuH5TsLSwQ+KVckGo249zM2peyswj5EP8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ibdDzwTS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WfTrX/M4; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ibdDzwTS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WfTrX/M4" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AQ2Uihd3706626 for ; Wed, 26 Nov 2025 09:40:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aQJA1ELcDGRUgHNOuAM4muGRHTZ3uoP3b4oY3AK+qaM=; b=ibdDzwTSOIQfwQ7O 50i0laNIUDdXldGx+ty+2dA7h0lmvbi4QbNUPhc1LQ4V4Nguh2R692ZvMcXRoeR3 2D65AgK5jVzd0Z6oEoKITlytcQyoI0e3kBmFbOQsV4+UqVgTFopJ5Zyd+KLHRdy7 pCJ/FYqbUpDCiTmArcct2E40Z6WPABvLVxioFWK4xUQDdPErbMSxwNGs0/crl2be m4kwzoZAknIjekKvhVna5WKZXwwFTWdnoEk7E1R2lla4azs7GP+XiZYzG2BXU0k5 bKza8hHaxXITBwUccsfyRlbb+Cvf2ehkl1PcvoMMV+x4ZEW4CYw7D+1EpYEYF2n1 vhlTFA== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4anduftx53-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Nov 2025 09:40:09 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-7b82c2c2ca2so14183958b3a.1 for ; Wed, 26 Nov 2025 01:40:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1764150009; x=1764754809; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=aQJA1ELcDGRUgHNOuAM4muGRHTZ3uoP3b4oY3AK+qaM=; b=WfTrX/M4YxtmcvbO05q6Xt8XYmDbYQsW0gYMW+LZq7Y3GjpfP3okSkyjw1Vu0AVeij 3Qo4JeSaj66EtthzaDYpOPFqInrf9v+y4d/3+oW/VslwpiDDChP5uQR7nVSStphL+NER AIuC4JA474sU3rXKjMwf4hLeKzqruEO9m3OKRTrJzKi9bYPvy4va2zb2CZjQAx7aigwe /M42n3Y2PXj+fAiw7kAC/w0W0R/UkKJ6v66o8imLc3I1G0M45F2Ejf4oK2epJKWc8ntx h7FbTR9mLeAfLCdKXP85rV4nqOTjuQZwn97dtAwBA7rjZwugKsAnmCLspJvjp3uz1m01 ayzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764150009; x=1764754809; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=aQJA1ELcDGRUgHNOuAM4muGRHTZ3uoP3b4oY3AK+qaM=; b=efFAR3DoaoJCBWUrExBXAlTj1nm6ZG3s5iljjpkJbDfTeEH4PcE7uWTKADmJeMtMiQ H3tI2ysiwSTFFVr9C6DRvHwHq3dj627JOz3p18LFimh5cuZubmcKcjfg+rbcjAU1hB1F Av8YU57adO8PPup7NJ6jkqrca1NoBo1XZHM+4h1WEx+HKANkr+kILjQleYD2eaatPUY9 TQ9ZcLXRUUL3sqETyqlsFMtszOBDFZgAoTeeIAIpksZtd1fe35kfiamD/FUN98ucAVo1 lP2qM+KRR8oVrrlgC4v8GKA4WEL5EcnJrMl2IjTuzX2C0HJw/0p+sAsdRcssIJmpRZj3 /r7g== X-Forwarded-Encrypted: i=1; AJvYcCXC3PaHu+wUpkyiWagloYXKuktZojtfPLZr3AI04hQJRoUPsRI5AnnRmaskNRfssua9tlpoRm9ip6qz0Vc=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4gfGbewINlUxjl6lupNYWVAaDsdqIev/TaX16M6Iuu3FNcE4I WbulzzXl3nw0BYccfYwlb6gZVoLKJGjY/CvC7g+BueqLFh8b7KYkSGfeqVCKWF/xSHnamV2U0ek Xa3qKgwLNDRiRvhrsFoUPYy3Bd+uroWDT8cZoUMHaK5p1k1bQD7ls2jky+55mEW8qRo1nEzxGRR Q87Q== X-Gm-Gg: ASbGncvWHq8W2XSPXkEk4zBM49/RrbS6nqYLRcuCEtf18G6NaNPcIb9mTRaDClq9Jyi lXmx/W9DQ1Le+LJ4+nGEqTgwe6sA310VTb4AfbhjkJM8XraDmDIMHWg9zwo/pHKsz93Ic07+12W cQZnWB+cAafUCFgblRDIhye74AF3BM2va3fxNdEBB66gNXvPM6DShy6XKCmR/y0TgdeBlf3npZ4 wJ13WsBxFsPOwgMDFH9NsBvfayhvbYOeKKHnCdNxyJosW1CGfQH50cEdZ4g+luV9cz/zpFl1yiO yL3Sk+TL/nbqXAZMp4t8CmVPZgzeU7NxSVKnAbC41nW+Q3IDNFTm932kcBf8tlxLPEEVKKFlu1P UdruEogt76+XiWsD4/qvI6R8OodppYK5O7Q4QB+O4jpyGi18X7X8qdolMV9E1LzWP X-Received: by 2002:a05:7022:f683:b0:11b:c1fb:896 with SMTP id a92af1059eb24-11c9d70a12bmr15934811c88.4.1764150008638; Wed, 26 Nov 2025 01:40:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IFma7DXOY5J0a2udLEd9VZx32/VBsAfYAE3YE9AX8DnGR4BKnB2PUk0sCrjgOf9oPepYtlW+w== X-Received: by 2002:a05:7022:f683:b0:11b:c1fb:896 with SMTP id a92af1059eb24-11c9d70a12bmr15934789c88.4.1764150008033; Wed, 26 Nov 2025 01:40:08 -0800 (PST) Received: from hu-hangxian-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-11c93e3e784sm69150307c88.5.2025.11.26.01.40.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Nov 2025 01:40:07 -0800 (PST) From: Hangxiang Ma Date: Wed, 26 Nov 2025 01:38:37 -0800 Subject: [PATCH 4/7] media: qcom: camss: csiphy: Add support for v2.3.0 two-phase CSIPHY Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251126-add-support-for-camss-on-sm8750-v1-4-646fee2eb720@oss.qualcomm.com> References: <20251126-add-support-for-camss-on-sm8750-v1-0-646fee2eb720@oss.qualcomm.com> In-Reply-To: <20251126-add-support-for-camss-on-sm8750-v1-0-646fee2eb720@oss.qualcomm.com> To: Loic Poulain , Robert Foss , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Todor Tomov , Vladimir Zapolskiy , Mauro Carvalho Chehab , Bryan O'Donoghue Cc: linux-i2c@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, jeyaprakash.soundrapandian@oss.qualcomm.com, Vijay Kumar Tumati , Hangxiang Ma X-Mailer: b4 0.14.3 X-Authority-Analysis: v=2.4 cv=C53kCAP+ c=1 sm=1 tr=0 ts=6926caf9 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=UiSUrLz6K6kVaq6zp58A:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI2MDA3OCBTYWx0ZWRfX9QmE0FG9gZsC dKOsqmBTUdAwuFp6GV2d4Lk88DFzjKOjWXT1AXGbSPcK7Ik1HkZxX/nLyDZbYH+D8hABrmgIAa+ 7wqlzY4q2uWHfr0RDuFD3P4xQGU8VhnXAPYAw5S5/e1LCVotcE/vzxz2uGNNuZKX8u2eDd3FXzh OgRKzjCZObt+lUWMcd+JozeLp7bv5Ji7xme65FWlZ4ZAPNOs1/O7KB61wZeuGn09VX62nolI36C YOotp3F+/uNu5wTMXIJWZ3qJJPjTUWGKjlgMqWxl5CUS1Bph6Lts+3TuajJ70gYNKVCRSt+l3wz Se1EfPJNCpqhko31n12lL5jVz03bgPnrhpdwuWwewVcLwFFwkNlGfYgE/qsg9pPL6FuD5zy+dZu LYek4gVTqVJ7+Sr2Tkyba4ifG+RVoA== X-Proofpoint-ORIG-GUID: zXs6y7kdGHcrqrYiSWlFClWK1tQs4KiR X-Proofpoint-GUID: zXs6y7kdGHcrqrYiSWlFClWK1tQs4KiR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-25_02,2025-11-25_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 adultscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511260078 Add more detailed resource information for CSIPHY devices in the camss driver along with the support for v2.3.0 in the 2 phase CSIPHY driver that is responsible for the PHY lane register configuration, module reset and interrupt handling. Additionally, generalize the struct name for the lane configuration that had been added for Kaanapali and use it for SM8750 as well as they share the settings. Signed-off-by: Hangxiang Ma --- .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 11 ++- drivers/media/platform/qcom/camss/camss.c | 107 +++++++++++++++++= ++++ 2 files changed, 114 insertions(+), 4 deletions(-) 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 f9db7e195dfe..157e946f67db 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 @@ -684,9 +684,9 @@ csiphy_lane_regs lane_regs_sm8650[] =3D { {0x0c10, 0x52, 0x00, CSIPHY_DEFAULT_PARAMS}, }; =20 -/* 3nm 2PH v 2.4.0 2p5Gbps 4 lane DPHY mode */ +/* 3nm 2PH v 2.3.0/2.4.0 2p5Gbps 4 lane DPHY mode */ static const struct -csiphy_lane_regs lane_regs_kaanapali[] =3D { +csiphy_lane_regs lane_regs_v_2_3[] =3D { /* LN 0 */ {0x0094, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x00A0, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, @@ -1134,6 +1134,7 @@ static bool csiphy_is_gen2(u32 version) case CAMSS_845: case CAMSS_8550: case CAMSS_8650: + case CAMSS_8750: case CAMSS_8775P: case CAMSS_KAANAPALI: case CAMSS_X1E80100: @@ -1250,9 +1251,11 @@ static int csiphy_init(struct csiphy_device *csiphy) regs->lane_regs =3D &lane_regs_sa8775p[0]; regs->lane_array_size =3D ARRAY_SIZE(lane_regs_sa8775p); break; + case CAMSS_8750: case CAMSS_KAANAPALI: - regs->lane_regs =3D &lane_regs_kaanapali[0]; - regs->lane_array_size =3D ARRAY_SIZE(lane_regs_kaanapali); + /* CSPHY v2.4.0 is backward compatible with v2.3.0 settings */ + regs->lane_regs =3D &lane_regs_v_2_3[0]; + regs->lane_array_size =3D ARRAY_SIZE(lane_regs_v_2_3); regs->offset =3D 0x1000; regs->common_status_offset =3D 0x138; break; diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/plat= form/qcom/camss/camss.c index 805e2fbd97dd..bfc942635682 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -3870,6 +3870,111 @@ static const struct resources_icc icc_res_sa8775p[]= =3D { }, }; =20 +static const struct camss_subdev_resources csiphy_res_8750[] =3D { + /* CSIPHY0 */ + { + .regulators =3D { "vdd-csiphy0-0p88", "vdd-csiphy0-1p2" }, + .clock =3D { "csiphy0", "csiphy0_timer", + "cam_top_ahb", "cam_top_fast_ahb" }, + .clock_rate =3D { { 400000000, 480000000 }, + { 400000000 }, + { 0 }, + { 0 } }, + .reg =3D { "csiphy0" }, + .interrupt =3D { "csiphy0" }, + .csiphy =3D { + .id =3D 0, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sdm845 + } + }, + /* CSIPHY1 */ + { + .regulators =3D { "vdd-csiphy1-0p88", "vdd-csiphy1-1p2" }, + .clock =3D { "csiphy1", "csiphy1_timer", + "cam_top_ahb", "cam_top_fast_ahb" }, + .clock_rate =3D { { 400000000, 480000000 }, + { 400000000 }, + { 0 }, + { 0 } }, + .reg =3D { "csiphy1" }, + .interrupt =3D { "csiphy1" }, + .csiphy =3D { + .id =3D 1, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sdm845 + } + }, + /* CSIPHY2 */ + { + .regulators =3D { "vdd-csiphy2-0p88", "vdd-csiphy2-1p2" }, + .clock =3D { "csiphy2", "csiphy2_timer", + "cam_top_ahb", "cam_top_fast_ahb" }, + .clock_rate =3D { { 400000000, 480000000 }, + { 400000000 }, + { 0 }, + { 0 } }, + .reg =3D { "csiphy2" }, + .interrupt =3D { "csiphy2" }, + .csiphy =3D { + .id =3D 2, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sdm845 + } + }, + /* CSIPHY3 */ + { + .regulators =3D { "vdd-csiphy3-0p88", "vdd-csiphy3-1p2" }, + .clock =3D { "csiphy3", "csiphy3_timer", + "cam_top_ahb", "cam_top_fast_ahb" }, + .clock_rate =3D { { 400000000, 480000000 }, + { 400000000 }, + { 0 }, + { 0 } }, + .reg =3D { "csiphy3" }, + .interrupt =3D { "csiphy3" }, + .csiphy =3D { + .id =3D 3, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sdm845 + } + }, + /* CSIPHY4 */ + { + .regulators =3D { "vdd-csiphy4-0p88", "vdd-csiphy4-1p2" }, + .clock =3D { "csiphy4", "csiphy4_timer", + "cam_top_ahb", "cam_top_fast_ahb" }, + .clock_rate =3D { { 400000000, 480000000 }, + { 400000000 }, + { 0 }, + { 0 } }, + .reg =3D { "csiphy4" }, + .interrupt =3D { "csiphy4" }, + .csiphy =3D { + .id =3D 4, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sdm845 + } + }, + /* CSIPHY5 */ + { + .regulators =3D { "vdd-csiphy5-0p88", "vdd-csiphy5-1p2" }, + .clock =3D { "csiphy5", "csiphy5_timer", + "cam_top_ahb", "cam_top_fast_ahb" }, + .clock_rate =3D { { 400000000, 480000000 }, + { 400000000 }, + { 0 }, + { 0 } }, + .reg =3D { "csiphy5" }, + .interrupt =3D { "csiphy5" }, + .csiphy =3D { + .id =3D 5, + .hw_ops =3D &csiphy_ops_3ph_1_0, + .formats =3D &csiphy_formats_sdm845 + } + }, +}; + static const struct resources_icc icc_res_sm8750[] =3D { { .name =3D "ahb", @@ -5300,7 +5405,9 @@ static const struct camss_resources sm8650_resources = =3D { static const struct camss_resources sm8750_resources =3D { .version =3D CAMSS_8750, .pd_name =3D "top", + .csiphy_res =3D csiphy_res_8750, .icc_res =3D icc_res_sm8750, + .csiphy_num =3D ARRAY_SIZE(csiphy_res_8750), .icc_path_num =3D ARRAY_SIZE(icc_res_sm8750), }; =20 --=20 2.34.1