Message ID | 20230214164135.17039-2-quic_devipriy@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3085383wrn; Tue, 14 Feb 2023 08:48:34 -0800 (PST) X-Google-Smtp-Source: AK7set+UJfhcxuWzLqH/cVVE24BOhCKx0UvNPP40sIs2bwVDA4+d3rTT4dLI48q5c3V6wmZOwSAN X-Received: by 2002:a05:6a20:6a0c:b0:bc:e1a9:a03a with SMTP id p12-20020a056a206a0c00b000bce1a9a03amr2806605pzk.30.1676393313670; Tue, 14 Feb 2023 08:48:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676393313; cv=none; d=google.com; s=arc-20160816; b=1HaVed/TG60v/P3L8O6bRv2F39tbXqlfAPR84lj37jccQcl1E0PulR8zy7IZ7y3wXP 2IgT6PkU7HHju9wNGg9nAffZq455WdU0Z7oHgL3ZiorXDb1vnMAlCb2GYCLemmFKhIRp ZimPb0qu+/HbniaYAnL0e9P9iKlg3cEzWqn9QW94mRZCKKonLo+a0PDl+N5pjrsWd58U fL2/LBHWoST2QQd7fx+9dtyqBvGZGWwuatuQyB/k6glR9pGLqpy5fM/yZe1G573n959q GlrGjtRHW5STqBUWULbXT4atdg1Htevlk+yn+GHD1ZCg65cLyYocpHuDexfw2M+BV4+7 SQvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=vlofixXEAaYTWm3a/LVD1SGKZGtLMVOrJfivEK4BB4A=; b=eWg2TDuSdGn1Fx+94KD4f+49N/s2jM6IhIYnfwTxFmXo8qOVC9pr9ifsa5Oy9hoE1O g8NhE42f28UVY5Dw0Z/XVA8Iu4ImE2H88pq1CjUO9Rm/7a7VwmsrRmRd4/uIRFjbaeey CvkkMZWE3M/fSdoCNHBeNA1aXwk24XkEgMTMlMSsKiDR99Z0ZKjNe4anRSgvSW0UGNn7 wQoIg7rWUubqxU7tnoJhnnLZ1YegnXdQrxcj+wroBZLcROgChEx9ILAs4v2kxm8gr5yL 5SEB0A98ea0bj61OiMrVxNe/l/DS3cOi4hAKV1iNlF7McROfbsQyhbLAZ2O0znsNovTV nkDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=GlT7DnbH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v128-20020a626186000000b00593e7f0a684si14941081pfb.366.2023.02.14.08.48.20; Tue, 14 Feb 2023 08:48:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=GlT7DnbH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232511AbjBNQmv (ORCPT <rfc822;tebrre53rla2o@gmail.com> + 99 others); Tue, 14 Feb 2023 11:42:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232447AbjBNQmq (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 14 Feb 2023 11:42:46 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06A0D26CE8; Tue, 14 Feb 2023 08:42:29 -0800 (PST) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 31EG5pc8028832; Tue, 14 Feb 2023 16:42:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=vlofixXEAaYTWm3a/LVD1SGKZGtLMVOrJfivEK4BB4A=; b=GlT7DnbHqXtJrNf3xsDrhaJpqX0JPRGgQQEpgYeSfgeOPPMstfkdUa5TmwsdS01GdYpb QWY3wlqufCL/5wDIZiBcHeRahInaH4rvWyYrwHPlW5K4XdycfNCnLpbX1UdRqtJ4JxFu 8YjFJRgm4nsjU5Hc2eXlP7U/1Y/Belh2MgSiHAsSdX3B13OrQQ+LrfV1LagnHyDap9ip 2Q71OP59qK2n8i+4I232Zy3RhLVhjceFPePOwTumihOgCB4EO8eBhypyyER0U8hrjuCO hjre00p7kp9QDLdlKHJiKly3nXZ1CPusry3CsMFuh1NHeMTEyBc1QI5iORRNC3cWVMg4 +A== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3nr6ps17uh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Feb 2023 16:42:16 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 31EGgF5b003546 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Feb 2023 16:42:15 GMT Received: from devipriy-linux.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Tue, 14 Feb 2023 08:42:07 -0800 From: Devi Priya <quic_devipriy@quicinc.com> To: <agross@kernel.org>, <andersson@kernel.org>, <konrad.dybcio@linaro.org>, <lpieralisi@kernel.org>, <kw@linux.com>, <robh@kernel.org>, <bhelgaas@google.com>, <krzysztof.kozlowski+dt@linaro.org>, <vkoul@kernel.org>, <kishon@kernel.org>, <mturquette@baylibre.com>, <sboyd@kernel.org>, <mani@kernel.org>, <p.zabel@pengutronix.de>, <svarbanov@mm-sol.com>, <linux-arm-msm@vger.kernel.org>, <linux-pci@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-phy@lists.infradead.org>, <linux-clk@vger.kernel.org> CC: <quic_srichara@quicinc.com>, <quic_gokulsri@quicinc.com>, <quic_sjaganat@quicinc.com>, <quic_kathirav@quicinc.com>, <quic_arajkuma@quicinc.com>, <quic_anusha@quicinc.com> Subject: [PATCH 1/7] dt-bindings: PCI: qcom: Add IPQ9574 specific compatible Date: Tue, 14 Feb 2023 22:11:29 +0530 Message-ID: <20230214164135.17039-2-quic_devipriy@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230214164135.17039-1-quic_devipriy@quicinc.com> References: <20230214164135.17039-1-quic_devipriy@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: zfj7fQTMm17HILr31r_RwDC8Hg3nmepj X-Proofpoint-GUID: zfj7fQTMm17HILr31r_RwDC8Hg3nmepj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.170.22 definitions=2023-02-14_11,2023-02-14_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 priorityscore=1501 bulkscore=0 suspectscore=0 lowpriorityscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302140142 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757825795173412639?= X-GMAIL-MSGID: =?utf-8?q?1757825795173412639?= |
Series |
Add PCIe support for IPQ9574
|
|
Commit Message
Devi Priya
Feb. 14, 2023, 4:41 p.m. UTC
Document the compatible for IPQ9574
Signed-off-by: Devi Priya <quic_devipriy@quicinc.com>
---
.../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++-
1 file changed, 70 insertions(+), 2 deletions(-)
Comments
On 14/02/2023 17:41, Devi Priya wrote: > Document the compatible for IPQ9574 > > Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > --- > .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > 1 file changed, 70 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > index 872817d6d2bd..dabdf2684e2d 100644 > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > @@ -26,6 +26,7 @@ properties: > - qcom,pcie-ipq8064-v2 > - qcom,pcie-ipq8074 > - qcom,pcie-ipq8074-gen3 > + - qcom,pcie-ipq9574 > - qcom,pcie-msm8996 > - qcom,pcie-qcs404 > - qcom,pcie-sa8540p > @@ -44,11 +45,11 @@ properties: > > reg: > minItems: 4 > - maxItems: 5 > + maxItems: 6 > > reg-names: > minItems: 4 > - maxItems: 5 > + maxItems: 6 > > interrupts: > minItems: 1 > @@ -105,6 +106,8 @@ properties: > items: > - const: pciephy > > + msi-parent: true > + > power-domains: > maxItems: 1 > > @@ -173,6 +176,27 @@ allOf: > - const: parf # Qualcomm specific registers > - const: config # PCIe configuration space > > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq9574 > + then: > + properties: > + reg: > + minItems: 5 > + maxItems: 6 > + reg-names: > + minItems: 5 > + items: > + - const: dbi # DesignWare PCIe registers > + - const: elbi # External local bus interface registers > + - const: atu # ATU address space > + - const: parf # Qualcomm specific registers > + - const: config # PCIe configuration space > + - const: aggr_noc #PCIe aggr_noc Why last one is optional? I would assume device either has it or has not. Best regards, Krzysztof
Hi Krzysztof, Thanks for taking time to review the patch! On 2/16/2023 3:59 PM, Krzysztof Kozlowski wrote: > On 14/02/2023 17:41, Devi Priya wrote: >> Document the compatible for IPQ9574 >> >> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> >> --- >> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- >> 1 file changed, 70 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> index 872817d6d2bd..dabdf2684e2d 100644 >> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> @@ -26,6 +26,7 @@ properties: >> - qcom,pcie-ipq8064-v2 >> - qcom,pcie-ipq8074 >> - qcom,pcie-ipq8074-gen3 >> + - qcom,pcie-ipq9574 >> - qcom,pcie-msm8996 >> - qcom,pcie-qcs404 >> - qcom,pcie-sa8540p >> @@ -44,11 +45,11 @@ properties: >> >> reg: >> minItems: 4 >> - maxItems: 5 >> + maxItems: 6 >> >> reg-names: >> minItems: 4 >> - maxItems: 5 >> + maxItems: 6 >> >> interrupts: >> minItems: 1 >> @@ -105,6 +106,8 @@ properties: >> items: >> - const: pciephy >> >> + msi-parent: true >> + >> power-domains: >> maxItems: 1 >> >> @@ -173,6 +176,27 @@ allOf: >> - const: parf # Qualcomm specific registers >> - const: config # PCIe configuration space >> >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,pcie-ipq9574 >> + then: >> + properties: >> + reg: >> + minItems: 5 >> + maxItems: 6 >> + reg-names: >> + minItems: 5 >> + items: >> + - const: dbi # DesignWare PCIe registers >> + - const: elbi # External local bus interface registers >> + - const: atu # ATU address space >> + - const: parf # Qualcomm specific registers >> + - const: config # PCIe configuration space >> + - const: aggr_noc #PCIe aggr_noc > > Why last one is optional? I would assume device either has it or has not. > Yes right, the device has aggr_noc. The rate adapter update was required only for 1-lane PCIe But will check and update this accordingly in the next spin. > > Best regards, > Krzysztof > Best Regards, Devi Priya
On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: > Document the compatible for IPQ9574 > You didn't mention about the "msi-parent" property that is being added by this patch. > Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > --- > .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > 1 file changed, 70 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > index 872817d6d2bd..dabdf2684e2d 100644 > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > @@ -26,6 +26,7 @@ properties: > - qcom,pcie-ipq8064-v2 > - qcom,pcie-ipq8074 > - qcom,pcie-ipq8074-gen3 > + - qcom,pcie-ipq9574 > - qcom,pcie-msm8996 > - qcom,pcie-qcs404 > - qcom,pcie-sa8540p > @@ -44,11 +45,11 @@ properties: > > reg: > minItems: 4 > - maxItems: 5 > + maxItems: 6 > > reg-names: > minItems: 4 > - maxItems: 5 > + maxItems: 6 > > interrupts: > minItems: 1 > @@ -105,6 +106,8 @@ properties: > items: > - const: pciephy > > + msi-parent: true > + > power-domains: > maxItems: 1 > > @@ -173,6 +176,27 @@ allOf: > - const: parf # Qualcomm specific registers > - const: config # PCIe configuration space > > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq9574 > + then: > + properties: > + reg: > + minItems: 5 > + maxItems: 6 > + reg-names: > + minItems: 5 > + items: > + - const: dbi # DesignWare PCIe registers > + - const: elbi # External local bus interface registers > + - const: atu # ATU address space > + - const: parf # Qualcomm specific registers > + - const: config # PCIe configuration space > + - const: aggr_noc #PCIe aggr_noc Why do you need this region unlike other SoCs? Is the driver making use of it? Thanks, Mani > + > - if: > properties: > compatible: > @@ -365,6 +389,39 @@ allOf: > - const: ahb # AHB Reset > - const: axi_m_sticky # AXI Master Sticky reset > > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq9574 > + then: > + properties: > + clocks: > + minItems: 6 > + maxItems: 6 > + clock-names: > + items: > + - const: ahb # AHB clock > + - const: aux # Auxiliary clock > + - const: axi_m # AXI Master clock > + - const: axi_s # AXI Slave clock > + - const: axi_bridge # AXI bridge clock > + - const: rchng > + resets: > + minItems: 8 > + maxItems: 8 > + reset-names: > + items: > + - const: pipe # PIPE reset > + - const: sticky # Core Sticky reset > + - const: axi_s_sticky # AXI Slave Sticky reset > + - const: axi_s # AXI Slave reset > + - const: axi_m_sticky # AXI Master Sticky reset > + - const: axi_m # AXI Master reset > + - const: aux # AUX Reset > + - const: ahb # AHB Reset > + > - if: > properties: > compatible: > @@ -681,6 +738,16 @@ allOf: > - interconnects > - interconnect-names > > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq9574 > + then: > + required: > + - msi-parent > + > - if: > not: > properties: > @@ -693,6 +760,7 @@ allOf: > - qcom,pcie-ipq8064v2 > - qcom,pcie-ipq8074 > - qcom,pcie-ipq8074-gen3 > + - qcom,pcie-ipq9574 > - qcom,pcie-qcs404 > then: > required: > -- > 2.17.1 >
On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: > On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: >> Document the compatible for IPQ9574 >> Hi Mani, Thanks for taking time to review the patch. > > You didn't mention about the "msi-parent" property that is being added > by this patch Sure, will update the commit message in the next spin > >> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> >> --- >> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- >> 1 file changed, 70 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> index 872817d6d2bd..dabdf2684e2d 100644 >> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> @@ -26,6 +26,7 @@ properties: >> - qcom,pcie-ipq8064-v2 >> - qcom,pcie-ipq8074 >> - qcom,pcie-ipq8074-gen3 >> + - qcom,pcie-ipq9574 >> - qcom,pcie-msm8996 >> - qcom,pcie-qcs404 >> - qcom,pcie-sa8540p >> @@ -44,11 +45,11 @@ properties: >> >> reg: >> minItems: 4 >> - maxItems: 5 >> + maxItems: 6 >> >> reg-names: >> minItems: 4 >> - maxItems: 5 >> + maxItems: 6 >> >> interrupts: >> minItems: 1 >> @@ -105,6 +106,8 @@ properties: >> items: >> - const: pciephy >> >> + msi-parent: true >> + >> power-domains: >> maxItems: 1 >> >> @@ -173,6 +176,27 @@ allOf: >> - const: parf # Qualcomm specific registers >> - const: config # PCIe configuration space >> >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,pcie-ipq9574 >> + then: >> + properties: >> + reg: >> + minItems: 5 >> + maxItems: 6 >> + reg-names: >> + minItems: 5 >> + items: >> + - const: dbi # DesignWare PCIe registers >> + - const: elbi # External local bus interface registers >> + - const: atu # ATU address space >> + - const: parf # Qualcomm specific registers >> + - const: config # PCIe configuration space >> + - const: aggr_noc #PCIe aggr_noc > > Why do you need this region unlike other SoCs? Is the driver making use of it? We have the aggr_noc region in ipq9574 to achieve higher throughput & to handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe clocks. My bad, missed it. Will add the driver changes in V2. > > Thanks, > Mani > >> + >> - if: >> properties: >> compatible: >> @@ -365,6 +389,39 @@ allOf: >> - const: ahb # AHB Reset >> - const: axi_m_sticky # AXI Master Sticky reset >> >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,pcie-ipq9574 >> + then: >> + properties: >> + clocks: >> + minItems: 6 >> + maxItems: 6 >> + clock-names: >> + items: >> + - const: ahb # AHB clock >> + - const: aux # Auxiliary clock >> + - const: axi_m # AXI Master clock >> + - const: axi_s # AXI Slave clock >> + - const: axi_bridge # AXI bridge clock >> + - const: rchng >> + resets: >> + minItems: 8 >> + maxItems: 8 >> + reset-names: >> + items: >> + - const: pipe # PIPE reset >> + - const: sticky # Core Sticky reset >> + - const: axi_s_sticky # AXI Slave Sticky reset >> + - const: axi_s # AXI Slave reset >> + - const: axi_m_sticky # AXI Master Sticky reset >> + - const: axi_m # AXI Master reset >> + - const: aux # AUX Reset >> + - const: ahb # AHB Reset >> + >> - if: >> properties: >> compatible: >> @@ -681,6 +738,16 @@ allOf: >> - interconnects >> - interconnect-names >> >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,pcie-ipq9574 >> + then: >> + required: >> + - msi-parent >> + >> - if: >> not: >> properties: >> @@ -693,6 +760,7 @@ allOf: >> - qcom,pcie-ipq8064v2 >> - qcom,pcie-ipq8074 >> - qcom,pcie-ipq8074-gen3 >> + - qcom,pcie-ipq9574 >> - qcom,pcie-qcs404 >> then: >> required: >> -- >> 2.17.1 >> > Thanks, Devi Priya
On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: > > > On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: > > On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: > > > Document the compatible for IPQ9574 > > > > Hi Mani, Thanks for taking time to review the patch. > > > > You didn't mention about the "msi-parent" property that is being added > > by this patch > Sure, will update the commit message in the next spin > > > > > Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > > > --- > > > .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > > > 1 file changed, 70 insertions(+), 2 deletions(-) > > > > > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > > > index 872817d6d2bd..dabdf2684e2d 100644 > > > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > > > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > > > @@ -26,6 +26,7 @@ properties: > > > - qcom,pcie-ipq8064-v2 > > > - qcom,pcie-ipq8074 > > > - qcom,pcie-ipq8074-gen3 > > > + - qcom,pcie-ipq9574 > > > - qcom,pcie-msm8996 > > > - qcom,pcie-qcs404 > > > - qcom,pcie-sa8540p > > > @@ -44,11 +45,11 @@ properties: > > > reg: > > > minItems: 4 > > > - maxItems: 5 > > > + maxItems: 6 > > > reg-names: > > > minItems: 4 > > > - maxItems: 5 > > > + maxItems: 6 > > > interrupts: > > > minItems: 1 > > > @@ -105,6 +106,8 @@ properties: > > > items: > > > - const: pciephy > > > + msi-parent: true > > > + > > > power-domains: > > > maxItems: 1 > > > @@ -173,6 +176,27 @@ allOf: > > > - const: parf # Qualcomm specific registers > > > - const: config # PCIe configuration space > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - qcom,pcie-ipq9574 > > > + then: > > > + properties: > > > + reg: > > > + minItems: 5 > > > + maxItems: 6 > > > + reg-names: > > > + minItems: 5 > > > + items: > > > + - const: dbi # DesignWare PCIe registers > > > + - const: elbi # External local bus interface registers > > > + - const: atu # ATU address space > > > + - const: parf # Qualcomm specific registers > > > + - const: config # PCIe configuration space > > > + - const: aggr_noc #PCIe aggr_noc > > > > Why do you need this region unlike other SoCs? Is the driver making use of it? > We have the aggr_noc region in ipq9574 to achieve higher throughput & to > handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe > clocks. My bad, missed it. Will add the driver changes in V2. Hmm, this is something new. How can you achieve higher throughput with this region? Can you explain more on how it is used? Thanks, Mani > > > > Thanks, > > Mani > > > > > + > > > - if: > > > properties: > > > compatible: > > > @@ -365,6 +389,39 @@ allOf: > > > - const: ahb # AHB Reset > > > - const: axi_m_sticky # AXI Master Sticky reset > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - qcom,pcie-ipq9574 > > > + then: > > > + properties: > > > + clocks: > > > + minItems: 6 > > > + maxItems: 6 > > > + clock-names: > > > + items: > > > + - const: ahb # AHB clock > > > + - const: aux # Auxiliary clock > > > + - const: axi_m # AXI Master clock > > > + - const: axi_s # AXI Slave clock > > > + - const: axi_bridge # AXI bridge clock > > > + - const: rchng > > > + resets: > > > + minItems: 8 > > > + maxItems: 8 > > > + reset-names: > > > + items: > > > + - const: pipe # PIPE reset > > > + - const: sticky # Core Sticky reset > > > + - const: axi_s_sticky # AXI Slave Sticky reset > > > + - const: axi_s # AXI Slave reset > > > + - const: axi_m_sticky # AXI Master Sticky reset > > > + - const: axi_m # AXI Master reset > > > + - const: aux # AUX Reset > > > + - const: ahb # AHB Reset > > > + > > > - if: > > > properties: > > > compatible: > > > @@ -681,6 +738,16 @@ allOf: > > > - interconnects > > > - interconnect-names > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - qcom,pcie-ipq9574 > > > + then: > > > + required: > > > + - msi-parent > > > + > > > - if: > > > not: > > > properties: > > > @@ -693,6 +760,7 @@ allOf: > > > - qcom,pcie-ipq8064v2 > > > - qcom,pcie-ipq8074 > > > - qcom,pcie-ipq8074-gen3 > > > + - qcom,pcie-ipq9574 > > > - qcom,pcie-qcs404 > > > then: > > > required: > > > -- > > > 2.17.1 > > > > > > Thanks, > Devi Priya
28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: >On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: >> >> >> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: >> > On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: >> > > Document the compatible for IPQ9574 >> > > >> Hi Mani, Thanks for taking time to review the patch. >> > >> > You didn't mention about the "msi-parent" property that is being added >> > by this patch >> Sure, will update the commit message in the next spin >> > >> > > Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> >> > > --- >> > > .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- >> > > 1 file changed, 70 insertions(+), 2 deletions(-) >> > > >> > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> > > index 872817d6d2bd..dabdf2684e2d 100644 >> > > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> > > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> > > @@ -26,6 +26,7 @@ properties: >> > > - qcom,pcie-ipq8064-v2 >> > > - qcom,pcie-ipq8074 >> > > - qcom,pcie-ipq8074-gen3 >> > > + - qcom,pcie-ipq9574 >> > > - qcom,pcie-msm8996 >> > > - qcom,pcie-qcs404 >> > > - qcom,pcie-sa8540p >> > > @@ -44,11 +45,11 @@ properties: >> > > reg: >> > > minItems: 4 >> > > - maxItems: 5 >> > > + maxItems: 6 >> > > reg-names: >> > > minItems: 4 >> > > - maxItems: 5 >> > > + maxItems: 6 >> > > interrupts: >> > > minItems: 1 >> > > @@ -105,6 +106,8 @@ properties: >> > > items: >> > > - const: pciephy >> > > + msi-parent: true >> > > + >> > > power-domains: >> > > maxItems: 1 >> > > @@ -173,6 +176,27 @@ allOf: >> > > - const: parf # Qualcomm specific registers >> > > - const: config # PCIe configuration space >> > > + - if: >> > > + properties: >> > > + compatible: >> > > + contains: >> > > + enum: >> > > + - qcom,pcie-ipq9574 >> > > + then: >> > > + properties: >> > > + reg: >> > > + minItems: 5 >> > > + maxItems: 6 >> > > + reg-names: >> > > + minItems: 5 >> > > + items: >> > > + - const: dbi # DesignWare PCIe registers >> > > + - const: elbi # External local bus interface registers >> > > + - const: atu # ATU address space >> > > + - const: parf # Qualcomm specific registers >> > > + - const: config # PCIe configuration space >> > > + - const: aggr_noc #PCIe aggr_noc >> > >> > Why do you need this region unlike other SoCs? Is the driver making use of it? >> We have the aggr_noc region in ipq9574 to achieve higher throughput & to >> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe >> clocks. My bad, missed it. Will add the driver changes in V2. > >Hmm, this is something new. How can you achieve higher throughput with this >region? Can you explain more on how it is used? Based on the name of the region, it looks like it is an interconnect region. Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. > >Thanks, >Mani > >> > >> > Thanks, >> > Mani >> > >> > > + >> > > - if: >> > > properties: >> > > compatible: >> > > @@ -365,6 +389,39 @@ allOf: >> > > - const: ahb # AHB Reset >> > > - const: axi_m_sticky # AXI Master Sticky reset >> > > + - if: >> > > + properties: >> > > + compatible: >> > > + contains: >> > > + enum: >> > > + - qcom,pcie-ipq9574 >> > > + then: >> > > + properties: >> > > + clocks: >> > > + minItems: 6 >> > > + maxItems: 6 >> > > + clock-names: >> > > + items: >> > > + - const: ahb # AHB clock >> > > + - const: aux # Auxiliary clock >> > > + - const: axi_m # AXI Master clock >> > > + - const: axi_s # AXI Slave clock >> > > + - const: axi_bridge # AXI bridge clock >> > > + - const: rchng >> > > + resets: >> > > + minItems: 8 >> > > + maxItems: 8 >> > > + reset-names: >> > > + items: >> > > + - const: pipe # PIPE reset >> > > + - const: sticky # Core Sticky reset >> > > + - const: axi_s_sticky # AXI Slave Sticky reset >> > > + - const: axi_s # AXI Slave reset >> > > + - const: axi_m_sticky # AXI Master Sticky reset >> > > + - const: axi_m # AXI Master reset >> > > + - const: aux # AUX Reset >> > > + - const: ahb # AHB Reset >> > > + >> > > - if: >> > > properties: >> > > compatible: >> > > @@ -681,6 +738,16 @@ allOf: >> > > - interconnects >> > > - interconnect-names >> > > + - if: >> > > + properties: >> > > + compatible: >> > > + contains: >> > > + enum: >> > > + - qcom,pcie-ipq9574 >> > > + then: >> > > + required: >> > > + - msi-parent >> > > + >> > > - if: >> > > not: >> > > properties: >> > > @@ -693,6 +760,7 @@ allOf: >> > > - qcom,pcie-ipq8064v2 >> > > - qcom,pcie-ipq8074 >> > > - qcom,pcie-ipq8074-gen3 >> > > + - qcom,pcie-ipq9574 >> > > - qcom,pcie-qcs404 >> > > then: >> > > required: >> > > -- >> > > 2.17.1 >> > > >> > >> Thanks, >> Devi Priya >
On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: > 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: > >On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: > >> > >> > >> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: > >> > On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: > >> > > Document the compatible for IPQ9574 > >> > > > >> Hi Mani, Thanks for taking time to review the patch. > >> > > >> > You didn't mention about the "msi-parent" property that is being added > >> > by this patch > >> Sure, will update the commit message in the next spin > >> > > >> > > Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > >> > > --- > >> > > .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > >> > > 1 file changed, 70 insertions(+), 2 deletions(-) > >> > > > >> > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >> > > index 872817d6d2bd..dabdf2684e2d 100644 > >> > > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >> > > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >> > > @@ -26,6 +26,7 @@ properties: > >> > > - qcom,pcie-ipq8064-v2 > >> > > - qcom,pcie-ipq8074 > >> > > - qcom,pcie-ipq8074-gen3 > >> > > + - qcom,pcie-ipq9574 > >> > > - qcom,pcie-msm8996 > >> > > - qcom,pcie-qcs404 > >> > > - qcom,pcie-sa8540p > >> > > @@ -44,11 +45,11 @@ properties: > >> > > reg: > >> > > minItems: 4 > >> > > - maxItems: 5 > >> > > + maxItems: 6 > >> > > reg-names: > >> > > minItems: 4 > >> > > - maxItems: 5 > >> > > + maxItems: 6 > >> > > interrupts: > >> > > minItems: 1 > >> > > @@ -105,6 +106,8 @@ properties: > >> > > items: > >> > > - const: pciephy > >> > > + msi-parent: true > >> > > + > >> > > power-domains: > >> > > maxItems: 1 > >> > > @@ -173,6 +176,27 @@ allOf: > >> > > - const: parf # Qualcomm specific registers > >> > > - const: config # PCIe configuration space > >> > > + - if: > >> > > + properties: > >> > > + compatible: > >> > > + contains: > >> > > + enum: > >> > > + - qcom,pcie-ipq9574 > >> > > + then: > >> > > + properties: > >> > > + reg: > >> > > + minItems: 5 > >> > > + maxItems: 6 > >> > > + reg-names: > >> > > + minItems: 5 > >> > > + items: > >> > > + - const: dbi # DesignWare PCIe registers > >> > > + - const: elbi # External local bus interface registers > >> > > + - const: atu # ATU address space > >> > > + - const: parf # Qualcomm specific registers > >> > > + - const: config # PCIe configuration space > >> > > + - const: aggr_noc #PCIe aggr_noc > >> > > >> > Why do you need this region unlike other SoCs? Is the driver making use of it? > >> We have the aggr_noc region in ipq9574 to achieve higher throughput & to > >> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe > >> clocks. My bad, missed it. Will add the driver changes in V2. > > > >Hmm, this is something new. How can you achieve higher throughput with this > >region? Can you explain more on how it is used? > > Based on the name of the region, it looks like it is an interconnect region. > Well, we only have BCM based interconnects so far. That's why I was curious about this region and its purpose. > Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. If that so, it doesn't need to be added in this series itself. I believe that without aggr_noc region, the PCIe controller can still function properly with reduced performance. But you can add the interconnect support later as a separate series. Thanks, Mani > > > > > >Thanks, > >Mani > > > >> > > >> > Thanks, > >> > Mani > >> > > >> > > + > >> > > - if: > >> > > properties: > >> > > compatible: > >> > > @@ -365,6 +389,39 @@ allOf: > >> > > - const: ahb # AHB Reset > >> > > - const: axi_m_sticky # AXI Master Sticky reset > >> > > + - if: > >> > > + properties: > >> > > + compatible: > >> > > + contains: > >> > > + enum: > >> > > + - qcom,pcie-ipq9574 > >> > > + then: > >> > > + properties: > >> > > + clocks: > >> > > + minItems: 6 > >> > > + maxItems: 6 > >> > > + clock-names: > >> > > + items: > >> > > + - const: ahb # AHB clock > >> > > + - const: aux # Auxiliary clock > >> > > + - const: axi_m # AXI Master clock > >> > > + - const: axi_s # AXI Slave clock > >> > > + - const: axi_bridge # AXI bridge clock > >> > > + - const: rchng > >> > > + resets: > >> > > + minItems: 8 > >> > > + maxItems: 8 > >> > > + reset-names: > >> > > + items: > >> > > + - const: pipe # PIPE reset > >> > > + - const: sticky # Core Sticky reset > >> > > + - const: axi_s_sticky # AXI Slave Sticky reset > >> > > + - const: axi_s # AXI Slave reset > >> > > + - const: axi_m_sticky # AXI Master Sticky reset > >> > > + - const: axi_m # AXI Master reset > >> > > + - const: aux # AUX Reset > >> > > + - const: ahb # AHB Reset > >> > > + > >> > > - if: > >> > > properties: > >> > > compatible: > >> > > @@ -681,6 +738,16 @@ allOf: > >> > > - interconnects > >> > > - interconnect-names > >> > > + - if: > >> > > + properties: > >> > > + compatible: > >> > > + contains: > >> > > + enum: > >> > > + - qcom,pcie-ipq9574 > >> > > + then: > >> > > + required: > >> > > + - msi-parent > >> > > + > >> > > - if: > >> > > not: > >> > > properties: > >> > > @@ -693,6 +760,7 @@ allOf: > >> > > - qcom,pcie-ipq8064v2 > >> > > - qcom,pcie-ipq8074 > >> > > - qcom,pcie-ipq8074-gen3 > >> > > + - qcom,pcie-ipq9574 > >> > > - qcom,pcie-qcs404 > >> > > then: > >> > > required: > >> > > -- > >> > > 2.17.1 > >> > > > >> > > >> Thanks, > >> Devi Priya > > >
On 3/3/2023 11:10 PM, Manivannan Sadhasivam wrote: > On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: >> 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: >>> On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: >>>> >>>> >>>> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: >>>>> On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: >>>>>> Document the compatible for IPQ9574 >>>>>> >>>> Hi Mani, Thanks for taking time to review the patch. >>>>> >>>>> You didn't mention about the "msi-parent" property that is being added >>>>> by this patch >>>> Sure, will update the commit message in the next spin >>>>> >>>>>> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> >>>>>> --- >>>>>> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- >>>>>> 1 file changed, 70 insertions(+), 2 deletions(-) >>>>>> >>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>> index 872817d6d2bd..dabdf2684e2d 100644 >>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>> @@ -26,6 +26,7 @@ properties: >>>>>> - qcom,pcie-ipq8064-v2 >>>>>> - qcom,pcie-ipq8074 >>>>>> - qcom,pcie-ipq8074-gen3 >>>>>> + - qcom,pcie-ipq9574 >>>>>> - qcom,pcie-msm8996 >>>>>> - qcom,pcie-qcs404 >>>>>> - qcom,pcie-sa8540p >>>>>> @@ -44,11 +45,11 @@ properties: >>>>>> reg: >>>>>> minItems: 4 >>>>>> - maxItems: 5 >>>>>> + maxItems: 6 >>>>>> reg-names: >>>>>> minItems: 4 >>>>>> - maxItems: 5 >>>>>> + maxItems: 6 >>>>>> interrupts: >>>>>> minItems: 1 >>>>>> @@ -105,6 +106,8 @@ properties: >>>>>> items: >>>>>> - const: pciephy >>>>>> + msi-parent: true >>>>>> + >>>>>> power-domains: >>>>>> maxItems: 1 >>>>>> @@ -173,6 +176,27 @@ allOf: >>>>>> - const: parf # Qualcomm specific registers >>>>>> - const: config # PCIe configuration space >>>>>> + - if: >>>>>> + properties: >>>>>> + compatible: >>>>>> + contains: >>>>>> + enum: >>>>>> + - qcom,pcie-ipq9574 >>>>>> + then: >>>>>> + properties: >>>>>> + reg: >>>>>> + minItems: 5 >>>>>> + maxItems: 6 >>>>>> + reg-names: >>>>>> + minItems: 5 >>>>>> + items: >>>>>> + - const: dbi # DesignWare PCIe registers >>>>>> + - const: elbi # External local bus interface registers >>>>>> + - const: atu # ATU address space >>>>>> + - const: parf # Qualcomm specific registers >>>>>> + - const: config # PCIe configuration space >>>>>> + - const: aggr_noc #PCIe aggr_noc >>>>> >>>>> Why do you need this region unlike other SoCs? Is the driver making use of it? >>>> We have the aggr_noc region in ipq9574 to achieve higher throughput & to >>>> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe >>>> clocks. My bad, missed it. Will add the driver changes in V2. >>> >>> Hmm, this is something new. How can you achieve higher throughput with this >>> region? Can you explain more on how it is used? >> >> Based on the name of the region, it looks like it is an interconnect region. >> > > Well, we only have BCM based interconnects so far. That's why I was curious > about this region and its purpose. For connected PCIe slave devices that are running at frequency lesser than the ANOC frequency (342MHz), the rate adapter of ANOC needs to be configured > >> Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. > > If that so, it doesn't need to be added in this series itself. I believe that > without aggr_noc region, the PCIe controller can still function properly with > reduced performance. But you can add the interconnect support later as a > separate series. Sure, okay. The ANOC runs at a fixed frequency of 342MHz and the interconnect clocks are not scaled. The aggr_noc register is just a magic register for configuring it's rate adapter to ensure no wait cycles are inserted. > > Thanks, > Mani > >> >> >>> >>> Thanks, >>> Mani >>> >>>>> >>>>> Thanks, >>>>> Mani >>>>> >>>>>> + >>>>>> - if: >>>>>> properties: >>>>>> compatible: >>>>>> @@ -365,6 +389,39 @@ allOf: >>>>>> - const: ahb # AHB Reset >>>>>> - const: axi_m_sticky # AXI Master Sticky reset >>>>>> + - if: >>>>>> + properties: >>>>>> + compatible: >>>>>> + contains: >>>>>> + enum: >>>>>> + - qcom,pcie-ipq9574 >>>>>> + then: >>>>>> + properties: >>>>>> + clocks: >>>>>> + minItems: 6 >>>>>> + maxItems: 6 >>>>>> + clock-names: >>>>>> + items: >>>>>> + - const: ahb # AHB clock >>>>>> + - const: aux # Auxiliary clock >>>>>> + - const: axi_m # AXI Master clock >>>>>> + - const: axi_s # AXI Slave clock >>>>>> + - const: axi_bridge # AXI bridge clock >>>>>> + - const: rchng >>>>>> + resets: >>>>>> + minItems: 8 >>>>>> + maxItems: 8 >>>>>> + reset-names: >>>>>> + items: >>>>>> + - const: pipe # PIPE reset >>>>>> + - const: sticky # Core Sticky reset >>>>>> + - const: axi_s_sticky # AXI Slave Sticky reset >>>>>> + - const: axi_s # AXI Slave reset >>>>>> + - const: axi_m_sticky # AXI Master Sticky reset >>>>>> + - const: axi_m # AXI Master reset >>>>>> + - const: aux # AUX Reset >>>>>> + - const: ahb # AHB Reset >>>>>> + >>>>>> - if: >>>>>> properties: >>>>>> compatible: >>>>>> @@ -681,6 +738,16 @@ allOf: >>>>>> - interconnects >>>>>> - interconnect-names >>>>>> + - if: >>>>>> + properties: >>>>>> + compatible: >>>>>> + contains: >>>>>> + enum: >>>>>> + - qcom,pcie-ipq9574 >>>>>> + then: >>>>>> + required: >>>>>> + - msi-parent >>>>>> + >>>>>> - if: >>>>>> not: >>>>>> properties: >>>>>> @@ -693,6 +760,7 @@ allOf: >>>>>> - qcom,pcie-ipq8064v2 >>>>>> - qcom,pcie-ipq8074 >>>>>> - qcom,pcie-ipq8074-gen3 >>>>>> + - qcom,pcie-ipq9574 >>>>>> - qcom,pcie-qcs404 >>>>>> then: >>>>>> required: >>>>>> -- >>>>>> 2.17.1 >>>>>> >>>>> >>>> Thanks, >>>> Devi Priya >>> >> > Thanks, Devi Priya
On Tue, 7 Mar 2023 at 11:45, Devi Priya <quic_devipriy@quicinc.com> wrote: > > > > On 3/3/2023 11:10 PM, Manivannan Sadhasivam wrote: > > On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: > >> 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: > >>> On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: > >>>> > >>>> > >>>> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: > >>>>> On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: > >>>>>> Document the compatible for IPQ9574 > >>>>>> > >>>> Hi Mani, Thanks for taking time to review the patch. > >>>>> > >>>>> You didn't mention about the "msi-parent" property that is being added > >>>>> by this patch > >>>> Sure, will update the commit message in the next spin > >>>>> > >>>>>> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > >>>>>> --- > >>>>>> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > >>>>>> 1 file changed, 70 insertions(+), 2 deletions(-) > >>>>>> > >>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >>>>>> index 872817d6d2bd..dabdf2684e2d 100644 > >>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >>>>>> @@ -26,6 +26,7 @@ properties: > >>>>>> - qcom,pcie-ipq8064-v2 > >>>>>> - qcom,pcie-ipq8074 > >>>>>> - qcom,pcie-ipq8074-gen3 > >>>>>> + - qcom,pcie-ipq9574 > >>>>>> - qcom,pcie-msm8996 > >>>>>> - qcom,pcie-qcs404 > >>>>>> - qcom,pcie-sa8540p > >>>>>> @@ -44,11 +45,11 @@ properties: > >>>>>> reg: > >>>>>> minItems: 4 > >>>>>> - maxItems: 5 > >>>>>> + maxItems: 6 > >>>>>> reg-names: > >>>>>> minItems: 4 > >>>>>> - maxItems: 5 > >>>>>> + maxItems: 6 > >>>>>> interrupts: > >>>>>> minItems: 1 > >>>>>> @@ -105,6 +106,8 @@ properties: > >>>>>> items: > >>>>>> - const: pciephy > >>>>>> + msi-parent: true > >>>>>> + > >>>>>> power-domains: > >>>>>> maxItems: 1 > >>>>>> @@ -173,6 +176,27 @@ allOf: > >>>>>> - const: parf # Qualcomm specific registers > >>>>>> - const: config # PCIe configuration space > >>>>>> + - if: > >>>>>> + properties: > >>>>>> + compatible: > >>>>>> + contains: > >>>>>> + enum: > >>>>>> + - qcom,pcie-ipq9574 > >>>>>> + then: > >>>>>> + properties: > >>>>>> + reg: > >>>>>> + minItems: 5 > >>>>>> + maxItems: 6 > >>>>>> + reg-names: > >>>>>> + minItems: 5 > >>>>>> + items: > >>>>>> + - const: dbi # DesignWare PCIe registers > >>>>>> + - const: elbi # External local bus interface registers > >>>>>> + - const: atu # ATU address space > >>>>>> + - const: parf # Qualcomm specific registers > >>>>>> + - const: config # PCIe configuration space > >>>>>> + - const: aggr_noc #PCIe aggr_noc > >>>>> > >>>>> Why do you need this region unlike other SoCs? Is the driver making use of it? > >>>> We have the aggr_noc region in ipq9574 to achieve higher throughput & to > >>>> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe > >>>> clocks. My bad, missed it. Will add the driver changes in V2. > >>> > >>> Hmm, this is something new. How can you achieve higher throughput with this > >>> region? Can you explain more on how it is used? > >> > >> Based on the name of the region, it looks like it is an interconnect region. > >> > > > > Well, we only have BCM based interconnects so far. That's why I was curious > > about this region and its purpose. > For connected PCIe slave devices that are running at frequency lesser > than the ANOC frequency (342MHz), the rate adapter of ANOC needs to be > configured > > > >> Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. > > > > If that so, it doesn't need to be added in this series itself. I believe that > > without aggr_noc region, the PCIe controller can still function properly with > > reduced performance. But you can add the interconnect support later as a > > separate series. > Sure, okay. The ANOC runs at a fixed frequency of 342MHz and the > interconnect clocks are not scaled. The aggr_noc register is just a > magic register for configuring it's rate adapter to ensure no wait > cycles are inserted. I have been hesitant at some point, but this looks more and more like a special kind of interconnect. Please consider moving all the NoC stuff into a separate driver implementing the ICC API. > > > > > Thanks, > > Mani > > > >> > >> > >>> > >>> Thanks, > >>> Mani > >>> > >>>>> > >>>>> Thanks, > >>>>> Mani > >>>>> > >>>>>> + > >>>>>> - if: > >>>>>> properties: > >>>>>> compatible: > >>>>>> @@ -365,6 +389,39 @@ allOf: > >>>>>> - const: ahb # AHB Reset > >>>>>> - const: axi_m_sticky # AXI Master Sticky reset > >>>>>> + - if: > >>>>>> + properties: > >>>>>> + compatible: > >>>>>> + contains: > >>>>>> + enum: > >>>>>> + - qcom,pcie-ipq9574 > >>>>>> + then: > >>>>>> + properties: > >>>>>> + clocks: > >>>>>> + minItems: 6 > >>>>>> + maxItems: 6 > >>>>>> + clock-names: > >>>>>> + items: > >>>>>> + - const: ahb # AHB clock > >>>>>> + - const: aux # Auxiliary clock > >>>>>> + - const: axi_m # AXI Master clock > >>>>>> + - const: axi_s # AXI Slave clock > >>>>>> + - const: axi_bridge # AXI bridge clock > >>>>>> + - const: rchng > >>>>>> + resets: > >>>>>> + minItems: 8 > >>>>>> + maxItems: 8 > >>>>>> + reset-names: > >>>>>> + items: > >>>>>> + - const: pipe # PIPE reset > >>>>>> + - const: sticky # Core Sticky reset > >>>>>> + - const: axi_s_sticky # AXI Slave Sticky reset > >>>>>> + - const: axi_s # AXI Slave reset > >>>>>> + - const: axi_m_sticky # AXI Master Sticky reset > >>>>>> + - const: axi_m # AXI Master reset > >>>>>> + - const: aux # AUX Reset > >>>>>> + - const: ahb # AHB Reset > >>>>>> + > >>>>>> - if: > >>>>>> properties: > >>>>>> compatible: > >>>>>> @@ -681,6 +738,16 @@ allOf: > >>>>>> - interconnects > >>>>>> - interconnect-names > >>>>>> + - if: > >>>>>> + properties: > >>>>>> + compatible: > >>>>>> + contains: > >>>>>> + enum: > >>>>>> + - qcom,pcie-ipq9574 > >>>>>> + then: > >>>>>> + required: > >>>>>> + - msi-parent > >>>>>> + > >>>>>> - if: > >>>>>> not: > >>>>>> properties: > >>>>>> @@ -693,6 +760,7 @@ allOf: > >>>>>> - qcom,pcie-ipq8064v2 > >>>>>> - qcom,pcie-ipq8074 > >>>>>> - qcom,pcie-ipq8074-gen3 > >>>>>> + - qcom,pcie-ipq9574 > >>>>>> - qcom,pcie-qcs404 > >>>>>> then: > >>>>>> required: > >>>>>> -- > >>>>>> 2.17.1 > >>>>>> > >>>>> > >>>> Thanks, > >>>> Devi Priya > >>> > >> > > > Thanks, > Devi Priya
On Tue, Mar 07, 2023 at 03:15:08PM +0530, Devi Priya wrote: > > > On 3/3/2023 11:10 PM, Manivannan Sadhasivam wrote: > > On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: > > > 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: > > > > On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: > > > > > > > > > > > > > > > On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: > > > > > > On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: > > > > > > > Document the compatible for IPQ9574 > > > > > > > > > > > > Hi Mani, Thanks for taking time to review the patch. > > > > > > > > > > > > You didn't mention about the "msi-parent" property that is being added > > > > > > by this patch > > > > > Sure, will update the commit message in the next spin > > > > > > > > > > > > > Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > > > > > > > --- > > > > > > > .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > > > > > > > 1 file changed, 70 insertions(+), 2 deletions(-) > > > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > > > > > > > index 872817d6d2bd..dabdf2684e2d 100644 > > > > > > > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > > > > > > > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > > > > > > > @@ -26,6 +26,7 @@ properties: > > > > > > > - qcom,pcie-ipq8064-v2 > > > > > > > - qcom,pcie-ipq8074 > > > > > > > - qcom,pcie-ipq8074-gen3 > > > > > > > + - qcom,pcie-ipq9574 > > > > > > > - qcom,pcie-msm8996 > > > > > > > - qcom,pcie-qcs404 > > > > > > > - qcom,pcie-sa8540p > > > > > > > @@ -44,11 +45,11 @@ properties: > > > > > > > reg: > > > > > > > minItems: 4 > > > > > > > - maxItems: 5 > > > > > > > + maxItems: 6 > > > > > > > reg-names: > > > > > > > minItems: 4 > > > > > > > - maxItems: 5 > > > > > > > + maxItems: 6 > > > > > > > interrupts: > > > > > > > minItems: 1 > > > > > > > @@ -105,6 +106,8 @@ properties: > > > > > > > items: > > > > > > > - const: pciephy > > > > > > > + msi-parent: true > > > > > > > + > > > > > > > power-domains: > > > > > > > maxItems: 1 > > > > > > > @@ -173,6 +176,27 @@ allOf: > > > > > > > - const: parf # Qualcomm specific registers > > > > > > > - const: config # PCIe configuration space > > > > > > > + - if: > > > > > > > + properties: > > > > > > > + compatible: > > > > > > > + contains: > > > > > > > + enum: > > > > > > > + - qcom,pcie-ipq9574 > > > > > > > + then: > > > > > > > + properties: > > > > > > > + reg: > > > > > > > + minItems: 5 > > > > > > > + maxItems: 6 > > > > > > > + reg-names: > > > > > > > + minItems: 5 > > > > > > > + items: > > > > > > > + - const: dbi # DesignWare PCIe registers > > > > > > > + - const: elbi # External local bus interface registers > > > > > > > + - const: atu # ATU address space > > > > > > > + - const: parf # Qualcomm specific registers > > > > > > > + - const: config # PCIe configuration space > > > > > > > + - const: aggr_noc #PCIe aggr_noc > > > > > > > > > > > > Why do you need this region unlike other SoCs? Is the driver making use of it? > > > > > We have the aggr_noc region in ipq9574 to achieve higher throughput & to > > > > > handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe > > > > > clocks. My bad, missed it. Will add the driver changes in V2. > > > > > > > > Hmm, this is something new. How can you achieve higher throughput with this > > > > region? Can you explain more on how it is used? > > > > > > Based on the name of the region, it looks like it is an interconnect region. > > > > > > > Well, we only have BCM based interconnects so far. That's why I was curious > > about this region and its purpose. > For connected PCIe slave devices that are running at frequency lesser > than the ANOC frequency (342MHz), the rate adapter of ANOC needs to be > configured > > > > > Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. > > > > If that so, it doesn't need to be added in this series itself. I believe that > > without aggr_noc region, the PCIe controller can still function properly with > > reduced performance. But you can add the interconnect support later as a > > separate series. > Sure, okay. The ANOC runs at a fixed frequency of 342MHz and the > interconnect clocks are not scaled. The aggr_noc register is just a magic > register for configuring it's rate adapter to ensure no wait cycles are > inserted. > If the purpose of the aggr_noc region is to configure the interconnect clock, then it should be modeled as an interconnect driver. Thanks, Mani > > > > Thanks, > > Mani > > > > > > > > > > > > > > > > Thanks, > > > > Mani > > > > > > > > > > > > > > > > Thanks, > > > > > > Mani > > > > > > > > > > > > > + > > > > > > > - if: > > > > > > > properties: > > > > > > > compatible: > > > > > > > @@ -365,6 +389,39 @@ allOf: > > > > > > > - const: ahb # AHB Reset > > > > > > > - const: axi_m_sticky # AXI Master Sticky reset > > > > > > > + - if: > > > > > > > + properties: > > > > > > > + compatible: > > > > > > > + contains: > > > > > > > + enum: > > > > > > > + - qcom,pcie-ipq9574 > > > > > > > + then: > > > > > > > + properties: > > > > > > > + clocks: > > > > > > > + minItems: 6 > > > > > > > + maxItems: 6 > > > > > > > + clock-names: > > > > > > > + items: > > > > > > > + - const: ahb # AHB clock > > > > > > > + - const: aux # Auxiliary clock > > > > > > > + - const: axi_m # AXI Master clock > > > > > > > + - const: axi_s # AXI Slave clock > > > > > > > + - const: axi_bridge # AXI bridge clock > > > > > > > + - const: rchng > > > > > > > + resets: > > > > > > > + minItems: 8 > > > > > > > + maxItems: 8 > > > > > > > + reset-names: > > > > > > > + items: > > > > > > > + - const: pipe # PIPE reset > > > > > > > + - const: sticky # Core Sticky reset > > > > > > > + - const: axi_s_sticky # AXI Slave Sticky reset > > > > > > > + - const: axi_s # AXI Slave reset > > > > > > > + - const: axi_m_sticky # AXI Master Sticky reset > > > > > > > + - const: axi_m # AXI Master reset > > > > > > > + - const: aux # AUX Reset > > > > > > > + - const: ahb # AHB Reset > > > > > > > + > > > > > > > - if: > > > > > > > properties: > > > > > > > compatible: > > > > > > > @@ -681,6 +738,16 @@ allOf: > > > > > > > - interconnects > > > > > > > - interconnect-names > > > > > > > + - if: > > > > > > > + properties: > > > > > > > + compatible: > > > > > > > + contains: > > > > > > > + enum: > > > > > > > + - qcom,pcie-ipq9574 > > > > > > > + then: > > > > > > > + required: > > > > > > > + - msi-parent > > > > > > > + > > > > > > > - if: > > > > > > > not: > > > > > > > properties: > > > > > > > @@ -693,6 +760,7 @@ allOf: > > > > > > > - qcom,pcie-ipq8064v2 > > > > > > > - qcom,pcie-ipq8074 > > > > > > > - qcom,pcie-ipq8074-gen3 > > > > > > > + - qcom,pcie-ipq9574 > > > > > > > - qcom,pcie-qcs404 > > > > > > > then: > > > > > > > required: > > > > > > > -- > > > > > > > 2.17.1 > > > > > > > > > > > > > > > > > > Thanks, > > > > > Devi Priya > > > > > > > > > > Thanks, > Devi Priya
On 3/7/2023 6:26 PM, Manivannan Sadhasivam wrote: > On Tue, Mar 07, 2023 at 03:15:08PM +0530, Devi Priya wrote: >> >> >> On 3/3/2023 11:10 PM, Manivannan Sadhasivam wrote: >>> On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: >>>> 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: >>>>> On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: >>>>>> >>>>>> >>>>>> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: >>>>>>> On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: >>>>>>>> Document the compatible for IPQ9574 >>>>>>>> >>>>>> Hi Mani, Thanks for taking time to review the patch. >>>>>>> >>>>>>> You didn't mention about the "msi-parent" property that is being added >>>>>>> by this patch >>>>>> Sure, will update the commit message in the next spin >>>>>>> >>>>>>>> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> >>>>>>>> --- >>>>>>>> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- >>>>>>>> 1 file changed, 70 insertions(+), 2 deletions(-) >>>>>>>> >>>>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>>>> index 872817d6d2bd..dabdf2684e2d 100644 >>>>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>>>> @@ -26,6 +26,7 @@ properties: >>>>>>>> - qcom,pcie-ipq8064-v2 >>>>>>>> - qcom,pcie-ipq8074 >>>>>>>> - qcom,pcie-ipq8074-gen3 >>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>> - qcom,pcie-msm8996 >>>>>>>> - qcom,pcie-qcs404 >>>>>>>> - qcom,pcie-sa8540p >>>>>>>> @@ -44,11 +45,11 @@ properties: >>>>>>>> reg: >>>>>>>> minItems: 4 >>>>>>>> - maxItems: 5 >>>>>>>> + maxItems: 6 >>>>>>>> reg-names: >>>>>>>> minItems: 4 >>>>>>>> - maxItems: 5 >>>>>>>> + maxItems: 6 >>>>>>>> interrupts: >>>>>>>> minItems: 1 >>>>>>>> @@ -105,6 +106,8 @@ properties: >>>>>>>> items: >>>>>>>> - const: pciephy >>>>>>>> + msi-parent: true >>>>>>>> + >>>>>>>> power-domains: >>>>>>>> maxItems: 1 >>>>>>>> @@ -173,6 +176,27 @@ allOf: >>>>>>>> - const: parf # Qualcomm specific registers >>>>>>>> - const: config # PCIe configuration space >>>>>>>> + - if: >>>>>>>> + properties: >>>>>>>> + compatible: >>>>>>>> + contains: >>>>>>>> + enum: >>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>> + then: >>>>>>>> + properties: >>>>>>>> + reg: >>>>>>>> + minItems: 5 >>>>>>>> + maxItems: 6 >>>>>>>> + reg-names: >>>>>>>> + minItems: 5 >>>>>>>> + items: >>>>>>>> + - const: dbi # DesignWare PCIe registers >>>>>>>> + - const: elbi # External local bus interface registers >>>>>>>> + - const: atu # ATU address space >>>>>>>> + - const: parf # Qualcomm specific registers >>>>>>>> + - const: config # PCIe configuration space >>>>>>>> + - const: aggr_noc #PCIe aggr_noc >>>>>>> >>>>>>> Why do you need this region unlike other SoCs? Is the driver making use of it? >>>>>> We have the aggr_noc region in ipq9574 to achieve higher throughput & to >>>>>> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe >>>>>> clocks. My bad, missed it. Will add the driver changes in V2. >>>>> >>>>> Hmm, this is something new. How can you achieve higher throughput with this >>>>> region? Can you explain more on how it is used? >>>> >>>> Based on the name of the region, it looks like it is an interconnect region. >>>> >>> >>> Well, we only have BCM based interconnects so far. That's why I was curious >>> about this region and its purpose. >> For connected PCIe slave devices that are running at frequency lesser >> than the ANOC frequency (342MHz), the rate adapter of ANOC needs to be >> configured >>> >>>> Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. >>> >>> If that so, it doesn't need to be added in this series itself. I believe that >>> without aggr_noc region, the PCIe controller can still function properly with >>> reduced performance. But you can add the interconnect support later as a >>> separate series. >> Sure, okay. The ANOC runs at a fixed frequency of 342MHz and the >> interconnect clocks are not scaled. The aggr_noc register is just a magic >> register for configuring it's rate adapter to ensure no wait cycles are >> inserted. >> > > If the purpose of the aggr_noc region is to configure the interconnect clock, > then it should be modeled as an interconnect driver. Can we use 'syscon' here, as we are not scaling the interconnect frequency and this is just a single register write for setting the rate adapter? > > Thanks, > Mani > >>> >>> Thanks, >>> Mani >>> >>>> >>>> >>>>> >>>>> Thanks, >>>>> Mani >>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> Mani >>>>>>> >>>>>>>> + >>>>>>>> - if: >>>>>>>> properties: >>>>>>>> compatible: >>>>>>>> @@ -365,6 +389,39 @@ allOf: >>>>>>>> - const: ahb # AHB Reset >>>>>>>> - const: axi_m_sticky # AXI Master Sticky reset >>>>>>>> + - if: >>>>>>>> + properties: >>>>>>>> + compatible: >>>>>>>> + contains: >>>>>>>> + enum: >>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>> + then: >>>>>>>> + properties: >>>>>>>> + clocks: >>>>>>>> + minItems: 6 >>>>>>>> + maxItems: 6 >>>>>>>> + clock-names: >>>>>>>> + items: >>>>>>>> + - const: ahb # AHB clock >>>>>>>> + - const: aux # Auxiliary clock >>>>>>>> + - const: axi_m # AXI Master clock >>>>>>>> + - const: axi_s # AXI Slave clock >>>>>>>> + - const: axi_bridge # AXI bridge clock >>>>>>>> + - const: rchng >>>>>>>> + resets: >>>>>>>> + minItems: 8 >>>>>>>> + maxItems: 8 >>>>>>>> + reset-names: >>>>>>>> + items: >>>>>>>> + - const: pipe # PIPE reset >>>>>>>> + - const: sticky # Core Sticky reset >>>>>>>> + - const: axi_s_sticky # AXI Slave Sticky reset >>>>>>>> + - const: axi_s # AXI Slave reset >>>>>>>> + - const: axi_m_sticky # AXI Master Sticky reset >>>>>>>> + - const: axi_m # AXI Master reset >>>>>>>> + - const: aux # AUX Reset >>>>>>>> + - const: ahb # AHB Reset >>>>>>>> + >>>>>>>> - if: >>>>>>>> properties: >>>>>>>> compatible: >>>>>>>> @@ -681,6 +738,16 @@ allOf: >>>>>>>> - interconnects >>>>>>>> - interconnect-names >>>>>>>> + - if: >>>>>>>> + properties: >>>>>>>> + compatible: >>>>>>>> + contains: >>>>>>>> + enum: >>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>> + then: >>>>>>>> + required: >>>>>>>> + - msi-parent >>>>>>>> + >>>>>>>> - if: >>>>>>>> not: >>>>>>>> properties: >>>>>>>> @@ -693,6 +760,7 @@ allOf: >>>>>>>> - qcom,pcie-ipq8064v2 >>>>>>>> - qcom,pcie-ipq8074 >>>>>>>> - qcom,pcie-ipq8074-gen3 >>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>> - qcom,pcie-qcs404 >>>>>>>> then: >>>>>>>> required: >>>>>>>> -- >>>>>>>> 2.17.1 >>>>>>>> >>>>>>> >>>>>> Thanks, >>>>>> Devi Priya >>>>> >>>> >>> >> Thanks, >> Devi Priya >
On Tue, 7 Mar 2023 at 16:40, Devi Priya <quic_devipriy@quicinc.com> wrote: > > > > On 3/7/2023 6:26 PM, Manivannan Sadhasivam wrote: > > On Tue, Mar 07, 2023 at 03:15:08PM +0530, Devi Priya wrote: > >> > >> > >> On 3/3/2023 11:10 PM, Manivannan Sadhasivam wrote: > >>> On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: > >>>> 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: > >>>>> On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: > >>>>>> > >>>>>> > >>>>>> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: > >>>>>>> On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: > >>>>>>>> Document the compatible for IPQ9574 > >>>>>>>> > >>>>>> Hi Mani, Thanks for taking time to review the patch. > >>>>>>> > >>>>>>> You didn't mention about the "msi-parent" property that is being added > >>>>>>> by this patch > >>>>>> Sure, will update the commit message in the next spin > >>>>>>> > >>>>>>>> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> > >>>>>>>> --- > >>>>>>>> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- > >>>>>>>> 1 file changed, 70 insertions(+), 2 deletions(-) > >>>>>>>> > >>>>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >>>>>>>> index 872817d6d2bd..dabdf2684e2d 100644 > >>>>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >>>>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > >>>>>>>> @@ -26,6 +26,7 @@ properties: > >>>>>>>> - qcom,pcie-ipq8064-v2 > >>>>>>>> - qcom,pcie-ipq8074 > >>>>>>>> - qcom,pcie-ipq8074-gen3 > >>>>>>>> + - qcom,pcie-ipq9574 > >>>>>>>> - qcom,pcie-msm8996 > >>>>>>>> - qcom,pcie-qcs404 > >>>>>>>> - qcom,pcie-sa8540p > >>>>>>>> @@ -44,11 +45,11 @@ properties: > >>>>>>>> reg: > >>>>>>>> minItems: 4 > >>>>>>>> - maxItems: 5 > >>>>>>>> + maxItems: 6 > >>>>>>>> reg-names: > >>>>>>>> minItems: 4 > >>>>>>>> - maxItems: 5 > >>>>>>>> + maxItems: 6 > >>>>>>>> interrupts: > >>>>>>>> minItems: 1 > >>>>>>>> @@ -105,6 +106,8 @@ properties: > >>>>>>>> items: > >>>>>>>> - const: pciephy > >>>>>>>> + msi-parent: true > >>>>>>>> + > >>>>>>>> power-domains: > >>>>>>>> maxItems: 1 > >>>>>>>> @@ -173,6 +176,27 @@ allOf: > >>>>>>>> - const: parf # Qualcomm specific registers > >>>>>>>> - const: config # PCIe configuration space > >>>>>>>> + - if: > >>>>>>>> + properties: > >>>>>>>> + compatible: > >>>>>>>> + contains: > >>>>>>>> + enum: > >>>>>>>> + - qcom,pcie-ipq9574 > >>>>>>>> + then: > >>>>>>>> + properties: > >>>>>>>> + reg: > >>>>>>>> + minItems: 5 > >>>>>>>> + maxItems: 6 > >>>>>>>> + reg-names: > >>>>>>>> + minItems: 5 > >>>>>>>> + items: > >>>>>>>> + - const: dbi # DesignWare PCIe registers > >>>>>>>> + - const: elbi # External local bus interface registers > >>>>>>>> + - const: atu # ATU address space > >>>>>>>> + - const: parf # Qualcomm specific registers > >>>>>>>> + - const: config # PCIe configuration space > >>>>>>>> + - const: aggr_noc #PCIe aggr_noc > >>>>>>> > >>>>>>> Why do you need this region unlike other SoCs? Is the driver making use of it? > >>>>>> We have the aggr_noc region in ipq9574 to achieve higher throughput & to > >>>>>> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe > >>>>>> clocks. My bad, missed it. Will add the driver changes in V2. > >>>>> > >>>>> Hmm, this is something new. How can you achieve higher throughput with this > >>>>> region? Can you explain more on how it is used? > >>>> > >>>> Based on the name of the region, it looks like it is an interconnect region. > >>>> > >>> > >>> Well, we only have BCM based interconnects so far. That's why I was curious > >>> about this region and its purpose. > >> For connected PCIe slave devices that are running at frequency lesser > >> than the ANOC frequency (342MHz), the rate adapter of ANOC needs to be > >> configured > >>> > >>>> Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. > >>> > >>> If that so, it doesn't need to be added in this series itself. I believe that > >>> without aggr_noc region, the PCIe controller can still function properly with > >>> reduced performance. But you can add the interconnect support later as a > >>> separate series. > >> Sure, okay. The ANOC runs at a fixed frequency of 342MHz and the > >> interconnect clocks are not scaled. The aggr_noc register is just a magic > >> register for configuring it's rate adapter to ensure no wait cycles are > >> inserted. > >> > > > > If the purpose of the aggr_noc region is to configure the interconnect clock, > > then it should be modeled as an interconnect driver. > Can we use 'syscon' here, as we are not scaling the interconnect > frequency and this is just a single register write for setting > the rate adapter? It should be done outside of the PCIe driver. It is not "just a single register". It is also setting the anoc/snoc clocks for USB. And maybe something else, which we haven't seen at this moment. You are still setting up the NoC, even if the icc frequency is not scaled.
On 3/7/2023 8:26 PM, Dmitry Baryshkov wrote: > On Tue, 7 Mar 2023 at 16:40, Devi Priya <quic_devipriy@quicinc.com> wrote: >> >> >> >> On 3/7/2023 6:26 PM, Manivannan Sadhasivam wrote: >>> On Tue, Mar 07, 2023 at 03:15:08PM +0530, Devi Priya wrote: >>>> >>>> >>>> On 3/3/2023 11:10 PM, Manivannan Sadhasivam wrote: >>>>> On Fri, Mar 03, 2023 at 05:16:58PM +0200, Dmitry Baryshkov wrote: >>>>>> 28 февраля 2023 г. 08:33:58 GMT+02:00, Manivannan Sadhasivam <mani@kernel.org> пишет: >>>>>>> On Tue, Feb 28, 2023 at 10:56:53AM +0530, Devi Priya wrote: >>>>>>>> >>>>>>>> >>>>>>>> On 2/24/2023 1:53 PM, Manivannan Sadhasivam wrote: >>>>>>>>> On Tue, Feb 14, 2023 at 10:11:29PM +0530, Devi Priya wrote: >>>>>>>>>> Document the compatible for IPQ9574 >>>>>>>>>> >>>>>>>> Hi Mani, Thanks for taking time to review the patch. >>>>>>>>> >>>>>>>>> You didn't mention about the "msi-parent" property that is being added >>>>>>>>> by this patch >>>>>>>> Sure, will update the commit message in the next spin >>>>>>>>> >>>>>>>>>> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com> >>>>>>>>>> --- >>>>>>>>>> .../devicetree/bindings/pci/qcom,pcie.yaml | 72 ++++++++++++++++++- >>>>>>>>>> 1 file changed, 70 insertions(+), 2 deletions(-) >>>>>>>>>> >>>>>>>>>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>>>>>> index 872817d6d2bd..dabdf2684e2d 100644 >>>>>>>>>> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>>>>>> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>>>>>>>>> @@ -26,6 +26,7 @@ properties: >>>>>>>>>> - qcom,pcie-ipq8064-v2 >>>>>>>>>> - qcom,pcie-ipq8074 >>>>>>>>>> - qcom,pcie-ipq8074-gen3 >>>>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>>>> - qcom,pcie-msm8996 >>>>>>>>>> - qcom,pcie-qcs404 >>>>>>>>>> - qcom,pcie-sa8540p >>>>>>>>>> @@ -44,11 +45,11 @@ properties: >>>>>>>>>> reg: >>>>>>>>>> minItems: 4 >>>>>>>>>> - maxItems: 5 >>>>>>>>>> + maxItems: 6 >>>>>>>>>> reg-names: >>>>>>>>>> minItems: 4 >>>>>>>>>> - maxItems: 5 >>>>>>>>>> + maxItems: 6 >>>>>>>>>> interrupts: >>>>>>>>>> minItems: 1 >>>>>>>>>> @@ -105,6 +106,8 @@ properties: >>>>>>>>>> items: >>>>>>>>>> - const: pciephy >>>>>>>>>> + msi-parent: true >>>>>>>>>> + >>>>>>>>>> power-domains: >>>>>>>>>> maxItems: 1 >>>>>>>>>> @@ -173,6 +176,27 @@ allOf: >>>>>>>>>> - const: parf # Qualcomm specific registers >>>>>>>>>> - const: config # PCIe configuration space >>>>>>>>>> + - if: >>>>>>>>>> + properties: >>>>>>>>>> + compatible: >>>>>>>>>> + contains: >>>>>>>>>> + enum: >>>>>>>>>> + - qcom,pcie-ipq9574 >>>>>>>>>> + then: >>>>>>>>>> + properties: >>>>>>>>>> + reg: >>>>>>>>>> + minItems: 5 >>>>>>>>>> + maxItems: 6 >>>>>>>>>> + reg-names: >>>>>>>>>> + minItems: 5 >>>>>>>>>> + items: >>>>>>>>>> + - const: dbi # DesignWare PCIe registers >>>>>>>>>> + - const: elbi # External local bus interface registers >>>>>>>>>> + - const: atu # ATU address space >>>>>>>>>> + - const: parf # Qualcomm specific registers >>>>>>>>>> + - const: config # PCIe configuration space >>>>>>>>>> + - const: aggr_noc #PCIe aggr_noc >>>>>>>>> >>>>>>>>> Why do you need this region unlike other SoCs? Is the driver making use of it? >>>>>>>> We have the aggr_noc region in ipq9574 to achieve higher throughput & to >>>>>>>> handle multiple PCIe instances. The driver uses it to rate adapt 1-lane PCIe >>>>>>>> clocks. My bad, missed it. Will add the driver changes in V2. >>>>>>> >>>>>>> Hmm, this is something new. How can you achieve higher throughput with this >>>>>>> region? Can you explain more on how it is used? >>>>>> >>>>>> Based on the name of the region, it looks like it is an interconnect region. >>>>>> >>>>> >>>>> Well, we only have BCM based interconnects so far. That's why I was curious >>>>> about this region and its purpose. >>>> For connected PCIe slave devices that are running at frequency lesser >>>> than the ANOC frequency (342MHz), the rate adapter of ANOC needs to be >>>> configured >>>>> >>>>>> Devi, if this is the case, then you have to handle it through the interconnect driver, rather than poking directly into these registers. >>>>> >>>>> If that so, it doesn't need to be added in this series itself. I believe that >>>>> without aggr_noc region, the PCIe controller can still function properly with >>>>> reduced performance. But you can add the interconnect support later as a >>>>> separate series. >>>> Sure, okay. The ANOC runs at a fixed frequency of 342MHz and the >>>> interconnect clocks are not scaled. The aggr_noc register is just a magic >>>> register for configuring it's rate adapter to ensure no wait cycles are >>>> inserted. >>>> >>> >>> If the purpose of the aggr_noc region is to configure the interconnect clock, >>> then it should be modeled as an interconnect driver. >> Can we use 'syscon' here, as we are not scaling the interconnect >> frequency and this is just a single register write for setting >> the rate adapter? > > It should be done outside of the PCIe driver. > It is not "just a single register". It is also setting the anoc/snoc > clocks for USB. And maybe something else, which we haven't seen at > this moment. You are still setting up the NoC, even if the icc > frequency is not scaled. > Sure Dmitry, Got it Regards, Devi Priya
diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml index 872817d6d2bd..dabdf2684e2d 100644 --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml @@ -26,6 +26,7 @@ properties: - qcom,pcie-ipq8064-v2 - qcom,pcie-ipq8074 - qcom,pcie-ipq8074-gen3 + - qcom,pcie-ipq9574 - qcom,pcie-msm8996 - qcom,pcie-qcs404 - qcom,pcie-sa8540p @@ -44,11 +45,11 @@ properties: reg: minItems: 4 - maxItems: 5 + maxItems: 6 reg-names: minItems: 4 - maxItems: 5 + maxItems: 6 interrupts: minItems: 1 @@ -105,6 +106,8 @@ properties: items: - const: pciephy + msi-parent: true + power-domains: maxItems: 1 @@ -173,6 +176,27 @@ allOf: - const: parf # Qualcomm specific registers - const: config # PCIe configuration space + - if: + properties: + compatible: + contains: + enum: + - qcom,pcie-ipq9574 + then: + properties: + reg: + minItems: 5 + maxItems: 6 + reg-names: + minItems: 5 + items: + - const: dbi # DesignWare PCIe registers + - const: elbi # External local bus interface registers + - const: atu # ATU address space + - const: parf # Qualcomm specific registers + - const: config # PCIe configuration space + - const: aggr_noc #PCIe aggr_noc + - if: properties: compatible: @@ -365,6 +389,39 @@ allOf: - const: ahb # AHB Reset - const: axi_m_sticky # AXI Master Sticky reset + - if: + properties: + compatible: + contains: + enum: + - qcom,pcie-ipq9574 + then: + properties: + clocks: + minItems: 6 + maxItems: 6 + clock-names: + items: + - const: ahb # AHB clock + - const: aux # Auxiliary clock + - const: axi_m # AXI Master clock + - const: axi_s # AXI Slave clock + - const: axi_bridge # AXI bridge clock + - const: rchng + resets: + minItems: 8 + maxItems: 8 + reset-names: + items: + - const: pipe # PIPE reset + - const: sticky # Core Sticky reset + - const: axi_s_sticky # AXI Slave Sticky reset + - const: axi_s # AXI Slave reset + - const: axi_m_sticky # AXI Master Sticky reset + - const: axi_m # AXI Master reset + - const: aux # AUX Reset + - const: ahb # AHB Reset + - if: properties: compatible: @@ -681,6 +738,16 @@ allOf: - interconnects - interconnect-names + - if: + properties: + compatible: + contains: + enum: + - qcom,pcie-ipq9574 + then: + required: + - msi-parent + - if: not: properties: @@ -693,6 +760,7 @@ allOf: - qcom,pcie-ipq8064v2 - qcom,pcie-ipq8074 - qcom,pcie-ipq8074-gen3 + - qcom,pcie-ipq9574 - qcom,pcie-qcs404 then: required: