From nobody Fri Apr 3 22:35:16 2026 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 7371D35C1A9 for ; Mon, 23 Mar 2026 07:15:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250136; cv=none; b=U6Flci3+405GLUQFGmMI4yHmeTx+hayRTMg7PCVltBk6QcrtrnyWd65/0eDSuUXgzDmc8iGQsJ2Vi0n8R2OQqlJo1f9PrGQoKgimJFco3DI/SSF78CUibl6eSKQCRHy3CX1oBFKLrVmNEOQeqTVqMOtROX5APaaECtETTcwGsiQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250136; c=relaxed/simple; bh=0cxDH4J+ogpnd/2Sh8T/+lD9ulgjspAUfkAYG3Mt/CY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fQAzDXwszQlUCmvCyUkgcNge03g9m/z8q+Zu1hQ7yBHLnGEBbEU2dJT7qse//V3kcblRpnAOkVwi6g1ZrhwZFpQkO2v5MIVyKyvCktcO3fZHtaKP+KJ4RznnKeKVB+jPrKtF5gGXjWuiwOk8NWufXCGdrbSCp7r6M87+7OX6lmo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=CAGnR+EN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fHAEwqS2; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="CAGnR+EN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fHAEwqS2" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62N4wuli423463 for ; Mon, 23 Mar 2026 07:15:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +feDmpxyjcw2Gpw8JLF/SSE3a9sEyKxeVIjgMxiPBLY=; b=CAGnR+EN3TJiewZN OE1KnCv2HAKAwEteVPU6awedPhRyWcl8MuvNDqC6SsgvuukzEN2gybHHagN3vrJ1 0vFzNLJUxldkJa0aJeiZ6hFFbLsGDFqwWbrq+I8umEVM7VGrsKi/vw7l1vOV8gb2 TXYogGg+PkomzGSk6/zeocoP2YcFiSuKjbaQ0myc3YZ+n6guzKhN77EVY/HDVUOe 9Vi/FRbJCurNxERX2+wQU7TSflmjEI3YJzRTm/SFFvSi6mNvpSieyNDYi7SgAk/J vHLqNXiSFGF5AHWlyocAhKPooHGmwAHcSu/JbwGnmgSBVfKIKN+AQrp3daP34R62 lLX9wQ== Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1m3cv405-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 07:15:34 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2c0ec884bffso2532049eec.1 for ; Mon, 23 Mar 2026 00:15:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774250134; x=1774854934; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+feDmpxyjcw2Gpw8JLF/SSE3a9sEyKxeVIjgMxiPBLY=; b=fHAEwqS2TkQcjLufWV+f8Xl5GK68l+q5b5RHqyk/PlkVf+mfnnCoA3jjmwhnsfmMvO bsNAmIINhPbJSTPL63wMgi2nYJIbL+qFAef7kssEKf9x4LhEGjhy4zgqpboTynHt5bp0 6gAA/6rKiqmOy3sURroT1nyukbet0jBShyKI48y6Lb//X6Q57DrjMpbw0thkgRK8CkVh kRzUh4dKCE6Pv5E3vHyCIF8ePuA3p4C9wLW/oZtD7eD4HyYQWKmmIEncE1ZHu3UJTzgJ /nzA1vkmpPiFPC54pUYJadzenszRpUooyu83bv/sYeVlDoE3wswKByMB0AevcGZ2YKsE 7z4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774250134; x=1774854934; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+feDmpxyjcw2Gpw8JLF/SSE3a9sEyKxeVIjgMxiPBLY=; b=Nc5PcU1JTuAUyrMNxvdm5GhlE9mjb1cfhkNJdt5RAqmN29L2YMuQm9n5LCZcoT/WVy tsF2UV1alxaFmB1Z+U07n33gPlVj5XAY/5+36GHV19F9esO5Gun2qmWBZodMuQQBE9Sm Y8FsV71CCRgCC7QuhLznw2s9jMAzEjywnuGdp2W9UqlKjIAK7dCcydEf9x0pPzXWn8zP PMrc1Ragm9RDztEfJEEEtZVp9AbBKWBqATxOt+9FgjbUbW9yt2vZQ74aVKb2DOwW/7BI HsetUB6nFNnG8dvmCYTDBYZecFVlJqGN4uLfQVeNNsNdsSCDTLKXJoe21TJxGOMPcdXj CRHw== X-Forwarded-Encrypted: i=1; AJvYcCUy1Lt3xzOhZMvAbwWQauURrfKqnrRN48Jz2Jfr6wb8Q7fstV1QbT1y9HTCXr6+ea6meKEYFMMuws8aAes=@vger.kernel.org X-Gm-Message-State: AOJu0YwnV9ijHI0gkn4qBhH1RNcjugNN6OnZzsz9ZoAWvRyLfAyOaiwg B9qXaYi9VWwe92v8TDjFBFrrXRQIlnPhDVYU/OvUw2ZOW+Yt40DYkgfnMkVhsItNF0hsIMq8ov9 x8wc3A23RwRMx61cXx7xqpEg2Lwo6I8zItkKGjQqJU82G4Gq/qWB1ghGKMwEvw5+3WxY= X-Gm-Gg: ATEYQzxRu6540Hc8kHSVuPn6SRfawXyzJEP1Ra5ISMzMoLzbgrQaoaJAdwkCBO4BbBt 341MXlg2GAuSU5Qx94m9sNtKY1l5MgWPBohi7TRMYdgLyukfLNOZKkNYtj8hoqirICBmiUI8IRQ hRaUESxJj0dPCT7SKqqwruKtaDQYAEDeTin7veZTV9b4ikPEbTBtJJ9z3wdPFw/80m8+2Rb55fM LS/Fy94yrtdDDFRmniOq3FReQeFO+PHq5idI+Tmz244Hgv1FwSbU5xzrVAEB7gQoROnQ5cvxo9P WUrzU9qYWEAZcL4/PmY/ntlPm1x+4KcazKDtaXh2XlVdXVUihkNv3jL1jeLl5/HQbthe4VGzVo+ vm6ovwt6LdtlN2hY1vd+WcMTfHKixEZ7Zkm0I/IBhis55nGwS1iFj6pOjslz56ifO+C98 X-Received: by 2002:a05:7300:2382:b0:2ba:6aef:6959 with SMTP id 5a478bee46e88-2c1097c0938mr4561070eec.27.1774250134173; Mon, 23 Mar 2026 00:15:34 -0700 (PDT) X-Received: by 2002:a05:7300:2382:b0:2ba:6aef:6959 with SMTP id 5a478bee46e88-2c1097c0938mr4561049eec.27.1774250133647; Mon, 23 Mar 2026 00:15:33 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c10b14cadbsm13997886eec.3.2026.03.23.00.15.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 00:15:32 -0700 (PDT) From: Qiang Yu Date: Mon, 23 Mar 2026 00:15:28 -0700 Subject: [PATCH v2 1/5] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Add support for glymur Gen5 x8 bifurcation mode 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: <20260323-glymur_gen5x8_phy_0323-v2-1-ce0fc07f0e52@oss.qualcomm.com> References: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> In-Reply-To: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774250130; l=3719; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=0cxDH4J+ogpnd/2Sh8T/+lD9ulgjspAUfkAYG3Mt/CY=; b=TKbSq0yuYb3Fe94qzlQGwjzQIQDc/sbsearhsGusfuWkOeh/nnkijAoxAlAijPB8IxtkofTtu H56m2yBdqZzC5saTMQ+XMFW2aQ8VEqrKsgWZqw/WsESp2wEuYK0xurU X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-GUID: zhPzIr2W7e-a3G6EseCr1rCJorH_-HNn X-Authority-Analysis: v=2.4 cv=Z5rh3XRA c=1 sm=1 tr=0 ts=69c0e896 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=RFdnLZz7-LqoW1cxMWEA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA1NCBTYWx0ZWRfX+OAex2kS83aq 7Q7ZUxTCbys7JsapOAlYxx9Hdys6pV7liVCJMXtW4Um8d3DYG2UdC5NUf+ANyNkgRjK4nA6Pzom 39voqQGoeN1iGjoaAQXK5U5/3hXWJWIltadahkIfe0xW2SA7dqEeRI7XS8hCldIWTpzHcGpbDH2 j72RHFaHwEQL3aG8rZ+FVtyg9R6fy+0eSgELdYRni9znMod2WsGUxFtSMvIm0bvkv0uHcVqhdXC kmkQVTQE5+lhAzpc3cntzLRL7uPpLgi5o/ahQHoJh6mQx20djD79Fp0jU8NL38cWLjVTmfBjN5b TzEWXOimSU1mvHCP81ZCOrTnBUwKhpY66i+jNLBynoI13B6XYWBEdJM6m7Fc1bL0lFLnRRo8qHy 3WVyEdCzd7dx7eBXcVksJxODpNcSeCgMAVcGsa2Dh2iQ6Wd6/iEbY2S3kNuCx+fOuLiEXp2E9nS lKdrbyMcHN1qtS2h/UA== X-Proofpoint-ORIG-GUID: zhPzIr2W7e-a3G6EseCr1rCJorH_-HNn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_02,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 clxscore=1015 spamscore=0 impostorscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230054 The Glymur SoC has pcie3a and pcie3b PHYs that can operate in two modes: 1. Independent 4-lane mode: Each PHY operates as a separate PCIe Gen5 4-lane interface, compatible with qcom,glymur-qmp-gen5x4-pcie-phy 2. Bifurcation mode (8-lane): pcie3a phy acts as leader and pcie3b phy as follower to form a single 8-lane PCIe Gen5 interface In bifurcation mode, the hardware design requires controlling additional resources beyond the standard pcie3a PHY configuration: - pcie3b's aux_clk (phy_b_aux) - pcie3b's phy_gdsc power domain - pcie3b's bcr/nocsr reset Add qcom,glymur-qmp-gen5x8-pcie-phy compatible string to document this 8-lane bifurcation configuration. The phy_b_aux clock is used as the 6th clock instead of pipediv2, requiring the clock-names enum to be extended to support both [phy_b_aux, pipediv2] options at index 5. This follows the existing pattern used for [rchng, refgen] clocks at index 3. Signed-off-by: Qiang Yu --- .../bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 45 ++++++++++++++++++= ---- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-p= hy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.= yaml index 3a35120a77ec0ceb814a1cdcacff32fef32b4f7b..25717bc9be98824e38f3c27c329= 9fbd1f2e7e299 100644 --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml @@ -18,6 +18,7 @@ properties: enum: - qcom,glymur-qmp-gen4x2-pcie-phy - qcom,glymur-qmp-gen5x4-pcie-phy + - qcom,glymur-qmp-gen5x8-pcie-phy - qcom,kaanapali-qmp-gen3x2-pcie-phy - qcom,qcs615-qmp-gen3x1-pcie-phy - qcom,qcs8300-qmp-gen4x2-pcie-phy @@ -68,20 +69,23 @@ properties: - const: ref - enum: [rchng, refgen] - const: pipe - - const: pipediv2 + - enum: [phy_b_aux, pipediv2] =20 power-domains: - maxItems: 1 + minItems: 1 + maxItems: 2 =20 resets: minItems: 1 - maxItems: 2 + maxItems: 4 =20 reset-names: minItems: 1 items: - const: phy - const: phy_nocsr + - const: phy_b + - const: phy_b_nocsr =20 vdda-phy-supply: true =20 @@ -183,6 +187,7 @@ allOf: enum: - qcom,glymur-qmp-gen4x2-pcie-phy - qcom,glymur-qmp-gen5x4-pcie-phy + - qcom,glymur-qmp-gen5x8-pcie-phy - qcom,qcs8300-qmp-gen4x2-pcie-phy - qcom,sa8775p-qmp-gen4x2-pcie-phy - qcom,sa8775p-qmp-gen4x4-pcie-phy @@ -201,6 +206,17 @@ allOf: clock-names: minItems: 6 =20 + - if: + properties: + compatible: + contains: + enum: + - qcom,glymur-qmp-gen5x8-pcie-phy + then: + properties: + power-domains: + minItems: 2 + - if: properties: compatible: @@ -223,11 +239,24 @@ allOf: reset-names: minItems: 2 else: - properties: - resets: - maxItems: 1 - reset-names: - maxItems: 1 + if: + properties: + compatible: + contains: + enum: + - qcom,glymur-qmp-gen5x8-pcie-phy + then: + properties: + resets: + minItems: 4 + reset-names: + minItems: 4 + else: + properties: + resets: + maxItems: 1 + reset-names: + maxItems: 1 =20 - if: properties: --=20 2.34.1 From nobody Fri Apr 3 22:35:16 2026 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 D8AF235E930 for ; Mon, 23 Mar 2026 07:15:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250139; cv=none; b=s4trnEMhR/OZGWKecSrAYwQUVNCtoL+5EkJ0os1M2WBnJARNWK4mIK9wwiG0GxylMWdHjngRDok28ok1sZjAoWQOR0WQwuUJFy3moFzDhnE7b1ofDiRuuxrw6+UJ2j8/H9N/eBfmMAwa5Kus2agWW2YeQBKrD/ioXwz8c7TlZIk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250139; c=relaxed/simple; bh=1kVB09tNu2L/JXEZO/ToUYxEMkDFaHUqjJ74Zd0YDCI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ns9zk8ap/4CdJLfDdGv5a/+lQ1DIGPSU12NZ3JZkCC2qWlm7P+fLAOsYDLVsgPWfM3IuniLGguVkCpiQ8sfgxTFa0uASi9AklND7Xo9c5CP8kRXTs3qUVzTavrQ4F4+lpNhe2t8vmSOV076eicfAvPsXcGjqsNKCFEDnV4g46KY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=CvKSK86U; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OJMd9SSb; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="CvKSK86U"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OJMd9SSb" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62N4Lwua745170 for ; Mon, 23 Mar 2026 07:15:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= BJhpV2AzAumJm8pTjJTWL4q0sS8IJpLGwzEITJtHskk=; b=CvKSK86UrjlaEy7p 1wXtadtBUHR4UVZCwgtD39vKozOQTaWoBKxn4NL0XVIr6c3tfYXArsyJjbCdYGKa CVa4qU7DsY5E0vHaICrU0pdbXMp06V/OeTXDvYV+cN5V6ZugadQFtMCnj+dxN49N vdpsxC0FoLTVlojzPcTxERiKx+LeDVK/vRk8MKrZFBd13j3X3emGHB4P4B/tyFRB 0i9xrVe0vnrEp8tNiA655PaODGJyCCtv+XZmGwjJiwmiGNIwC98k/CfonILSCbbk zZxBItXP1PZKmThS//5fEWA9DDI5XR2ufY9Qx0EMYnsSFCXestYsW5j0YZI3Lj7+ y5sOvQ== Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1jb5mb20-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 07:15:36 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso2937311eec.0 for ; Mon, 23 Mar 2026 00:15:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774250136; x=1774854936; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=BJhpV2AzAumJm8pTjJTWL4q0sS8IJpLGwzEITJtHskk=; b=OJMd9SSbwW2FC1lf4iEBvqq0VFp+55X5mTPhY8ElpTvKcUa1lNtldsInLgdyejPNxF AWxFJ2k23SHZcvwOYlGf5ZUsONqPyTRE7kV2ou6YqVLmOBY+ulzQ2kdQLzbyh3b9CrnB TkL2meLPn6m5dUNBvolDyBC0CLMJf/dn4AVYQdRZuxoIe5wOA3E/yQIHHQPydLHTKHv3 4xvVpfQhVvFhRdyYYinQ9G0jftz4xJKwUJ0CwKa2+l5rE1UaCEQEpXDwsxJsjhsN9j73 ORP+eNOdjg2zMq9/AWuJT9SvafxNP6w2ltDwXaa9zESjixYPZmIhCZK4bQJqeNrpI4IL KO5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774250136; x=1774854936; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BJhpV2AzAumJm8pTjJTWL4q0sS8IJpLGwzEITJtHskk=; b=N75ioBq0blN9JEh53aoybl6hYo6qAW1A2mXSe0jE19FGbpyF240pGGZxw36rAnqhRa lXdJeYFxqEvef5dsv4brnTDlOTVH8Y49U3s6acOk/GQlm+fluGUxG4srXcHEP2bVHjg5 jKthpZnSzX+oPM7Nm8iPtl8Lp7imOIJLTuObfxPkno6Q/ErhzENXOlkFts1E7ciMfaW6 LsM8EvnjLgjNS/+F8TQg54a9DSnyFYsBAeAWoIdopkrC5JDyBifNhKixkYTqCKiXGXS5 Vldr0k4GylO0EEKH/1ot+SuzVjZMre+wjTe6llCb76IXOPqlP8Ctx2sIIWQBMkbn935p Yucg== X-Forwarded-Encrypted: i=1; AJvYcCUZbDpIFP0Fcm+HyQHcNAsV7Ckkn4e/q6PH10wYhVNFixzxIdxsNU98ayyYtkwodasvc8/bk/ZsrLL9/MA=@vger.kernel.org X-Gm-Message-State: AOJu0YwgTbtr1ipQWV2bYsQQZ4qvIong6UonIqArC0FGpWlQPKmoikba Od0z34uvr8DGe3H4BxmcfqbkUyxOtc2s4GQ/3abFUj3AlsyF8wivPhJRl3e2vP8BsX7J0RCrb/e bvDSSWWkFLS2Z3bm8Pmvw30h88hwd17hX2ygEZkziZ3geGakXbOEHCwtZuXrVFGZLi2s= X-Gm-Gg: ATEYQzx+Hz+F6NDqgkPaxtI4MIo3RIKubIbwAUKOmXppg+Bm46wGPM983TKY+5KF6Pa 44Vvgr6Okr8ZFASZMnLs9a0+Hgc4p8qJ9ol8NL2VffrQxlqS4O7Ux8MupjlgsPm3PFbB7GVdqRL PAPXfc/WTSnYXh8K31ZkbcQ36ga/58Z+47l1QO114Trg+Z4IOXF/LiFbMLpNt2YSyuzVnXjcRnP bqzf5o9+Len1FcXIOc8vBvC8I6Ssw1mhwVd3ybTWIZlZZkEC6NWq97PhT/eH7bA6GqXJHMlrWGZ 3O3lBVCZ28R+fhVViPde00mqJV/DV6q6kzw5tqvLwfJevTOJJTUDDV+DyvhUXhhA68w0YpzbKUv eVdXNlbenLn59DoSX7YjF3uM55PFvuWqXHRxwZZyRfi3EuHGEKv6Nf6pdje32zC6cFrPt X-Received: by 2002:a05:7301:3f07:b0:2b7:fdb6:ccf6 with SMTP id 5a478bee46e88-2c1095fb80fmr4975769eec.14.1774250135755; Mon, 23 Mar 2026 00:15:35 -0700 (PDT) X-Received: by 2002:a05:7301:3f07:b0:2b7:fdb6:ccf6 with SMTP id 5a478bee46e88-2c1095fb80fmr4975754eec.14.1774250135214; Mon, 23 Mar 2026 00:15:35 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c10b14cadbsm13997886eec.3.2026.03.23.00.15.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 00:15:34 -0700 (PDT) From: Qiang Yu Date: Mon, 23 Mar 2026 00:15:29 -0700 Subject: [PATCH v2 2/5] phy: qcom: qmp-pcie: Add multiple power-domains support 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: <20260323-glymur_gen5x8_phy_0323-v2-2-ce0fc07f0e52@oss.qualcomm.com> References: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> In-Reply-To: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774250130; l=2504; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=1kVB09tNu2L/JXEZO/ToUYxEMkDFaHUqjJ74Zd0YDCI=; b=MtfPg0/WzxcccrnkITZarstr4an0FSrB3GYefYIOIEx+XcVZGCq+zCV0mtEnRv7BQn+FRSU+K EOPre4HDVu3AdlWQAR9PHbVlaBLIqW/krj80b7m5CZdbEa6mP2H3cyq X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Authority-Analysis: v=2.4 cv=aJv9aL9m c=1 sm=1 tr=0 ts=69c0e898 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=eu5IZVYEi8O4nexjJlAA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-GUID: FYbBu5BwL1IPPXR3zV0wwp6vNEHzCeCW X-Proofpoint-ORIG-GUID: FYbBu5BwL1IPPXR3zV0wwp6vNEHzCeCW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA1NCBTYWx0ZWRfX6zGDfNCgAcwl EHsSJeN6zAoMBz3UBFsYgemDMgdVOBsA6Jx3NaZYb+6LQxzlUw1wIHNfy7/akg3Jb4oMDoTj6B5 o2NjxX7xPk49X0QYxRiEyEpLKFIw8FJwnxqTLbxAm9CK9KVPtetOJ3wkYVD46Qbs43ejmxQFRcO ZxScmhgCB3JFQoiysse/QF+w2VAHhQstGVj92mzZNhYtAcc0YPOgPMUCoMGZiU1gZfF6t1+vT+U tMq8tYqXoRmpM7gK7LFsFpeV42KKUu5RV5UyHvL38jZwLnwcaYJsNzTpBL2i5T8kxY3Ua+finhF nGJ0dhjdw4n9mU2Omrf/i9C3udcnhkFgKf/asK8r0rYQ/xGzZINE2jGFfRZ51+WPljwumy/A9mj YQ2uCqs1MvXnublrcQuaymMYQeGbReZLzZrC0CZM2jtVNNzNW07VEsU1yX77fT2XlKLLPVEAJ3H X1Oq6BTi19f0YtbcpCg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_02,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 adultscore=0 priorityscore=1501 spamscore=0 impostorscore=0 clxscore=1015 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230054 The Glymur SoC's 3rd PCIe instance supports 8-lane mode using two PHYs in a bifurcated configuration. Each PHY has its own power domain (phy_gdsc) that must be powered on before initialization per hardware requirements. Current PHY power management assumes a single power domain per PHY, preventing proper setup for this dual-PHY scenario. Add support for multiple power domains by using devm_pm_domain_attach_list() to attach power domains manually, while maintaining compatibility with single power domain PHYs. Enable runtime PM to allow power domain control when the PCIe driver calls phy_power_on/phy_power_off: - Single power domain: QMP PHY platform device directly attaches to power domain and controls it during runtime resume/suspend - Multiple power domains: devm_pm_domain_attach_list() creates virtual devices as power domain suppliers, linked to the QMP PHY platform device as consumer This ensures power domains are properly attached and turned on/off for both single and multiple power domain configurations. Signed-off-by: Qiang Yu Reviewed-by: Dmitry Baryshkov --- drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcom= m/phy-qcom-qmp-pcie.c index fed2fc9bb31108d51f88d34f3379c7744681f485..424c935e27a8766e1e26762bd3d= 7df527c1520e3 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -5329,6 +5330,7 @@ static int qmp_pcie_parse_dt(struct qmp_pcie *qmp) =20 static int qmp_pcie_probe(struct platform_device *pdev) { + struct dev_pm_domain_list *pd_list; struct device *dev =3D &pdev->dev; struct phy_provider *phy_provider; struct device_node *np; @@ -5348,6 +5350,16 @@ static int qmp_pcie_probe(struct platform_device *pd= ev) WARN_ON_ONCE(!qmp->cfg->pwrdn_ctrl); WARN_ON_ONCE(!qmp->cfg->phy_status); =20 + ret =3D devm_pm_domain_attach_list(dev, NULL, &pd_list); + if (ret < 0 && ret !=3D -EEXIST) { + dev_err(dev, "Failed to attach power domain\n"); + return ret; + } + + ret =3D devm_pm_runtime_enable(dev); + if (ret) + return ret; + ret =3D qmp_pcie_clk_init(qmp); if (ret) return ret; --=20 2.34.1 From nobody Fri Apr 3 22:35:16 2026 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 A1E5235F16F for ; Mon, 23 Mar 2026 07:15:39 +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=1774250141; cv=none; b=kzWVeLiPbNs3KrkXBaTHfUG2+a0QxE2FTbYCVt/8NMH6oGclZ/PijSY9wmX5PBpzq+8QNaUBtsNzM65NSEB0+rNwyq+wGKL7GENd86Cs2bfeGde/40VdyLMGH/KTQDbRQtJyjzcYvoqMjOfHJFJgOmyitunYdl3wx/eeRQ0f4v0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250141; c=relaxed/simple; bh=DxC/gzVZbMcfvTcP9R5APmqYjCaKSVBVLpWXzTTw9Eo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pTS+qpDqs5/Yt+dOTvugYYzFvX3gx+7CEcn4LSI6DidKUBFoklLzHqVgEQ4sMIVt66yOdnVhviCZ7J0/DFyDiRcsEAvDLAgLDdC8FyakA/B0N3jCKEeSy/PCjl9frZRUtCdObJGV3x13HC7HAyukuKWdTvxzOX7BQVG9P4vdh8s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=EGaBtv4h; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fvc3Vlc+; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="EGaBtv4h"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fvc3Vlc+" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62N4dwP6179020 for ; Mon, 23 Mar 2026 07:15:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= hAjmJXPhlt6Zci48E3mL+6SgK0euCberT+LTCSR0TNw=; b=EGaBtv4hEl6T7Vc/ VtjH+KlUlyzOdk/5F9XPZgnQL+rt8WKC3t9CV3sD+zeDDPLfDlyBI4ZUWdubHo1c /CAiDNLIySAxb7LjkyXfZv+2niNQEejvzNjovH4xf3PajwFDrRkvTv/zOm1i30wZ SGpeL1W7lamjFOL7o85FMEID/Sqqn405bsdvAHHAmkR9jbUqPJG/V/pRcLUVQVnB kYVDBNsLeFRTfDYQT/GhPKJqO+tPeymf9BIYn4bUxluNiOlW4AL3STUmLJplHl6F vBoBq7xvuwJKs2c2Lt0rEZUfe1ZUrkmcoLyso62AtPg9SDpsLwx9+Ys2PZKPc6Gf JtRGug== Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1kduc7ea-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 07:15:38 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-1275c6fc58aso1765310c88.0 for ; Mon, 23 Mar 2026 00:15:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774250137; x=1774854937; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=hAjmJXPhlt6Zci48E3mL+6SgK0euCberT+LTCSR0TNw=; b=fvc3Vlc+o7APdcEtW8YmI7tS/VZEDTieGiyP8mK2Otd1TG6tBYJR/ieK7rG3SagM4B TXO0xNXI1wcLVxpgFp4fIWJnkbsDe1mNArt1NJesODNXAC4YL2Ntj+uU/zAoBNNDdlje 51iSsByqNQmOoYBmOECReZjiQFkZK9Al7mSakw0GjLcbpvIncz1MTZckc+fMJ5Xvi7t6 yzttWZVebHxK0ELRrCDSHpPR4pEVzWqq+WjasAp5FRxF0HMBO8x3w3wsLUzKXHk4U98Z fMhLI6otiJH4peStbAHOcJfuqB/mQf2sifHXJ1qlR7nDA5CDKhFd/n/NaE7vrVaL0wB2 5EuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774250137; x=1774854937; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=hAjmJXPhlt6Zci48E3mL+6SgK0euCberT+LTCSR0TNw=; b=jQs1XSZez2H4IsfNPUYCgAK+WlNAtknbtlGR0vCL1lZnzdZBG0a7QdSrGoAvLD9XPP Ehe91HaCHK9wxUEU36EXUzXEoUgdxzKXDYTp6cbrkE84QSMzt7gS8A9ZvApmKeeKj7Ev stE9BeuGuFEjCSqReRqruVfU+/7gTQZCOe1ysXcDiVM6OhUx/+M2kprBpM89CCG8T/dN yQ3MNaD4NwMZ+D0gfaqsH9vtVga7bT6Fe4X28pTusC4iGfGAWrEnI4ds28sv3BE7ja03 jngf04GDQPdfBbHgxjshAVlbW6c0mdOe0D9ukNgybK1e15TbrFNpwObwBe6CDzuZNvjM A7rw== X-Forwarded-Encrypted: i=1; AJvYcCXP1If++1o7mY3uB1fMjB5uc1F85/3Xi/PdGrAFvw5dHEz51n7Yvq2Mpbr9a/0Z5zKcgMrVuHerdi9XPS4=@vger.kernel.org X-Gm-Message-State: AOJu0YxN3qNBgS/7OTgAVnRKhzWcrHUG0dQ/7FX+cvVMpgax+F9JIKF+ Hiquv2kRCZwbyn0Hm3uzQnwkpu/khBO7UQZR5kdGQt7U5poSs/d4ITx3pX0/Ho/bwBC9vQ7YG9J 0zPvh3/D2n975jl2wzNuX++K7041S4DE1IGPpekjHVYb/ZkOA6LQcQLINTBudaxs9kmo= X-Gm-Gg: ATEYQzz6xSGPOCEvlunBRoWXfdqPJLyCUfBsj47/ysuuzAzSCRYjptokQw3InOPHAZJ PJZTezCefmafPnOajk6wxpFo1rvelFbQdDa1THuE/MdUrANquPanjLe/H3j3+AXrn/Ly5jWaCWT 3NQEI7AgMEwqyYBKR7MF/CGbJhJULV752sijxH4XyfQhEquyIiEABfWa11vNBUzv/2XFUOhqW4o hOS+B4GW4Y4CqNXWZk40iUZpiOB9l1C9JNOlWl9yjpdB732piwerrHKGHKQ/BwwMIiqUldNfdFA HPxo2987x0Doy3jXiT6Yok41BhOACSzUzE+Q/U6eEYms/MXbTOhj5nuNwAC9BGZjfLXFAXDsIZu s+SKg8Iwewl1BJ7qBy2OoeooRk9CYPc12RTzJwshgmZ81UEMgEsso/3641MnIHBhKWXWr X-Received: by 2002:a05:7022:160b:b0:119:e56b:91ec with SMTP id a92af1059eb24-12a726f5b6fmr4673513c88.29.1774250136885; Mon, 23 Mar 2026 00:15:36 -0700 (PDT) X-Received: by 2002:a05:7022:160b:b0:119:e56b:91ec with SMTP id a92af1059eb24-12a726f5b6fmr4673492c88.29.1774250136236; Mon, 23 Mar 2026 00:15:36 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c10b14cadbsm13997886eec.3.2026.03.23.00.15.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 00:15:35 -0700 (PDT) From: Qiang Yu Date: Mon, 23 Mar 2026 00:15:30 -0700 Subject: [PATCH v2 3/5] phy: qcom: qmp-pcie: Support multiple nocsr resets 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: <20260323-glymur_gen5x8_phy_0323-v2-3-ce0fc07f0e52@oss.qualcomm.com> References: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> In-Reply-To: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774250130; l=10138; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=DxC/gzVZbMcfvTcP9R5APmqYjCaKSVBVLpWXzTTw9Eo=; b=hQ0y5v1WwDFOAQr/O8x+Dz+1lSYukKZ5z8dc9CwzbaREjpcD6ua+3b8IT6L34UXwpKX17gbNM rKVMqYsLNtRC5B4Uy5XkDV3idQtD2aJK6tWS8FP0elDb/XJNqm5+RfZ X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA1NCBTYWx0ZWRfX4tIJa42cjQkH 3Yp2fWsC6kqjMT95Ia05gRcAp1fWWPqCRZZPCT9udSJEY5MP/eRRGJnNEAAHIOPavMpzytEcUoP vdVumStbjGbitQI8KOv5Zi5bOLMZypPLnELQSZUEQPqRKt1Xv5hhiw3iivtTYNtjlUyjGTHZD2r MiX3E6+eQiBMGUlBPC0fFvpx4BMFqV+KV86mnX/OkCCefMPpeqYy0lbUNi7DJi2aiN5hRrZlxXa ozKv3HVSNSqNhOQyCG22Ct5UMQDGQJIGrgg7MN6HhwofU+QBXRgBREVUFSG98SidPiCqGakGRHQ RfEUA33VnOBOCLx6V7v6IvVX12t3yCLfZw5Ju2fthh6ULDA71DvExaxeFWy7jnwutB9nNIStMip EjsmOv6FV3/j+Hwdwi3u84ARLSYRiPdqDicFkDKQ+xj4Dz8Bge83M/5zSOj0DjkXwCWLONoOYfi mm7LOVGz6ZPgHg8kHcg== X-Proofpoint-ORIG-GUID: gBpg4wPLwcuLqEX86USTm6YvtCpVSC-R X-Authority-Analysis: v=2.4 cv=Q4DfIo2a c=1 sm=1 tr=0 ts=69c0e89a cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=wBkCwaD4edhj46uzH8YA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 X-Proofpoint-GUID: gBpg4wPLwcuLqEX86USTm6YvtCpVSC-R X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_02,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 malwarescore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230054 Refactor nocsr reset handling to support multiple nocsr resets required for PHY configurations with bifurcated operation modes. The Glymur SoC's 3rd PCIe instance supports 8-lane mode using two PHYs in bifurcation, where each PHY requires its own nocsr reset to be controlled simultaneously. The current implementation only supports a single nocsr reset per PHY configuration. Add num_nocsr and nocsr_list fields to struct qmp_phy_cfg to represent the number and names of a group of nocsr reset names. Initialize these fields for all PHYs that have nocsr resets, allowing the driver to correctly acquire multiple nocsr resets during probe and control them as an array by using reset_control_bulk APIs. The refactoring maintains backward compatibility for existing single nocsr reset configurations while enabling support for multi-PHY scenarios like Glymur's 8-lane bifurcation mode. Additionally, introduces x1e80100_qmp_gen3x2_pciephy_cfg as a separate configuration from sm8550_qmp_gen3x2_pciephy_cfg since the x1e80100 Gen3x2 PHY requires nocsr reset support while the sm8550 Gen3x2 PHY does not. Signed-off-by: Qiang Yu --- drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 87 ++++++++++++++++++++++++++++= ---- 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcom= m/phy-qcom-qmp-pcie.c index 424c935e27a8766e1e26762bd3d7df527c1520e3..51db9eea41255bad0034bbcfbfd= c36894c2bc95f 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -3281,6 +3281,11 @@ struct qmp_phy_cfg { /* resets to be requested */ const char * const *reset_list; int num_resets; + + /* nocsr resets to be requested */ + const char * const *nocsr_reset_list; + int num_nocsr_resets; + /* regulators to be requested */ const char * const *vreg_list; int num_vregs; @@ -3327,7 +3332,7 @@ struct qmp_pcie { int num_pipe_clks; =20 struct reset_control_bulk_data *resets; - struct reset_control *nocsr_reset; + struct reset_control_bulk_data *nocsr_reset; struct regulator_bulk_data *vregs; =20 struct phy *phy; @@ -3392,6 +3397,10 @@ static const char * const sdm845_pciephy_reset_l[] = =3D { "phy", }; =20 +static const char * const sm8550_pciephy_nocsr_reset_l[] =3D { + "phy_nocsr", +}; + static const struct qmp_pcie_offsets qmp_pcie_offsets_qhp =3D { .serdes =3D 0, .pcs =3D 0x1800, @@ -4348,6 +4357,8 @@ static const struct qmp_phy_cfg sm8550_qmp_gen4x2_pci= ephy_cfg =3D { }, .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D sm8550_qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(sm8550_qmp_phy_vreg_l), .regs =3D pciephy_v6_regs_layout, @@ -4380,6 +4391,8 @@ static const struct qmp_phy_cfg sm8650_qmp_gen4x2_pci= ephy_cfg =3D { }, .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D sm8550_qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(sm8550_qmp_phy_vreg_l), .regs =3D pciephy_v6_regs_layout, @@ -4480,6 +4493,35 @@ static const struct qmp_phy_cfg sa8775p_qmp_gen4x4_p= ciephy_cfg =3D { .phy_status =3D PHYSTATUS_4_20, }; =20 +static const struct qmp_phy_cfg x1e80100_qmp_gen3x2_pciephy_cfg =3D { + .lanes =3D 2, + + .offsets =3D &qmp_pcie_offsets_v5, + + .tbls =3D { + .serdes =3D sm8550_qmp_gen3x2_pcie_serdes_tbl, + .serdes_num =3D ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_serdes_tbl), + .tx =3D sm8550_qmp_gen3x2_pcie_tx_tbl, + .tx_num =3D ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_tx_tbl), + .rx =3D sm8550_qmp_gen3x2_pcie_rx_tbl, + .rx_num =3D ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_rx_tbl), + .pcs =3D sm8550_qmp_gen3x2_pcie_pcs_tbl, + .pcs_num =3D ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_pcs_tbl), + .pcs_misc =3D sm8550_qmp_gen3x2_pcie_pcs_misc_tbl, + .pcs_misc_num =3D ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_pcs_misc_tbl), + }, + .reset_list =3D sdm845_pciephy_reset_l, + .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), + .vreg_list =3D qmp_phy_vreg_l, + .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), + .regs =3D pciephy_v5_regs_layout, + + .pwrdn_ctrl =3D SW_PWRDN | REFCLK_DRV_DSBL, + .phy_status =3D PHYSTATUS, +}; + static const struct qmp_phy_cfg x1e80100_qmp_gen4x2_pciephy_cfg =3D { .lanes =3D 2, =20 @@ -4502,6 +4544,8 @@ static const struct qmp_phy_cfg x1e80100_qmp_gen4x2_p= ciephy_cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), .regs =3D pciephy_v6_regs_layout, @@ -4535,6 +4579,8 @@ static const struct qmp_phy_cfg x1e80100_qmp_gen4x4_p= ciephy_cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), .regs =3D pciephy_v6_regs_layout, @@ -4566,6 +4612,8 @@ static const struct qmp_phy_cfg x1e80100_qmp_gen4x8_p= ciephy_cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), .regs =3D pciephy_v6_regs_layout, @@ -4581,6 +4629,8 @@ static const struct qmp_phy_cfg qmp_v6_gen4x4_pciephy= _cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), .regs =3D pciephy_v6_regs_layout, @@ -4609,6 +4659,8 @@ static const struct qmp_phy_cfg qmp_v8_gen3x2_pciephy= _cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), .regs =3D pciephy_v8_regs_layout, @@ -4624,6 +4676,8 @@ static const struct qmp_phy_cfg glymur_qmp_gen5x4_pci= ephy_cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), =20 @@ -4640,6 +4694,8 @@ static const struct qmp_phy_cfg glymur_qmp_gen4x2_pci= ephy_cfg =3D { =20 .reset_list =3D sdm845_pciephy_reset_l, .num_resets =3D ARRAY_SIZE(sdm845_pciephy_reset_l), + .nocsr_reset_list =3D sm8550_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(sm8550_pciephy_nocsr_reset_l), .vreg_list =3D qmp_phy_vreg_l, .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), =20 @@ -4768,7 +4824,7 @@ static int qmp_pcie_init(struct phy *phy) } } =20 - ret =3D reset_control_assert(qmp->nocsr_reset); + ret =3D reset_control_bulk_assert(cfg->num_nocsr_resets, qmp->nocsr_reset= ); if (ret) { dev_err(qmp->dev, "no-csr reset assert failed\n"); goto err_assert_reset; @@ -4805,7 +4861,7 @@ static int qmp_pcie_exit(struct phy *phy) const struct qmp_phy_cfg *cfg =3D qmp->cfg; =20 if (qmp->nocsr_reset) - reset_control_assert(qmp->nocsr_reset); + reset_control_bulk_assert(cfg->num_nocsr_resets, qmp->nocsr_reset); else reset_control_bulk_assert(cfg->num_resets, qmp->resets); =20 @@ -4849,7 +4905,7 @@ static int qmp_pcie_power_on(struct phy *phy) if (ret) return ret; =20 - ret =3D reset_control_deassert(qmp->nocsr_reset); + ret =3D reset_control_bulk_deassert(cfg->num_nocsr_resets, qmp->nocsr_res= et); if (ret) { dev_err(qmp->dev, "no-csr reset deassert failed\n"); goto err_disable_pipe_clk; @@ -4998,14 +5054,25 @@ static int qmp_pcie_reset_init(struct qmp_pcie *qmp) for (i =3D 0; i < cfg->num_resets; i++) qmp->resets[i].id =3D cfg->reset_list[i]; =20 - ret =3D devm_reset_control_bulk_get_exclusive(dev, cfg->num_resets, qmp->= resets); + ret =3D devm_reset_control_bulk_get_exclusive(dev, cfg->num_resets, + qmp->resets); if (ret) return dev_err_probe(dev, ret, "failed to get resets\n"); =20 - qmp->nocsr_reset =3D devm_reset_control_get_optional_exclusive(dev, "phy_= nocsr"); - if (IS_ERR(qmp->nocsr_reset)) - return dev_err_probe(dev, PTR_ERR(qmp->nocsr_reset), - "failed to get no-csr reset\n"); + if (!cfg->num_nocsr_resets) + return 0; + qmp->nocsr_reset =3D devm_kcalloc(dev, cfg->num_nocsr_resets, + sizeof(*qmp->nocsr_reset), GFP_KERNEL); + if (!qmp->nocsr_reset) + return -ENOMEM; + + for (i =3D 0; i < cfg->num_nocsr_resets; i++) + qmp->nocsr_reset[i].id =3D cfg->nocsr_reset_list[i]; + + ret =3D devm_reset_control_bulk_get_exclusive(dev, cfg->num_nocsr_resets, + qmp->nocsr_reset); + if (ret) + return dev_err_probe(dev, ret, "failed to get no-csr reset\n"); =20 return 0; } @@ -5520,7 +5587,7 @@ static const struct of_device_id qmp_pcie_of_match_ta= ble[] =3D { .data =3D &sm8750_qmp_gen3x2_pciephy_cfg, }, { .compatible =3D "qcom,x1e80100-qmp-gen3x2-pcie-phy", - .data =3D &sm8550_qmp_gen3x2_pciephy_cfg, + .data =3D &x1e80100_qmp_gen3x2_pciephy_cfg, }, { .compatible =3D "qcom,x1e80100-qmp-gen4x2-pcie-phy", .data =3D &x1e80100_qmp_gen4x2_pciephy_cfg, --=20 2.34.1 From nobody Fri Apr 3 22:35:16 2026 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 4CD0035DA75 for ; Mon, 23 Mar 2026 07:15:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250141; cv=none; b=amgg3AfK8o1EkMeAye36LMPR31MgHx/0USY8Cx/zv6UkVnEMUH3R24shLGxYsrBlKv8UcZKvplPNERGmz1FTjGUA5413v+8JPyo9tSPiuVpX9x1iPZr+jd+0++zExRQf83aZS1iA9czQVnhajVukxdP5K3b50aOVviWwbR3awC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250141; c=relaxed/simple; bh=ZiGLm9+oSWgzXrpOJ1svwFM4yASEfqBDxFjXKTyaJxM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ABuQCQ2hTy0ghH+F39NLW1ZK0X3g61s5ccxkMQzQVyuXYDlvgWqbImwS9KeP4JZk9/cmYkKJJzaz0QADxKkD7o0EE7FWWlWkNyIM4ZPyBZfK/LQAQhCAIhTKpCBM8W8swZbVBwNixeJ8+877wBpw48hck8id1CpwViDChKbkX4E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Vq/EmhE2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EvDxF7wP; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Vq/EmhE2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EvDxF7wP" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62N72iL21203145 for ; Mon, 23 Mar 2026 07:15:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DyA2/GBUswWyqK7lPIZi5AAheFIz9RV+IBewUuyeNsw=; b=Vq/EmhE2LRIB61V2 F5AXE/rSeLSImj0Ig6gi+rjKWyS5wp6RWsi824KFlUoD6wj9jMd8LlFjNU13OnPA qcrJytO4lzhEGuWDv/VEzWsYrlEOtZzea0vQWQqnTTkoFIpFDOuysvmZ9G9yPZao i0ZhQKT16sin3GX51GQM+EzitEcbp0nAS3cxOEwRrQyH4xjO+Wz8QzP35MZUz9Sl 2oNdaKU58OgkIbAcTNSitxK793jIxIR287FqFNWmhdMa9eis+lfvOiTW94WOansG 46cS1boyd2FlMODwh8eg+LYVmDp/iwAch95RXdP7o3HLUd+hflHu/gO/PG/PRAkr IBw/vw== Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1kq5v7et-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 07:15:39 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2c109ba1296so6846141eec.1 for ; Mon, 23 Mar 2026 00:15:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774250138; x=1774854938; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DyA2/GBUswWyqK7lPIZi5AAheFIz9RV+IBewUuyeNsw=; b=EvDxF7wP5uy423aHRbqXsuNUB9SGcSV6Buf5xlWhHAgnzvIzKxtQJ1yp6Ep4qOUk/E vn+evJaSUg0O9zn0HsoK5P2lKWVFql4QvabsFwCXFh7vpKLBrFwfPHMWybDuk2wBbJjK e1Nyys5kwUT54xl7umpMLKCFFQutTzU7TR/WOZi8C+cHV3zdWpX8wGKxSOAGQh239r8e NET6hWdoroG/0PQrH0KDR7NBOMeWZwdmVltSh72M0XAqCG6m0b4Dhftjl14fqglKOUDI eCWHy+7CBTkT3lEEEt9d23Y8G222vGieF9JC+fPYYpxzn5FalPGAKyHGx0UEnL5tx8i0 Ej+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774250138; x=1774854938; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DyA2/GBUswWyqK7lPIZi5AAheFIz9RV+IBewUuyeNsw=; b=Y3RVKWoauNNtNEQZELfHvaGJRrq+RqwCDlvsEreEGjeNkJoOqHJACY5vVl05FAMnJR wqisri+mDA59H3wIPEmnlePE28u/msdW26uYbyJXKxb2Nfx4gc3Sm7K+VMvAxB8K0sw6 pfIERJKOy9YQsQKaA2iNPXSJKao9w3WRRlY9l1iv5Ximn+LWzMBO6vJgxjPPgqymM/am /uwRnu7jYbPpaBqMgXy0L4TpPRTL5SceoBZcwDB7n8573+5dbZj1g3Rff2/v0BWmHyAP vicotJXkFg+yHJoa5aNWYw86Sy0xf2Wy0dz0Nbk4mS5stcu4PDDRauYz/sju3Q1K8Sjn sqmQ== X-Forwarded-Encrypted: i=1; AJvYcCUvCR0NNqbDs9Om8vYm5/nM2qFywqABpJGGXrPzWU+YmH66tTMTzFyn/y1R8sH0DqnVZqlbZC40J3svlxY=@vger.kernel.org X-Gm-Message-State: AOJu0YyNXvEOFEBJut1fsKTM7ZqvVXHGwpJZ/SU0uccRrmnHrG5WxkzE 6j/GfPyWlLCyeQfLRVGE8jM8y9XhHHju7rzdP5gs7K/QdC329d1hlQ+BDMjNb8Qr2zEroXNsOtZ ARyqMCxFQcVLmze8/RgIPeYEvTH9q9BlimTuZoAQDctDZWj9ylvywfzjf3RNGE1l3OB0= X-Gm-Gg: ATEYQzyENz2QIu5j9AG9sLqbT/gzJnbLujJECi6NKhWyBrI4GxThZMPEIoTx0o+sCRZ kBmMknHg9SrnRpLjicRyXNEp+6N1jfL6G1UnMQbhn3Z2LALpbOSVFV+3yY5dOjkZyeqYBd8W1Y9 8CwSmtAkqdCwmwdW1+RtVqWMcVTb/ijCrSzPCGwBcfmIFBxwOI0yvbTPL/O9WXeAn2alqxE1ZeZ tPHAOkZVOYBFp8W6Klzbif9cID15pP2QtdgwRfFCanugpZBrhXA2abAnw105F4TsNd5GdJl+/z5 PMBZ6jQMvUypifm9BF3kGS87jKdiUqmzyW7NVedtErYGMxqHmyi7Lr6iDT3U25mPoclHoDIO7du 7nOkCXcOcZ+WnnAco9KIaVWKGQcAtvG/BmqSuTkA+anDeYDCoo2wYoxmxhIvkIFP73Hqi X-Received: by 2002:a05:7300:d50f:b0:2c1:23d:c73b with SMTP id 5a478bee46e88-2c1097c1a67mr5306456eec.34.1774250138275; Mon, 23 Mar 2026 00:15:38 -0700 (PDT) X-Received: by 2002:a05:7300:d50f:b0:2c1:23d:c73b with SMTP id 5a478bee46e88-2c1097c1a67mr5306444eec.34.1774250137709; Mon, 23 Mar 2026 00:15:37 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c10b14cadbsm13997886eec.3.2026.03.23.00.15.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 00:15:37 -0700 (PDT) From: Qiang Yu Date: Mon, 23 Mar 2026 00:15:31 -0700 Subject: [PATCH v2 4/5] phy: qcom: qmp-pcie: Add Gen5 8-lanes mode for Glymur 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: <20260323-glymur_gen5x8_phy_0323-v2-4-ce0fc07f0e52@oss.qualcomm.com> References: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> In-Reply-To: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774250130; l=2780; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=ZiGLm9+oSWgzXrpOJ1svwFM4yASEfqBDxFjXKTyaJxM=; b=PcRacB6pSJVxw7Koy22WvzFFIvGHWro7XrJ2AhxlvVYDiL1LNVZe0Fb0bYO2I6mXQ8K2jMqXy vshQ/rNhhaEDJQn0pLSr6qO9UJeUM2FjYeKORjWxlxiDmaA3U/f29UR X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Authority-Analysis: v=2.4 cv=GNoF0+NK c=1 sm=1 tr=0 ts=69c0e89b cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=OKc3O2-h_waFBcwqEmQA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA1NCBTYWx0ZWRfXyvsOpmbrR+yv vYQOMjZRRlZRZY9hH+a41tITOD2hbvjAawC15EBlIDUYcYdIdbEm8C9r8iJeyUh8ZYHYPtqXcSv lFcPLg3vANMzz1r3MV5lA5QTztiQOnLEwROcHVT9Gu7odrcnTyJKiNFfN+VfqlPJgiaaq09iUuv eWss2kGt+iSX3m1EkqSNe/kHSaDQJ0L68li0SQXbcpNl2BBwFaBo3x8MaeB4eSkyGoET8jEey2u Z7P5YSYHoayu1oKrBPQKoUX+psGE20q+regO2ScvZt88JTp+iZFYE6AGwBTfDWYDpjL8dYcAk5k We23ngs60YQb4OjlL8DjR041D6K9zCOs6dr6J2om1L7VUTfPXYstC2dIK5iU/iFwIF/mQwGNXsM V2bWfegH1+PtUXxePEHyZTt6m8uGbzvEqxg1D0Nm4HV0BwSgLdlARgi0G8O7A2NOgjsE7K0qrzO WMBmvikVeO8HCqUkzQg== X-Proofpoint-ORIG-GUID: Jr61l2SFJCTcrvh1tqWe8kMbzKAb4Pna X-Proofpoint-GUID: Jr61l2SFJCTcrvh1tqWe8kMbzKAb4Pna X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_02,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230054 The third PCIe controller on Glymur SoC supports 8-lane operation via bifurcation of two PHYs (each requires separate power domian, resets and aux clk). Add dedicated reset/no_csr reset list ("phy_b", "phy_b_nocsr") and clock ("phy_b_aux") required for 8-lane operation. Introduce new glymur_qmp_gen5x8_pciephy_cfg configuration to enable PCIe Gen5 x8 mode. Signed-off-by: Qiang Yu Reviewed-by: Abel Vesa Reviewed-by: Dmitry Baryshkov --- drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 30 ++++++++++++++++++++++++++++= +- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcom= m/phy-qcom-qmp-pcie.c index 51db9eea41255bad0034bbcfbfdc36894c2bc95f..e872b50b11da50e6317ce7e1acf= 6385925f92cdb 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -3376,7 +3376,7 @@ static inline void qphy_clrbits(void __iomem *base, u= 32 offset, u32 val) =20 /* list of clocks required by phy */ static const char * const qmp_pciephy_clk_l[] =3D { - "aux", "cfg_ahb", "ref", "refgen", "rchng", "phy_aux", + "aux", "cfg_ahb", "ref", "refgen", "rchng", "phy_aux", "phy_b_aux", }; =20 /* list of regulators */ @@ -3401,6 +3401,14 @@ static const char * const sm8550_pciephy_nocsr_reset= _l[] =3D { "phy_nocsr", }; =20 +static const char * const glymur_pciephy_reset_l[] =3D { + "phy", "phy_b" +}; + +static const char * const glymur_pciephy_nocsr_reset_l[] =3D { + "phy_nocsr", "phy_b_nocsr", +}; + static const struct qmp_pcie_offsets qmp_pcie_offsets_qhp =3D { .serdes =3D 0, .pcs =3D 0x1800, @@ -4705,6 +4713,23 @@ static const struct qmp_phy_cfg glymur_qmp_gen4x2_pc= iephy_cfg =3D { .phy_status =3D PHYSTATUS_4_20, }; =20 +static const struct qmp_phy_cfg glymur_qmp_gen5x8_pciephy_cfg =3D { + .lanes =3D 8, + + .offsets =3D &qmp_pcie_offsets_v8_50, + + .reset_list =3D glymur_pciephy_reset_l, + .num_resets =3D ARRAY_SIZE(glymur_pciephy_reset_l), + .nocsr_reset_list =3D glymur_pciephy_nocsr_reset_l, + .num_nocsr_resets =3D ARRAY_SIZE(glymur_pciephy_nocsr_reset_l), + .vreg_list =3D qmp_phy_vreg_l, + .num_vregs =3D ARRAY_SIZE(qmp_phy_vreg_l), + + .regs =3D pciephy_v8_50_regs_layout, + + .phy_status =3D PHYSTATUS_4_20, +}; + static void qmp_pcie_init_port_b(struct qmp_pcie *qmp, const struct qmp_ph= y_cfg_tbls *tbls) { const struct qmp_phy_cfg *cfg =3D qmp->cfg; @@ -5483,6 +5508,9 @@ static const struct of_device_id qmp_pcie_of_match_ta= ble[] =3D { }, { .compatible =3D "qcom,glymur-qmp-gen5x4-pcie-phy", .data =3D &glymur_qmp_gen5x4_pciephy_cfg, + }, { + .compatible =3D "qcom,glymur-qmp-gen5x8-pcie-phy", + .data =3D &glymur_qmp_gen5x8_pciephy_cfg, }, { .compatible =3D "qcom,ipq6018-qmp-pcie-phy", .data =3D &ipq6018_pciephy_cfg, --=20 2.34.1 From nobody Fri Apr 3 22:35:16 2026 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 1D99335FF57 for ; Mon, 23 Mar 2026 07:15:41 +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=1774250143; cv=none; b=UABC1qfNRTHAnAZVK5+OptHWJRLkNhaufXwvbK71mo9G935HD4OdHEocC4+JrsDAfUE68CtbW8r1HPgH3A/UqRNoT2kWT1BkEZcuZJujVfx5vikaKJzSg0d/zZ4EhdR3PbgXDoCsO+VM6k14+Mhv6y7GZdFOUnEtYakDDS4NMEs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250143; c=relaxed/simple; bh=m28kUgWbv2C79AmyaEXsT/zdO8tQfwDSXBdNXUyQAew=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JFK8M4SBDL12EnqGBd0QnxnpZ4PFmBaNMx7fknZDEwi22D38YsicDtYp05oVfJDn7zBYIKbf/Ya8d0kAqwABcbGlZ1fJ9y4VrCIRHktQjBrBZMPw4SehlUJ3STN6UcnCgA+07Tpr3I1tgrMEJ3EF/BZAkMw6drP5dt4Ib6zNL/w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Zc0uTu4k; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UnHPtlF+; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Zc0uTu4k"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UnHPtlF+" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62N5Vcx7930002 for ; Mon, 23 Mar 2026 07:15:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= SgDn8OJd4WnbYqFuVGcJwMaHVJjwUPEJ89RBmka3pF8=; b=Zc0uTu4kLtW7l3X/ rsckvt+skS0X/Q3TV+lOmev1NkJOYFz481hQ/zFIGjGXBkB99q4Oguok98Bs2sUl oFVb6MIKqrHJSw5gdUBIxSK+UyH8egzq0qSmWba6rdz7ucQFh7n/g1clLjGr738e te+jY0d8CKt2tTZsvhamKyjpBXqODQy1tjzCzuX93hQKfApN3eJykOniDiT3VWbX Juae8BgioAt8pmxd1oiOGxMSLwUAU6d0+12U25X/hWvAxdRs03+pRWF9oy1MzzTd HsPdPjcoG1iEv+0MJPLUWOBfEV6VYiRaN2l3AN4ZSx/U2aujLKNMmPQLot3YmWGj TjFWXw== Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1kduc7eu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 07:15:40 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c0ffce2570so8512249eec.1 for ; Mon, 23 Mar 2026 00:15:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774250140; x=1774854940; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SgDn8OJd4WnbYqFuVGcJwMaHVJjwUPEJ89RBmka3pF8=; b=UnHPtlF+PM8Z+XusUmK0ximfXpi9Lfap87dHW0UWzPr6ZBnQE4ksSHfooaKiI1dnVI w5Mbq5jsgngE+VS7SjAAJTwdWQ9VX+GPcupZ56yAqFgM3dPTR9nzyFMfOhbVyxMIUivW RwyB3zLafrR/0FCYfqCzkTvknwobnCwDFTHiCdN4Appa6bRe3D7z1rMHh4R3OwduZP8O 2VoPxQy7MFF9xTKWa1s59IhPncAvvkWKJQRf46uYe2zZvB5Kgf0AgZFf6oqPW/OIVmU/ n5FAqpnPbeKAO8dcqiv0/sB4R6j5YFnDrZMUtzV8PzqpoNnYxaRUJmEUlsziqGB6wE+i Oulw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774250140; x=1774854940; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SgDn8OJd4WnbYqFuVGcJwMaHVJjwUPEJ89RBmka3pF8=; b=btMamMzUPgKL3pqch8/jOJ7IyfRog+JKTBJLAyTr2wz5FYueHUdqvzNHA54hIcGzzJ hKJ61pqBB12VoSHiLClDG4cuqeQXLjRvwxysjSA88qGdtWyDfmfXQUeWGQmLngMnamUP d6+touMRd8g4gSbWgqRbQXTRX3Bxyb6aTCib6uPQnH5NA+Cu7gdCsS9bV7TydLmQhKcX 3NSJUuWrlx2h9ZRLSelAWaZxlmTA9ulLL39eEpbJrs7kMAoJxeQssRb3AJR+uRbZ8Zrr IVe4WFk7tbufiY573VgipDEWU4J8/KIqpJKOZO7VNH7PbF018x3AteH2nLz35z8dIt5P M6Ng== X-Forwarded-Encrypted: i=1; AJvYcCUULTHR0BHC7VLm4PI1eU0fIslXd4m85UFmJGVkIuB+cBuyVam4SzwpCfUFdjUGFb+r16auUsnTTevEdY8=@vger.kernel.org X-Gm-Message-State: AOJu0YzS02seA5buyulaHKXjYSzW3y8EPjhWU1G8FXGaPzzZQYiCde3k 3R2HJeNQ1B5vVDP2orm6OHSIOjAidxJHjQqeQTzcPKXPApTS2l/nCKo9z/w8lFbXRmrNIefgADM yzXfpkAmpBia72B6Exy3Qm0x1J+e4xM0W9bqthYOf+yW6d0ApGQHxO8rJUh8/MCjWLcU= X-Gm-Gg: ATEYQzxlxMmjYUahtxZpvHTXM19aeqYnOPKCtDNiRuXoQYI45FrKfPENS52uNLspdBn b5FP0VQpGrjawAXHGpKdT9kiydQt5nSOq/4LX3h2e5tpSB2N+fKn8wIDxFMqbM6sIOxzw1UEgb3 yzQVNgb1Xp5JFr+0qtMQz3Xgvc+ry+h8zF7g/A15wCEDA69MBRPpCxveJaLn+e3skXQeViP6yzr cOi2FYLWzpZUbsRizkwRwOiQBmY6oskfj+SDjbjb4L/Nx70VenTYuf158Y/oGqh+8sWrWLJIomi FbpkpZPAxe1AjS40h5almFc70Ho+ngCV83vGJCxNWcOwU8qQO7/mmCoJX+ATbh9HCRzFTuyRc17 75tbAF63KCH/wh9QUDH/DvkhFmQ55OvjzYj22nzG/grwDfmGJKlbDykMHDc2XZsEGqFmi X-Received: by 2002:a05:7301:408d:b0:2c1:6ee:a154 with SMTP id 5a478bee46e88-2c109809f75mr5318446eec.32.1774250139832; Mon, 23 Mar 2026 00:15:39 -0700 (PDT) X-Received: by 2002:a05:7301:408d:b0:2c1:6ee:a154 with SMTP id 5a478bee46e88-2c109809f75mr5318439eec.32.1774250139266; Mon, 23 Mar 2026 00:15:39 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c10b14cadbsm13997886eec.3.2026.03.23.00.15.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 00:15:38 -0700 (PDT) From: Qiang Yu Date: Mon, 23 Mar 2026 00:15:32 -0700 Subject: [PATCH v2 5/5] arch: arm64: dts: qcom: Add support for PCIe3a 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: <20260323-glymur_gen5x8_phy_0323-v2-5-ce0fc07f0e52@oss.qualcomm.com> References: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> In-Reply-To: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774250130; l=9744; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=m28kUgWbv2C79AmyaEXsT/zdO8tQfwDSXBdNXUyQAew=; b=I2nvudpb/twE1JVQq95WFHAt971EO+IUtlvC1TO1EhRqyGi3Bi2405/oMWhTge2FzZgHvdjOJ 4+MBgDQs7DUAMUqBdmsGkoCtwJefGWZoioT8VAHAIyNqkCXvthN8Aty X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA1NCBTYWx0ZWRfX5k8u4S7Rldi/ MTxqWqkOdNVnwHjp/ScjrceFO6cIpcuWqN8LKe0nPkUxso5BswFhfup7Q5gXD+fmFl8eObtvdJ/ jI8wNdaGENty5vB0ACzOSbLusc0A4Gjj6Eq5aIt8tCH5x2eJywXO2PZ6KPAuZOajO3xDC0rIICx NHsc+c0lw2dJ9y3MM77Qj1kwrZpmehfC+hHOthLex2s8AY+da7cWx7Om4vYTPbEs4GRDpNvZYDo iHTrE3Mf2imlfgEWjipfUquBqmTuS+p3edGfT0utYtHv4Xh/7qh8lgMc20qde204L/1Bm9RAWIi uw3PJLfv16cq/Lxt9YjLyfPiT9fbmb+G8E+EWF48qjj3+TbnXHvBvMCo9WnqAPwBG0qBPW2wxbb OQFIkaGTcUd0NJfXRNeZcL/qaqecYYxA0Oe6uh/X7TAn9hdEB3+Eb54toqSlwt0A6MQk1G97YRT jpvx4P6dKZIetZqDdTQ== X-Proofpoint-ORIG-GUID: ViXmwcaC-O5ijYvuCFb2fiO4om74Eu4A X-Authority-Analysis: v=2.4 cv=Q4DfIo2a c=1 sm=1 tr=0 ts=69c0e89c cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=hXbwWmyv05DepBt-Dp8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-GUID: ViXmwcaC-O5ijYvuCFb2fiO4om74Eu4A X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_02,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 malwarescore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230054 Describe PCIe3a controller and PHY. Also add required system resources like regulators, clocks, interrupts and registers configuration for PCIe3a. Signed-off-by: Qiang Yu --- arch/arm64/boot/dts/qcom/glymur.dtsi | 314 +++++++++++++++++++++++++++++++= +++- 1 file changed, 313 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qco= m/glymur.dtsi index bde287f645ee94116a489c55be3b7b80db3815e9..52104607a1713323fdfe2e7de71= 0e38c1e22d06e 100644 --- a/arch/arm64/boot/dts/qcom/glymur.dtsi +++ b/arch/arm64/boot/dts/qcom/glymur.dtsi @@ -736,7 +736,7 @@ gcc: clock-controller@100000 { <0>, /* USB 2 Phy PCIE PIPEGMUX */ <0>, /* USB 2 Phy PIPEGMUX */ <0>, /* USB 2 Phy SYS PCIE PIPEGMUX */ - <0>, /* PCIe 3a */ + <&pcie3a_phy>, /* PCIe 3a */ <&pcie3b_phy>, /* PCIe 3b */ <&pcie4_phy>, /* PCIe 4 */ <&pcie5_phy>, /* PCIe 5 */ @@ -2360,6 +2360,318 @@ pcie_west_slv_noc: interconnect@1920000 { #interconnect-cells =3D <2>; }; =20 + pcie3a: pci@1c10000 { + device_type =3D "pci"; + compatible =3D "qcom,glymur-pcie", "qcom,pcie-x1e80100"; + reg =3D <0x0 0x01c10000 0x0 0x3000>, + <0x0 0x70000000 0x0 0xf20>, + <0x0 0x70000f40 0x0 0xa8>, + <0x0 0x70001000 0x0 0x4000>, + <0x0 0x70100000 0x0 0x100000>, + <0x0 0x01c13000 0x0 0x1000>; + reg-names =3D "parf", + "dbi", + "elbi", + "atu", + "config", + "mhi"; + #address-cells =3D <3>; + #size-cells =3D <2>; + ranges =3D <0x01000000 0x0 0x00000000 0x0 0x70200000 0x0 0x100000>, + <0x02000000 0x0 0x70000000 0x0 0x70300000 0x0 0x3d00000>, + <0x03000000 0x7 0x00000000 0x7 0x00000000 0x0 0x40000000>; + bus-range =3D <0 0xff>; + + dma-coherent; + + linux,pci-domain =3D <3>; + num-lanes =3D <8>; + + operating-points-v2 =3D <&pcie3a_opp_table>; + + msi-map =3D <0x0 &gic_its 0xb0000 0x10000>; + iommu-map =3D <0x0 &pcie_smmu 0x30000 0x10000>; + + interrupts =3D , + , + , + , + , + , + , + , + ; + interrupt-names =3D "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells =3D <1>; + interrupt-map-mask =3D <0 0 0 0x7>; + interrupt-map =3D <0 0 0 1 &intc 0 0 0 848 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 0 0 849 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 0 0 850 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 0 0 851 IRQ_TYPE_LEVEL_HIGH>; + + clocks =3D <&gcc GCC_PCIE_3A_AUX_CLK>, + <&gcc GCC_PCIE_3A_CFG_AHB_CLK>, + <&gcc GCC_PCIE_3A_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_3A_SLV_AXI_CLK>, + <&gcc GCC_PCIE_3A_SLV_Q2A_AXI_CLK>, + <&gcc GCC_AGGRE_NOC_PCIE_3A_WEST_SF_AXI_CLK>; + clock-names =3D "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "noc_aggr"; + + assigned-clocks =3D <&gcc GCC_PCIE_3A_AUX_CLK>; + assigned-clock-rates =3D <19200000>; + + interconnects =3D <&pcie_west_anoc MASTER_PCIE_3A QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, + <&hsc_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS + &pcie_west_slv_noc SLAVE_PCIE_3A QCOM_ICC_TAG_ALWAYS>; + interconnect-names =3D "pcie-mem", + "cpu-pcie"; + + resets =3D <&gcc GCC_PCIE_3A_BCR>, + <&gcc GCC_PCIE_3A_LINK_DOWN_BCR>; + reset-names =3D "pci", + "link_down"; + + power-domains =3D <&gcc GCC_PCIE_3A_GDSC>; + + eq-presets-8gts =3D /bits/ 16 <0x5555 0x5555 0x5555 0x5555 + 0x5555 0x5555 0x5555 0x5555>; + eq-presets-16gts =3D /bits/ 8 <0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55>; + eq-presets-32gts =3D /bits/ 8 <0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55>; + + status =3D "disabled"; + + pcie3a_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + /* GEN 1 x1 */ + opp-2500000-1 { + opp-hz =3D /bits/ 64 <2500000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <250000 1>; + opp-level =3D <1>; + }; + + /* GEN 1 x2 */ + opp-5000000-1 { + opp-hz =3D /bits/ 64 <5000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <500000 1>; + opp-level =3D <1>; + }; + + /* GEN 1 x4 */ + opp-10000000-1 { + opp-hz =3D /bits/ 64 <10000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <1000000 1>; + opp-level =3D <1>; + }; + + /* GEN 1 x8 */ + opp-20000000-1 { + opp-hz =3D /bits/ 64 <20000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <2000000 1>; + opp-level =3D <1>; + }; + + /* GEN 2 x1 */ + opp-5000000-2 { + opp-hz =3D /bits/ 64 <5000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <500000 1>; + opp-level =3D <2>; + }; + + /* GEN 2 x2 */ + opp-10000000-2 { + opp-hz =3D /bits/ 64 <10000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <1000000 1>; + opp-level =3D <2>; + }; + + /* GEN 2 x4 */ + opp-20000000-2 { + opp-hz =3D /bits/ 64 <20000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <2000000 1>; + opp-level =3D <2>; + }; + + /* GEN 2 x8 */ + opp-40000000-2 { + opp-hz =3D /bits/ 64 <40000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <4000000 1>; + opp-level =3D <2>; + }; + + /* GEN 3 x1 */ + opp-8000000-3 { + opp-hz =3D /bits/ 64 <8000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <984500 1>; + opp-level =3D <3>; + }; + + /* GEN 3 x2 */ + opp-16000000-3 { + opp-hz =3D /bits/ 64 <16000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <1969000 1>; + opp-level =3D <3>; + }; + + /* GEN 3 x4 */ + opp-32000000-3 { + opp-hz =3D /bits/ 64 <32000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <3938000 1>; + opp-level =3D <3>; + }; + + /* GEN 3 x8 */ + opp-64000000-3 { + opp-hz =3D /bits/ 64 <64000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + opp-peak-kBps =3D <7876000 1>; + opp-level =3D <3>; + }; + + /* GEN 4 x1 */ + opp-16000000-4 { + opp-hz =3D /bits/ 64 <16000000>; + required-opps =3D <&rpmhpd_opp_svs>; + opp-peak-kBps =3D <1969000 1>; + opp-level =3D <4>; + }; + + /* GEN 4 x2 */ + opp-32000000-4 { + opp-hz =3D /bits/ 64 <32000000>; + required-opps =3D <&rpmhpd_opp_svs>; + opp-peak-kBps =3D <3938000 1>; + opp-level =3D <4>; + }; + + /* GEN 4 x4 */ + opp-64000000-4 { + opp-hz =3D /bits/ 64 <64000000>; + required-opps =3D <&rpmhpd_opp_svs>; + opp-peak-kBps =3D <7876000 1>; + opp-level =3D <4>; + }; + + /* GEN 4 x8 */ + opp-128000000-4 { + opp-hz =3D /bits/ 64 <128000000>; + required-opps =3D <&rpmhpd_opp_svs>; + opp-peak-kBps =3D <15753000 1>; + opp-level =3D <4>; + }; + + /* GEN 5 x1 */ + opp-32000000-5 { + opp-hz =3D /bits/ 64 <32000000>; + required-opps =3D <&rpmhpd_opp_nom>; + opp-peak-kBps =3D <3938000 1>; + opp-level =3D <5>; + }; + + /* GEN 5 x2 */ + opp-64000000-5 { + opp-hz =3D /bits/ 64 <64000000>; + required-opps =3D <&rpmhpd_opp_nom>; + opp-peak-kBps =3D <7876000 1>; + opp-level =3D <5>; + }; + + /* GEN 5 x4 */ + opp-128000000-5 { + opp-hz =3D /bits/ 64 <128000000>; + required-opps =3D <&rpmhpd_opp_nom>; + opp-peak-kBps =3D <15753000 1>; + opp-level =3D <5>; + }; + + /* GEN 5 x8 */ + opp-256000000-5 { + opp-hz =3D /bits/ 64 <256000000>; + required-opps =3D <&rpmhpd_opp_nom>; + opp-peak-kBps =3D <31506000 1>; + opp-level =3D <5>; + }; + }; + + pcie3a_port0: pcie@0 { + device_type =3D "pci"; + reg =3D <0x0 0x0 0x0 0x0 0x0>; + bus-range =3D <0x01 0xff>; + + phys =3D <&pcie3a_phy>; + + #address-cells =3D <3>; + #size-cells =3D <2>; + ranges; + }; + }; + + pcie3a_phy: phy@f00000 { + compatible =3D "qcom,glymur-qmp-gen5x8-pcie-phy"; + reg =3D <0 0x00f00000 0 0x10000>; + + clocks =3D <&gcc GCC_PCIE_PHY_3A_AUX_CLK>, + <&gcc GCC_PCIE_3A_CFG_AHB_CLK>, + <&tcsr TCSR_PCIE_3_CLKREF_EN>, + <&gcc GCC_PCIE_3A_PHY_RCHNG_CLK>, + <&gcc GCC_PCIE_3A_PIPE_CLK>, + <&gcc GCC_PCIE_PHY_3B_AUX_CLK>; + clock-names =3D "aux", + "cfg_ahb", + "ref", + "rchng", + "pipe", + "phy_b_aux"; + + resets =3D <&gcc GCC_PCIE_3A_PHY_BCR>, + <&gcc GCC_PCIE_3A_NOCSR_COM_PHY_BCR>, + <&gcc GCC_PCIE_3B_PHY_BCR>, + <&gcc GCC_PCIE_3B_NOCSR_COM_PHY_BCR>; + reset-names =3D "phy", + "phy_nocsr", + "phy_b", + "phy_b_nocsr"; + + assigned-clocks =3D <&gcc GCC_PCIE_3A_PHY_RCHNG_CLK>; + assigned-clock-rates =3D <100000000>; + + power-domains =3D <&gcc GCC_PCIE_3A_PHY_GDSC>, + <&gcc GCC_PCIE_3B_PHY_GDSC>; + + #clock-cells =3D <0>; + clock-output-names =3D "pcie3a_pipe_clk"; + + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + pcie4: pci@1bf0000 { device_type =3D "pci"; compatible =3D "qcom,glymur-pcie", "qcom,pcie-x1e80100"; --=20 2.34.1