From nobody Mon Oct 6 04:58:07 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 00D1A265614; Thu, 24 Jul 2025 10:26:11 +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=1753352773; cv=none; b=dHrZoyQyMnj1TPhKi7oinINsQaXCnJcFdU2aP83frtOLpoyXCFZBj4LLJ3Z44QwlG3J7dE1K54HOl4xWUq8UqSnY0Xc5lKnHZgVnUR47y0sqZ8uOiWBx8bk7QOXX2Ic5T5Y8mfnXkzT12FUtIyVj4uxeOZtratr6vTtco4Jxxgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753352773; c=relaxed/simple; bh=f5hFzyqfi79CYRrQfT0e+5B1D+tOqlPGzDYHQkwCOYI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=V/LE/1jyt73UT+G4PJrtWrEdhtrXumtDOBbXhqWGe9XLnKtOsyzyCiwZvlgRpLUTxYuHyoZ9DuPJr3QqiMEdaLgIM0UrjKf68G3A9G2aqreGkFPDA+fs+SEF17slMsOtN9bSmv/MuvCxhIbG5sjTliPemvrj/sULqMIaV3pnFOw= 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=XLGq/Bmd; 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="XLGq/Bmd" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56O9hsHT028534; Thu, 24 Jul 2025 10:26:08 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= OO0ft4fq4gRriGrrw9/acPRVhY3XFlUUkjAFvDmYWEc=; b=XLGq/Bmd7Fhmdp5B 6rY1KLCLfDIJGjVGbiHoPw0Ri/P6hMdTCvs5kZGts6QedzKq2DrKykqp3PneZ1zX +bRIJzNrULZ7i8LjmZ6W7wKZWe3DVC1GpQikfvkJrK9hkulJDiqkFv1xLdc8mSaR e0PrXiiNrc9PvR/wI/Z1Br5s1b+K0De8Y4MPlaArVWA6peBMOz1LsKw+HNIbAMea 3BCByLFjbx7tqHcuavDnPG+Y++H0KqG3h9Wo0wG73ZwyCM9Wjuoe9Ug7P42SFL1x ui4zSSgKw54b74xy6jQGoT+3wZ41OrRLT8cCqYf8B50JBHE3UiA1VQsab13r8Gs/ 7IAnwg== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4826t1fpbp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:07 +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 56OAQ6gN014688 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:06 GMT Received: from hu-varada-blr.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Jul 2025 03:26:01 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , CC: Varadarajan Narayanan Subject: [PATCH v3 1/4] dt-bindings: clock: ipq5424-apss-clk: Add ipq5424 apss clock controller Date: Thu, 24 Jul 2025 15:55:37 +0530 Message-ID: <20250724102540.3762358-2-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724102540.3762358-1-quic_varada@quicinc.com> References: <20250724102540.3762358-1-quic_varada@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: -Std3i49QQkuLO2do7TIeJocgrnA1Rnb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzI0MDA3NyBTYWx0ZWRfX3ElBPiG2vJ2U o5e/dJ8x2k8mQpORU/madQfDp26/9KVeWbkjfCFiioThtl/X+QTb5rNqetrL+SDDMVe4Klb+/9E Lro/HW+TInkDYgPtTydODkWDUOyFixR13OpUFe66HPzc9CrgdfHb+OCgEl/COFiZ/H/KiLcSc4R zg2NhzBqaxPbl7M/0nM8r1deh5fm4efWLxmVTpcbcFvijh8EI1WtBEBJX/VCrDcH8yFQlq/oVTn mGtO7HYT01zLIVR+ZRSaKyxihfyilu9VmfEheHhi3inTmKQA2VZ4ahIzVZDkoL1pABYNxSQb0Gv UlqLP6VPx2EQfWb9rxhXyd/PqTmXQ26NpMziqk1LiTIjp8s69FDonb+GtR9+rnBVinDaWrcLoGQ r3+gfV6uwPNpSpnd2wHmLhcM9P3Myt84ZxvOvv/cicfcUy/8GtZOcPjRaWcr79Dz7honzO50 X-Authority-Analysis: v=2.4 cv=E8/Npbdl c=1 sm=1 tr=0 ts=68820a3f cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=gEfo2CItAAAA:8 a=COk6AnOGAAAA:8 a=XO5-lTlbq7D_d7JOJAUA:9 a=sptkURWiP4Gy88Gu7hUp:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: -Std3i49QQkuLO2do7TIeJocgrnA1Rnb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-24_01,2025-07-24_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 suspectscore=0 clxscore=1015 phishscore=0 mlxlogscore=999 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507240077 Content-Type: text/plain; charset="utf-8" From: Sricharan Ramabadhran The CPU core in ipq5424 is clocked by a huayra PLL with RCG support. The RCG and PLL have a separate register space from the GCC. Also the L3 cache has a separate pll and needs to be scaled along with the CPU. Co-developed-by: Md Sadre Alam Signed-off-by: Md Sadre Alam Signed-off-by: Sricharan Ramabadhran [ Added interconnect related changes ] Signed-off-by: Varadarajan Narayanan --- v2: Add #interconnect-cells to help enable L3 pll as ICC clock Add master/slave ids --- .../bindings/clock/qcom,ipq5424-apss-clk.yaml | 61 +++++++++++++++++++ include/dt-bindings/clock/qcom,apss-ipq.h | 6 ++ .../dt-bindings/interconnect/qcom,ipq5424.h | 3 + 3 files changed, 70 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/qcom,ipq5424-ap= ss-clk.yaml diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq5424-apss-clk.= yaml b/Documentation/devicetree/bindings/clock/qcom,ipq5424-apss-clk.yaml new file mode 100644 index 000000000000..abb9eb78d271 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5424-apss-clk.yaml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/qcom,ipq5424-apss-clk.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm APSS IPQ5424 Clock Controller + +maintainers: + - Sricharan Ramabadhran + - Md Sadre Alam + +description: | + The CPU core in ipq5424 is clocked by a huayra PLL with RCG support. + The RCG and PLL have a separate register space from the GCC. + +properties: + compatible: + enum: + - qcom,ipq5424-apss-clk + reg: + maxItems: 1 + + clocks: + items: + - description: Reference to the XO clock. + - description: Reference to the GPLL0 clock. + + clock-names: + items: + - const: xo + - const: gpll0 + + '#clock-cells': + const: 1 + + '#interconnect-cells': + const: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - '#clock-cells' + - '#interconnect-cells' + +additionalProperties: false + +examples: + - | + #include + + apss_clk: apss-clock@fa80000 { + compatible =3D "qcom,ipq5424-apss-clk"; + reg =3D <0x0fa80000 0x20000>; + clocks =3D <&xo_board>, <&gcc GPLL0>; + clock-names =3D "xo", "gpll0"; + #clock-cells =3D <1>; + #interconnect-cells =3D <1>; + }; diff --git a/include/dt-bindings/clock/qcom,apss-ipq.h b/include/dt-binding= s/clock/qcom,apss-ipq.h index 77b6e05492e2..0bb41e5efdef 100644 --- a/include/dt-bindings/clock/qcom,apss-ipq.h +++ b/include/dt-bindings/clock/qcom,apss-ipq.h @@ -8,5 +8,11 @@ =20 #define APCS_ALIAS0_CLK_SRC 0 #define APCS_ALIAS0_CORE_CLK 1 +#define APSS_PLL_EARLY 2 +#define APSS_SILVER_CLK_SRC 3 +#define APSS_SILVER_CORE_CLK 4 +#define L3_PLL 5 +#define L3_CLK_SRC 6 +#define L3_CORE_CLK 7 =20 #endif diff --git a/include/dt-bindings/interconnect/qcom,ipq5424.h b/include/dt-b= indings/interconnect/qcom,ipq5424.h index a770356112ee..afd7e0683a24 100644 --- a/include/dt-bindings/interconnect/qcom,ipq5424.h +++ b/include/dt-bindings/interconnect/qcom,ipq5424.h @@ -21,4 +21,7 @@ #define MASTER_CNOC_USB 16 #define SLAVE_CNOC_USB 17 =20 +#define MASTER_CPU 0 +#define SLAVE_L3 1 + #endif /* INTERCONNECT_QCOM_IPQ5424_H */ --=20 2.34.1 From nobody Mon Oct 6 04:58:07 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 37CA5264A76; Thu, 24 Jul 2025 10:26: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=1753352779; cv=none; b=Usp8fLcdeLB9+DsqNQSZDeLMdZBFH4jkd62kV8BmilZQa6Zz8nQZOIH9IJhgsQWAEqU1LKZ0u4ttAux/TyrKDrosDKiRCiQHB1fZ61m6lZ8EreC2VHtOO+L6ZbsQNVXOrYO5NIUdLQrOpWP3ZIf+cn3eaZCUkJ/+8N/K6zP4O5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753352779; c=relaxed/simple; bh=FSYzkcvMb5Ptn2LOUMOmS6FvaO+WmmKuHbOlla/uDgI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=do7Q7OnnM1mWC9efxxAOnZl8sBTKpCdKU9l79HTo7Wl+97ZFGT074ai3AAsyOWekUW63wW/PPeCnQD2D/rpVElg4y4mq3vBn77qmpl8zXOIEwKqby0mqm/zKaL+0hYNlujqQh//dfQyFAIWxNihipKCmWeBoyiINiLgzQPS16kc= 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=hzIDN/xH; 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="hzIDN/xH" 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 56O9J1vM022078; Thu, 24 Jul 2025 10:26:13 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= D12mltExWTHhK6V9udfqoopDYjS1carhoopgiNNCTLA=; b=hzIDN/xHEoCatdVC zeBTpxWNu62M+3rSuXbrK/Uuk2El4fEEKJ0B8Rn8pSOWPmo0gS1/MAr75mJiBmrB CXl/7Co0aWPy06vofzmIwCBuE1tntKODco4eGy3Iw+eCIHnoXOFScdfaTvgW/0Dg oiTiQxbbtyHzFL5xU8TSPUadasIlTYFwN5kXnBXkw1K1ex/dvTNKHx158TE3Lokv +oPJRaF27ox40oKgJOxMhKWlWLYahC2KMcd4DzGD9my3AcWjLjRZR0VPIrS3XlVN j7ujQAPeNCiQgwwxowZZW2jMKe97QqnfgP5C2mv13vOPZXWOtFdl0JGwqoG99GhE +NjzpA== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48313kk13n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:13 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA04.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 56OAQC1q009954 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:12 GMT Received: from hu-varada-blr.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Jul 2025 03:26:06 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , CC: Varadarajan Narayanan Subject: [PATCH v3 2/4] clk: qcom: apss-ipq5424: Add ipq5424 apss clock controller Date: Thu, 24 Jul 2025 15:55:38 +0530 Message-ID: <20250724102540.3762358-3-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724102540.3762358-1-quic_varada@quicinc.com> References: <20250724102540.3762358-1-quic_varada@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzI0MDA3NyBTYWx0ZWRfX4z9Vd1EP4NLi dhA3y8jtuhc1tFTIaB/4k4u8WKQFMSBnExBf7AYT3DA3PY8q6hmDJ6dhR5wcImdprimRxDiodfa dPZRjxyvkx9S/PQ4g0OW+0kVh9k97EQQwvIFCtnCdC+NPctWurJFtIYzbs2G7GpWDgZpGtEvuTY Qqrv2LDkVa7GC3TPY9LF4Ffom5hmjcY0Y9uAglHP/xodVR1dQf8FSaDBqXYkct2cDJSZLHYrQLs FJ7T9UfxpfFsZnpzB66ZPCBdVNkqRMMRYezqcHhoY+T4M5189TntOQ6VAnB8mKzTpQXsCxEzPfH FmUb9jNcBb7HNEkYk2yABFHlP87/DXjII6v7X5eOFaMqyrVnYJAN0greEtpaq+4b5p+17CgTR8m wBazh6WN3DsUJiko0+CpGs7nsrreo12LWyvUM6pL+SjVqKlikKaRb9W7wiHjZTruj0byzV+Z X-Proofpoint-ORIG-GUID: XlUmB7dE_DnZ9QtRqklE4McKnvSpxEkU X-Proofpoint-GUID: XlUmB7dE_DnZ9QtRqklE4McKnvSpxEkU X-Authority-Analysis: v=2.4 cv=C/TpyRP+ c=1 sm=1 tr=0 ts=68820a45 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=4qVBXBCilfBDfP_PjJQA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-24_01,2025-07-24_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 mlxscore=0 clxscore=1015 impostorscore=0 mlxlogscore=999 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507240077 Content-Type: text/plain; charset="utf-8" From: Sricharan Ramabadhran CPU on Qualcomm ipq5424 is clocked by huayra PLL with RCG support. Add support for the APSS PLL, RCG and clock enable for ipq5424. The PLL, RCG register space are clubbed. Hence adding new APSS driver for both PLL and RCG/CBC control. Also the L3 cache has a separate pll and needs to be scaled along with the CPU and is modeled as an ICC clock. Co-developed-by: Md Sadre Alam Signed-off-by: Md Sadre Alam Signed-off-by: Sricharan Ramabadhran [ Removed clock notifier, moved L3 pll to icc-clk, used existing alpha pll structure ] Signed-off-by: Varadarajan Narayanan --- v3: Use the qcom_cc_driver_data framework to trim down apss_ipq5424_probe Rearrange structures to use in other structures v2: Model L3 pll as ICC clock and add relevant structures Use CLK_ALPHA_PLL_TYPE_HUAYRA_2290 register offsets instead of duplicate ipq5424_pll_offsets definition. Inline clock rates. Fix MODULE_LICENSE --- drivers/clk/qcom/Kconfig | 7 + drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/apss-ipq5424.c | 260 ++++++++++++++++++++++++++++++++ 3 files changed, 268 insertions(+) create mode 100644 drivers/clk/qcom/apss-ipq5424.c diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig index 6cb6cd3e1778..dae89599a40e 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -208,6 +208,13 @@ config IPQ_CMN_PLL Say Y or M if you want to support CMN PLL clock on the IPQ based devices. =20 +config IPQ_APSS_5424 + tristate "IPQ APSS Clock Controller" + help + Support for APSS Clock controller on Qualcom IPQ5424 platform. + Say Y if you want to support CPU frequency scaling on ipq based + devices. + config IPQ_GCC_4019 tristate "IPQ4019 Global Clock Controller" help diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile index ddb7e06fae40..98de55eb6402 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile @@ -29,6 +29,7 @@ obj-$(CONFIG_CLK_X1E80100_TCSRCC) +=3D tcsrcc-x1e80100.o obj-$(CONFIG_CLK_X1P42100_GPUCC) +=3D gpucc-x1p42100.o obj-$(CONFIG_CLK_QCM2290_GPUCC) +=3D gpucc-qcm2290.o obj-$(CONFIG_IPQ_APSS_PLL) +=3D apss-ipq-pll.o +obj-$(CONFIG_IPQ_APSS_5424) +=3D apss-ipq5424.o obj-$(CONFIG_IPQ_APSS_6018) +=3D apss-ipq6018.o obj-$(CONFIG_IPQ_CMN_PLL) +=3D ipq-cmn-pll.o obj-$(CONFIG_IPQ_GCC_4019) +=3D gcc-ipq4019.o diff --git a/drivers/clk/qcom/apss-ipq5424.c b/drivers/clk/qcom/apss-ipq542= 4.c new file mode 100644 index 000000000000..feb695a702ac --- /dev/null +++ b/drivers/clk/qcom/apss-ipq5424.c @@ -0,0 +1,260 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2025, Qualcomm Innovation Center, Inc. All rights reserve= d. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "clk-alpha-pll.h" +#include "clk-branch.h" +#include "clk-rcg.h" +#include "clk-regmap.h" +#include "common.h" + +enum { + P_XO, + P_GPLL0, + P_APSS_PLL_EARLY, + P_L3_PLL, +}; + +struct apss_clk { + struct notifier_block cpu_clk_notifier; + struct clk_hw *hw; + struct device *dev; + struct clk *l3_clk; +}; + +static const struct alpha_pll_config apss_pll_config =3D { + .l =3D 0x3b, + .config_ctl_val =3D 0x08200920, + .config_ctl_hi_val =3D 0x05008001, + .config_ctl_hi1_val =3D 0x04000000, + .user_ctl_val =3D 0xf, +}; + +static struct clk_alpha_pll ipq5424_apss_pll =3D { + .offset =3D 0x0, + .config =3D &apss_pll_config, + .regs =3D clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_HUAYRA_2290], + .flags =3D SUPPORTS_DYNAMIC_UPDATE, + .clkr =3D { + .enable_reg =3D 0x0, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "apss_pll", + .parent_data =3D &(const struct clk_parent_data) { + .fw_name =3D "xo-board-clk", + }, + .parent_names =3D (const char *[]){ "xo-board-clk"}, + .num_parents =3D 1, + .ops =3D &clk_alpha_pll_huayra_ops, + }, + }, +}; + +static const struct clk_parent_data parents_apss_silver_clk_src[] =3D { + { .fw_name =3D "xo-board-clk" }, + { .fw_name =3D "gpll0" }, + { .hw =3D &ipq5424_apss_pll.clkr.hw }, +}; + +static const struct parent_map parents_apss_silver_clk_src_map[] =3D { + { P_XO, 0 }, + { P_GPLL0, 4 }, + { P_APSS_PLL_EARLY, 5 }, +}; + +static const struct freq_tbl ftbl_apss_clk_src[] =3D { + F(800000000, P_GPLL0, 1, 0, 0), + F(1416000000, P_APSS_PLL_EARLY, 1, 0, 0), + F(1800000000, P_APSS_PLL_EARLY, 1, 0, 0), + { } +}; + +static struct clk_rcg2 apss_silver_clk_src =3D { + .cmd_rcgr =3D 0x0080, + .freq_tbl =3D ftbl_apss_clk_src, + .hid_width =3D 5, + .parent_map =3D parents_apss_silver_clk_src_map, + .clkr.hw.init =3D &(struct clk_init_data){ + .name =3D "apss_silver_clk_src", + .parent_data =3D parents_apss_silver_clk_src, + .num_parents =3D ARRAY_SIZE(parents_apss_silver_clk_src), + .ops =3D &clk_rcg2_ops, + .flags =3D CLK_SET_RATE_PARENT, + }, +}; + +static struct clk_branch apss_silver_core_clk =3D { + .halt_reg =3D 0x008c, + .clkr =3D { + .enable_reg =3D 0x008c, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "apss_silver_core_clk", + .parent_hws =3D (const struct clk_hw *[]){ + &apss_silver_clk_src.clkr.hw }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static const struct alpha_pll_config l3_pll_config =3D { + .l =3D 0x29, + .config_ctl_val =3D 0x08200920, + .config_ctl_hi_val =3D 0x05008001, + .config_ctl_hi1_val =3D 0x04000000, + .user_ctl_val =3D 0xf, +}; + +static struct clk_alpha_pll ipq5424_l3_pll =3D { + .offset =3D 0x10000, + .config =3D &l3_pll_config, + .regs =3D clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_HUAYRA_2290], + .flags =3D SUPPORTS_DYNAMIC_UPDATE, + .clkr =3D { + .enable_reg =3D 0x0, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "l3_pll", + .parent_data =3D &(const struct clk_parent_data) { + .fw_name =3D "xo-board-clk", + }, + .parent_names =3D (const char *[]){ "xo-board-clk"}, + .num_parents =3D 1, + .ops =3D &clk_alpha_pll_huayra_ops, + }, + }, +}; + +static const struct clk_parent_data parents_l3_clk_src[] =3D { + { .fw_name =3D "xo-board-clk" }, + { .fw_name =3D "gpll0" }, + { .hw =3D &ipq5424_l3_pll.clkr.hw }, +}; + +static const struct parent_map parents_l3_clk_src_map[] =3D { + { P_XO, 0 }, + { P_GPLL0, 4 }, + { P_L3_PLL, 5 }, +}; + +static const struct freq_tbl ftbl_l3_clk_src[] =3D { + F(800000000, P_GPLL0, 1, 0, 0), + F(984000000, P_L3_PLL, 1, 0, 0), + F(1272000000, P_L3_PLL, 1, 0, 0), + { } +}; + +static struct clk_rcg2 l3_clk_src =3D { + .cmd_rcgr =3D 0x10080, + .freq_tbl =3D ftbl_l3_clk_src, + .hid_width =3D 5, + .parent_map =3D parents_l3_clk_src_map, + .clkr.hw.init =3D &(struct clk_init_data){ + .name =3D "l3_clk_src", + .parent_data =3D parents_l3_clk_src, + .num_parents =3D ARRAY_SIZE(parents_l3_clk_src), + .ops =3D &clk_rcg2_ops, + .flags =3D CLK_SET_RATE_PARENT, + }, +}; + +static struct clk_branch l3_core_clk =3D { + .halt_reg =3D 0x1008c, + .clkr =3D { + .enable_reg =3D 0x1008c, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "l3_clk", + .parent_hws =3D (const struct clk_hw *[]){ + &l3_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static const struct regmap_config apss_ipq5424_regmap_config =3D { + .reg_bits =3D 32, + .reg_stride =3D 4, + .val_bits =3D 32, + .max_register =3D 0x20000, + .fast_io =3D true, +}; + +static struct clk_regmap *apss_ipq5424_clks[] =3D { + [APSS_PLL_EARLY] =3D &ipq5424_apss_pll.clkr, + [APSS_SILVER_CLK_SRC] =3D &apss_silver_clk_src.clkr, + [APSS_SILVER_CORE_CLK] =3D &apss_silver_core_clk.clkr, + [L3_PLL] =3D &ipq5424_l3_pll.clkr, + [L3_CLK_SRC] =3D &l3_clk_src.clkr, + [L3_CORE_CLK] =3D &l3_core_clk.clkr, + +}; + +static struct clk_alpha_pll *ipa5424_apss_plls[] =3D { + &ipq5424_l3_pll, + &ipq5424_apss_pll, +}; + +static struct qcom_cc_driver_data ipa5424_apss_driver_data =3D { + .alpha_plls =3D ipa5424_apss_plls, + .num_alpha_plls =3D ARRAY_SIZE(ipa5424_apss_plls), +}; + +#define IPQ_APPS_PLL_ID (5424 * 3) /* some unique value */ + +static const struct qcom_icc_hws_data icc_ipq5424_cpu_l3[] =3D { + { MASTER_CPU, SLAVE_L3, L3_CORE_CLK }, +}; + +static const struct qcom_cc_desc apss_ipq5424_desc =3D { + .config =3D &apss_ipq5424_regmap_config, + .clks =3D apss_ipq5424_clks, + .num_clks =3D ARRAY_SIZE(apss_ipq5424_clks), + .icc_hws =3D icc_ipq5424_cpu_l3, + .num_icc_hws =3D ARRAY_SIZE(icc_ipq5424_cpu_l3), + .icc_first_node_id =3D IPQ_APPS_PLL_ID, + .driver_data =3D &ipa5424_apss_driver_data, +}; + +static int apss_ipq5424_probe(struct platform_device *pdev) +{ + return qcom_cc_probe(pdev, &apss_ipq5424_desc); +} + +static const struct of_device_id apss_ipq5424_match_table[] =3D { + { .compatible =3D "qcom,ipq5424-apss-clk" }, + { } +}; +MODULE_DEVICE_TABLE(of, apss_ipq5424_match_table); + +static struct platform_driver apss_ipq5424_driver =3D { + .probe =3D apss_ipq5424_probe, + .driver =3D { + .name =3D "apss-ipq5424-clk", + .of_match_table =3D apss_ipq5424_match_table, + }, +}; + +module_platform_driver(apss_ipq5424_driver); + +MODULE_DESCRIPTION("QCOM APSS IPQ5424 CLK Driver"); +MODULE_LICENSE("GPL"); --=20 2.34.1 From nobody Mon Oct 6 04:58:07 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 7C6692673B0; Thu, 24 Jul 2025 10:26:22 +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=1753352784; cv=none; b=R9kJQ+AsXAGybHlBjvUPK+h4RE27sN69cCmDJmQfgir2jCyMy1W2HyU9WKJJiTp67Xy1BK9olNy4zZBQ2LlTKgdm+zXHb5wAgkp854kY4/m8Oyj1RfLmp79n34dKIqxHMds6U0k2NAnKwmBfNEQOyn/s7YmAGYHhkrGepq2swD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753352784; c=relaxed/simple; bh=b2z02Tg7+vcOZeTgZw3lRIJ677lSvmqCMf5C7B6Yr0A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mf5Uq9UzO3gmWjsYzo61FQPA6rZUxabg+uCr62AhcGKB3TTZP4bYGjCFGZDDUyHZRxj3OUEN/L+r08pVS1kMV0UFk3KiEMU+gU9sb28UuurAFq24RNKcjaAUUwGSMyC0UxnV16ECzUzUXh15SJnGp1l/izHJxFrTUY0xczTaV8Y= 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=MgTzmnCK; 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="MgTzmnCK" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56O9ixkX028516; Thu, 24 Jul 2025 10:26:18 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= xF3PiaRiaIJjwDIgFh/oPpSH+ITV10Dk4Nei06/sbNo=; b=MgTzmnCKARBuAFvE PBKFKm0ORZOX7Qb+KeyMZSBJeEITzkoo4yF1I+EAFkKcw+0HH6Kq+Dz6QDbWQ6Zi 86CfAv403odw8UNUzpjRpP7dwUB5iKUKc9xVuRuPkecX/ZV/8JhzOvadBRzOiwNb yTxnMLrUF4swTSZKNKaq5Rk4HAZpUsLRdQxjXUvdjZWnb4NV6QMDjCXeqE3Ovl7h ULOfNSlirZdU9rWe6PhBz9diij3z/S8BUy9hXEXTHJGHTmCtmcDhmVu/tOx+krA/ JAXGGOR+jUmA5hsow5Vsa/Z6vAaQ2UeH+cK8GtFC4fstT0/iloj8UvhkLOTNZ4o2 5Q3Q3A== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4826t1fpcc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:18 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 56OAQHeT026553 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:17 GMT Received: from hu-varada-blr.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Jul 2025 03:26:12 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , CC: Konrad Dybcio , Varadarajan Narayanan Subject: [PATCH v3 3/4] cpufreq: qcom-nvmem: Enable cpufreq for ipq5424 Date: Thu, 24 Jul 2025 15:55:39 +0530 Message-ID: <20250724102540.3762358-4-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724102540.3762358-1-quic_varada@quicinc.com> References: <20250724102540.3762358-1-quic_varada@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: JlUxgQfSjmWSFFsqVwEzNqFR-o-VafTx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzI0MDA3NyBTYWx0ZWRfX6iwbVPc2eBOa 9Z6x6nDOqLX1J4QYgi1fiyACofpVj64VneSEY/WokkDPM42/Vg78PIu4kceRV3xpFiN8WE0LQFQ +JuZkZz5lpcY8cZGCcfQz8Iy/HaDPkCacn6oxD3Tu0Xfl+UYpRK0qlnZ8/0R8tBpt/Wy2+YC4dc Fs5zsbQC6zc+9Ov4H9ns5q/G3myGA7P6gOgBpnpE1Lx9bHRgEvRgB+6Kz2zQAbMiAg6OmlcStPO PvN9+RTeTarJj9HKtAMRkLh4qRCzR1To+ewV5bvJF0RU8XJO+kQ2+iIwq2aKyJuK5rIyLunjTN9 39gwA0R7qlVoluMbibzLmDhozJpKT5B5HylfzuiNvtU3NSQn2oZE4INo1c8Lx64Z/Ojzqj/G6YM YWCkq42Y2SmJ47FnqIpP0vSjC6vFp+MbcyJ5dXecBelstrl8SwQD+I3tMKhuQmH0hswgvrgi X-Authority-Analysis: v=2.4 cv=E8/Npbdl c=1 sm=1 tr=0 ts=68820a4a cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=XqKM0RL5GMr1h_B9R8QA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: JlUxgQfSjmWSFFsqVwEzNqFR-o-VafTx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-24_01,2025-07-24_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 suspectscore=0 clxscore=1015 phishscore=0 mlxlogscore=999 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507240077 Content-Type: text/plain; charset="utf-8" From: Md Sadre Alam IPQ5424 have different OPPs available for the CPU based on SoC variant. This can be determined through use of an eFuse register present in the silicon. Added support for ipq5424 on nvmem driver which helps to determine OPPs at runtime based on the eFuse register which has the CPU frequency limits. opp-supported-hw dt binding can be used to indicate the available OPPs for each limit. nvmem driver also creates the "cpufreq-dt" platform_device after passing the version matching data to the OPP framework so that the cpufreq-dt handles the actual cpufreq implementation. Signed-off-by: Md Sadre Alam Signed-off-by: Sricharan Ramabadhran Reviewed-by: Konrad Dybcio [ Changed '!=3D' based check to '=3D=3D' based check ] Signed-off-by: Varadarajan Narayanan --- v2: Add Reviewed-by: Konrad Change speed bin check to =3D=3D instead of !=3D -- drivers/cpufreq/cpufreq-dt-platdev.c | 1 + drivers/cpufreq/qcom-cpufreq-nvmem.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq= -dt-platdev.c index 015dd393eaba..de1769649368 100644 --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c @@ -191,6 +191,7 @@ static const struct of_device_id blocklist[] __initcons= t =3D { { .compatible =3D "ti,am62p5", }, =20 { .compatible =3D "qcom,ipq5332", }, + { .compatible =3D "qcom,ipq5424", }, { .compatible =3D "qcom,ipq6018", }, { .compatible =3D "qcom,ipq8064", }, { .compatible =3D "qcom,ipq8074", }, diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cp= ufreq-nvmem.c index 54f8117103c8..765a5bb81829 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c @@ -200,6 +200,10 @@ static int qcom_cpufreq_kryo_name_version(struct devic= e *cpu_dev, case QCOM_ID_IPQ9574: drv->versions =3D 1 << (unsigned int)(*speedbin); break; + case QCOM_ID_IPQ5424: + case QCOM_ID_IPQ5404: + drv->versions =3D (*speedbin =3D=3D 0x3b) ? BIT(1) : BIT(0); + break; case QCOM_ID_MSM8996SG: case QCOM_ID_APQ8096SG: drv->versions =3D 1 << ((unsigned int)(*speedbin) + 4); @@ -591,6 +595,7 @@ static const struct of_device_id qcom_cpufreq_match_lis= t[] __initconst __maybe_u { .compatible =3D "qcom,msm8996", .data =3D &match_data_kryo }, { .compatible =3D "qcom,qcs404", .data =3D &match_data_qcs404 }, { .compatible =3D "qcom,ipq5332", .data =3D &match_data_kryo }, + { .compatible =3D "qcom,ipq5424", .data =3D &match_data_kryo }, { .compatible =3D "qcom,ipq6018", .data =3D &match_data_ipq6018 }, { .compatible =3D "qcom,ipq8064", .data =3D &match_data_ipq8064 }, { .compatible =3D "qcom,ipq8074", .data =3D &match_data_ipq8074 }, --=20 2.34.1 From nobody Mon Oct 6 04:58:07 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 A4A03265632; Thu, 24 Jul 2025 10:26:27 +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=1753352789; cv=none; b=JMT1VBRkVYvCypXPM2hbzdIexwJEBIhQCua4/MyjoDE2EbgYiye9sI3IB3zhlm4D6ov902oSxaNvYijCSlEPWSz2mb2KOe67gq7JotgBkJUmnL1Qfwqdy976YEN7UGHQHOgq5kHNFBGnNnmujMlZgmRnB6VxjIvD0WewtpVSIj0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753352789; c=relaxed/simple; bh=o5Q/xNIdCWJaTBt5XR/Swo9FtMUwztvLupNh4mCryU0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=S0OaOwkcykPHKC90s2ZaAqoSRp4oUCb3rb5hUSwVyPwDMrDlrHVaaMN2iuhEjlOkzQT8b6of+0alaj2AsZK7WNZbYbGR/ss+/JWZFrdbXTUaoRG/PJ9tok7Wg4dkZ1VVvq3TFoqAAW9jKXvXW4TR2tSfafBE5nfHkx1fLEHOz5o= 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=jEg7huWh; 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="jEg7huWh" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56O6dFCc026100; Thu, 24 Jul 2025 10:26:23 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= zOnBvv5l/uRDiaONAaqWFHtelJYbjNbD2qzaL011GnY=; b=jEg7huWhkY2MZdUu jVITaY2PCyJ9KZnViF4pONhvmG3eVnC59sAvHmO0qTUHjc3VLaXBZUFixRjc29MV DtH2vulQN/pnwck400PHy3KBlrynDgFHzfvxIdkeEiOEreJcmsSF6ETd1yFRdZUo +h0s4mob3N4UyO+G7ZkoHf69qrf25y09QpeZbWzZgTcVBkhXzr00JLvFSG0dyuAt RSMb38WlKZJK8Immt8+ZiEKBjcV3V9jNDvWvLQNwidYp62XL7JWS197Aiwf2oc55 ITqoK7QwWkdCn903rpO42lS5rEi5po+y3uuO5n+MBjbi7i2C+XIPZVH4HqNNNStz oH1cyg== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 483frk0p3y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:23 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 56OAQMDY026611 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 24 Jul 2025 10:26:22 GMT Received: from hu-varada-blr.qualcomm.com (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Jul 2025 03:26:17 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , CC: Varadarajan Narayanan Subject: [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable cpufreq Date: Thu, 24 Jul 2025 15:55:40 +0530 Message-ID: <20250724102540.3762358-5-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724102540.3762358-1-quic_varada@quicinc.com> References: <20250724102540.3762358-1-quic_varada@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzI0MDA3NyBTYWx0ZWRfXxyt8dFZgjdyH dhUSzLDxtt7V8ZP9J0Hti8Z+FXJRXvUErP4c3CKr9aUMBsrOhO2iERO/J1wAz3L0A2dHO33ZG7s 9G9kefSH20PrF4ogQfe/XwSq1yVSmj+r7CdoAobbNQ9vbOwAV3Q9gKsoKmWTNh+j1hvP9uin8B0 aEYlh9d/MenK2c+ZXPNCRX9bPxBHm55tXDBC4grQOx/TIS/0Wx6ho/h/nCSzGQme0N2Kmc3b0aP lpuzlJoIzT/i57v4OV8jvGEkaFdSkpaaw7OfI/eSvZjQNP0B6oJgcK30OLJROxYljdTQtnU6eXE mxzH19+u+pffkSz12Jxq8YYzoj//eRVim40AqK26sqJBWoYRdUCMv6tD9oei7AEnUYSETWBF/zD pJOARrn7+L9TIbUgx/qABVX8VdFN9vv7jNU1PGhcsZ50waaA/TD8AsDPYKOJcJgdawrkbyFg X-Proofpoint-GUID: XuQHouQf6igGsO_ylIbM07Br66DVuwZl X-Authority-Analysis: v=2.4 cv=WbsMa1hX c=1 sm=1 tr=0 ts=68820a4f cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=6wL3klP_paFbw1eNuawA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: XuQHouQf6igGsO_ylIbM07Br66DVuwZl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-24_01,2025-07-24_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=917 bulkscore=0 spamscore=0 priorityscore=1501 mlxscore=0 suspectscore=0 malwarescore=0 clxscore=1015 adultscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507240077 Content-Type: text/plain; charset="utf-8" From: Sricharan Ramabadhran Add the qfprom, cpu clocks, A53 PLL and cpu-opp-table required for CPU clock scaling. Signed-off-by: Sricharan Ramabadhran [ Added interconnect related entries, fix dt-bindings errors ] Signed-off-by: Varadarajan Narayanan --- v3: Remove L3_CORE_CLK from cpu node as it comes through icc-clk v2: Add 'interconnects' to cpu nodes Add 'opp-peak-kBps' to opp table Add '#interconnect-cells' to apss_clk Remove unnecessary comment Fix dt-binding-errors in qfprom node --- arch/arm64/boot/dts/qcom/ipq5424.dtsi | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qc= om/ipq5424.dtsi index 2eea8a078595..74ef7d4b8f9a 100644 --- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi @@ -7,6 +7,7 @@ */ =20 #include +#include #include #include #include @@ -52,6 +53,11 @@ cpu0: cpu@0 { reg =3D <0x0>; enable-method =3D "psci"; next-level-cache =3D <&l2_0>; + clocks =3D <&apss_clk APSS_SILVER_CORE_CLK>; + clock-names =3D "cpu"; + operating-points-v2 =3D <&cpu_opp_table>; + interconnects =3D <&apss_clk MASTER_CPU &apss_clk SLAVE_L3>; + l2_0: l2-cache { compatible =3D "cache"; cache-level =3D <2>; @@ -72,6 +78,10 @@ cpu1: cpu@100 { enable-method =3D "psci"; reg =3D <0x100>; next-level-cache =3D <&l2_100>; + clocks =3D <&apss_clk APSS_SILVER_CORE_CLK>; + clock-names =3D "cpu"; + operating-points-v2 =3D <&cpu_opp_table>; + interconnects =3D <&apss_clk MASTER_CPU &apss_clk SLAVE_L3>; =20 l2_100: l2-cache { compatible =3D "cache"; @@ -87,6 +97,10 @@ cpu2: cpu@200 { enable-method =3D "psci"; reg =3D <0x200>; next-level-cache =3D <&l2_200>; + clocks =3D <&apss_clk APSS_SILVER_CORE_CLK>; + clock-names =3D "cpu"; + operating-points-v2 =3D <&cpu_opp_table>; + interconnects =3D <&apss_clk MASTER_CPU &apss_clk SLAVE_L3>; =20 l2_200: l2-cache { compatible =3D "cache"; @@ -102,6 +116,10 @@ cpu3: cpu@300 { enable-method =3D "psci"; reg =3D <0x300>; next-level-cache =3D <&l2_300>; + clocks =3D <&apss_clk APSS_SILVER_CORE_CLK>; + clock-names =3D "cpu"; + operating-points-v2 =3D <&cpu_opp_table>; + interconnects =3D <&apss_clk MASTER_CPU &apss_clk SLAVE_L3>; =20 l2_300: l2-cache { compatible =3D "cache"; @@ -119,6 +137,28 @@ scm { }; }; =20 + cpu_opp_table: opp-table-cpu { + compatible =3D "operating-points-v2-kryo-cpu"; + opp-shared; + nvmem-cells =3D <&cpu_speed_bin>; + + opp-1416000000 { + opp-hz =3D /bits/ 64 <1416000000>; + opp-microvolt =3D <1>; + opp-supported-hw =3D <0x3>; + clock-latency-ns =3D <200000>; + opp-peak-kBps =3D <984000>; + }; + + opp-1800000000 { + opp-hz =3D /bits/ 64 <1800000000>; + opp-microvolt =3D <2>; + opp-supported-hw =3D <0x1>; + clock-latency-ns =3D <200000>; + opp-peak-kBps =3D <1272000>; + }; + }; + memory@80000000 { device_type =3D "memory"; /* We expect the bootloader to fill in the size */ @@ -388,6 +428,18 @@ system-cache-controller@800000 { interrupts =3D ; }; =20 + qfprom@a6000 { + compatible =3D "qcom,ipq5424-qfprom", "qcom,qfprom"; + reg =3D <0x0 0x000a6000 0x0 0x1000>; + #address-cells =3D <1>; + #size-cells =3D <1>; + + cpu_speed_bin: cpu-speed-bin@234 { + reg =3D <0x234 0x1>; + bits =3D <0 8>; + }; + }; + tlmm: pinctrl@1000000 { compatible =3D "qcom,ipq5424-tlmm"; reg =3D <0 0x01000000 0 0x300000>; @@ -730,6 +782,15 @@ frame@f42d000 { }; }; =20 + apss_clk: apss-clock@fa80000 { + compatible =3D "qcom,ipq5424-apss-clk"; + reg =3D <0x0 0x0fa80000 0x0 0x20000>; + clocks =3D <&xo_board>, <&gcc GPLL0>; + clock-names =3D "xo", "gpll0"; + #clock-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