From nobody Thu Oct 2 22:52:46 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 27B90338F36; Tue, 9 Sep 2025 13:40:21 +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=1757425223; cv=none; b=Cheu9KsBnL+Jx76asN1el9lQAMpAeyVb0QeXsUXJVkphjG9kB5XmcZ5+cvCBUymkSxpnykhEbSLf4buHvsAMgVfAqUEIzoVbzGLEdhHN5/ZOke2rU4Z3RmqH5TepAYNSH8TrxY9EZIOPnP3qy1+PoksrZnDi3HthNMgiI4D6hlc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425223; c=relaxed/simple; bh=XHI8VfssT8TXCoN4er/kyiGN6nl4rHF+YYu+JVq/pus=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=O5nfl5hWJCRD/bLxxVAv31z6gmIVlIaqv9YCst8WPDxGHvpnIVCSmRxxYIVtAmRdm8q92tv91al5pBp/dbgDPVGaf/yHLBns0TEhg8Q4cVTD31RGd3iMaeMs9VQrbcArH4DYuktwV093r9uBiwN5HN5LOQ6xcmQ2aNGxekDsoZ4= 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=cLCN+Vto; 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="cLCN+Vto" 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 5899LktO032157; Tue, 9 Sep 2025 13:39:35 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= l8/RDSr3wxyj04sQTxGcHVZE/ZHAVLo1f9za9ix8zR4=; b=cLCN+Vtoy8W4IzcL eNzhtnu8AryaJ/R/eGelaHYJ+Umg1WF87iEfh9Y54QUpIT6/E5arSPc4iUzrswDL pDPUf9Rc9plBXFvl/wKJClIqR+M7apohqH+5ctNv6O3Yh1rstht52Iek9c38OFo8 /H0BO/8pEI/1xmmDe/+TaXnnnMxFMLR/pPtaZhp2jMQXSRDxf3Z2WoZgWP5h9f2r m7a10q9v9dMBgMH/5eiL5jwFC+ZTBcEo685lzXR1wp9P3Acmyopusxtbm8C4CE7p F3YEXmxoSFW5W72/X027CzucKeRZ7+tQT7V/RAD8UN52pyv04eyAuvZoo1cW0kho ZvtiKA== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 490bws8fs6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:39:34 +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 589DdYEg020506 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:39:34 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:39:28 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:10 +0800 Subject: [PATCH v5 01/10] clk: qcom: gcc-ipq5424: Correct the icc_first_node_id 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: <20250909-qcom_ipq5424_nsscc-v5-1-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie , Konrad Dybcio X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1283; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=XHI8VfssT8TXCoN4er/kyiGN6nl4rHF+YYu+JVq/pus=; b=zam1EripnsR9vgl6rZJYwN1dKZYirHmTZSHmnnCYVnzhOmZrFJezQb4Q6gVBI5ig5iUFrFEwy ayugn0sRcXSAMYAGDqPCe+3NjRvu6fkGIA6yPr1hc036ATwp0QSJtNb X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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-ORIG-GUID: LzReKnMoRqU0Hzv0BJcpPR7uiJsGCzxw X-Proofpoint-GUID: LzReKnMoRqU0Hzv0BJcpPR7uiJsGCzxw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA2MDAxOCBTYWx0ZWRfXx1mbhu7F9xQA q0KRvEiDnD/7RcIuZAL4pLOHSJghCGkVz6kXL+eeH+l6FnY2EMsBX8M6wjFU87CvuqXwl1MIuYG LH5xov53E7u5Ssze09ViWs0lwrH95vC6ubGVmd00cuiUApA1RMARfOl2PwmtCRZWRVwd00WiPdb esm6HqwW2iV6a0xewlNgQATDp6ymdE1kXPVfAsvpg3Cv4WeWUcEoHwpIzAHFJEwUk85KopcuWjm Cyex3+RXd3KmXqLTwDpDMdCfw3CdV47fm8tzuZtea2RFV+shx/6B0ZbJgTlbRXUKbXzEg57ciZP vC87J1y789VfBplSDUtoqFkuP+8EBjEMDBEu0XEoNWhNnFAHadJI6bqrx7Luuacq0xS+PnA42+l pDMLUPMz X-Authority-Analysis: v=2.4 cv=G4kcE8k5 c=1 sm=1 tr=0 ts=68c02e16 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=yUHhXAd9wW1YfvQ6HRQA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 bulkscore=0 suspectscore=0 clxscore=1015 malwarescore=0 adultscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509060018 Update to use the expected icc_first_node_id for registering the icc clocks, ensuring correct association of clocks with interconnect nodes. Fixes: 170f3d2c065e ("clk: qcom: ipq5424: Use icc-clk for enabling NoC rela= ted clocks") Reviewed-by: Konrad Dybcio Signed-off-by: Luo Jie --- drivers/clk/qcom/gcc-ipq5424.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/qcom/gcc-ipq5424.c b/drivers/clk/qcom/gcc-ipq5424.c index 3d42f3d85c7a..71afa1b86b72 100644 --- a/drivers/clk/qcom/gcc-ipq5424.c +++ b/drivers/clk/qcom/gcc-ipq5424.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2018,2020 The Linux Foundation. All rights reserved. - * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 #include @@ -3284,6 +3284,7 @@ static const struct qcom_cc_desc gcc_ipq5424_desc =3D= { .num_clk_hws =3D ARRAY_SIZE(gcc_ipq5424_hws), .icc_hws =3D icc_ipq5424_hws, .num_icc_hws =3D ARRAY_SIZE(icc_ipq5424_hws), + .icc_first_node_id =3D IPQ_APPS_ID, }; =20 static int gcc_ipq5424_probe(struct platform_device *pdev) --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 5CE2434A309; Tue, 9 Sep 2025 13:40:25 +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=1757425227; cv=none; b=qP/fwFwVQILmTwYmtzx7ZW0KSVLAQGrS8NxvM8pfL7ikKJDvGTsbPSBaTnGawhjUeykbBRyMYZqmFR2yr1ZbEz7XZqTmkLJbSSeJKQ94GckmaeG0NW1Ifjg5oN3T4Hp22sn44Nb2VfkxPwE0suaAZiQtAEudRROUMkcDQ2jMNH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425227; c=relaxed/simple; bh=3iKwOo2CrK/eKNakDQZO7OeL5ujpqeuVAaG1t+5mbX8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Ztzq+/I34VcrIU5OCKLt2towldIXC5lsqVANH6pPF+GIz8wHiuLIN43P35gYY4yO/DDc8VeMuhjo+CG0qENS05qiYud8tZ/8+2+sD7b60stWGIMhgN74b9KoaY1/V5PddLmGcNanDrIo/gRVWxZae+qZ60LTl+u8kMANscQmFtc= 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=mn3BZzLc; 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="mn3BZzLc" 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 5899LQe9009065; Tue, 9 Sep 2025 13:39:41 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= kyvU4wcWd3fvz/FIz5RRK9/DHmQiARXoQLs6yV0Drq4=; b=mn3BZzLc3R7a4NFV QD/Ysya3lcA75vOPmKoxpdK+l77EdUu1V5lE/Jko2Vw0r74mlq8kcrvi2Xc5d3e5 SpTvN8F+9Tiyjod+jPE/l7jpp7c2iqtCI1iyslvn4exeynqisuVxqk8rvQfAO9Rk HHIZeG3XzcG5+dsov2z1vwmoPYjh4ekYQO4ImyXm2q3tt6//HGFnx3vAcvFuTD7Q flMMVe/91M4joOaM0sefobppvwiXHorT9edSmCayOX+Dzkf89iNdGIRfz7qgTXOS nhzkOX28eXpa6mi7RZ+gMspCkYRfrMRHmp71UYo/5S70GF+BpuykwOSCarnGWJHp kePBhQ== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 491qhdw5ut-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:39:40 +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 589DdeHb020898 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:39:40 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:39:34 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:11 +0800 Subject: [PATCH v5 02/10] dt-bindings: clock: Add required "interconnect-cells" property 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: <20250909-qcom_ipq5424_nsscc-v5-2-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1664; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=3iKwOo2CrK/eKNakDQZO7OeL5ujpqeuVAaG1t+5mbX8=; b=MZjBVf1rAhYMYfZQWlSQJHWRy9JD3k4+4u8Z2jlxXQSxoKN2xZkPukk/PxJ2MXWlvQkZAV6QD RDDEtdP9AQHDnMig6fw/fCYJyp+VeDIsRM3LzKa+bbUwn+vUzv9icd7 X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: unXK5unQp9c9HotljCgXpG1vFI2YG2df X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDAzNCBTYWx0ZWRfX7EIJvSwkhpQ+ APzL9fuJJ9yMl8lGJKjXbJ/TPxizblAvlR2XQvVYplOnMH3O7frUBY7SgUaNZezZcXWdmfNalI1 lNn5wjGSpr27hdyfJWGMdXsQJNPIZqcQzmAMF5S6cVOpF4Ro5eAPaWO8suayqODGSSbRWOXVVkR U54vR3SI18VvmOdY8kJX7WrMwweAnf8ff7cki3wog8zO4aKZ0fm9GoYVjaomvArthZ+wl0/O0Se fJwh3KVwdR2p4OPY134hSQlrxx3QMbtg1NFVt0W4q+o+kVMYsYWyes+h16i+w1SOzHZ2e5vsznq peV//XGbq35j/gSC+GF8trwWQx2fOzE1cFcCqVEpsicLcxXNReCwnuZVtarsCm/XDJ/+fTDsI05 z8TTnShm X-Authority-Analysis: v=2.4 cv=YOCfyQGx c=1 sm=1 tr=0 ts=68c02e1c cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=TKdP9mIMqFxeD0qFjnIA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: unXK5unQp9c9HotljCgXpG1vFI2YG2df X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509080034 The Networking Subsystem (NSS) clock controller acts as both a clock provider and an interconnect provider. The #interconnect-cells property is mandatory in the Device Tree Source (DTS) to ensure that client drivers, such as the PPE driver, can correctly acquire ICC clocks from the NSS ICC provider. Although this property is already present in the NSS CC node of the DTS for CMN PLL for IPQ9574 SoC which is currently supported, it was previously omitted from the list of required properties in the bindings documentation. Adding this as a required property is not expected to break the ABI for currently supported SoC. Marking #interconnect-cells as required to comply with Device Tree (DT) binding requirements for interconnect providers. Fixes: 28300ecedce4 ("dt-bindings: clock: Add ipq9574 NSSCC clock and reset= definitions") Signed-off-by: Luo Jie --- Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yam= l b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml index 17252b6ea3be..fc604279114f 100644 --- a/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml @@ -57,6 +57,7 @@ required: - compatible - clocks - clock-names + - '#interconnect-cells' =20 allOf: - $ref: qcom,gcc.yaml# @@ -94,5 +95,6 @@ examples: "bus"; #clock-cells =3D <1>; #reset-cells =3D <1>; + #interconnect-cells =3D <1>; }; ... --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 E97A834AB15; Tue, 9 Sep 2025 13:40:25 +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=1757425227; cv=none; b=OMxnqfWYHQO7Ns2Y4nyJzryF7kSJMMWTw6rBKp5QjVSZ/k9i28wDhSZrUtCyh+wVC/ihDMmsE9laAf0LMEmxhhvxaGthksObwTDMfSeLFMtT1+uMW2c3j449JG6Dp4MAx3YnFI9uIG0wLbY03Yd329KhzToCE7/SuIwiP/29PEg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425227; c=relaxed/simple; bh=3kI7v3n2uneHPtTTq+P96g+GGegxV6qWC49TJxH8Jfc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=o9ODPGG36eT0fsuraJKZCjGAB9weTy+8dww+VW92HjGkk6RkVy5VGLnMLLXqFI07duT4AmOgz7S/BbfMmcuHgl7SZnsVfFiPlbYo9T5ikJm8X+Wsps9hN3cWJDjY46GAsg9y0CfLc5Jo+zQpTM1TdACpkPd6+HY1yzep8FBm6yQ= 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=Cck1+ySG; 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="Cck1+ySG" 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 5899M1rd002266; Tue, 9 Sep 2025 13:39:46 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= EK88bIxyb7opoCqG7E3Er3n2due1WnCsiMk8VTgRnkg=; b=Cck1+ySG6KmwvRMb +xZOqT5qGopqZkTuPROUC/3VGwdai7RDCOvCiKrp/X7HMmllxAR6VTZdeM0ko2d2 EUdIpScdIO7A/smfkfn35kRz5r72UduTOfgwmjENvFSDLA8UnURHluENvouuJvu5 +h8NcJ+Nr4K6+LCONNtO+CvqMrT6yufsTc+Vt2AcnwHE7vV3wEv0Ym2a5Ky5Cg0p kgVoohgcdGblWhMZ/vAXiLsfxmm49EPdAOsqWHwn7wu86BwPLY8ARCzUuz71YsI+ 8NILlCZyiFw1y2aHo4A+s0hMfTgGAiiK2QJ5BFG8a5PlnwI78pbC/BB7oF/ua06r xhZ+YQ== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 490dqg071k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:39:46 +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 589Ddksv030654 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:39:46 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:39:40 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:12 +0800 Subject: [PATCH v5 03/10] dt-bindings: interconnect: Add Qualcomm IPQ5424 NSSNOC IDs 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: <20250909-qcom_ipq5424_nsscc-v5-3-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1518; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=3kI7v3n2uneHPtTTq+P96g+GGegxV6qWC49TJxH8Jfc=; b=IZg0E44KGnEM3xNJAoKQWTbB+N6Ji9U+pMScNUAvLNUUXe3vyJdlY88ASgBADjwLdLw9D+Lnx x78W1LXWkl3CBQ8Z36FLruaE2NAoaMDg8fMz5edNb5Y562LvvAu08E2 X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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-ORIG-GUID: zC3QQY8tBfDoEjnQ23clOKg6F3AROI1U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA2MDAzNSBTYWx0ZWRfX/1j+DvEvv3q2 H80zNSJ12JCkKJHveCEsvmC5sQfqtsDaN/skOoQGzW3dnMYgRL/Hq+pwvQEbChr6l4jNJyajhY1 RMNlVf4JTdarJiOvyqSLFqWjLlAqTxsvcusvnZU8XazBjCL4BrCSt4cJkw4DzJqUEQITiab9+rO Zecp8ADWueqGJRYY/IkJVP2f1dvLIZ+rx+GHmko+FOE1SS10OI3j+Vn3O0LBlXJboQOp2jBc9b2 bTIFRIzpJC5VrJCpg9ZvuPXeXfJd4ogqNMI0TUrnpuWHHXjZS6jeB32BQALP91Nl1PiybZBV/yd GuIb2kbcubm5ffvS3+W7QQk5ehtN3bSaE6FcW+zWjb+yyhlzWFfliLUjM/HktaqLPkX0/qIoDTx ibuVfZk9 X-Proofpoint-GUID: zC3QQY8tBfDoEjnQ23clOKg6F3AROI1U X-Authority-Analysis: v=2.4 cv=N8UpF39B c=1 sm=1 tr=0 ts=68c02e22 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=Qcuqu0ky38DJWFOqejsA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509060035 Add the NSSNOC master/slave ids for Qualcomm IPQ5424 network subsystem (NSS) hardware blocks. These will be used by the gcc-ipq5424 driver that provides the interconnect services by using the icc-clk framework. Signed-off-by: Luo Jie --- include/dt-bindings/interconnect/qcom,ipq5424.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/dt-bindings/interconnect/qcom,ipq5424.h b/include/dt-b= indings/interconnect/qcom,ipq5424.h index afd7e0683a24..c5e0dec0b300 100644 --- a/include/dt-bindings/interconnect/qcom,ipq5424.h +++ b/include/dt-bindings/interconnect/qcom,ipq5424.h @@ -20,6 +20,26 @@ #define SLAVE_CNOC_PCIE3 15 #define MASTER_CNOC_USB 16 #define SLAVE_CNOC_USB 17 +#define MASTER_NSSNOC_NSSCC 18 +#define SLAVE_NSSNOC_NSSCC 19 +#define MASTER_NSSNOC_SNOC_0 20 +#define SLAVE_NSSNOC_SNOC_0 21 +#define MASTER_NSSNOC_SNOC_1 22 +#define SLAVE_NSSNOC_SNOC_1 23 +#define MASTER_NSSNOC_PCNOC_1 24 +#define SLAVE_NSSNOC_PCNOC_1 25 +#define MASTER_NSSNOC_QOSGEN_REF 26 +#define SLAVE_NSSNOC_QOSGEN_REF 27 +#define MASTER_NSSNOC_TIMEOUT_REF 28 +#define SLAVE_NSSNOC_TIMEOUT_REF 29 +#define MASTER_NSSNOC_XO_DCD 30 +#define SLAVE_NSSNOC_XO_DCD 31 +#define MASTER_NSSNOC_ATB 32 +#define SLAVE_NSSNOC_ATB 33 +#define MASTER_CNOC_LPASS_CFG 34 +#define SLAVE_CNOC_LPASS_CFG 35 +#define MASTER_SNOC_LPASS 36 +#define SLAVE_SNOC_LPASS 37 =20 #define MASTER_CPU 0 #define SLAVE_L3 1 --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 7FB0B31CA52; Tue, 9 Sep 2025 13:40:21 +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=1757425223; cv=none; b=Me9gqcD8nV+v0H1DxKchaUhPl0TkVcr0F90A0UWhbN4FDkCZ5UTS7qRVfxYLcXwwFPg8iGu++Lyg8hPDplJr6UNGfRpmnHwBJlC1IDoZYNSkWWU8OIJy2SP2M+xbzxRvLAdY+8pQaGBR739hWBsHmoZPkM3kKgv8tCoo6Y1Mpmw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425223; c=relaxed/simple; bh=NlXEF3VmiXF2+P9u5NoblgQUs0TpNmThc3On54QrJMw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=MFf/ZYl7yFeSRe25KYBP3UP5Qbw7KmBKFW/b2rxVUiZmeC5kNp+xOaRb53s5zoz+PQTaQqigHV1d7ELh6T3RQ0NyRzo6vVaGtiF8GD8C4CuvC1z80qJt+Vhg90jwFDOmTb0XGVs1NqTRb/wTEc8gA1LydQG3syvYTlLX/vWhIhU= 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=bq/pHbki; 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="bq/pHbki" 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 5899LR49009159; Tue, 9 Sep 2025 13:39:53 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= yd/oPuUfVOJcMQA/lTcKzDkbSGoGxeZhh5S6dzLVh+I=; b=bq/pHbki52n+xlpE YPJ324wYDd4eq6QDmKcf4GXVJiszfNFz3t/gg4FPsISNDVKTuO0+c1BQGNpUBZy0 pgJu6hOH10Vwq7EZNza4MUUU52clxkOJ1GbzesJg5r/hvLNw8xp155HrRbnnCVaM 2xz+Wf/D+3sN2sAiQs50kwuUHSfxqotOfXUXWI37JGmdLTcMtVxZwVXgdt7oLaIK gzAm02A8i8YUhdQYXR8FI1YR85GHxTUlFED9MdUi13ECx2UWwjXFEdReJx1NjPGt G9RkAZQhMxXZMLisVPK830mIWjU5gjRdGl8kPxHItvfMdEV4A+7aQkVlZ2oH06KJ 7iBATQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 491qhdw5vf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:39:52 +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 589DdqZL022907 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:39:52 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:39:46 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:13 +0800 Subject: [PATCH v5 04/10] clk: qcom: gcc-ipq5424: Enable NSS NoC clocks to use icc-clk 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: <20250909-qcom_ipq5424_nsscc-v5-4-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie , Konrad Dybcio X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1747; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=NlXEF3VmiXF2+P9u5NoblgQUs0TpNmThc3On54QrJMw=; b=6rzlGrtf5VhelZUnQeSdhadmQ0GIDdRH7Skgdahrg9hSitkSO+i7pqegpxcL3hyrJnwKQ+IHu pIyIV6y/E/zBH7izgJW0shEFonjzUJtrsD5W6qfWXotJ59+Zr3hegHl X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: 6n1DAXKtfqOxuJKqmubf_sc1-PbXpfnE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDAzNCBTYWx0ZWRfX80FPbKVtPCXK cZwGom+2lhm5RF+56rWVvNKPdSyqsXhDpAD7TEdejeMGm5BKx5vxtVWfjF5++MPvMZPcE54tZkQ YqmIcbHLgqUqbYRdG6nnwq94Sk1KetllO2qSGTXgOPE/HWtmDhv5OLQWwNLVRPJvxCaqyDgIM69 Q9bogFwA9vuDdlXamwm14X98XgAUCKLdCfaW/1NIWKKXjl8unqB+FyOmOhxEfb+sX59EiSsOPpv k9gac+QzMkUVAcH2b0o4bkkPQzJJ7VLSKaNhO4ykOCYVoKL4PbRXQeWOnvLcOtsSGz4HpttXyfB I2+5SHDfS/4JWLCtoFEhZadfWxX8KJQb4a/cPmrdppvq6vHnd0eZx+gIfM2HvemK3r2Hro71Phr ymIikCZu X-Authority-Analysis: v=2.4 cv=YOCfyQGx c=1 sm=1 tr=0 ts=68c02e28 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=gl6uzLfi5yNa2Npxn2gA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 6n1DAXKtfqOxuJKqmubf_sc1-PbXpfnE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509080034 Add NSS NoC clocks using the icc-clk framework to create interconnect paths. The network subsystem (NSS) can be connected to these NoCs. Additionally, add the LPASS CNOC and SNOC nodes to establish the complete interconnect path. Reviewed-by: Konrad Dybcio Signed-off-by: Luo Jie --- drivers/clk/qcom/gcc-ipq5424.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/clk/qcom/gcc-ipq5424.c b/drivers/clk/qcom/gcc-ipq5424.c index 71afa1b86b72..6cfe4f2b2888 100644 --- a/drivers/clk/qcom/gcc-ipq5424.c +++ b/drivers/clk/qcom/gcc-ipq5424.c @@ -3250,6 +3250,16 @@ static const struct qcom_icc_hws_data icc_ipq5424_hw= s[] =3D { { MASTER_ANOC_PCIE3, SLAVE_ANOC_PCIE3, GCC_ANOC_PCIE3_2LANE_M_CLK }, { MASTER_CNOC_PCIE3, SLAVE_CNOC_PCIE3, GCC_CNOC_PCIE3_2LANE_S_CLK }, { MASTER_CNOC_USB, SLAVE_CNOC_USB, GCC_CNOC_USB_CLK }, + { MASTER_NSSNOC_NSSCC, SLAVE_NSSNOC_NSSCC, GCC_NSSNOC_NSSCC_CLK }, + { MASTER_NSSNOC_SNOC_0, SLAVE_NSSNOC_SNOC_0, GCC_NSSNOC_SNOC_CLK }, + { MASTER_NSSNOC_SNOC_1, SLAVE_NSSNOC_SNOC_1, GCC_NSSNOC_SNOC_1_CLK }, + { MASTER_NSSNOC_PCNOC_1, SLAVE_NSSNOC_PCNOC_1, GCC_NSSNOC_PCNOC_1_CLK }, + { MASTER_NSSNOC_QOSGEN_REF, SLAVE_NSSNOC_QOSGEN_REF, GCC_NSSNOC_QOSGEN_RE= F_CLK }, + { MASTER_NSSNOC_TIMEOUT_REF, SLAVE_NSSNOC_TIMEOUT_REF, GCC_NSSNOC_TIMEOUT= _REF_CLK }, + { MASTER_NSSNOC_XO_DCD, SLAVE_NSSNOC_XO_DCD, GCC_NSSNOC_XO_DCD_CLK }, + { MASTER_NSSNOC_ATB, SLAVE_NSSNOC_ATB, GCC_NSSNOC_ATB_CLK }, + { MASTER_CNOC_LPASS_CFG, SLAVE_CNOC_LPASS_CFG, GCC_CNOC_LPASS_CFG_CLK }, + { MASTER_SNOC_LPASS, SLAVE_SNOC_LPASS, GCC_SNOC_LPASS_CLK }, }; =20 static const struct of_device_id gcc_ipq5424_match_table[] =3D { --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 531CB3451B3; Tue, 9 Sep 2025 13:40:24 +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=1757425226; cv=none; b=hn/eXaTGkvLHzl++cAM2kIU3CGfX7RP8M8bvUC2MkO5ZpXL75r6Nq3PO3crIWChf77GW4mkDymXMm7m/+0N0BZ4WsCkqFuOdvD7NXusV9+sk+5uWkZO/N/fINRJWJJAOtMfeB09LNkqMRUQUyYsCvblWSgbE/CB8DK2s84DlPhM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425226; c=relaxed/simple; bh=KuovKEQlwmh8oCwvjFmFfUc7Q/lftXQQSlX/OAViXWw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Xd3I0pq/vy0ZSyzJsLSSMamQob4qgphr/4iLM8QUtI3PS+sNt4cfCick4r+V2AmdXYLI0OnA2atLiS03kZsEXnmgQuGfpzHd2w5/eauEgA37MJU4wPJ/bDdEZee+Q5ik3oNj8T8IhPDiMuUiDQsLULL+gzDNFvYxfkTWSe4md00= 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=lzss2o8l; 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="lzss2o8l" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5899LYZh011085; Tue, 9 Sep 2025 13:39:59 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= 2hERqCjKKo8nYbV8I9A7DrGzOeOvQ5/8pI1ggHCbJuA=; b=lzss2o8l8QikStGs bNFp6xV3K4FsMWId+AwyYJgqXeXF7ZOLEEjkjm8PPIppfdsJNdQjH7KNBz1fexLJ R1zp0zDQsezaghfKsCHbF3ZpzUxg7Z8ngAAxbpnKTtLpsd/sOt0y0B+F6QaF2HHI Gj8tVjNBDBkLpzwkHc1uZVU9BNGWshhtSNNfh9iTOegAfU9f/LbANRJM6X+3oiim m54DzeV40dG1PxdVOr9AAqiE5eCQLtH5PoOSDnM8biv8N5IAVLb7F72MliMSuRvg cnJ3oCZ6FzcYm1ralad4YPMWA+PlQGAvZrQU4s0n4zAcYVLhTtSLXfpQFt3BFlc0 HKXO3Q== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 490cj0rcf9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:39:59 +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 589DdwDi030843 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:39:58 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:39:52 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:14 +0800 Subject: [PATCH v5 05/10] dt-bindings: clock: gcc-ipq5424: Add definition for GPLL0_OUT_AUX 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: <20250909-qcom_ipq5424_nsscc-v5-5-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1040; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=KuovKEQlwmh8oCwvjFmFfUc7Q/lftXQQSlX/OAViXWw=; b=pgzIOJPucKpGZ3r/u/Pu8yuaTr0Q3c2FfSOwf6sbpz6c4HEj7b9QhdJScWeEOwxjtl3EneFu9 eeYU1lbw6p/DZkXpZplXaoimHHH4V8uU5z5S8nO6DpWRIYRtv+2IuvC X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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-ORIG-GUID: XuTmUDAXd37FE9Df9Psw4uQ0FMJYJQdE X-Proofpoint-GUID: XuTmUDAXd37FE9Df9Psw4uQ0FMJYJQdE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA2MDAyNCBTYWx0ZWRfX9LRlDw6+NjeZ ky4HyV6aq8PuV8SvDupD2I78P68dZLFtLw433jwN/jcEUrryHRQclwNWpxLUcsVFOWOt9FqdyOL mBtNfcF5e4XjfpT29MrCSq+FVg3r1cWKjDS6uv6rG5lA5/W7Krde0MAh811G0vee0sCe0imx6My YI0QmhBoAnQ8CUt08y1JggUm9Mp6KGBUrHxsaHrKM08BwL99iUDVq0m8GxDr0vCAX11rdghjGI8 1YLeQF471uyAVEe+ccpjOQqVxQEEt1fhO0397A9iNvKqGA/siIKkP5c/X+0dKlc62hiCUP6N+UX SPNTL7qbgnLaRIqb5jDfWXpSede01Zcjc7DtQlhB/7kFByapYHGPdEpWo1mZkzfP2ydSedg8Us4 uyvrqH62 X-Authority-Analysis: v=2.4 cv=QeFmvtbv c=1 sm=1 tr=0 ts=68c02e2f cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=COk6AnOGAAAA:8 a=J5jK_jrvxbvMreSVrnAA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 clxscore=1015 spamscore=0 impostorscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509060024 The GCC clock GPLL0_OUT_AUX is one of source clocks for IPQ5424 NSS clock controller. Signed-off-by: Luo Jie --- include/dt-bindings/clock/qcom,ipq5424-gcc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/dt-bindings/clock/qcom,ipq5424-gcc.h b/include/dt-bind= ings/clock/qcom,ipq5424-gcc.h index c15ad16923bd..3ae33a0fa002 100644 --- a/include/dt-bindings/clock/qcom,ipq5424-gcc.h +++ b/include/dt-bindings/clock/qcom,ipq5424-gcc.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ /* * Copyright (c) 2018,2020 The Linux Foundation. All rights reserved. - * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 #ifndef _DT_BINDINGS_CLOCK_IPQ_GCC_IPQ5424_H @@ -152,5 +152,6 @@ #define GCC_PCIE3_RCHNG_CLK 143 #define GCC_IM_SLEEP_CLK 144 #define GCC_XO_CLK 145 +#define GPLL0_OUT_AUX 146 =20 #endif --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 8F495341652; Tue, 9 Sep 2025 13:41:16 +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=1757425278; cv=none; b=LGuqUNJsXwckz6q0ZbL+18hD1oLAGHID2CkKduz90n/Qvi4iaXjTAU21YKXt62XxugvD3JnJJ6ey7Sy9D37+HCRf7wy7P0DtBgQqVAoEzymYFsZuDeBimq+BA9kfMpehW/i+ZPfGIt0IN0r4A6N/XYq1GHEiocYlrIfsR6n9P0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425278; c=relaxed/simple; bh=Eimgia/Bx+eO8L8UJ+aEbzz/pUw0klt6lj4m5EBC2Fk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Ci23g6yobPGp134cnHrhRBADLi6PzcMQCMUPMrTx0K/4uRxd/f15bNZnuRPebOK7B8R/xGyFTHpihKZ3C8HTFXUWfEgsK9dm4enFV25EXfiovl3lEARxIWtPKH1z7X89JGN8sIZ9Xgrxz4G9PcTVoIFcRoImipR7vM/Wn1P/L7s= 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=ZScoQ9Xx; 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="ZScoQ9Xx" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5899LmLM011213; Tue, 9 Sep 2025 13:41:05 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= OjqkTZoCAD9ovROFl0rX5aKoq7H9e/i+GzLPj/Z2kg4=; b=ZScoQ9XxqNq7uV4Y DwX43EF6D/J4Lf9WyjNuDpunMYgqD5q26RQWlhtWsrBH+j4mKaYR6ZmpVIZTsxWw 53f8jHuRBL7ORkTPrlof0klGjEdQdGofwbLEzKddAzPbdOno5jsXvFDyTNeelBbG iErJRMj+wCClWfX5wlByePyDWRqvB+qXYHBrk3iAmhFqfCYg4Zr9g+nIFEkfwgfG vRjjTufFBjk11Tf0fyMpsqCkD7r4Jv7dBhZOxDgQyCimoB1CY8vaJ9lFeDsclsVR sJR/5fAhfnkuKdeua0xw22s0xqu2A9Z9uK2KOlqKfXyEwfzvs4N4zjMMHQTet6wh GV4Trg== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 490cj0rck3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:41:05 +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 589Df4Hi026246 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:41:04 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:39:58 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:15 +0800 Subject: [PATCH v5 06/10] clk: qcom: gcc-ipq5424: Add gpll0_out_aux clock 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: <20250909-qcom_ipq5424_nsscc-v5-6-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie , Konrad Dybcio X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1385; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=Eimgia/Bx+eO8L8UJ+aEbzz/pUw0klt6lj4m5EBC2Fk=; b=GYXz812jaKZp5QhxDx/CmtaENY9kmrzcwgghrTbGqf1w5bvCJHJJKOngrIpMnXlJyCmwRHuB6 6nABo1G5PpgDCS2DYROBuCXbGVGPTBOGi0VAr16jte1CIILzDJvKX4R X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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-ORIG-GUID: BDDiW5u-mrJmedzxzlfB8DJZ-M4a5daL X-Proofpoint-GUID: BDDiW5u-mrJmedzxzlfB8DJZ-M4a5daL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA2MDAyNCBTYWx0ZWRfX+dmjoaqO0xHe DQVHAbwniuuTLrnprgbrrF/FXfe3X/Mt2kwws6OZYJCHCEHGLf9vQyAbqsHDXdToMFk6YAzhFB+ nwjId97vmvaHZYuKdplhhQik+qGOJIPYTqH7sMndZwF2vuGieANpXCf8LRLm/pmNqzqWqktuNwL xKAr0emRpvpQn2b+TyDZjO2kD+2L8kVj2d/8yUZBRaJCjw9WfNBWaZ+7xWjcFF9S61n3nvdRhHF PHwqOFS+z6M8CrbmtvDHjkYsVs9rTYxwZeLkeM2D0auNBLEH7ik3ZpXBnxU7aQWhkHkxesF9WZz wdhMRyftzQBfv0Dk5TWEWN6bE9w0kocw/3jbw6PltPy+xii5Pp6O6UjB6cRf5fkJnEl00e3bE9C jOP7rj4O X-Authority-Analysis: v=2.4 cv=QeFmvtbv c=1 sm=1 tr=0 ts=68c02e71 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=PgHBclK_Yek0rHWKhOgA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 clxscore=1015 spamscore=0 impostorscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509060024 The clock gpll0_out_aux acts as the parent clock for some of the NSS (Network Subsystem) clocks. Reviewed-by: Konrad Dybcio Signed-off-by: Luo Jie --- drivers/clk/qcom/gcc-ipq5424.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/clk/qcom/gcc-ipq5424.c b/drivers/clk/qcom/gcc-ipq5424.c index 6cfe4f2b2888..35af6ffeeb85 100644 --- a/drivers/clk/qcom/gcc-ipq5424.c +++ b/drivers/clk/qcom/gcc-ipq5424.c @@ -79,6 +79,20 @@ static struct clk_fixed_factor gpll0_div2 =3D { }, }; =20 +static struct clk_alpha_pll_postdiv gpll0_out_aux =3D { + .offset =3D 0x20000, + .regs =3D clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .width =3D 4, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "gpll0_out_aux", + .parent_hws =3D (const struct clk_hw *[]) { + &gpll0.clkr.hw + }, + .num_parents =3D 1, + .ops =3D &clk_alpha_pll_postdiv_ro_ops, + }, +}; + static struct clk_alpha_pll gpll2 =3D { .offset =3D 0x21000, .regs =3D clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_NSS_HUAYRA], @@ -2934,6 +2948,7 @@ static struct clk_regmap *gcc_ipq5424_clocks[] =3D { [GPLL2] =3D &gpll2.clkr, [GPLL2_OUT_MAIN] =3D &gpll2_out_main.clkr, [GPLL4] =3D &gpll4.clkr, + [GPLL0_OUT_AUX] =3D &gpll0_out_aux.clkr, }; =20 static const struct qcom_reset_map gcc_ipq5424_resets[] =3D { --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 D9C60341663; Tue, 9 Sep 2025 13:41:16 +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=1757425279; cv=none; b=hKTm3yVBoLsvYph9FB4J10ouQZXylze6w0wrms6jVmZznsv/V/8H1DgcAhwa98hF91ePlishwcY8NOKwr6n8rMHRY3hxo6K6Efha+r3iMr3R7I8/SNINO6eckGeEpVCJqe6bVutpblA4HaJwnvBfQLn70wC1Gm/Xpx5fS+udVKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425279; c=relaxed/simple; bh=DRjYKEn2nud9BTTTRxaMYgJotGkPOwwn5MtnmndnAT4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Z3ZhZ7pv85nDKIk5iIWIPVPBW+KeV78Cd7WAIHjly1zgo/ebUKHt+MmKXI1eQZbgeLF0OIYVqqdIXhtl5yyLbMGld67V6ojYB2XOXhov37v9lVkTCRqTVsyGAQ/weX2uOd38GYUYMhX0XzZsYMRu93QG5cQSaps7WjNMuQjhUXA= 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=dkI05y6g; 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="dkI05y6g" 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 5899Lgie030651; Tue, 9 Sep 2025 13:41:05 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= 5r6NZm//czoCvWL8JQ5vuOTe3YsYCEqVkxBtSQ+FpDg=; b=dkI05y6gnRgTHDTk AW3cnkVoVBGb8xBOP4Oru/w2EADOXIR/un8Zmk9Dgs++qDsev7y/tx620OaKI8lh 1lDQDMLph6aJ7VnJspys+9B00SoKMJ6VG9sQWh2SgB01VQGDX52TZY1bp91zWkYU NjhimdA/QG9OXdQqyyKDNw8E7cvsFnZUtANY/gWnyQiPtExDKLxprVD+qG08JgfC ANMU4VvLW2k7IkVuKjb++jx8uJKsQKql0l95YM1puhQrg7bsL59orR8bxrorngpl SyKDTQstAFdj5r5i0GXQx3TJ6qG0i//pQ4rx4xKh40NrDCpQu4hx6MJkrJ8+ayHh 5APZ7A== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 490c9j8fga-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:41:05 +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 589Df4Hk026246 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:41:04 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:40:04 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:16 +0800 Subject: [PATCH v5 07/10] dt-bindings: clock: qcom: Add NSS clock controller for IPQ5424 SoC 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: <20250909-qcom_ipq5424_nsscc-v5-7-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=10044; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=DRjYKEn2nud9BTTTRxaMYgJotGkPOwwn5MtnmndnAT4=; b=cVWut/sKnwdhGRswuFETnKojFTm8Xo4FfssoCC9sXOKIRG6eo+Q9Og37GESw9eU4Orc7kPKq/ cCB9cyrjb8tB644QcauPlzZGZ1LX32T6bbHsPtUIlt7WPJvg6Q/Yffw X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: AW1haW4tMjUwOTA2MDAyMiBTYWx0ZWRfX1aKejoJSE4Kh mQrV7bu+Be3BiQGqSYOTIzBMBWerEJC04uAe4iLtmRlwYs35TpZJZOHJYcdisaf13vdk7HSAbvf W8vl+nDnt6PS/enH0RZT2BeNjN8jIZMI59Fi9xa7d5iIMaTPbJg5kxKRgr3ck5DPhEmvV2inbGS x3UBb7HR9PG+KgssoyAZ5n5eJiNr591sTIw7zgSdPfP5uxwpNKMqNbUQnd6/D+7yva5oIvbulrv 6f6Th/2rPOoYM4aB0Rcew2J9ElxC0lCO3jjFNz0z88qAnJWOxfoCs4IxK6QdWs1DQri1Vs00fAs mk4KOJhktetGGUFSu7rJz71qYGog51nSx1DDloyPC3gEl6djiZJP2WnkboW21F/QSZ5brOrfvY7 nZUHHAfB X-Proofpoint-ORIG-GUID: y8G53WSKwyo8n4SBDbP-WweCFGJePGLo X-Authority-Analysis: v=2.4 cv=PpOTbxM3 c=1 sm=1 tr=0 ts=68c02e71 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=gEfo2CItAAAA:8 a=COk6AnOGAAAA:8 a=VwQbUJbxAAAA:8 a=MNkOokDTngcochq761IA:9 a=QEXdDO2ut3YA:10 a=sptkURWiP4Gy88Gu7hUp:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: y8G53WSKwyo8n4SBDbP-WweCFGJePGLo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509060022 NSS clock controller provides the clocks and resets to the networking blocks such as PPE (Packet Process Engine) and UNIPHY (PCS) on IPQ5424 devices. Add support for the compatible string "qcom,ipq5424-nsscc" based on the existing IPQ9574 NSS clock controller Device Tree binding. Additionally, update the clock names for PPE and NSS for newer SoC additions like IPQ5424 to use generic and reusable identifiers "nss" and "ppe" without the clock rate suffix. Also add master/slave ids for IPQ5424 networking interfaces, which is used by nss-ipq5424 driver for providing interconnect services using icc-clk framework. Signed-off-by: Luo Jie Reviewed-by: Krzysztof Kozlowski --- .../bindings/clock/qcom,ipq9574-nsscc.yaml | 62 ++++++++++++++++++= --- include/dt-bindings/clock/qcom,ipq5424-nsscc.h | 65 ++++++++++++++++++= ++++ include/dt-bindings/interconnect/qcom,ipq5424.h | 13 +++++ include/dt-bindings/reset/qcom,ipq5424-nsscc.h | 46 +++++++++++++++ 4 files changed, 178 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yam= l b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml index fc604279114f..35e5c1b7dcbe 100644 --- a/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml @@ -4,7 +4,7 @@ $id: http://devicetree.org/schemas/clock/qcom,ipq9574-nsscc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: Qualcomm Networking Sub System Clock & Reset Controller on IPQ9574 +title: Qualcomm Networking Sub System Clock & Reset Controller on IPQ9574 = and IPQ5424 =20 maintainers: - Bjorn Andersson @@ -12,21 +12,29 @@ maintainers: =20 description: | Qualcomm networking sub system clock control module provides the clocks, - resets on IPQ9574 + resets on IPQ9574 and IPQ5424 =20 - See also:: + See also: + include/dt-bindings/clock/qcom,ipq5424-nsscc.h include/dt-bindings/clock/qcom,ipq9574-nsscc.h + include/dt-bindings/reset/qcom,ipq5424-nsscc.h include/dt-bindings/reset/qcom,ipq9574-nsscc.h =20 properties: compatible: - const: qcom,ipq9574-nsscc + enum: + - qcom,ipq5424-nsscc + - qcom,ipq9574-nsscc =20 clocks: items: - description: Board XO source - - description: CMN_PLL NSS 1200MHz (Bias PLL cc) clock source - - description: CMN_PLL PPE 353MHz (Bias PLL ubi nc) clock source + - description: CMN_PLL NSS (Bias PLL cc) clock source. This clock ra= te + can vary for different IPQ SoCs. For example, it is 1200 MHz on = the + IPQ9574 and 300 MHz on the IPQ5424. + - description: CMN_PLL PPE (Bias PLL ubi nc) clock source. The clock + rate can vary for different IPQ SoCs. For example, it is 353 MHz + on the IPQ9574 and 375 MHz on the IPQ5424. - description: GCC GPLL0 OUT AUX clock source - description: Uniphy0 NSS Rx clock source - description: Uniphy0 NSS Tx clock source @@ -42,8 +50,12 @@ properties: clock-names: items: - const: xo - - const: nss_1200 - - const: ppe_353 + - enum: + - nss_1200 + - nss + - enum: + - ppe_353 + - ppe - const: gpll0_out - const: uniphy0_rx - const: uniphy0_tx @@ -61,6 +73,40 @@ required: =20 allOf: - $ref: qcom,gcc.yaml# + - if: + properties: + compatible: + const: qcom,ipq9574-nsscc + then: + properties: + clock-names: + items: + - const: xo + - const: nss_1200 + - const: ppe_353 + - const: gpll0_out + - const: uniphy0_rx + - const: uniphy0_tx + - const: uniphy1_rx + - const: uniphy1_tx + - const: uniphy2_rx + - const: uniphy2_tx + - const: bus + else: + properties: + clock-names: + items: + - const: xo + - const: nss + - const: ppe + - const: gpll0_out + - const: uniphy0_rx + - const: uniphy0_tx + - const: uniphy1_rx + - const: uniphy1_tx + - const: uniphy2_rx + - const: uniphy2_tx + - const: bus =20 unevaluatedProperties: false =20 diff --git a/include/dt-bindings/clock/qcom,ipq5424-nsscc.h b/include/dt-bi= ndings/clock/qcom,ipq5424-nsscc.h new file mode 100644 index 000000000000..eeae0dc38042 --- /dev/null +++ b/include/dt-bindings/clock/qcom,ipq5424-nsscc.h @@ -0,0 +1,65 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#ifndef _DT_BINDINGS_CLOCK_QCOM_IPQ5424_NSSCC_H +#define _DT_BINDINGS_CLOCK_QCOM_IPQ5424_NSSCC_H + +/* NSS_CC clocks */ +#define NSS_CC_CE_APB_CLK 0 +#define NSS_CC_CE_AXI_CLK 1 +#define NSS_CC_CE_CLK_SRC 2 +#define NSS_CC_CFG_CLK_SRC 3 +#define NSS_CC_DEBUG_CLK 4 +#define NSS_CC_EIP_BFDCD_CLK_SRC 5 +#define NSS_CC_EIP_CLK 6 +#define NSS_CC_NSS_CSR_CLK 7 +#define NSS_CC_NSSNOC_CE_APB_CLK 8 +#define NSS_CC_NSSNOC_CE_AXI_CLK 9 +#define NSS_CC_NSSNOC_EIP_CLK 10 +#define NSS_CC_NSSNOC_NSS_CSR_CLK 11 +#define NSS_CC_NSSNOC_PPE_CFG_CLK 12 +#define NSS_CC_NSSNOC_PPE_CLK 13 +#define NSS_CC_PORT1_MAC_CLK 14 +#define NSS_CC_PORT1_RX_CLK 15 +#define NSS_CC_PORT1_RX_CLK_SRC 16 +#define NSS_CC_PORT1_RX_DIV_CLK_SRC 17 +#define NSS_CC_PORT1_TX_CLK 18 +#define NSS_CC_PORT1_TX_CLK_SRC 19 +#define NSS_CC_PORT1_TX_DIV_CLK_SRC 20 +#define NSS_CC_PORT2_MAC_CLK 21 +#define NSS_CC_PORT2_RX_CLK 22 +#define NSS_CC_PORT2_RX_CLK_SRC 23 +#define NSS_CC_PORT2_RX_DIV_CLK_SRC 24 +#define NSS_CC_PORT2_TX_CLK 25 +#define NSS_CC_PORT2_TX_CLK_SRC 26 +#define NSS_CC_PORT2_TX_DIV_CLK_SRC 27 +#define NSS_CC_PORT3_MAC_CLK 28 +#define NSS_CC_PORT3_RX_CLK 29 +#define NSS_CC_PORT3_RX_CLK_SRC 30 +#define NSS_CC_PORT3_RX_DIV_CLK_SRC 31 +#define NSS_CC_PORT3_TX_CLK 32 +#define NSS_CC_PORT3_TX_CLK_SRC 33 +#define NSS_CC_PORT3_TX_DIV_CLK_SRC 34 +#define NSS_CC_PPE_CLK_SRC 35 +#define NSS_CC_PPE_EDMA_CFG_CLK 36 +#define NSS_CC_PPE_EDMA_CLK 37 +#define NSS_CC_PPE_SWITCH_BTQ_CLK 38 +#define NSS_CC_PPE_SWITCH_CFG_CLK 39 +#define NSS_CC_PPE_SWITCH_CLK 40 +#define NSS_CC_PPE_SWITCH_IPE_CLK 41 +#define NSS_CC_UNIPHY_PORT1_RX_CLK 42 +#define NSS_CC_UNIPHY_PORT1_TX_CLK 43 +#define NSS_CC_UNIPHY_PORT2_RX_CLK 44 +#define NSS_CC_UNIPHY_PORT2_TX_CLK 45 +#define NSS_CC_UNIPHY_PORT3_RX_CLK 46 +#define NSS_CC_UNIPHY_PORT3_TX_CLK 47 +#define NSS_CC_XGMAC0_PTP_REF_CLK 48 +#define NSS_CC_XGMAC0_PTP_REF_DIV_CLK_SRC 49 +#define NSS_CC_XGMAC1_PTP_REF_CLK 50 +#define NSS_CC_XGMAC1_PTP_REF_DIV_CLK_SRC 51 +#define NSS_CC_XGMAC2_PTP_REF_CLK 52 +#define NSS_CC_XGMAC2_PTP_REF_DIV_CLK_SRC 53 + +#endif diff --git a/include/dt-bindings/interconnect/qcom,ipq5424.h b/include/dt-b= indings/interconnect/qcom,ipq5424.h index c5e0dec0b300..07b786bee7d6 100644 --- a/include/dt-bindings/interconnect/qcom,ipq5424.h +++ b/include/dt-bindings/interconnect/qcom,ipq5424.h @@ -44,4 +44,17 @@ #define MASTER_CPU 0 #define SLAVE_L3 1 =20 +#define MASTER_NSSNOC_PPE 0 +#define SLAVE_NSSNOC_PPE 1 +#define MASTER_NSSNOC_PPE_CFG 2 +#define SLAVE_NSSNOC_PPE_CFG 3 +#define MASTER_NSSNOC_NSS_CSR 4 +#define SLAVE_NSSNOC_NSS_CSR 5 +#define MASTER_NSSNOC_CE_AXI 6 +#define SLAVE_NSSNOC_CE_AXI 7 +#define MASTER_NSSNOC_CE_APB 8 +#define SLAVE_NSSNOC_CE_APB 9 +#define MASTER_NSSNOC_EIP 10 +#define SLAVE_NSSNOC_EIP 11 + #endif /* INTERCONNECT_QCOM_IPQ5424_H */ diff --git a/include/dt-bindings/reset/qcom,ipq5424-nsscc.h b/include/dt-bi= ndings/reset/qcom,ipq5424-nsscc.h new file mode 100644 index 000000000000..9627e3b0ad30 --- /dev/null +++ b/include/dt-bindings/reset/qcom,ipq5424-nsscc.h @@ -0,0 +1,46 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#ifndef _DT_BINDINGS_RESET_QCOM_IPQ5424_NSSCC_H +#define _DT_BINDINGS_RESET_QCOM_IPQ5424_NSSCC_H + +#define NSS_CC_CE_APB_CLK_ARES 0 +#define NSS_CC_CE_AXI_CLK_ARES 1 +#define NSS_CC_DEBUG_CLK_ARES 2 +#define NSS_CC_EIP_CLK_ARES 3 +#define NSS_CC_NSS_CSR_CLK_ARES 4 +#define NSS_CC_NSSNOC_CE_APB_CLK_ARES 5 +#define NSS_CC_NSSNOC_CE_AXI_CLK_ARES 6 +#define NSS_CC_NSSNOC_EIP_CLK_ARES 7 +#define NSS_CC_NSSNOC_NSS_CSR_CLK_ARES 8 +#define NSS_CC_NSSNOC_PPE_CLK_ARES 9 +#define NSS_CC_NSSNOC_PPE_CFG_CLK_ARES 10 +#define NSS_CC_PORT1_MAC_CLK_ARES 11 +#define NSS_CC_PORT1_RX_CLK_ARES 12 +#define NSS_CC_PORT1_TX_CLK_ARES 13 +#define NSS_CC_PORT2_MAC_CLK_ARES 14 +#define NSS_CC_PORT2_RX_CLK_ARES 15 +#define NSS_CC_PORT2_TX_CLK_ARES 16 +#define NSS_CC_PORT3_MAC_CLK_ARES 17 +#define NSS_CC_PORT3_RX_CLK_ARES 18 +#define NSS_CC_PORT3_TX_CLK_ARES 19 +#define NSS_CC_PPE_BCR 20 +#define NSS_CC_PPE_EDMA_CLK_ARES 21 +#define NSS_CC_PPE_EDMA_CFG_CLK_ARES 22 +#define NSS_CC_PPE_SWITCH_BTQ_CLK_ARES 23 +#define NSS_CC_PPE_SWITCH_CLK_ARES 24 +#define NSS_CC_PPE_SWITCH_CFG_CLK_ARES 25 +#define NSS_CC_PPE_SWITCH_IPE_CLK_ARES 26 +#define NSS_CC_UNIPHY_PORT1_RX_CLK_ARES 27 +#define NSS_CC_UNIPHY_PORT1_TX_CLK_ARES 28 +#define NSS_CC_UNIPHY_PORT2_RX_CLK_ARES 29 +#define NSS_CC_UNIPHY_PORT2_TX_CLK_ARES 30 +#define NSS_CC_UNIPHY_PORT3_RX_CLK_ARES 31 +#define NSS_CC_UNIPHY_PORT3_TX_CLK_ARES 32 +#define NSS_CC_XGMAC0_PTP_REF_CLK_ARES 33 +#define NSS_CC_XGMAC1_PTP_REF_CLK_ARES 34 +#define NSS_CC_XGMAC2_PTP_REF_CLK_ARES 35 + +#endif --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 DD9BA356916; Tue, 9 Sep 2025 13:41:20 +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=1757425284; cv=none; b=MgJ6iMRqyE5Qm3X2ZqMnxBVkJSc9AtjiNwURiHwOQM6jDYAr0kurD4wE5495nOa4FZCkpDKm53klBGtNzvxvSfh7bSyZE9HKbHIwNRL4p7Kfjf8YQ0iEA96QKSr82G+XjuYxyUTNtguAM6bhpbXUIY4oUFS31/Chj5kx/sp1OdY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425284; c=relaxed/simple; bh=lo9NHiGSqKEW0mN8oI/sXpmmiJfjM2PTqORGcY+WGck=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=L88QIjL1qLDiA+JQ0F9vaTfyPt8M+7No+6QZGv1IJDT10utzSSTsWl9Q8lE6EzdiLQln2y4cXABKd35sEvKSs0IAVPiX25arNmycHahiRixASBROLLOwbix9YjTuA5llPRraWAgyVhG3VJdsHyd4OmPGpcwoYrBoA9Df+L4kNNY= 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=GNZWMIes; 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="GNZWMIes" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5899LUdZ020161; Tue, 9 Sep 2025 13:41:06 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= s1LyuEpdmFydOeAah98JccCD5Cw8ugc//6QQWx4P0TU=; b=GNZWMIes77NCl2qF ypnafp6JLwvoQGnI4106CklYFlIRPL27Ednbqtrvt4RmtBwFoKxfXNg9dZfUa8i/ KQXjps5SkZ38RYF4ebuD1P4aAE64cPf/OIMVsCzvQxMIDXw9XgN3CWE+rVuwTBnh BH4ibjTUQZUwGW9B7Pxj+PgrwqbuM/p16Wv9OYQd9rM62LsngGYqlk7aMMf+aGgQ DM1tNDUfqbQwQuWWvP2b/AHGS82BEuadzrw2hVqwyAg0umKaFtFRvWmCURzz4UaX nkAmQcV6ymPM+w1lD56WfbDdg9Ubpv5cJsTgjc5lT6V/oIS7JtmnfxnduLvcyn/n STynyg== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 491vc24d6v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:41:05 +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 589Df4Hm026246 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:41:04 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:40:10 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:17 +0800 Subject: [PATCH v5 08/10] clk: qcom: Add NSS clock controller driver for IPQ5424 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: <20250909-qcom_ipq5424_nsscc-v5-8-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie , Konrad Dybcio X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=41995; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=lo9NHiGSqKEW0mN8oI/sXpmmiJfjM2PTqORGcY+WGck=; b=QrPjBro9NzdjvM9gO2gQcZ0PJ7LqYe0LRnJ1jVSEPyyF5mK78UjztsiIR142q44OBnj6ZKDgy 5gvyVRw+DC0DA847c45Kb12ny5L/N8caVq6Sfl499GT+L3BolaCKr4d X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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=FN4bx/os c=1 sm=1 tr=0 ts=68c02e71 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=Sasp3eNXiZpz1bw--mwA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: jaGKaPmX75uEjZEo8IsMCGNfj2qHtsUm X-Proofpoint-GUID: jaGKaPmX75uEjZEo8IsMCGNfj2qHtsUm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA5NCBTYWx0ZWRfX9GNeVm9EeCLN 1rROHLeCX17jKLCETMc0mdsSkWc+VZGrJgsTt+pcccAKu+/hqQZyq47luOwTInzAOvfXmjM14Z+ q4mtXqtQEpwpTdw19/GdTDOESolsg+p23cwieVZMc74aR/GE9NblHJnPQmDtfRzl1VTDb/qQheN RDX6t2q9yFCYgG00sJ30LHW69cXOrS0uEFegraMAtWu/CxLdw5irQqDe3O1CXArD+Wxt9BR88NN k0i8tEc8kH5hXWJ6tPs55boHqE3kdpAYt3hgBIKCQBFrIL/hykKZxZ8xgMpcufvMYuGCGp0gAJy FIeWl9FCphX0ucfD+qglefMOuP0X6gFHFSCZb7gjPbjq7LN3X7+LhEaN9ohdrLwj2VdF9uhDHtC Kwc8TL1p X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 clxscore=1015 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509080094 NSS (Network Subsystem) clock controller provides the clocks and resets to the networking hardware blocks of the IPQ5424 SoC. The icc-clk framework is used to enable NoC related clocks to create paths so that the networking blocks can connect to these NoCs. Acked-by: Konrad Dybcio Signed-off-by: Luo Jie --- drivers/clk/qcom/Kconfig | 11 + drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/nsscc-ipq5424.c | 1340 ++++++++++++++++++++++++++++++++++= ++++ 3 files changed, 1352 insertions(+) diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig index aeb6197d7c90..f6bd73613ebd 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -290,6 +290,17 @@ config IPQ_GCC_9574 i2c, USB, SD/eMMC, etc. Select this for the root clock of ipq9574. =20 +config IPQ_NSSCC_5424 + tristate "IPQ5424 NSS Clock Controller" + depends on ARM64 || COMPILE_TEST + depends on IPQ_GCC_5424 + help + Support for NSS clock controller on ipq5424 devices. + NSSCC receives the clock sources from GCC, CMN PLL and UNIPHY (PCS). + It in turn supplies the clocks and resets to the networking hardware. + Say Y or M if you want to enable networking function on the + IPQ5424 devices. + config IPQ_NSSCC_9574 tristate "IPQ9574 NSS Clock Controller" depends on ARM64 || COMPILE_TEST diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile index 98de55eb6402..8ee3d92a020d 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile @@ -40,6 +40,7 @@ obj-$(CONFIG_IPQ_GCC_6018) +=3D gcc-ipq6018.o obj-$(CONFIG_IPQ_GCC_806X) +=3D gcc-ipq806x.o obj-$(CONFIG_IPQ_GCC_8074) +=3D gcc-ipq8074.o obj-$(CONFIG_IPQ_GCC_9574) +=3D gcc-ipq9574.o +obj-$(CONFIG_IPQ_NSSCC_5424) +=3D nsscc-ipq5424.o obj-$(CONFIG_IPQ_NSSCC_9574) +=3D nsscc-ipq9574.o obj-$(CONFIG_IPQ_LCC_806X) +=3D lcc-ipq806x.o obj-$(CONFIG_IPQ_NSSCC_QCA8K) +=3D nsscc-qca8k.o diff --git a/drivers/clk/qcom/nsscc-ipq5424.c b/drivers/clk/qcom/nsscc-ipq5= 424.c new file mode 100644 index 000000000000..5893c7146180 --- /dev/null +++ b/drivers/clk/qcom/nsscc-ipq5424.c @@ -0,0 +1,1340 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "clk-branch.h" +#include "clk-rcg.h" +#include "clk-regmap.h" +#include "clk-regmap-divider.h" +#include "common.h" +#include "reset.h" + +/* Need to match the order of clocks in DT binding */ +enum { + DT_CMN_PLL_XO_CLK, + DT_CMN_PLL_NSS_300M_CLK, + DT_CMN_PLL_NSS_375M_CLK, + DT_GCC_GPLL0_OUT_AUX, + DT_UNIPHY0_NSS_RX_CLK, + DT_UNIPHY0_NSS_TX_CLK, + DT_UNIPHY1_NSS_RX_CLK, + DT_UNIPHY1_NSS_TX_CLK, + DT_UNIPHY2_NSS_RX_CLK, + DT_UNIPHY2_NSS_TX_CLK, +}; + +enum { + P_CMN_PLL_XO_CLK, + P_CMN_PLL_NSS_300M_CLK, + P_CMN_PLL_NSS_375M_CLK, + P_GCC_GPLL0_OUT_AUX, + P_UNIPHY0_NSS_RX_CLK, + P_UNIPHY0_NSS_TX_CLK, + P_UNIPHY1_NSS_RX_CLK, + P_UNIPHY1_NSS_TX_CLK, + P_UNIPHY2_NSS_RX_CLK, + P_UNIPHY2_NSS_TX_CLK, +}; + +static const struct parent_map nss_cc_parent_map_0[] =3D { + { P_CMN_PLL_XO_CLK, 0 }, + { P_GCC_GPLL0_OUT_AUX, 2 }, + { P_CMN_PLL_NSS_300M_CLK, 5 }, + { P_CMN_PLL_NSS_375M_CLK, 6 }, +}; + +static const struct clk_parent_data nss_cc_parent_data_0[] =3D { + { .index =3D DT_CMN_PLL_XO_CLK }, + { .index =3D DT_GCC_GPLL0_OUT_AUX }, + { .index =3D DT_CMN_PLL_NSS_300M_CLK }, + { .index =3D DT_CMN_PLL_NSS_375M_CLK }, +}; + +static const struct parent_map nss_cc_parent_map_1[] =3D { + { P_CMN_PLL_XO_CLK, 0 }, + { P_GCC_GPLL0_OUT_AUX, 2 }, + { P_UNIPHY0_NSS_RX_CLK, 3 }, + { P_UNIPHY0_NSS_TX_CLK, 4 }, + { P_CMN_PLL_NSS_300M_CLK, 5 }, + { P_CMN_PLL_NSS_375M_CLK, 6 }, +}; + +static const struct clk_parent_data nss_cc_parent_data_1[] =3D { + { .index =3D DT_CMN_PLL_XO_CLK }, + { .index =3D DT_GCC_GPLL0_OUT_AUX }, + { .index =3D DT_UNIPHY0_NSS_RX_CLK }, + { .index =3D DT_UNIPHY0_NSS_TX_CLK }, + { .index =3D DT_CMN_PLL_NSS_300M_CLK }, + { .index =3D DT_CMN_PLL_NSS_375M_CLK }, +}; + +static const struct parent_map nss_cc_parent_map_2[] =3D { + { P_CMN_PLL_XO_CLK, 0 }, + { P_GCC_GPLL0_OUT_AUX, 2 }, + { P_UNIPHY1_NSS_RX_CLK, 3 }, + { P_UNIPHY1_NSS_TX_CLK, 4 }, + { P_CMN_PLL_NSS_300M_CLK, 5 }, + { P_CMN_PLL_NSS_375M_CLK, 6 }, +}; + +static const struct clk_parent_data nss_cc_parent_data_2[] =3D { + { .index =3D DT_CMN_PLL_XO_CLK }, + { .index =3D DT_GCC_GPLL0_OUT_AUX }, + { .index =3D DT_UNIPHY1_NSS_RX_CLK }, + { .index =3D DT_UNIPHY1_NSS_TX_CLK }, + { .index =3D DT_CMN_PLL_NSS_300M_CLK }, + { .index =3D DT_CMN_PLL_NSS_375M_CLK }, +}; + +static const struct parent_map nss_cc_parent_map_3[] =3D { + { P_CMN_PLL_XO_CLK, 0 }, + { P_GCC_GPLL0_OUT_AUX, 2 }, + { P_UNIPHY2_NSS_RX_CLK, 3 }, + { P_UNIPHY2_NSS_TX_CLK, 4 }, + { P_CMN_PLL_NSS_300M_CLK, 5 }, + { P_CMN_PLL_NSS_375M_CLK, 6 }, +}; + +static const struct clk_parent_data nss_cc_parent_data_3[] =3D { + { .index =3D DT_CMN_PLL_XO_CLK }, + { .index =3D DT_GCC_GPLL0_OUT_AUX }, + { .index =3D DT_UNIPHY2_NSS_RX_CLK }, + { .index =3D DT_UNIPHY2_NSS_TX_CLK }, + { .index =3D DT_CMN_PLL_NSS_300M_CLK }, + { .index =3D DT_CMN_PLL_NSS_375M_CLK }, +}; + +static const struct freq_tbl ftbl_nss_cc_ce_clk_src[] =3D { + F(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + F(375000000, P_CMN_PLL_NSS_375M_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_ce_clk_src =3D { + .cmd_rcgr =3D 0x5e0, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_0, + .freq_tbl =3D ftbl_nss_cc_ce_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ce_clk_src", + .parent_data =3D nss_cc_parent_data_0, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_0), + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_rcg2_ops, + }, +}; + +static const struct freq_tbl ftbl_nss_cc_cfg_clk_src[] =3D { + F(100000000, P_GCC_GPLL0_OUT_AUX, 8, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_cfg_clk_src =3D { + .cmd_rcgr =3D 0x6a8, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_0, + .freq_tbl =3D ftbl_nss_cc_cfg_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_cfg_clk_src", + .parent_data =3D nss_cc_parent_data_0, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_0), + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_rcg2_ops, + }, +}; + +static const struct freq_tbl ftbl_nss_cc_eip_bfdcd_clk_src[] =3D { + F(300000000, P_CMN_PLL_NSS_300M_CLK, 1, 0, 0), + F(375000000, P_CMN_PLL_NSS_375M_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_eip_bfdcd_clk_src =3D { + .cmd_rcgr =3D 0x644, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_0, + .freq_tbl =3D ftbl_nss_cc_eip_bfdcd_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_eip_bfdcd_clk_src", + .parent_data =3D nss_cc_parent_data_0, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_0), + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_rcg2_ops, + }, +}; + +static const struct freq_conf ftbl_nss_cc_port1_rx_clk_src_25[] =3D { + C(P_UNIPHY0_NSS_RX_CLK, 12.5, 0, 0), + C(P_UNIPHY0_NSS_RX_CLK, 5, 0, 0), +}; + +static const struct freq_conf ftbl_nss_cc_port1_rx_clk_src_125[] =3D { + C(P_UNIPHY0_NSS_RX_CLK, 2.5, 0, 0), + C(P_UNIPHY0_NSS_RX_CLK, 1, 0, 0), +}; + +static const struct freq_multi_tbl ftbl_nss_cc_port1_rx_clk_src[] =3D { + FMS(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + FM(25000000, ftbl_nss_cc_port1_rx_clk_src_25), + FMS(78125000, P_UNIPHY0_NSS_RX_CLK, 4, 0, 0), + FM(125000000, ftbl_nss_cc_port1_rx_clk_src_125), + FMS(156250000, P_UNIPHY0_NSS_RX_CLK, 2, 0, 0), + FMS(312500000, P_UNIPHY0_NSS_RX_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_port1_rx_clk_src =3D { + .cmd_rcgr =3D 0x4b4, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_1, + .freq_multi_tbl =3D ftbl_nss_cc_port1_rx_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port1_rx_clk_src", + .parent_data =3D nss_cc_parent_data_1, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_1), + .ops =3D &clk_rcg2_fm_ops, + }, +}; + +static const struct freq_conf ftbl_nss_cc_port1_tx_clk_src_25[] =3D { + C(P_UNIPHY0_NSS_TX_CLK, 12.5, 0, 0), + C(P_UNIPHY0_NSS_TX_CLK, 5, 0, 0), +}; + +static const struct freq_conf ftbl_nss_cc_port1_tx_clk_src_125[] =3D { + C(P_UNIPHY0_NSS_TX_CLK, 2.5, 0, 0), + C(P_UNIPHY0_NSS_TX_CLK, 1, 0, 0), +}; + +static const struct freq_multi_tbl ftbl_nss_cc_port1_tx_clk_src[] =3D { + FMS(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + FM(25000000, ftbl_nss_cc_port1_tx_clk_src_25), + FMS(78125000, P_UNIPHY0_NSS_TX_CLK, 4, 0, 0), + FM(125000000, ftbl_nss_cc_port1_tx_clk_src_125), + FMS(156250000, P_UNIPHY0_NSS_TX_CLK, 2, 0, 0), + FMS(312500000, P_UNIPHY0_NSS_TX_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_port1_tx_clk_src =3D { + .cmd_rcgr =3D 0x4c0, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_1, + .freq_multi_tbl =3D ftbl_nss_cc_port1_tx_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port1_tx_clk_src", + .parent_data =3D nss_cc_parent_data_1, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_1), + .ops =3D &clk_rcg2_fm_ops, + }, +}; + +static const struct freq_conf ftbl_nss_cc_port2_rx_clk_src_25[] =3D { + C(P_UNIPHY1_NSS_RX_CLK, 12.5, 0, 0), + C(P_UNIPHY1_NSS_RX_CLK, 5, 0, 0), +}; + +static const struct freq_conf ftbl_nss_cc_port2_rx_clk_src_125[] =3D { + C(P_UNIPHY1_NSS_RX_CLK, 2.5, 0, 0), + C(P_UNIPHY1_NSS_RX_CLK, 1, 0, 0), +}; + +static const struct freq_multi_tbl ftbl_nss_cc_port2_rx_clk_src[] =3D { + FMS(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + FM(25000000, ftbl_nss_cc_port2_rx_clk_src_25), + FMS(78125000, P_UNIPHY1_NSS_RX_CLK, 4, 0, 0), + FM(125000000, ftbl_nss_cc_port2_rx_clk_src_125), + FMS(156250000, P_UNIPHY1_NSS_RX_CLK, 2, 0, 0), + FMS(312500000, P_UNIPHY1_NSS_RX_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_port2_rx_clk_src =3D { + .cmd_rcgr =3D 0x4cc, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_2, + .freq_multi_tbl =3D ftbl_nss_cc_port2_rx_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port2_rx_clk_src", + .parent_data =3D nss_cc_parent_data_2, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_2), + .ops =3D &clk_rcg2_fm_ops, + }, +}; + +static const struct freq_conf ftbl_nss_cc_port2_tx_clk_src_25[] =3D { + C(P_UNIPHY1_NSS_TX_CLK, 12.5, 0, 0), + C(P_UNIPHY1_NSS_TX_CLK, 5, 0, 0), +}; + +static const struct freq_conf ftbl_nss_cc_port2_tx_clk_src_125[] =3D { + C(P_UNIPHY1_NSS_TX_CLK, 2.5, 0, 0), + C(P_UNIPHY1_NSS_TX_CLK, 1, 0, 0), +}; + +static const struct freq_multi_tbl ftbl_nss_cc_port2_tx_clk_src[] =3D { + FMS(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + FM(25000000, ftbl_nss_cc_port2_tx_clk_src_25), + FMS(78125000, P_UNIPHY1_NSS_TX_CLK, 4, 0, 0), + FM(125000000, ftbl_nss_cc_port2_tx_clk_src_125), + FMS(156250000, P_UNIPHY1_NSS_TX_CLK, 2, 0, 0), + FMS(312500000, P_UNIPHY1_NSS_TX_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_port2_tx_clk_src =3D { + .cmd_rcgr =3D 0x4d8, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_2, + .freq_multi_tbl =3D ftbl_nss_cc_port2_tx_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port2_tx_clk_src", + .parent_data =3D nss_cc_parent_data_2, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_2), + .ops =3D &clk_rcg2_fm_ops, + }, +}; + +static const struct freq_conf ftbl_nss_cc_port3_rx_clk_src_25[] =3D { + C(P_UNIPHY2_NSS_RX_CLK, 12.5, 0, 0), + C(P_UNIPHY2_NSS_RX_CLK, 5, 0, 0), +}; + +static const struct freq_conf ftbl_nss_cc_port3_rx_clk_src_125[] =3D { + C(P_UNIPHY2_NSS_RX_CLK, 2.5, 0, 0), + C(P_UNIPHY2_NSS_RX_CLK, 1, 0, 0), +}; + +static const struct freq_multi_tbl ftbl_nss_cc_port3_rx_clk_src[] =3D { + FMS(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + FM(25000000, ftbl_nss_cc_port3_rx_clk_src_25), + FMS(78125000, P_UNIPHY2_NSS_RX_CLK, 4, 0, 0), + FM(125000000, ftbl_nss_cc_port3_rx_clk_src_125), + FMS(156250000, P_UNIPHY2_NSS_RX_CLK, 2, 0, 0), + FMS(312500000, P_UNIPHY2_NSS_RX_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_port3_rx_clk_src =3D { + .cmd_rcgr =3D 0x4e4, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_3, + .freq_multi_tbl =3D ftbl_nss_cc_port3_rx_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port3_rx_clk_src", + .parent_data =3D nss_cc_parent_data_3, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_3), + .ops =3D &clk_rcg2_fm_ops, + }, +}; + +static const struct freq_conf ftbl_nss_cc_port3_tx_clk_src_25[] =3D { + C(P_UNIPHY2_NSS_TX_CLK, 12.5, 0, 0), + C(P_UNIPHY2_NSS_TX_CLK, 5, 0, 0), +}; + +static const struct freq_conf ftbl_nss_cc_port3_tx_clk_src_125[] =3D { + C(P_UNIPHY2_NSS_TX_CLK, 2.5, 0, 0), + C(P_UNIPHY2_NSS_TX_CLK, 1, 0, 0), +}; + +static const struct freq_multi_tbl ftbl_nss_cc_port3_tx_clk_src[] =3D { + FMS(24000000, P_CMN_PLL_XO_CLK, 1, 0, 0), + FM(25000000, ftbl_nss_cc_port3_tx_clk_src_25), + FMS(78125000, P_UNIPHY2_NSS_TX_CLK, 4, 0, 0), + FM(125000000, ftbl_nss_cc_port3_tx_clk_src_125), + FMS(156250000, P_UNIPHY2_NSS_TX_CLK, 2, 0, 0), + FMS(312500000, P_UNIPHY2_NSS_TX_CLK, 1, 0, 0), + { } +}; + +static struct clk_rcg2 nss_cc_port3_tx_clk_src =3D { + .cmd_rcgr =3D 0x4f0, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_3, + .freq_multi_tbl =3D ftbl_nss_cc_port3_tx_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port3_tx_clk_src", + .parent_data =3D nss_cc_parent_data_3, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_3), + .ops =3D &clk_rcg2_fm_ops, + }, +}; + +static struct clk_rcg2 nss_cc_ppe_clk_src =3D { + .cmd_rcgr =3D 0x3ec, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D nss_cc_parent_map_0, + .freq_tbl =3D ftbl_nss_cc_ce_clk_src, + .clkr.hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_clk_src", + .parent_data =3D nss_cc_parent_data_0, + .num_parents =3D ARRAY_SIZE(nss_cc_parent_data_0), + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_rcg2_ops, + }, +}; + +static struct clk_regmap_div nss_cc_port1_rx_div_clk_src =3D { + .reg =3D 0x4bc, + .shift =3D 0, + .width =3D 9, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_port1_rx_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port1_rx_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ops, + }, +}; + +static struct clk_regmap_div nss_cc_port1_tx_div_clk_src =3D { + .reg =3D 0x4c8, + .shift =3D 0, + .width =3D 9, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_port1_tx_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port1_tx_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ops, + }, +}; + +static struct clk_regmap_div nss_cc_port2_rx_div_clk_src =3D { + .reg =3D 0x4d4, + .shift =3D 0, + .width =3D 9, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_port2_rx_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port2_rx_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ops, + }, +}; + +static struct clk_regmap_div nss_cc_port2_tx_div_clk_src =3D { + .reg =3D 0x4e0, + .shift =3D 0, + .width =3D 9, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_port2_tx_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port2_tx_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ops, + }, +}; + +static struct clk_regmap_div nss_cc_port3_rx_div_clk_src =3D { + .reg =3D 0x4ec, + .shift =3D 0, + .width =3D 9, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_port3_rx_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port3_rx_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ops, + }, +}; + +static struct clk_regmap_div nss_cc_port3_tx_div_clk_src =3D { + .reg =3D 0x4f8, + .shift =3D 0, + .width =3D 9, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_port3_tx_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port3_tx_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ops, + }, +}; + +static struct clk_regmap_div nss_cc_xgmac0_ptp_ref_div_clk_src =3D { + .reg =3D 0x3f4, + .shift =3D 0, + .width =3D 4, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_xgmac0_ptp_ref_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ro_ops, + }, +}; + +static struct clk_regmap_div nss_cc_xgmac1_ptp_ref_div_clk_src =3D { + .reg =3D 0x3f8, + .shift =3D 0, + .width =3D 4, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_xgmac1_ptp_ref_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ro_ops, + }, +}; + +static struct clk_regmap_div nss_cc_xgmac2_ptp_ref_div_clk_src =3D { + .reg =3D 0x3fc, + .shift =3D 0, + .width =3D 4, + .clkr.hw.init =3D &(const struct clk_init_data) { + .name =3D "nss_cc_xgmac2_ptp_ref_div_clk_src", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_regmap_div_ro_ops, + }, +}; + +static struct clk_branch nss_cc_ce_apb_clk =3D { + .halt_reg =3D 0x5e8, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x5e8, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ce_apb_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ce_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ce_axi_clk =3D { + .halt_reg =3D 0x5ec, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x5ec, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ce_axi_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ce_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_debug_clk =3D { + .halt_reg =3D 0x70c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x70c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_debug_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_eip_clk =3D { + .halt_reg =3D 0x658, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x658, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_eip_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_eip_bfdcd_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nss_csr_clk =3D { + .halt_reg =3D 0x6b0, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x6b0, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nss_csr_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_cfg_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nssnoc_ce_apb_clk =3D { + .halt_reg =3D 0x5f4, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x5f4, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nssnoc_ce_apb_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ce_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nssnoc_ce_axi_clk =3D { + .halt_reg =3D 0x5f8, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x5f8, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nssnoc_ce_axi_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ce_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nssnoc_eip_clk =3D { + .halt_reg =3D 0x660, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x660, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nssnoc_eip_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_eip_bfdcd_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nssnoc_nss_csr_clk =3D { + .halt_reg =3D 0x6b4, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x6b4, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nssnoc_nss_csr_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_cfg_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nssnoc_ppe_cfg_clk =3D { + .halt_reg =3D 0x444, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x444, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nssnoc_ppe_cfg_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_nssnoc_ppe_clk =3D { + .halt_reg =3D 0x440, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x440, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_nssnoc_ppe_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port1_mac_clk =3D { + .halt_reg =3D 0x428, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x428, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port1_mac_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port1_rx_clk =3D { + .halt_reg =3D 0x4fc, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x4fc, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port1_rx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port1_rx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port1_tx_clk =3D { + .halt_reg =3D 0x504, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x504, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port1_tx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port1_tx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port2_mac_clk =3D { + .halt_reg =3D 0x430, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x430, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port2_mac_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port2_rx_clk =3D { + .halt_reg =3D 0x50c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x50c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port2_rx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port2_rx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port2_tx_clk =3D { + .halt_reg =3D 0x514, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x514, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port2_tx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port2_tx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port3_mac_clk =3D { + .halt_reg =3D 0x438, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x438, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port3_mac_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port3_rx_clk =3D { + .halt_reg =3D 0x51c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x51c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port3_rx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port3_rx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_port3_tx_clk =3D { + .halt_reg =3D 0x524, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x524, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_port3_tx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port3_tx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ppe_edma_cfg_clk =3D { + .halt_reg =3D 0x424, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x424, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_edma_cfg_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ppe_edma_clk =3D { + .halt_reg =3D 0x41c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x41c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_edma_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ppe_switch_btq_clk =3D { + .halt_reg =3D 0x408, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x408, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_switch_btq_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ppe_switch_cfg_clk =3D { + .halt_reg =3D 0x418, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x418, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_switch_cfg_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ppe_switch_clk =3D { + .halt_reg =3D 0x410, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x410, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_switch_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_ppe_switch_ipe_clk =3D { + .halt_reg =3D 0x400, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x400, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_ppe_switch_ipe_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_ppe_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_uniphy_port1_rx_clk =3D { + .halt_reg =3D 0x57c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x57c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_uniphy_port1_rx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port1_rx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_uniphy_port1_tx_clk =3D { + .halt_reg =3D 0x580, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x580, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_uniphy_port1_tx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port1_tx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_uniphy_port2_rx_clk =3D { + .halt_reg =3D 0x584, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x584, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_uniphy_port2_rx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port2_rx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_uniphy_port2_tx_clk =3D { + .halt_reg =3D 0x588, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x588, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_uniphy_port2_tx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port2_tx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_uniphy_port3_rx_clk =3D { + .halt_reg =3D 0x58c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x58c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_uniphy_port3_rx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port3_rx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_uniphy_port3_tx_clk =3D { + .halt_reg =3D 0x590, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x590, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_uniphy_port3_tx_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_port3_tx_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_xgmac0_ptp_ref_clk =3D { + .halt_reg =3D 0x448, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x448, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_xgmac0_ptp_ref_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_xgmac0_ptp_ref_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_xgmac1_ptp_ref_clk =3D { + .halt_reg =3D 0x44c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x44c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_xgmac1_ptp_ref_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_xgmac1_ptp_ref_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch nss_cc_xgmac2_ptp_ref_clk =3D { + .halt_reg =3D 0x450, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x450, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data){ + .name =3D "nss_cc_xgmac2_ptp_ref_clk", + .parent_hws =3D (const struct clk_hw*[]){ + &nss_cc_xgmac2_ptp_ref_div_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_regmap *nss_cc_ipq5424_clocks[] =3D { + [NSS_CC_CE_APB_CLK] =3D &nss_cc_ce_apb_clk.clkr, + [NSS_CC_CE_AXI_CLK] =3D &nss_cc_ce_axi_clk.clkr, + [NSS_CC_CE_CLK_SRC] =3D &nss_cc_ce_clk_src.clkr, + [NSS_CC_CFG_CLK_SRC] =3D &nss_cc_cfg_clk_src.clkr, + [NSS_CC_DEBUG_CLK] =3D &nss_cc_debug_clk.clkr, + [NSS_CC_EIP_BFDCD_CLK_SRC] =3D &nss_cc_eip_bfdcd_clk_src.clkr, + [NSS_CC_EIP_CLK] =3D &nss_cc_eip_clk.clkr, + [NSS_CC_NSS_CSR_CLK] =3D &nss_cc_nss_csr_clk.clkr, + [NSS_CC_NSSNOC_CE_APB_CLK] =3D &nss_cc_nssnoc_ce_apb_clk.clkr, + [NSS_CC_NSSNOC_CE_AXI_CLK] =3D &nss_cc_nssnoc_ce_axi_clk.clkr, + [NSS_CC_NSSNOC_EIP_CLK] =3D &nss_cc_nssnoc_eip_clk.clkr, + [NSS_CC_NSSNOC_NSS_CSR_CLK] =3D &nss_cc_nssnoc_nss_csr_clk.clkr, + [NSS_CC_NSSNOC_PPE_CFG_CLK] =3D &nss_cc_nssnoc_ppe_cfg_clk.clkr, + [NSS_CC_NSSNOC_PPE_CLK] =3D &nss_cc_nssnoc_ppe_clk.clkr, + [NSS_CC_PORT1_MAC_CLK] =3D &nss_cc_port1_mac_clk.clkr, + [NSS_CC_PORT1_RX_CLK] =3D &nss_cc_port1_rx_clk.clkr, + [NSS_CC_PORT1_RX_CLK_SRC] =3D &nss_cc_port1_rx_clk_src.clkr, + [NSS_CC_PORT1_RX_DIV_CLK_SRC] =3D &nss_cc_port1_rx_div_clk_src.clkr, + [NSS_CC_PORT1_TX_CLK] =3D &nss_cc_port1_tx_clk.clkr, + [NSS_CC_PORT1_TX_CLK_SRC] =3D &nss_cc_port1_tx_clk_src.clkr, + [NSS_CC_PORT1_TX_DIV_CLK_SRC] =3D &nss_cc_port1_tx_div_clk_src.clkr, + [NSS_CC_PORT2_MAC_CLK] =3D &nss_cc_port2_mac_clk.clkr, + [NSS_CC_PORT2_RX_CLK] =3D &nss_cc_port2_rx_clk.clkr, + [NSS_CC_PORT2_RX_CLK_SRC] =3D &nss_cc_port2_rx_clk_src.clkr, + [NSS_CC_PORT2_RX_DIV_CLK_SRC] =3D &nss_cc_port2_rx_div_clk_src.clkr, + [NSS_CC_PORT2_TX_CLK] =3D &nss_cc_port2_tx_clk.clkr, + [NSS_CC_PORT2_TX_CLK_SRC] =3D &nss_cc_port2_tx_clk_src.clkr, + [NSS_CC_PORT2_TX_DIV_CLK_SRC] =3D &nss_cc_port2_tx_div_clk_src.clkr, + [NSS_CC_PORT3_MAC_CLK] =3D &nss_cc_port3_mac_clk.clkr, + [NSS_CC_PORT3_RX_CLK] =3D &nss_cc_port3_rx_clk.clkr, + [NSS_CC_PORT3_RX_CLK_SRC] =3D &nss_cc_port3_rx_clk_src.clkr, + [NSS_CC_PORT3_RX_DIV_CLK_SRC] =3D &nss_cc_port3_rx_div_clk_src.clkr, + [NSS_CC_PORT3_TX_CLK] =3D &nss_cc_port3_tx_clk.clkr, + [NSS_CC_PORT3_TX_CLK_SRC] =3D &nss_cc_port3_tx_clk_src.clkr, + [NSS_CC_PORT3_TX_DIV_CLK_SRC] =3D &nss_cc_port3_tx_div_clk_src.clkr, + [NSS_CC_PPE_CLK_SRC] =3D &nss_cc_ppe_clk_src.clkr, + [NSS_CC_PPE_EDMA_CFG_CLK] =3D &nss_cc_ppe_edma_cfg_clk.clkr, + [NSS_CC_PPE_EDMA_CLK] =3D &nss_cc_ppe_edma_clk.clkr, + [NSS_CC_PPE_SWITCH_BTQ_CLK] =3D &nss_cc_ppe_switch_btq_clk.clkr, + [NSS_CC_PPE_SWITCH_CFG_CLK] =3D &nss_cc_ppe_switch_cfg_clk.clkr, + [NSS_CC_PPE_SWITCH_CLK] =3D &nss_cc_ppe_switch_clk.clkr, + [NSS_CC_PPE_SWITCH_IPE_CLK] =3D &nss_cc_ppe_switch_ipe_clk.clkr, + [NSS_CC_UNIPHY_PORT1_RX_CLK] =3D &nss_cc_uniphy_port1_rx_clk.clkr, + [NSS_CC_UNIPHY_PORT1_TX_CLK] =3D &nss_cc_uniphy_port1_tx_clk.clkr, + [NSS_CC_UNIPHY_PORT2_RX_CLK] =3D &nss_cc_uniphy_port2_rx_clk.clkr, + [NSS_CC_UNIPHY_PORT2_TX_CLK] =3D &nss_cc_uniphy_port2_tx_clk.clkr, + [NSS_CC_UNIPHY_PORT3_RX_CLK] =3D &nss_cc_uniphy_port3_rx_clk.clkr, + [NSS_CC_UNIPHY_PORT3_TX_CLK] =3D &nss_cc_uniphy_port3_tx_clk.clkr, + [NSS_CC_XGMAC0_PTP_REF_CLK] =3D &nss_cc_xgmac0_ptp_ref_clk.clkr, + [NSS_CC_XGMAC0_PTP_REF_DIV_CLK_SRC] =3D &nss_cc_xgmac0_ptp_ref_div_clk_sr= c.clkr, + [NSS_CC_XGMAC1_PTP_REF_CLK] =3D &nss_cc_xgmac1_ptp_ref_clk.clkr, + [NSS_CC_XGMAC1_PTP_REF_DIV_CLK_SRC] =3D &nss_cc_xgmac1_ptp_ref_div_clk_sr= c.clkr, + [NSS_CC_XGMAC2_PTP_REF_CLK] =3D &nss_cc_xgmac2_ptp_ref_clk.clkr, + [NSS_CC_XGMAC2_PTP_REF_DIV_CLK_SRC] =3D &nss_cc_xgmac2_ptp_ref_div_clk_sr= c.clkr, +}; + +static const struct qcom_reset_map nss_cc_ipq5424_resets[] =3D { + [NSS_CC_CE_APB_CLK_ARES] =3D { 0x5e8, 2 }, + [NSS_CC_CE_AXI_CLK_ARES] =3D { 0x5ec, 2 }, + [NSS_CC_DEBUG_CLK_ARES] =3D { 0x70c, 2 }, + [NSS_CC_EIP_CLK_ARES] =3D { 0x658, 2 }, + [NSS_CC_NSS_CSR_CLK_ARES] =3D { 0x6b0, 2 }, + [NSS_CC_NSSNOC_CE_APB_CLK_ARES] =3D { 0x5f4, 2 }, + [NSS_CC_NSSNOC_CE_AXI_CLK_ARES] =3D { 0x5f8, 2 }, + [NSS_CC_NSSNOC_EIP_CLK_ARES] =3D { 0x660, 2 }, + [NSS_CC_NSSNOC_NSS_CSR_CLK_ARES] =3D { 0x6b4, 2 }, + [NSS_CC_NSSNOC_PPE_CLK_ARES] =3D { 0x440, 2 }, + [NSS_CC_NSSNOC_PPE_CFG_CLK_ARES] =3D { 0x444, 2 }, + [NSS_CC_PORT1_MAC_CLK_ARES] =3D { 0x428, 2 }, + [NSS_CC_PORT1_RX_CLK_ARES] =3D { 0x4fc, 2 }, + [NSS_CC_PORT1_TX_CLK_ARES] =3D { 0x504, 2 }, + [NSS_CC_PORT2_MAC_CLK_ARES] =3D { 0x430, 2 }, + [NSS_CC_PORT2_RX_CLK_ARES] =3D { 0x50c, 2 }, + [NSS_CC_PORT2_TX_CLK_ARES] =3D { 0x514, 2 }, + [NSS_CC_PORT3_MAC_CLK_ARES] =3D { 0x438, 2 }, + [NSS_CC_PORT3_RX_CLK_ARES] =3D { 0x51c, 2 }, + [NSS_CC_PORT3_TX_CLK_ARES] =3D { 0x524, 2 }, + [NSS_CC_PPE_BCR] =3D { 0x3e8 }, + [NSS_CC_PPE_EDMA_CLK_ARES] =3D { 0x41c, 2 }, + [NSS_CC_PPE_EDMA_CFG_CLK_ARES] =3D { 0x424, 2 }, + [NSS_CC_PPE_SWITCH_BTQ_CLK_ARES] =3D { 0x408, 2 }, + [NSS_CC_PPE_SWITCH_CLK_ARES] =3D { 0x410, 2 }, + [NSS_CC_PPE_SWITCH_CFG_CLK_ARES] =3D { 0x418, 2 }, + [NSS_CC_PPE_SWITCH_IPE_CLK_ARES] =3D { 0x400, 2 }, + [NSS_CC_UNIPHY_PORT1_RX_CLK_ARES] =3D { 0x57c, 2 }, + [NSS_CC_UNIPHY_PORT1_TX_CLK_ARES] =3D { 0x580, 2 }, + [NSS_CC_UNIPHY_PORT2_RX_CLK_ARES] =3D { 0x584, 2 }, + [NSS_CC_UNIPHY_PORT2_TX_CLK_ARES] =3D { 0x588, 2 }, + [NSS_CC_UNIPHY_PORT3_RX_CLK_ARES] =3D { 0x58c, 2 }, + [NSS_CC_UNIPHY_PORT3_TX_CLK_ARES] =3D { 0x590, 2 }, + [NSS_CC_XGMAC0_PTP_REF_CLK_ARES] =3D { 0x448, 2 }, + [NSS_CC_XGMAC1_PTP_REF_CLK_ARES] =3D { 0x44c, 2 }, + [NSS_CC_XGMAC2_PTP_REF_CLK_ARES] =3D { 0x450, 2 }, +}; + +static const struct regmap_config nss_cc_ipq5424_regmap_config =3D { + .reg_bits =3D 32, + .reg_stride =3D 4, + .val_bits =3D 32, + .max_register =3D 0x800, + .fast_io =3D true, +}; + +static const struct qcom_icc_hws_data icc_ipq5424_nss_hws[] =3D { + { MASTER_NSSNOC_PPE, SLAVE_NSSNOC_PPE, NSS_CC_NSSNOC_PPE_CLK }, + { MASTER_NSSNOC_PPE_CFG, SLAVE_NSSNOC_PPE_CFG, NSS_CC_NSSNOC_PPE_CFG_CLK = }, + { MASTER_NSSNOC_NSS_CSR, SLAVE_NSSNOC_NSS_CSR, NSS_CC_NSSNOC_NSS_CSR_CLK = }, + { MASTER_NSSNOC_CE_AXI, SLAVE_NSSNOC_CE_AXI, NSS_CC_NSSNOC_CE_AXI_CLK}, + { MASTER_NSSNOC_CE_APB, SLAVE_NSSNOC_CE_APB, NSS_CC_NSSNOC_CE_APB_CLK}, + { MASTER_NSSNOC_EIP, SLAVE_NSSNOC_EIP, NSS_CC_NSSNOC_EIP_CLK}, +}; + +#define IPQ_NSSCC_ID (5424 * 2) /* some unique value */ + +static const struct qcom_cc_desc nss_cc_ipq5424_desc =3D { + .config =3D &nss_cc_ipq5424_regmap_config, + .clks =3D nss_cc_ipq5424_clocks, + .num_clks =3D ARRAY_SIZE(nss_cc_ipq5424_clocks), + .resets =3D nss_cc_ipq5424_resets, + .num_resets =3D ARRAY_SIZE(nss_cc_ipq5424_resets), + .icc_hws =3D icc_ipq5424_nss_hws, + .num_icc_hws =3D ARRAY_SIZE(icc_ipq5424_nss_hws), + .icc_first_node_id =3D IPQ_NSSCC_ID, +}; + +static const struct dev_pm_ops nss_cc_ipq5424_pm_ops =3D { + SET_RUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL) +}; + +static const struct of_device_id nss_cc_ipq5424_match_table[] =3D { + { .compatible =3D "qcom,ipq5424-nsscc" }, + { } +}; +MODULE_DEVICE_TABLE(of, nss_cc_ipq5424_match_table); + +static int nss_cc_ipq5424_probe(struct platform_device *pdev) +{ + int ret; + + ret =3D devm_pm_runtime_enable(&pdev->dev); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Fail to enable runtime PM\n"); + + ret =3D devm_pm_clk_create(&pdev->dev); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Fail to create PM clock\n"); + + ret =3D pm_clk_add(&pdev->dev, "bus"); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Fail to add bus clock\n"); + + ret =3D pm_runtime_resume_and_get(&pdev->dev); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Fail to resume\n"); + + ret =3D qcom_cc_probe(pdev, &nss_cc_ipq5424_desc); + pm_runtime_put(&pdev->dev); + + return ret; +} + +static struct platform_driver nss_cc_ipq5424_driver =3D { + .probe =3D nss_cc_ipq5424_probe, + .driver =3D { + .name =3D "qcom,ipq5424-nsscc", + .of_match_table =3D nss_cc_ipq5424_match_table, + .pm =3D &nss_cc_ipq5424_pm_ops, + .sync_state =3D icc_sync_state, + }, +}; +module_platform_driver(nss_cc_ipq5424_driver); + +MODULE_DESCRIPTION("Qualcomm Technologies, Inc. NSSCC IPQ5424 Driver"); +MODULE_LICENSE("GPL"); --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 DD79D356913; Tue, 9 Sep 2025 13:41:19 +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=1757425282; cv=none; b=Jq1IaQa0L1SHs9L7qy0lB/ChHtGSke+g/R8vWLnbujOGSHmCjJKVoPEZZudY5EUH4C8HRlMAHQZDrIbUlLI8pPUb63VGrNeX+ruf12QMc9b+r+jFyV95Mi75A7+vxMclHPFqKXnrgYG3y3gCv+9JlBXZgB9zSgwx0JKpDbJs6gA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425282; c=relaxed/simple; bh=nGMJ7M1v2vqAMZ6tBiUApreO1m1/mHNpggu4tQCR91g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=UlXfscEfl+fZQ2LtbFLF2te/YkvmJBgyj8kUzc5MOxzgEzZ/OJ5r2mJRqYZ2pAkDBUPKh60axWvk2wSY3mT2+uale51ewGD9+RpmEPmfRKMF/b/f7XVFjG9j8CY2q25nU8mvYN3+4tAxaIdxBNzmBuEUl7qH61PGpxXEfljxBxU= 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=dMDLxSg6; 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="dMDLxSg6" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5899LR2g020094; Tue, 9 Sep 2025 13:41:06 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= KfGNV1zTaVSq1hXkWZRdnyMtROKugBei619LdnrI2Jo=; b=dMDLxSg660itUR78 aEBKGOZv2mAnfXvrrTNU2Lgmbvat2t50TtkR1OxOO4U+wualKN/IBRnyWVoJLAXH NudhOBz46PCJBPKGZHPRdtM7UAQ9qrYAIyYyWTB7WzUjGSsAOt+v6ExQ70sLSgBG uAEBoElhE9S3wZZsJq93zGJLpcCKCV30fPJY19CiKbOTyKOcq+jHF+/XurfedQak cQy9/VwjhbQWzNHioCkWil2lcHjmyaHU/rVRx2thUYQhQmxm0FlovclIwdK34to6 hL3GYcvhDJrxCpgYZdxbv19eB+X27ToPlRJXfujFBClPC0iH3RBvEEetJ7sRqAQV XmcODQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 491vc24d6w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:41:05 +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 589Df4Hn026246 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:41:04 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:40:18 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:18 +0800 Subject: [PATCH v5 09/10] arm64: dts: qcom: ipq5424: Add NSS clock controller node 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: <20250909-qcom_ipq5424_nsscc-v5-9-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie , Konrad Dybcio X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=1949; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=nGMJ7M1v2vqAMZ6tBiUApreO1m1/mHNpggu4tQCR91g=; b=p9JYQE958GkOkTflY6MgD/jFMkwBc+dIrdhFTrzy2zk11OIl5VYvXeSoyBTVv95xcfKnkCupZ egt+5Xsm7QCB8xSOm4qI4wbyPBmIAnA7MMkYlYu/l/DSmDbR6gAzHGx X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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=FN4bx/os c=1 sm=1 tr=0 ts=68c02e71 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pA3aE4n4XothnxmHxHYA:9 a=QEXdDO2ut3YA:10 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: Z6fMyNfFW15HdbvsMbTx9tLT6YaFpQXW X-Proofpoint-GUID: Z6fMyNfFW15HdbvsMbTx9tLT6YaFpQXW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA5NCBTYWx0ZWRfX+lThwLEWWgTF w5k7n+0J8eFjUVuO404jUXEuYS9dnpf4ZCOcnd3+IsYLmmaxxjd4dH3vwAzKmekAmYWbucDkyCY SD/50lAJvhKHbLXobTo77ZVmlbx2mys27Uj4RNGih6bAW4+gQz+rfJZb0Z7jJPdI1JgUvQKM6FW jkxAm+ydJk/TxzfeCyw9kJeFVP8f8r76pDzpYFz28dCxhtWoWA+7irUDJ1nFFPFuzoKMCaqZdvd hgBTGXOQseD+a3q4+8YGHgHqxa5ThJvS7erCVBEFLJwMN0fd6z+UGN9AOVdtqisBaJZJo2NfpeA D/3uEMnNNHLcbtRK+zUp+xAJ1zEU/D8pD8LQU2GMvqxeQRHFCRmnadsWMIQbpEcpkLvPTg5n1iL hiC41GDS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 clxscore=1015 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509080094 NSS clock controller provides the clocks and resets to the networking hardware blocks on the IPQ5424, such as PPE (Packet Process Engine) and UNIPHY (PCS) blocks. Reviewed-by: Konrad Dybcio Signed-off-by: Luo Jie --- arch/arm64/boot/dts/qcom/ipq5424.dtsi | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qc= om/ipq5424.dtsi index 67877fbbdf3a..ea7b3b6bc756 100644 --- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi @@ -3,7 +3,7 @@ * IPQ5424 device tree source * * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ =20 #include @@ -809,6 +809,36 @@ apss_clk: clock-controller@fa80000 { #interconnect-cells =3D <1>; }; =20 + clock-controller@39b00000 { + compatible =3D "qcom,ipq5424-nsscc"; + reg =3D <0 0x39b00000 0 0x100000>; + clocks =3D <&cmn_pll IPQ5424_XO_24MHZ_CLK>, + <&cmn_pll IPQ5424_NSS_300MHZ_CLK>, + <&cmn_pll IPQ5424_PPE_375MHZ_CLK>, + <&gcc GPLL0_OUT_AUX>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <&gcc GCC_NSSCC_CLK>; + clock-names =3D "xo", + "nss", + "ppe", + "gpll0_out", + "uniphy0_rx", + "uniphy0_tx", + "uniphy1_rx", + "uniphy1_tx", + "uniphy2_rx", + "uniphy2_tx", + "bus"; + #clock-cells =3D <1>; + #reset-cells =3D <1>; + #interconnect-cells =3D <1>; + }; + pcie3: pcie@40000000 { compatible =3D "qcom,pcie-ipq5424", "qcom,pcie-ipq9574"; reg =3D <0x0 0x40000000 0x0 0xf1c>, --=20 2.34.1 From nobody Thu Oct 2 22:52:46 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 477323451B4; Tue, 9 Sep 2025 13:41:16 +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=1757425278; cv=none; b=GWHrz6kUm9R0BZnblK1Xp0QkpTQehk4MJQUeBMwv2f8gTgCPXY7UL4BVxPyi3hAHe/8KKqJgs39an2Uli+cuFRQNbhMacSSbx+CM5zE9fKLmfVXQMKhwtfR5S1YRzTlWYFYeB9lHcD6GdZ4Z27EQrMfLmnKQjchPJ0uiIMT0ifo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757425278; c=relaxed/simple; bh=fnZWzDDTTDEeBhEL/SWi3sXl1ujwKnlewazpL/KxiIY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Qk74LNLjPytjS/YqJT7MkhZfPIt5IcikvSGf817EYwG+4T7nWw7jyC37H+e8Nsk2dEGiUIezFgxUs9flcHotTzfMx1r1/Diz0kDES/CuXZ3Hy8UWzl3oBjOL0a7ma9hS3HOXlmapBDav0djzqbbeuG7MAVvM5Cc27zvs75LSDko= 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=cP4lD+ps; 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="cP4lD+ps" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5899LTPp020099; Tue, 9 Sep 2025 13:41:06 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= Y1yWgRltFJNThhSeNnr24vonmIf66fXtjWEcKmCdkMs=; b=cP4lD+psSvqPm4R5 tgmkPZAbXIj7OLWMWc649p8XMKlrZUBlxMwINSWvqr6RNCqEkS5GQLoUmD3F8lRj PxfNk6FUQ4Ykl8pdOx+nix5kFVMDQOesOljhSLHd2XY9CtkGKnynp8ere5n69VEU ywKQLudqbc3HJklc+vfQrCdEBT69+WfHM7VOKhfbRK6hLzU29hSzH079NHXYXzhC 9QrjVx0OP9Bj8ZAppaX5nX05eEyL7WkZOH648fO3K01qXiL43QszEiEJRVxLOq7l 1Brax7Z0I8NQ1V0/KKInEOLdURcoj2bIqsMsrCQdiJD5PO7UK2q3NiGadmGZaOwq zI1fGQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 491vc24d6x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 13:41:05 +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 589Df4Ho026246 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 9 Sep 2025 13:41:04 GMT Received: from nsssdc-sh01-lnx.ap.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.24; Tue, 9 Sep 2025 06:40:25 -0700 From: Luo Jie Date: Tue, 9 Sep 2025 21:39:19 +0800 Subject: [PATCH v5 10/10] arm64: defconfig: Build NSS clock controller driver for IPQ5424 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: <20250909-qcom_ipq5424_nsscc-v5-10-332c49a8512b@quicinc.com> References: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> In-Reply-To: <20250909-qcom_ipq5424_nsscc-v5-0-332c49a8512b@quicinc.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , "Varadarajan Narayanan" , Georgi Djakov , "Rob Herring" , Krzysztof Kozlowski , "Conor Dooley" , Anusha Rao , "Manikanta Mylavarapu" , Devi Priya , Philipp Zabel , "Richard Cochran" , Konrad Dybcio , Catalin Marinas , Will Deacon CC: , , , , , Krzysztof Kozlowski , , , , , , , , Luo Jie X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757425161; l=836; i=quic_luoj@quicinc.com; s=20250209; h=from:subject:message-id; bh=fnZWzDDTTDEeBhEL/SWi3sXl1ujwKnlewazpL/KxiIY=; b=cD/EQdYWsTEAucYZxDqjG+AQARUJ9G6djy/nO+A7JkEhjsCBdExLGRqjl61tH2CXM6I7Ad2vw SvuvqiYulMRAqzAacg/Oo0+pYPugItEW9iyOLR141dmcZsDttsqqdbw X-Developer-Key: i=quic_luoj@quicinc.com; a=ed25519; pk=pzwy8bU5tJZ5UKGTv28n+QOuktaWuriznGmriA9Qkfc= X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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=FN4bx/os c=1 sm=1 tr=0 ts=68c02e71 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=ikIlBLl75NxfxiEf-eQA:9 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: Omt8GkxLuZYPwpM4H6f2kNrZdm2D9nIG X-Proofpoint-GUID: Omt8GkxLuZYPwpM4H6f2kNrZdm2D9nIG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA4MDA5NCBTYWx0ZWRfX3R8txnBK1+3d W5pHBTjS5UR3SQamgDubIQNNd+nTYp6HVDxa+nG0ys/RDZG4Zy+fnaJ9T1m5ERQTTn6ZJvW8I+f B539JGWCbJfWRAW9qNmEk+wmuW2cUeC339ce23cKWlO12muZBwY7+JPVMPHQb7bZAWeFBR9lOzY 14IvBPguqBL0S+PAQWP0JRCJhFaxvXhFeJDAttOgTFby7np7odkIyX0p0/6X2c3B0yIe2DaftmZ p1krudfGSblEyCszW76xXh0zbATNpnJ8kA2nenk65E+FJ+FHZpx+9SlrvUJi3AQqKcUfv0yOyQ8 KL+7My7TIZJirkff2Tq5osPLEW69uPp55epgbhH3XiNWIsgjJIA9Gayrdn31u9N1/5aGnRUBUGV MIOscT/u X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 clxscore=1015 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509080094 NSS clock controller is needed for supplying clocks and resets to the networking blocks for the Ethernet functions on the IPQ5424 platforms. All boards based on the IPQ5424 SoC will require this driver to be enabled. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Luo Jie --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index acb6807d3461..013325255119 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1379,6 +1379,7 @@ CONFIG_IPQ_GCC_5424=3Dy CONFIG_IPQ_GCC_6018=3Dy CONFIG_IPQ_GCC_8074=3Dy CONFIG_IPQ_GCC_9574=3Dy +CONFIG_IPQ_NSSCC_5424=3Dm CONFIG_IPQ_NSSCC_9574=3Dm CONFIG_MSM_GCC_8916=3Dy CONFIG_MSM_MMCC_8994=3Dm --=20 2.34.1