From nobody Sun Oct 5 20:02:14 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 4100925F994; Wed, 30 Jul 2025 08:14:02 +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=1753863245; cv=none; b=AyM0wOPCDbHFhLx+tYqtS3DSj/BgkeWGlBgfnRTMAs6rmJ0up/VoSRcy83VrAolfLEH3ST6xtt8MpEDpWDToITwIdAgRyJ6q6sNIDFS8lMpW08U1Z3nhz380N0dRSras4KKPT/tFGaADGQRBYl7Qe7IZf4ViJoIZ0jdIrt74wak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753863245; c=relaxed/simple; bh=Q4zA6PjAAfcu9hm8S6IDGX+IvVBn7+f6Jcx5K/6DquM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rOqqvFY1QpjRIvJ7cUrKsZmNXsLyILtSSQSA8nrZ98tBlYPQxDaOm38ClFYAY1S4geLohbhrj1ydp7+Ys/q979m5YoTbv21mawMK6gqv+64x4em7oXQi7aQYWyIK4gQ5Qp3BU5fEHQfXTPRkluA9IJS20+1rJH8mYMkQaaGghLU= 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=RUwdwsBc; 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="RUwdwsBc" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56U5AYJX016046; Wed, 30 Jul 2025 08:13:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PebAfR2pNymLa8c4aPhiVh9C9W4+tGSXHv3s94uJJpc=; b=RUwdwsBcEiAAXy79 T/RRBX828tgL52RrR4+7QHzFV9xsag9qsxfMd0hGRhA4GthogKmXBnYPogrSFseo 2/VkxZtb0mYrMoiuGsUAIrYOGtZqu2zQLjVyWc5Sb3ZzDTZrzv+xiiDoQXD5MOku IKwD7pzNNICe2X9n+Hbcx1FYXudZZ3D7RMsaIN3nuNeSkYcLASN1eAxoT3uq6BKi d1NjitbH6IIonFEefhmcF62S/CtRrcOhMdH16yoCI4hV+kupWS5wFiurQxI7+O58 NlAEs5ZdxDKAAPnNvSjDxQKUW4+SJErahO8+Jexa4dkb2GhLP/dDz5qWfWUUT03K d2pQ7A== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484p1ajvkv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:13:58 +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 56U8DvR0011985 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:13:57 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; Wed, 30 Jul 2025 01:13:52 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , Subject: [PATCH v4 1/4] dt-bindings: clock: ipq5424-apss-clk: Add ipq5424 apss clock controller Date: Wed, 30 Jul 2025 13:43:13 +0530 Message-ID: <20250730081316.547796-2-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250730081316.547796-1-quic_varada@quicinc.com> References: <20250730081316.547796-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-ORIG-GUID: UfI1xlUETsUcaqxuc0Be0TgHEIej_l5Z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMwMDA1NSBTYWx0ZWRfX2zkyYaWpX2Hh YrvNAkgmd7V2C0t3h3jP4YZtWCYKFb7BkzZMydSGv7mtiaoDtmPMau45R1TVk1c5I6X6NbVsJJV dzQ/WS/2noPtzw0870rKAvxEGywXYMSS4hIBneRatvoFkfffa2p4G0/AOXrXVE3rcKNacItQbPY /1lnrhCuDctfBXGY/wqCu9biGr77Hz4TKRAibB2z84s+w9okJOcPw7zUJHyOFRkyHfDI0l1t8Lj NgqwRtQXoMTDOg+Z205g/TiDvDh+ma/yNcCL8g44Nar0G/kaFau+zWz9f0kDc96RhprTimRFE6O fbl2x/mgWmGU5di+4ZRsFhIdws29Xp/++IoV7TxGh2j1K1liTifK+ocGi4ZoA//2teStdquNT7+ WlSfIKJ2S7jxxWMxI9VAts70+42hF4zL4hL6LVbo1bn4W+AiYmAp3Jxx5njXctKjG/3GXTNP X-Proofpoint-GUID: UfI1xlUETsUcaqxuc0Be0TgHEIej_l5Z X-Authority-Analysis: v=2.4 cv=KtNN2XWN c=1 sm=1 tr=0 ts=6889d446 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=gEfo2CItAAAA:8 a=COk6AnOGAAAA:8 a=o_H3m_cTc6RchcYUZjsA:9 a=sptkURWiP4Gy88Gu7hUp:22 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-30_03,2025-07-30_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 impostorscore=0 mlxscore=0 malwarescore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507300055 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 --- v4: Add self to 'maintainers' s/gpll0/clk_ref/ in clock-names s/apss-clock/clock/ in example's node name v2: Add #interconnect-cells to help enable L3 pll as ICC clock Add master/slave ids --- .../bindings/clock/qcom,ipq5424-apss-clk.yaml | 63 +++++++++++++++++++ include/dt-bindings/clock/qcom,apss-ipq.h | 6 ++ .../dt-bindings/interconnect/qcom,ipq5424.h | 3 + 3 files changed, 72 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..beb6ebe3a773 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5424-apss-clk.yaml @@ -0,0 +1,63 @@ +# 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 + - Varadarajan Narayanan + +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: clk_ref + + '#clock-cells': + const: 1 + + '#interconnect-cells': + const: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - '#clock-cells' + - '#interconnect-cells' + +additionalProperties: false + +examples: + - | + #include + + apss_clk: clock@fa80000 { + compatible =3D "qcom,ipq5424-apss-clk"; + reg =3D <0x0fa80000 0x20000>; + clocks =3D <&xo_board>, <&gcc GPLL0>; + clock-names =3D "xo", "clk_ref"; + #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 Sun Oct 5 20:02:14 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 C4D47293B44; Wed, 30 Jul 2025 08:14:07 +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=1753863249; cv=none; b=X6t+0Nm3T/sc+yT2/4QlH50Lj4QPKFai9hpDu4vHQkVrnIs8+eccQf2SQePG/6/inJ6OUbm9eZi3lOVhsv8EYBptXsMUP7ouELanp9dj9YGjYo6vt/JRjAiBwsl3CM1RzOGIll3H/nl4ZK2MrZ5XAwE9ayVSo3lJIpSMPpLc2+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753863249; c=relaxed/simple; bh=JsZYdBl70AWeklRC0GCmx6ruiWwE2ZBiePDgpzE05DE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KM+we5BZPTuPh9JFeNGe4feW0OvIRM/V66EKjN2ckjHcqrOyd6PJ/HGX2/Y6wAoi42YApoqqYOJ4qTMyOJ1UrFeeJjEb4PflFr0aWyqGyCilRuPC+V3C9X8szcu9P8ul5cL9F30M/s499U6aWoMORThA9aTsQRV3k4LwuQP+N0s= 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=ayptB8Og; 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="ayptB8Og" 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 56U5bPFF005055; Wed, 30 Jul 2025 08:14:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= SR9r2uz9k0nlYCVXBXdfc26aQmSglk5rOcBJEI9p5s8=; b=ayptB8OgrWbdMUAh naaxJBCC2Gc3LBc8KzcPEUa+Skw832kkcD1DUorRziw4Ya1w+Ysd7pFdLMYo98ch IwKuz2zvWNM7CslnptyUGizVSb2Mr9arM0kIH6OqwfKdUwO6OW8m02YUIu7NuPnV nNICppRraoouN/HKI4+u+MJFpSxr4Upe7kYBAbshEJqL5HRIlOjpt0Q1t0Jd3Cxv VUHf0Uo1JkQK3Tz+PZ59q+OvStTtb2a4rYC1kr6qoGwN2Vh+l5+yZS4EJH4Zthwb P/C8jtGQMjVy7JGSv406PLqaSDQyNFBfvjnvXxAN9bCuIuVKDZDbT/8vWB/yX/Is 9/5mtA== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484nyu38tf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:14:03 +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 56U8E2gE024633 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:14:02 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; Wed, 30 Jul 2025 01:13:57 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , Subject: [PATCH v4 2/4] clk: qcom: apss-ipq5424: Add ipq5424 apss clock controller Date: Wed, 30 Jul 2025 13:43:14 +0530 Message-ID: <20250730081316.547796-3-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250730081316.547796-1-quic_varada@quicinc.com> References: <20250730081316.547796-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: Smv5zEgpof1I25b8s5S_KX0ygVjwU_U8 X-Proofpoint-ORIG-GUID: Smv5zEgpof1I25b8s5S_KX0ygVjwU_U8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMwMDA1NSBTYWx0ZWRfXyBLeNwmQIjYn Pjufl2MhqjSyt+B0+FLKFEIqX4CCp2krUvW6M1tiByb0xDEAbdy2xxd+WPnBeBSdkrP88IDYGl3 fIsABKD6NM8ZKAr4sgJgHC29z6C7B9n/SlOvNqxRz2PURn0YuOyJwnmhm6u4+laJSZRavPkZs5b fYrEQWqGToQz3BNYwtmA8tkpcrvkm3SmrH+TZnnUHzzZL3A+oWng9LdrXTC0dmkfcWRVd9mX4jJ gPuWViccror4GH0t6WXYWB7fFa/BWJxuQWDeufKoM0PTw3sc5fs41Yss+XMMYUJ7yL1yiRvWnL8 W1mTt9RtMD48vytraU3YrqDJM0KHqLn8Dpd7OTB8AXVd3BtYcaxqYVnMWlogXO+iNIaNS5OLQd9 Kps/CEALl5upmgXJWalTtVm1jInqDtI8+P3id2cIVY+GnOyYgIper6+97f81sf0akvOtgBm4 X-Authority-Analysis: v=2.4 cv=CLoqXQrD c=1 sm=1 tr=0 ts=6889d44b 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-30_03,2025-07-30_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507300055 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 --- v4: s/gpll0/clk_ref/g 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..3d70c3506f4b --- /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 "clk_ref" }, + { .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 "clk_ref" }, + { .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 Sun Oct 5 20:02:14 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 E72EA285CBB; Wed, 30 Jul 2025 08:14:12 +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=1753863254; cv=none; b=Z75D2soxgPsApg8Q1KD9Mg5GG7Lvqdee+gLdWNrKEj8aykzU9qQzF6b/yJ6nu1uGD3axth58cR22tryriDnGNr9AilSdrQao7Mnejm3Hx4B9G8yNiG5L8F7OCjsIbAa02SbIZnTkiVViNS8fBs/qj0RKI14VE9Tw1SP3jBknwwE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753863254; c=relaxed/simple; bh=b2z02Tg7+vcOZeTgZw3lRIJ677lSvmqCMf5C7B6Yr0A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Mc58C/PhOdpXgMZERx11G+HYDpXDP4AXKBGQsOjDVwfXfnrZ2jNXO5ZPiX2eCsjn3Z0aGVJEjUeCE1gxnC1rC7w+gUnCU5iHUfTL1AqHj880EMfVK/Bsv0OYN24Ec53obhowBgSuv3CGmfq6dI84rQoGc4/zoMJEMih3rmgBfIM= 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=C484Bokv; 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="C484Bokv" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56U5sVTN018832; Wed, 30 Jul 2025 08:14:09 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=C484BokvFynRs4/+ KY3ZAMBIVuBTEyZCskXivoI3uqagyZmwmn+bZswu0OLC/gHIW1/uKjpIe52f4LJN nBPE36TgmeLx87vW3uHOskC4DAsiM/lIdWR5bt00W7xwrcpl4tX0wlbZLxwAJeyU L6DcWa7g7U/BWxRv7ZHpGaFpa3PrECh+HjWNbF8qKvvGA8wpBIzjG5hi6MxlFvkT wNlD0FPyu7PZHrvl5gcopOIB9FH4I4qlQnRmpaoqz0bJ6pprFKcDpzD7bHV8FBPA md58qeaHCjNs+1yiPV/BK5Q2vdfr8YFEcnP3GntRz4qO9cPFSAl5sGeHLH4zp+2M cHz8FQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484q8633qt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:14:08 +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 56U8E8oJ012231 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:14:08 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; Wed, 30 Jul 2025 01:14:02 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , CC: Konrad Dybcio Subject: [PATCH v4 3/4] cpufreq: qcom-nvmem: Enable cpufreq for ipq5424 Date: Wed, 30 Jul 2025 13:43:15 +0530 Message-ID: <20250730081316.547796-4-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250730081316.547796-1-quic_varada@quicinc.com> References: <20250730081316.547796-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: AW1haW4tMjUwNzMwMDA1NSBTYWx0ZWRfXzdDJ7TjoK+HP fDtf7JkWzEO2dkXuU6mhAaVXIKZbKMOBB9lVyDWeCL4y6AF7tjRyHQ0zhAWiHsw+8Eef1i4v7Qd 0uTTJkkED627r1VHOuw0yNeegez1ZfQ3eBCHClz/sV2Fhkwi3e6gcDSz6gIstI4UP20cYk00NiH KroIEBbkJRftBIl/uRQ00vW0dC15++TmzrxuhAKfwm5Asd1yYqHPkfu9PZACSFaH8SfURFCsPCl XaEUlz8ew5ALL6JCvndK8g5c1l4iZ5FPnijtweOsno+VJNMQP7h9N+DygoBizCoxviApk/0rf/S x22ZzhJ18VQw38wMKkzHbTwhE+x9KE1bcNlUTs+5qyDnJbgVnlsxtzxy08gpRSqS5OBSOY73/H0 E+LzBqJvsYreOZgS05+9kJAvLYPI818iUSdLp4tkFXz1aNvp7c1ogABMCLU7S2gmcxVgBbTE X-Authority-Analysis: v=2.4 cv=TqLmhCXh c=1 sm=1 tr=0 ts=6889d450 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: rKUnw3MKCLtNIiZXOikmtaEfVvauy3JM X-Proofpoint-GUID: rKUnw3MKCLtNIiZXOikmtaEfVvauy3JM 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-30_03,2025-07-30_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 adultscore=0 spamscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 mlxlogscore=999 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507300055 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 Acked-by: Viresh Kumar --- 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 Sun Oct 5 20:02:14 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 90014291C3C; Wed, 30 Jul 2025 08:14:18 +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=1753863261; cv=none; b=KEVpZ8wMlUV71qIGMTT6fvoynpdm4d7Kdov9XsMhIxL4GdeLy4WqJpjM0Vbk2XoaTsUvcaUnVbutiY0vd3fUjcpwT2OH4z/X2580k7RSi0ZgEZr/kN9dkso+DLsIZV/siPzRDE90HeCHoFxAp61CtL/Px8z9jeRFuMU36MGvEUs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753863261; c=relaxed/simple; bh=ldV3xbecXT9l2HqR1YiPNwooh8FgplqVnvwQ5Z1mDvM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bqBiucxSbD70xugF/ynJiaQGB6Wp+xjlYZ0uIldFMm1Dqvzdf2+yWYS998MraCoEj8Y68SS7HnQ+0vhJlEyq3ehxcaypPTmVcOU4B23yYZwxkKafEQST6CcVWZ5hqK8Zw/6svZCVg+JRwjSUZ9CYxzu3LN2Uo+/tx89/wAWKK/g= 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=eVpyTDE+; 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="eVpyTDE+" 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 56TN8lIV027399; Wed, 30 Jul 2025 08:14:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= z/sPT8Voz/UUZfI7dD4uQ8p02i7d6my0snTULEv/WwQ=; b=eVpyTDE+NFNEk9AS hBy11v24V/KUhPnc/Sr0sIHIM5U3gnvUKy6omYzUtOlW72z7awYFCA5POme8cbHU LizHky0HI6xwlQ8dTDzyelSZ29A9TEW3+lxdVotD7E9C59U1wpcgQqu4YvtHVM0K WyMOVTgCUR1qfsqF8uP8ZOC9DhoACfIjLQg28Up5KAw1vsFKtD964eTALODjYl/t MGMQK/RiqexZsLu8SkIr0Jdz+/MrCkFZCBLOqX2uW+Jt5/d9kWCXUWQfCxbou1tr dyDk6EA3wBpDoQoap0tBhAikDloar/gCsp/q8GD0AB+g8AC62A2OU0rYeRxckElD Zxasnw== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 484pbm2tvs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:14:14 +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 56U8EDlP018050 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jul 2025 08:14:13 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; Wed, 30 Jul 2025 01:14:08 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , Subject: [PATCH v4 4/4] arm64: dts: qcom: ipq5424: Enable cpufreq Date: Wed, 30 Jul 2025 13:43:16 +0530 Message-ID: <20250730081316.547796-5-quic_varada@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250730081316.547796-1-quic_varada@quicinc.com> References: <20250730081316.547796-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-Authority-Analysis: v=2.4 cv=LsaSymdc c=1 sm=1 tr=0 ts=6889d456 cx=c_pps a=JYp8KDb2vCoCEuGobkYCKw==:117 a=JYp8KDb2vCoCEuGobkYCKw==:17 a=GEpy-HfZoHoA:10 a=Wb1JkmetP80A:10 a=COk6AnOGAAAA:8 a=by-IlacU-rHpHfCKWKcA:9 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzMwMDA1NSBTYWx0ZWRfX5p2Xwmfg6SjJ BfaOyTuLY+y6V+n8oEZUSoUuuZUoCJAxtw3L8WG5vqt3SrUsmxV5f7GLogyNKF2rxTDy9W/2bJ9 Q0gIlBQtGx8TzP+9WrrEae65ewDVQKj2q0msjwezndlpZWXFdjgleCzDrrbOmWXKv6Ba8Z1wvk6 eUp4pbt3aA6Gqwtpi1PFmUzRCSotDAqcyMcbc2oyfaccxSiH93Q1j8ANw1AzRWUdGxFZj4d8uzM AB3T6RdJUukaDwVY0khyPF6SPFcSDih43MWFV//mB2qnIO3aAKwh8gvL/1xzzJEBcwx+6kekDwf 4zJpadclY1pJsV3bsfaum8hyV6mV0FXHchysENxbEwHspyfMpURRm/FSg6WNkVLuG1UK5lVZo/D x/GgUjsqgL6wbDnnXywTLgKc1X9n3xEuUc/L+AD0iPz2Nd+Wuh4wAxudDtu5cNovV+uzwHFh X-Proofpoint-ORIG-GUID: q3qfl7XemSTJQXrxh-YHrOjBVE7xHlkA X-Proofpoint-GUID: q3qfl7XemSTJQXrxh-YHrOjBVE7xHlkA 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-30_03,2025-07-30_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=918 spamscore=0 phishscore=0 suspectscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507300055 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 --- v4: s/gpll0/clk_ref/ in clock-names s/apss-clock/clock/ in node name 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..b4efffc6a375 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: clock@fa80000 { + compatible =3D "qcom,ipq5424-apss-clk"; + reg =3D <0x0 0x0fa80000 0x0 0x20000>; + clocks =3D <&xo_board>, <&gcc GPLL0>; + clock-names =3D "xo", "clk_ref"; + #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